人工智能课程设计汇报
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A
5
遗传算法求解TSP的基本步骤
(4)交叉操作。 相对于个体,随机选择两个个体,随机生成一个交叉位点。 交换对应位置两侧的基因片段,同时确保每个个体依然是1-n的 随机排列。
A
6
遗传算法求解TSP的基本步骤
(5)变异操作。 随机选取个体,随机选取个体的两个基因,进行交换以实现变 异操作。
A
7
百度文库 流程图
<知识库>
<事实>
<条件> 1:有毛发 2:产奶 3:有羽毛 4:会飞 5:会下蛋 6:吃肉 7:有犬齿 8:有爪 9:眼盯前方 10:有蹄 11:反刍 12:黄褐色 13:有斑点 14:有黑色条纹 15:长脖 16:长腿 17:不会飞 18:会游泳 19:黑白二色 20:善飞 </条件>
A
14
设计知识库
有犬齿,有爪,眼盯前方->食肉类
哺乳类,有蹄->蹄类
哺乳类,反刍->蹄类
食肉类,黄褐色,有斑点->金钱豹
for(i=0;i<num_C;i++) {
son1[i]=-1; son2[i]=-1; } //子代1前半部分直接从父代p复制 for(i=0;i<cross_point;i++) son1[i]=p->path[i]; //子代后半部分来自父代q for(i=cross_point;i<num_C;i++) { for(j=0;j<num_C;j++) {
for(c=1;c<N;c++)
{
flag=Randominteger(0,1);
if(flag<pm)
{
i=Randominteger1(1,N-1);//确定发生变异的个体
j=Randominteger1(0,num_C-1);//确定发生变异的位
k=Randominteger1(0,num_C-1);//确定
<中间结论> 21:哺乳类 22:鸟类 23:食肉类 </中间结论>
24:蹄类
<结论>
25:金钱豹 26:虎 27:长颈鹿 28:斑马 29:鸵鸟 30:企鹅 31:信天翁
</结论>
</事实>
A
15
设计知识库 <规则>
有毛->哺乳类
产奶->哺乳类
有羽毛->鸟类
会飞,会下蛋->鸟类
哺乳类,吃肉->食肉类
基于遗传算法的TSP问题 产生式系统的应用
by 计算机科学与技术1401 张凯歌
A
1
基于遗传算法的TSP问题
TSP问题,即旅行商问题。
假设有一个旅行商人要拜访n个城市,他必须选择所要走 的路径,路径的限制是每个城市只能拜访一次,而且最后 要回到原来出发的城市。路径的选择目标是要求得的路径 路程为所有路径之中的最小值。
A
2
遗传算法求解TSP的基本步骤
(1)种群初始化。 个体编码方法有:二进制编码和实数编码。 每一条染色体就是一种编码,在解决TSP问题过程中个体编码 方法为实数编码。 对于TSP问题,实数编码为1-n的实数的随机排列。 初始化的参数有城市个数,种群规模、进化次数、交叉概率、 变异概率
A
3
遗传算法求解TSP的基本步骤
};
A
9
核心代码
void Select(struct gene group[N]) //选择 { int i,j; int t=1; double k; Cprobability(group); Caccumulation(group); for(i=0;i<N-1;i++) {
k=Randominteger(0,1); for(j=0;j<N-1;j++) {
if(Search_son(son1,q->path[j])==1) {
son1[i]=q->path[j]; break; }
A
10
核心代码
void Varation(struct gene group[N])//变异
{
int i,j,k,temp,c;
struct gene *p;
double flag;
if(k<group[j].accumulation) {
Copy_gene(&group[j],&group[t]); t++; break; } } } }
void Cross(struct gene*p,struct gene*q) //交叉 {
int i,j,cross_point; int son1[num_C],son2[num_C]; cross_point=Randominteger1(1,num_C-1); //随机生 成交叉位点
A
8
核心代码
#define num_C 10 //城市个数
#define N 10
//群体规模
#define pc 0.9 //交叉概率
#define pm 0.1 //变异概率
#define genmax 500 //最大遗传代数
struct gene //染色体结构
{ int path[num_C]; //路径 double cost; //个体代价值 double fitness; //个体适应度 double probability; //适应度 double accumulation; //幸存概率
A
12
产生式动物识别系统
设计并实现具有15条规则能自动识别7种动物的产生式系统。 知识库与控制系统相互独立,系统完成后除了能识别已有的7 种动物外,按产生式知识表示方法向知识库中添加、 修改新的知识后,系统能在不修改控制系统程序的情况下仍然 能正确识别。
A
13
设计知识库
知识用 If 前提 then 结论 的形式来表示
发生变异的位
p=&group[i];//变异
temp=p->path[j];
p->path[j]=p->path[k];
p->path[k]=temp;
新计算变异后路径的代价
Calculate_cost(p);//重
}
}
}
A
11
运行结果
遗传算法属于启发式算法,最 终只能获得最优解的一个近 似解。
每次的运行结果也是有差别 的。
(2) 适应度函数。 在TSP问题中,任意两个城市之间的距离D(i,j)已知,每个染色体 (即n个城市的随机排列)可计算出总距离。 因此可将一个随机全排列的总距离的倒数作为适应度函数,即 距离越短,适应度函数越好,满足TSP要求。
A
4
遗传算法求解TSP的基本步骤
(3)选择操作。 采用累计适应度最高的选择策略,即适应度越好的个体被选择 的概率越大,同时在选择中保存适应度最高的个体。