运筹学2资料文档Word下载.docx

上传人:b****1 文档编号:13101128 上传时间:2022-10-05 格式:DOCX 页数:17 大小:84.07KB
下载 相关 举报
运筹学2资料文档Word下载.docx_第1页
第1页 / 共17页
运筹学2资料文档Word下载.docx_第2页
第2页 / 共17页
运筹学2资料文档Word下载.docx_第3页
第3页 / 共17页
运筹学2资料文档Word下载.docx_第4页
第4页 / 共17页
运筹学2资料文档Word下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

运筹学2资料文档Word下载.docx

《运筹学2资料文档Word下载.docx》由会员分享,可在线阅读,更多相关《运筹学2资料文档Word下载.docx(17页珍藏版)》请在冰豆网上搜索。

运筹学2资料文档Word下载.docx

与第J个元素c,的

位置交换。

换位操作的性能指标为:

△D换位=(d(c,一1,C,)+d(f。

,Ci+1)+d(勺1,ci)+d(勺,q+1))一(d(c,一1,cj)+d(cj,cf+1)+d(cj一1,c,)+d(C,,f,+1))

(1)其中,D表示游路的长度,下同。

图1换位操作示意图如对一个10城市解序列进行换位操作:

8—35672—94O1城市C2与城市c7的位置交换8—95672—3401则

△lD换位=(d(fl,2)+d(2,3)+d(6,C7)+d(7,8))一

(d(fl,f7)+d(C7.3)+d(6,C2)+d(f2,8))=

(d8.3+d3。

5+d2。

9+d9.4)一(d8。

9+d9。

5+d2.3+d3.4)

1.1.2移位操作move移位操作相当于选择(Or.opt)操作,如图2所示,

列中第个元素q移动到第j个元素c,之后的位置上。

移位操作的性能指标为:

△D咎位=(d(C。

一l,f。

)+d(CC1)+d(cj,c=f+1))一

word文档可自由复制编辑

(d(Ci—l,q+1)+d(ci,C)+d(C。

,q+1))图2移位操作示意图如对一个10城市解序列进行移位操作t

程序说明

任给一个城市与城市间的道路图,求一个旅行商访问每个城市并回到出发

点的最短路程。

如本实验中,城市间均有道路的五个城市的地图可以表示成下面的图1:

B

7

A 7 10 10

6 13

10 C 5 9 E

6

D

图1城市间均有道路的五个城市的地图在旅行商的地图中,五个城市用节点表示, 两城市间的距离用弧线上的数字表

示。

设旅行商从A城市出发,到B、C、D、E等城市去推销商品,要寻找一条从A

出发, 包括B、C、D、E,且仅包含一次,最后回到A的一条最短路径。

A*算法是N.Nillson于1971年提出的一种有序搜索算法,该算法被认为是求解人工智能问题的最成功的技术理论之一。

Nillson指出对于某一已到达的现行状态,如已到达图中的n节点,它是否可能成为最佳路径上的一点的估价,应由估价函数f(n)值来决定。

假设g*(n)函数值表示从起始节点s到任意一个节点n的一条最佳路径上的实际耗散值。

h*(n)函数值表示从任意节点n到目标节点ti的最佳路径的实际耗散值。

其中ti是一个可能的目标节点。

f*(n)函数值表示从起始s,通过某一指定的

n到达目标节点ti的一条最佳路径的实际耗散值,并有f*(n)=g*(n)+h*(n)。

假设f函数是对f*函数的一种估计,并有f(n)=g(n)+h(n),其中g函数是

对g*的估计,h函数是对h*的一种估计。

f(n)包括两个部分,其中g(n)表示到达n节点时,已付出代价的估计;

而h(n)表示从n节点到达目标节点ti将要付出代价的估计。

按f(n)=g*(n)+h*(n)的值来排序OPEN表的节点,f值小者优先。

通常称这

种算法为A算法。

在A算法的基础上,进一步限制h(n)函数,使得搜索图中的

每一个节点n,能满足h(n)<

=h*(n)、称h函数取h*的下界。

这种算法叫A*算法。

模型建立

1、状态描述和状态空间

所谓状态, 是指在一定的时空范围内,问题所涉及的人、物、时间等的布局关系。

通常把问题的初始布局关系称为初始状态,问题解决时到达的状态叫目标状态。

这两个状态之间存在差异,如何从初始状态到达目标状态就是对问题求解。

在求解过程中可能到达的所有状态统称为状态空间。

包括初始状态、中间状态、

目标状态。

在状态空间法中问题的求解通常是从初始状态到达目标状态的一条最佳路径,这条路径依靠搜索算法在状态空间中寻找,这就是状态空间法的核心所在。

2、产生式系统是状态空间法的基本系统结构一个产生式系统模型包括三个基本的组成部分,即一个综合数据库,一组产

生式规则和一个控制系统,通常称为产生式系统的三个基本要素。

产生式系统的工作过程如图2:

图2产生式系统的工作过程3、A*算法对旅行商问题的解决方法

图3给出了旅行商问题的旅程表。

两城市间的距离用数字表示,其中最小距离为5。

A

C

E

10

13

5

9

图3旅行商问题的旅程表

6(A,C)

(A,C,B)

(A,C,D)

(A,C,E)

图4城市状态图

设旅行商已从A城市到达了C城市,现行状态描述为(A,C),即状态表中已有两个元素。

下一步是到B、还是D、E则要看f(B)、f(D)、f(E)的大小,小者优先。

其中f(B)=g(B)+h(B)

f(D)=g(D)+h(D)

f(E)=g(E)+h(E)

已知如图4。

关键是各后继节点h函数的估价值如何计算。

从上图还可以看出,无论下一步是到B、到E还是到D,旅行商都是已到过三

个城市,即现行状态表的元素数均为3,与目标状态相比,还有3个城市没有去,

包括最后回到A城市。

如果我们假设剩下的3个城市间的平均距离等于最小距离

5,则从B或从E、D到达目标状态将要付出的代价不会小于3*5=15,即至少还要走3*5=15的距离,这就是h函数的估价值,即h(B)=15、h(D)=15、h(E)=15,将他们代入f(n)函数,得

f(B)=13+15=28f(D)=11+15=26f(E)=15+15=30

由此得出,旅行商下一步由C城市走到D城市。

所设置的h函数可用下式表

示:

h=(目标状态表的元素数—现行状态表的元素数)*K

K是一个系数,如K取两城市间的最小问题。

所设置的h,满足h<

=h*。

图5给出了五城市旅行商问题的一个部分搜索图:

27.3



26.1

A

6 1030 33

D E

7 5 9

28 26.2 30

B D E

10 6

31 27

B E

图5五城市旅行商问题的一个部分搜索图

(图中节点旁两个数字, 前一个为f(n)估计值,后一个表示扩展的先后顺

序)

其中K=5,满足h<

=h*,故图是A*算法的搜索图。

图中弧线上的数字是两城市

间的实际距离,即图中两节点间的实际耗散值;

节点的标示也作了简化,不是用状态表,而仅仅标出所到的城市。

由于是A*算法,则结束在一条最佳路径上,既A—>

B—>

E—>

D—>

C—>

A.该路径的f*=34。

算法实现 本实验设计了两个h函数,使用

A*算法编写程序实现解决旅行者问题。

在旅行商问题中节点(A...XY)的代价=起始城市到X城的代价+X城到Y城的

代价其中的代价可以是距离,费用或者时间等。

本实验设置的代价为距离,启发值用h表示,设计两种h函数,分别为:

1)、h1(n)=当前最短*未走路段数

2)、h2(n)=全程最短*未走路段数在程序中的实现:

p->

gvalue=p_min->

gvalue+relation[p_min->

num-1][i];

hvalue=min*(number-p->

level);

//h2(n)

//p->

hvalue=c_min*(number-p->

//h1(n)p->

fvalue=p->

gvalue+p->

hvalue;

其中gvalue:

g(n)

hvalue:

h(n)

fvalue:

f(n)

p_min->

gvalue:

起始城市到X城的代价

relation[p_min->

num-1][i]:

一个二维数组,X城到Y城的代价min:

min{全程最短路径代价}

c_min:

min{当前最短路径代价}

number:

城市总数

level:

城市节点所处于搜索树的层次,和已访问的城市数同值

在本程序中定义一个结构体node用于表示城市节点:

structnode

{

intnum;

intfvalue;

//f值intgvalue;

//g值inthvalue;

//h值int level;

//层

structnode*parent;

//父节点

structnode*next;

//后继structnode*front;

//前驱

};

定义一个结构体path表示Open表和Bestpat

h表structpath

structnode*head;

struct node*tail;

}Open,Bestpath;

其中Open表用于存放

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1