2022
我们一起努力

路径优化问题描述(路径优化问题描述怎么写)

目录:

  • 1、运输路径优化问题
  • 2、什么是路径优化?路径优化对SEO有影响吗
  • 3、Google OR-Tools(五) 路径问题 Routing

运输路径优化问题

运输合理化的概念

由于运输是物流中最重要的功能要素之一,物流合理化在很大程度上依赖于运输合理化。

运输合理化“五要素”

影响物流运输合理化的因素很多,起决定作用的有五个方面,称作合理运输的“五要素”

1,运输距离

运输过程中,运输时间、运输运费等若干技术经济指标都与运输距离有一定的关系运距长短是运输是否合理的一个最基本的因素。

2,运输环节

每增加一个运输环节,势必要增加运输的附属活动,如装卸,包装等,各项技术经济指标也会因此发生变化,因此减少运输环节有一定的促进作用。

3,运输工具

各种运输工具都有其优势领域,对运输工具进行优化选择最大限度的发挥运输工具的特点和作用,是运输合理化的重要的一环。

4,运输时间

在全部物流时间中运输时间绝大部分,尤其是远各运输,因此,运输时间的缩短对整个流通时间的缩短的决定性的作用。此外,运输时间缩短,还有得加速运输工具的周转,充分发挥运力效能,提高运输线路通过能力,不同程度地改善不合理。

5,运输费用

动费在全部物流费用中占很大的比例,运费高底在很大程度上决定整个物流系统的竞争能力。实际上,运费的相对高低,无论对货主还是对物流企业都是运输合理化的一个重要的标志。运费的高低也是各种合理化措施是否行之有效的最终判断依据之一

什么是路径优化?路径优化对SEO有影响吗

有些站长说建站就用伪静态它利于优化,伪静态真的利于优化吗不一定,不要误导新手了。不适合伪静态网站用伪静态不利于百度蜘蛛派行,我们接下来分享四个小点,建站的朋友要注意了,第一点静态路径的运用,第二点 伪静态路径的运用,第三点 动态路径的运用,第四点 目录的url匹配设计。 一,静态路径的运用 其实静态路径的运用,应该设计到小型企业站,“建议小型企业站采用织梦系统生成静态路”而且目录要用全拼”。当然你也可以采用帝国系统或其他,但是小型企业站一定用静态路径,为什么要用静态路径,我们的小型企业站,顶多就那一百左右网页,还要保证我们的网站很高收录率,所以用静态的,百度识别伪静态是不如静态的,强烈建议目录静态路最好是径全拼,全拼便于百度识别。1到4个字的全拼。如果路径太长百度蜘蛛爬行困难甚至就会丢掉路径不爬,所以小型站用静态路径利于优化。而且这样还不会造成百度蜘蛛抓取困惑的问题。声明一点路径不要用简写,很多站长不放在心上。 二,伪静态路径的运用 建议做商城和论坛的采用伪静态路径。“我不建议你做商城和论坛用动态路径,那就会生成不规范的路径以及大量参数的页面”。比如说动态商城的内页,产品页,产品分页还有js的调用以及其他。那么论坛?比如说DZ论坛动态里面也会有大量的参数以及JS的调用。静态路径就别提”更让你写的忧伤 。所以我要强烈的建议商城和论坛用伪静态路径。 三,合理的运用动态路径 一般来讲我们的动态路径运用在大型网站,案例新浪网:你们看看新浪网的首页,有多少连接,以及天涯也是如此,而且他们有一万左右页面也就是有很多路径。这些大型网站的页面要让百度收入,尽量不给蜘蛛添加困难,用动态路径可以获得最短的路径,而最短的路径有利于百度蜘蛛抓取,这样他们的页面才利于收入。 四,目录的路径的匹配设计 我们的目录最好采用静态路径而且进行全拼,目录的路径不能超过1到4个字的全拼,而不能简写,这样就有利于百度识别也利于排名。接来看目录的路径的匹配设计,我们来举一个案例:做一个四个字”站内优化”的目录,我们怎么做才能更好呢?我们用”分解词“ 举个案例:①/zhanneiyouhua/ ②/zhannei/③ /youhua/ 第三个案例是最佳选择。为什么?第一个案例虽然路径是四个全拼路径,但是太长了。第二个案例,因为我们在百度上“搜索站内”两页含有描述都和站内优化无关,如果你搜索优化打开第二页全部是相关内容。我们尽量选择目录的含词语要有相关性,所以最佳选择第三个案例/youhua/。当然有人问多字的目录怎么设计, 我们在举一个五个字的目录案例“太阳能路灯”的目录怎么设计。我设计几个案例,①/taiyangneng/②/ludeng/③/deng/第一个在案例就不说排除了,来看第二案例是很好的匹配,在百度搜索的结果和描述是非常相关的,而且用户也可以识别。可是他还不是最佳选择,第三案例才是最佳选择,也是这个目录的核心,这个我就不用解释了,大家一思考就明白了。声明一点我们要在每个细节上打败竞争对手,我们才会取得胜利。总结 文章以上几点,小型企业站如何优化路径,商城和论坛为什么用伪路径,以及合理动态路径。最好的是目录的设计和分解词的运用。

Google OR-Tools(五) 路径问题 Routing

本文参考Google OR-Tools 官网文档 介绍OR-Tools的使用方法。实际生活中有很多组合优化问题,例如最短路径、背包问题、人员排班等,这些组合优化问题一般属于规模较大的整数规划或者约束满足问题,一般没有直接的算法获得绝对最优解,只能通过启发式或元启发式算法获得相对最佳解。OR-Tools针对路径问题、背包问题和流问题提供了专用接口,相对于通用的求解器有更高的计算效率。

路径优化问题的目标都是在一个复杂的网络中找一个效能最高的路径,这个网络可以用下面这个节点图来示意

按照优化的目标是针对节点还是边,路径优化问题可以分成两类:节点路径优化( node-routing)和边路径优化(arc-routing)。节点路径优化的目标是以最短的路径长度访问到每个节点,而边路径优化的目标是以最短的路径长度实现访问图中的每条边。

旅行商(TSP)问题就是一个非常经典的node-routing问题,在这个问题下,图中每个节点代表了一个城市,而节点之间的边表示两座城市间的行程;每条边赋予一个权值,代表了两座城市间的距离;目标就是为旅行商找一条行程最短的路线来访问到每座城市。在这个标准的TSP问题定义上还可以附加各种额外条件来符合现实情况:

下面我们先了解一些解决以TSP为例的路径问题的算法,再使用OR-Tools演示一下。

启发(heuristic)这个词带有联想、经验的意思,这也正是启发式算法的思想,是带有领域知识的非精确算法,启发式算法一般要依赖于问题领域,不同的问题因为环境的不同启发式算法的形式也不同。对于TSP问题,一种最简单和直接的启发式算法是最邻近优先(Nearest Neighbor)法,就是每次都访问离当前位置最近的城市,这种算法的时间复杂度为 :

这种算法得到的解通常来说只有最优解的10%到15%。或者可以用一种更好的启发式算法,最短边贪心算法,就是不断选择最短的边来构造路径:

贪心算法的时间复杂度为 ,解的优良程度大概是最优解的15%到20%。除了这两种典型的启发式算法,还有其他很多种实现,就不列举了。

启发式算法的最大优点就是计算速度非常快,但是缺点也很明显,解的质量不高,因为本质上所有的启发式算法都属于局部最优算法,在随机初始化后只会沿这个方向发展,到达局部最优点后就停止了。

元启发式算法有时也称为智能优化算法,宽泛的来说也属于启发式算法,不过因为相对朴素的启发式算法有很大程度的改进因此一般单独划分出来讨论。元启发式算法的一大特点是面向全局的优化,会利用各种手段跳出局部最优来尝试寻找更好的解;另一个特点是通常会参考现实世界的物理过程来具体实现,从大多数元启发式算法的名字就可以直接体现,例如模拟退火算法、遗传算法、蚁群算法和霍普菲尔德神经网络等等。

在这篇文章里我们介绍一下模拟退火算法。它是受加热金属的退火过程所启发而提出的一种逼近算法,该算法在1983年由Kirkpatrick等人提出,并且最初设计这个算法就是为了解决TSP问题的。

模拟退火参考了一个物理现象:在某个温度下,金属分子停留在能量小的状态的概率比停留在能量大的状态的概率要大。更加具体的物理背景是这样的,在温度 下,金属物体的分子可能会处于若干种状态,停留在状态 的概率满足Boltzmann分布:

其中 表示分子能量的随机变量, 表示在状态 下的能量, 为Boltzmann常量,而 为概率分布的标准化因子

其中 是状态空间。根据分子能量的Boltzmann分布方程,分子不同状态的能量与温度的关系具有以下的特性:

上面这些特性归结起来就是温度越低,能量越低的状态的概率越高,极限情况下,只有能量最低的状态点概率不为零。举个例子,假设分子的能量概率分布函数如下:

其中能量点为 , ,则可能的概率变化情况如下表所示

我们了解了金属分子能量的退火过程,会发现在温度降低的过程中,分子能量一直在试图往最低的状态发展,这个过程就类似于我们求解最优问题解的过程。具体来对比的话,可以有以下细节:

因此,模拟退火算法就参照实际的物理过程,并采用实际物理过程的一些术语来实现。基本的算法流程如下:

模拟退火算法的主流程并不复杂,但是具体到每一步还有很多细节需要注意,我们针对主要的几个点进行叙述。

首先是解的定义和形式,不同的问题解的定义也不同,但都要尽量让解的形式简洁并利于操作,邻域中每个邻居解都是可行解,并且解空间中任何两个状态可达。邻域可以理解为当前解附近的解空间。对于TSP问题,一种可行的解定义是:用解 表示为访问城市的一个排序,而解的领域可用不同的操作算子来定义,例如最简单的互换操作,下图是采用互换操作从当前解 转到下一个解 的示意图

优化问题的目标函数就对应于分子退火过程中的状态能量,具体的目标函数表达形式和自身问题相关,在TSP里,目标函数就是当前解下的路径总长度

关于算法第2步的退火操作,就是在当前温度下,由一个状态(解)变到另一个状态(解),而这个转变的过程服从一个概率分布,通常采用Metropolis接受准则,即:

这里 表示如果当前状态是 ,则下一个状态是 的概率; 表示当前状态的目标值; 。按照这个接受准则,如果下一个状态对应的目标值比当前状态的更小,则一定会跳到这个状态;如果更大,并不是肯定不接受,而是按一定的概率去转换。利用概率特征,算法在陷入局部最优时将有机会跳出。

实际的退火过程中降温是不能太快的,否则容易导致形成不是最稳定的状态;同样在退火算法中,降温过程需要保持合适的速度以保证解的质量。一般有两种降温方式,一种是

这里的 一般会取接近1的小数。另一种是

这里的 表示设定的降温总次数。

而退火算法的停止准则可以是温度下降到指定值时停止,也可以是总降温次数到达指定的次数时停止,或者是设定一个目标值,当前解接近这个值时停止。

以模拟退火算法为代表的元启发算法看起来有点“玄妙”的感觉,我们其实在用算法在模拟某些物理过程,通常情况下元启发算法的效果相当令人满意,而且相比启发式算法,元启发式算法更加通用,不同的问题只要合理的定义变量都可以用元启发算法来解算。不过元启发算法也有些缺点,比如某些算法参数无法定量,只能靠经验设定,例如在模拟退火算法中,温度的初始值很重要,如果设的太大会导致计算时间过程;如果太小则会影响解的质量。而且元启发算法找寻相对最优解的时间会比启发式算法长,这在某些场景下并不适用。

事实上现在一般的组合优化引擎(包括OR-Tools)会把启发式算法和元启发算法进行结合,例如把初始解的生成过程用启发式算法计算,后续的元启发过程在这个解上进行,因此在OR-Tools工具的参数中会有些启发式参数可配置。

我们新建一个.Net Core控制台应用,利用OR-Tools解决一个标准的TSP问题。首先定义一个简单的数据集

DistanceMatrix存储了城市的距离信息,一维索引 i 代表了城市的编号,共有13个城市,DistanceMatrix[i][j]表示第i个城市和第j个城市的距离,比如DistanceMatrix[0][1]=2451,就表示城市0和城市1的距离是2451.。VehicleNumber表示访问城市的个体数,为1就是标准的TSP问题,大于1则扩展为VRP问题。Depot表示了起始城市索引,这里就从第0号城市开始。

在Routing接口中,OR-Tools除了把模型单独封装为一个类,还多出一个地点索引管理类,由它负责算法内部对城市地点索引的管理和计算。新建一个RoutingIndexManager对象,指定当前TSP问题的基础参数

然后用RoutingIndexManager对象初始化一个RoutingModel对象

接着是一个比较繁琐和让人困惑的步骤,我们需要为RoutingModel对象指定获取距离值的回调方法:

当求解器内部计算取两个城市的索引时,会调用我们指定的回调函数获取它们之间的距离。至于为什么要在回调函数内用IndexToNode()方法做一个看似多次一举的操作,是因为算法内部用的索引和原始数据的索引不一样,例如算法内部可能计算到fromIndex为0,toIndex为13的情况(第13个城市其实就是回到起始点),而在外部原始数据里是没有DistanceMatrix[0][13]这个值的。

然后我们还需要把RegisterTransitCallback返回的回调函数Id值作为SetArcCostEvaluatorOfAllVehicles方法的参数来通知模型,结点间边的权值就用城市距离表示。

我们再写一个打印解的方法

在最终计算之前,我们还可以设定一下算法搜索参数。我们先只指定FirstSolutionStrategy的值,也就是用哪种启发式算法来初始化解,这里指定为PathCheapestArc,即上面提到的最短边算法;此外把LogSearch设为true,从而可以看到算法的过程信息。

最后调用计算方法来得到结果

完整的程序

我们再来试试修改下searchParameters的配置。我们只是指定了FirstSolutionStrategy的值,用哪种元启发算法我们并没有指定,这个值由LocalSearchMetaheuristic指定,其默认值是AUTOMATIC,表示由求解器自己选择。这里例子里求解器应该选择的是Greedy Descent算法,我们手动改成模拟退火:

然后定义好停止时间,否则算法不会停下的

来看看模拟退火算法的结果,最终解和之前一样,不过中间过程就不一样了

赞(0)
文章名称:《路径优化问题描述(路径优化问题描述怎么写)》
文章链接:https://www.fzvps.com/265247.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!