精华内容
下载资源
问答
  • 遗传算法最短路径c#实现
  • matlab遗传算法最短路径C#版
  • GA 遗传算法 最短路径 万能代码 matlab
  • 2008, 44(23) Computer Engineering and Applications 计算机工程与应用 1 引言 遗传算法是基于生物进化原理的一种全局性优化算法, 是借鉴生物的自然选择和遗传进化机制而开发出的一种全局优化自适应概率搜索算法, ...

    2008, 44(23) Computer Engineering and Applications 计算机工程与应用 1 引言 遗传算法是基于生物进化原理的一种全局性优化算法, 是借鉴生物的自然选择和遗传进化机制而开发出的一种全局优化自适应概率搜索算法, 是生物遗传技术和计算机技术结合的产物。它采用的是启发性知识的智能搜索算法, 在高空间复杂问题上比以往有更好的结果。 最短路径算法根据不同的具体要求可以是长度最短或行驶时间最短。由于问题的特征、网络特性等的纷繁复杂最短路径算法表现出多样性。传统的 Dijkstra 算法已经成为 LS 算法的代名词, LS 算法又称为列表搜索算法, 其代表算法有 Bell-Ford-Moore 算法、D’Esopo-Pape 算法等。总的说来 Dijkstra 算法简单易用能 100%搜索到最短路径, 是目前应用较多的算法, 但它的基础是求出到每个搜索到的结点的最短路径, 它在所有方向上都搜索, 而不管目的结点的位置, 当网络中结点过多时, 就会导致计算量急剧增加产生“组合爆炸”问题, 搜索开销会相当大、效率很低, 这是 Dijkstra 算法的缺陷。 本文讨论了利用遗传算法求解最短路径问题的思路及方法, 并提出了一种交叉变异算法, 在仿真实验中获得了较为满意的结果。 2 最短路径的遗传算法设计 2.1 编码表示 在标准遗传算法中, 如何将问题的解转换为编码表达的染色体是遗传算法的关键问题。人们一般习惯于用二进制编码, 但二进制编码方法的缺点也是明显的, 对很多实际问题, 它很难直接描述出问题的性质, 而且它的精度也有问题, 为了追求精度, 可能会导致很长的编码, 直接影响遗传算法的性能。人们根据问题域的性质提出了很多其它的编码方法, 如约束优化的实数编码、组合优化的整数编码等。 假定将所有城市组成的一个列表记为 W, 给每个城市分配一个 1~n 之间的序号, 将这个序号的排列也表示为 W, 即: W=( v1 , v2 , v3 , v4 , ⋯, vn) | | | | | W=( 1, 2, 3, 4, ⋯, n) 用编码串 T:1 2 3 4 5 6 7 8⋯n, 来表示这样的一条城市遍历路线: 从城市 v2 , v3 , v4 , v5 , ⋯, Vn , 然后再返回出发城市 v1。 1, 2, 3, 4, 5, ⋯, n 表示 n 个城市编序, 在行走的过程中的先后顺序我们不妨也表达出来:2, 1, 4, 3, 5, ⋯, n 这就是说是按照 2-1-4-3-5- ⋯-n 路线图走的。不妨用一个存储空间单元为 n 的数组存储这 n 个城市, 行走一个城市就用数组存储起来, 直到数组被存储满为止, 而后再以 0~n-1 输出城市序号, 这 样路线图就可以复原。 2.2 个体评价 2.2.1 适应值函数 适应值函数分为理想状态下的适应值函数和通常状况下的适应值函数。 理想状态下的适应函数用赌轮算法:n 条路径图任一条的适应度为该条的总路程除以该所有路线图平均总长度既 F=Fi/ 基于遗传算法的最短路径问题求解 康晓军, 王茂才 KANG Xiao-jun, WANG Mao-cai 中国地质大学 计算机学院, 武汉 430074 Department of Computer, China University of Geosciences, Wuhan 430074, China E-mail:xj_kang@126.com KANG Xiao- jun, WANG Mao- cai.Shortest p

    展开全文
  • 遗传算法求解最短路径问题.pdf还剩4页未读,继续阅读下载文档到电脑,马上远离加班熬夜!亲,喜欢就下载吧,价低环保!内容要点:第 卷 第 期 合 肥 工 业 大 学 学 报 泊 然 科 学 版卜 ’ 、 下 刃 叹 俐 叫 灭 ...

    用遗传算法求解最短路径问题.pdf

    1b8c420cfd1ca470681509165e67254e.gif

    还剩

    4页未读,

    继续阅读

    下载文档到电脑,马上远离加班熬夜!

    亲,喜欢就下载吧,价低环保!

    内容要点:

    第 卷 第 期 合 肥 工 业 大 学 学 报 泊 然 科 学 版卜 ’ 、 下 刃 叹 俐 叫 灭 子附用 遗 传 算 法 求 解 最 短 路 径 问 题曹 鲁 寅 罗 斌 钦 明 浩安 徽 大 学 合 肥 工 业 大 学摘 要 文 章 应 用 遗 传 算 法 求 解 图 论 中 的 最 短 路 径 问 题 , 并 提 出 了 该 算 法 在 解 决 这 一 问 题 中 的 一 些 处理 方 法 · 使 用 该 算 法 可 以 很 快 地 求 出 一 批 最 短 路 径 集 。 文 中 最 后 给 出 了 算 法 运 行 结 果 及 总 结 。关 键 词 最 短 路 径 遗 传 算 法 邻 接 矩 阵中 图 分 类 号 ①最 短 路 径 问 题 和 遗 传 算 法所 谓 最 短 路 径 问 题 就 是 在 给 定 的 起 始 点 到 终 止 点 , 的 通 路 集 合 中 , 寻 求 长 度 最 小 的通 路 , 这 样 的 通 路 称 为 点 到 点 的 最 短 路 径 。在 寻 找 最 短 路 径 问 题 上 , 有 时 人 们 不 仅 要 知 道 两 个 指 定 的 顶 点 间 的 最 短 路 径 , 还 需 要知 道 某 个 顶 点 到 其 它 任 意 顶 点 间 的 最 短 路 径 。 用 遗 传 算 法 解 这 类 问 题 , 没 有 太 多 的 约 束 条件 和 有 关 解 的 限 制 , 因 而 可 以 很 快 地 求 出 任 意 两 点 间 的 最 短 路 径 以 及 一 批 次 短 路 径 。遗 传 算 法 灿 , 简 写 是 新 近 发 展 起 来 的 一 种 模 拟 生 命 进 化 机 制 的搜 索 和 优 化 方 法 , 是 把 自 然 遗 传 学 和 计 算 机 科 学 结 合 起 来 的 优 化 方 程 。 年 在其 专 著 中 指 出 了 的 概 念 和 方 法 , 因 其 有 很 强 的 解 决 问 题 的 能 力 和 广 泛 的 适 应 性 , 因 而近 年 来 渗 透 到 研 究 与 工 程 的 各 个 领 域 取 得 了 良 好 的 效 果 。下 面 介 绍 遗 传 算 法 的 几 个 基 本 概 念染 色 体 在 使 用 遗 传 算 法 时 需 要 把 问 题 的 解 编 成 一 个 适 合 的 码 子 。这 种 具 有 固 定 结 构 的 符 号 串 即 是 染 色 体 符 号 串 的 每 一 位 代 表 一 个 基 因 。 符 号 串 的 总 位 数称 为 染 色 体 的 长 度 。 一 个 染 色 体 就 代 表 问 题 的 一 个 解 , 每 个 染 色 体 也 被 称 为 一 个 个 体 。群 体 叩 每 代 所 产 生 的 染 色 体 总 数 称 为 群 体 , 一 个 群 体 包 含 了 该 问 题 在这 一 代 的 一 些 解 的 集 合 。适 应 度 对 群 体 中 每 个 染 色 体 进 行 编 码 后 , 每 个 个 体 对 应 一 个 具 体 问 题的 解 , 而 每 个 解 对 应 于 一 个 函 数 值 。 该 函 数 值 即 适 应 函 数 , 就 是 衡 量 染 色 体 对 环 境 适 应 度的 指 标 , 也 是 反 映 实 际 问 题 的 目 标 函 数 。① 收 稿 日 期 一 一 一© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net第 期 曹 鲁 寅 等 用 遗 传 算 法 求 解 最 短 路 径 问 题在 前 代 群 体 的 基 础 上 产 生 新 一 代 群 体 的 工 作

    发表评论

    暂无评论,赶快抢占沙发吧。

    展开全文
  • 今天为大家分享的算法是为解决最短路径算法的Dijkstra算法(简称D算法),这是一个解决从点到点之间最短路径的问题,看下面这张图:这里,我们想要得出节点a(节点1)到节点b(节点5)的最短路径,就是怎么走可以使得权...

    今天为大家分享的算法是为解决最短路径算法的Dijkstra算法(简称D算法),这是一个解决从点到点之间最短路径的问题,看下面这张图:

    这里,我们想要得出节点a(节点1)到节点b(节点5)的最短路径,就是怎么走可以使得权重值的和最小,每一条边都有一个权重。

    今天我们介绍的D算法就是解决这类问题的,这是一种贪心算法,每次只取权重和最小的点,通过不断加入节点,来更新源节点a到各个节点的最短路径,直到所有节点遍历完。

    算法步骤:

    1、定义,遍历过的节点集合为S,集合U为其余节点(即未遍历)。初始时,S只包含源点v,即S={v},v的距离为0。U包含除v外的其他顶点,即:U={其余顶点}。若v与U中顶点u有边,则正常有权值,若u不是v的出边邻接点,则权值为∞。

    注:这里集合S、U,是为了判断哪些节点已经遍历过,如果U为空了,就不继续执行。

    2、从集合U中选取一个距离v最小的顶点k,把k加入到S中。

    3、以k为新考虑的中间点,修改v到U中各顶点的距离;若从源点v到顶点w的距离(经过顶点k)比原来距离(不经过顶点k)短,则修改v到w的距离值。

    例子:

    4、重复步骤2、3直到所有顶点都包含在S中。

    上面就是D算法的处理步骤,可能大家第一次看和我一样很迷茫,不要紧,我们结合上面这个图,使用D算法来详细介绍每个步骤:

    1、初始化步骤

    用一个一维数组DIS来表示节点1到各个节点的最短路径(即权重),没有连线的用∞表示。除此之外,为了防止节点重复计算,我们把节点分成两组,一组已经遍历的节点集合S,另一组还没遍历集合U。初始化的时候,节点1在集合S中。

    注:节点1到自己的权重为0。

    2、从集合U中获取离节点1最近的点(参考U在数组中的最小值,是节点2),加入到集合S,并重新计算DIS数组。

    (1)节点2有到节点3和4的边,所以数组DIS的3和4位置的值可能会变动。

    (2)2到3的权重为10,所以1到3的权重为17(7+10),17大于9,所以不用变动。

    (3)3到4的权重为15,所以1到4的权重为22(7+15),22小于无穷,所以DIS[4]=22。(这里数组角标大家注意下,DIS[4]表示第四个位置,起始位置为1)

    3、重复步骤2,获取U里面距离最近的点(这里为节点3),重新计算DIS数组。

    (1)节点3这里和4、6有边,所以DIS的位置4、6可能需要修改值。(节点2在S中,只考虑U中没遍历过的节点)。

    (2)3到4的权重为11,所以1到4的权重为20(9+11),小于22(DIS[4]),所以DIS[4]=20。

    (3)3到6的权重为2,所以1到6的权重为11(9+2),小于14(DIS[6]),所以DIS[6]=11。

    4、重复步骤2,取节点6加入S,重新计算DIS。

    节点6只有到5的边了,所以只修改DIS[6]的值。这里节点1到节点5的权重为20(11+9),小于无穷(DIS[5]),所以DIS[5]=20。

    5、继续重复。

    这次获取到节点4,从DIS数组可以知道1到4的权重(20)已经大于等于1到5的权重(20),所以无论如何也无法从节点4取到权重更小的路径了,所以可以舍弃(D算法是无法解决负权重问题,所以图的权重必须为正)。

    由于节点1到节点5没有边连接,所以权重为无穷,大于20。所以,算法的最终结果就是:

    节点1到节点5的最短路径是20,

    顺序是1->3->6->5。

    有了算法,必须要有代码才有说服力,这里我用C语言实现了D算法的代码,大家有兴趣慢慢看,慢慢研究。我贴的是部分代码,其他不重要代码省略。

    预定义变量:

    数据初始化:

    D算法具体逻辑方法:

    运行结果:

    花了大半天的时间,终于整理完这个算法了,不说了都是眼泪。希望大家能喜欢这个文章,不枉我这么辛苦整理。

    关于最短路径的算法,还有好几个。我下次有机会再讲讲,然后分析分析优点和缺点。喜欢我文章,大家可以关注留言。

    转自:https://baijiahao.baidu.com/s?id=1565834497173881&wfr=spider&for=pc

    以下是我用python实现的迪杰斯特拉算法:

    1

    2

    展开全文
  • 关于遗传算法的一个简单例子,在MATLAB中实现搜寻最短路径(最优化)的目的,仅供大家参考学习,谢谢
  • 前言在优化问题中,...最短路径问题描述最短路径问题是在给定权的有向图/无向图中,从连接两个节点的边上寻找权数之和最小的路径的问题。在由个节点组成的有向图中,当弧的距离给定时,最短路径问题可以被描述为0...

    前言

    在优化问题中,网络模型是很重要的一类问题,各种物流配送计划、供应链管理、公路网络设计等等问题都可以简化为网络模型。从这里开始我们会进入基本网络模型,回顾最短路径、最大流量、最小费用流、最小生成树等网络模型中的基本问题。

    最短路径问题描述

    最短路径问题是在给定权的有向图/无向图中,从连接两个节点的边上寻找权数之和最小的路径的问题。

    在由

    math?formula=m个节点组成的有向图

    math?formula=G%3D(V%2CA)中,当弧

    math?formula=(i%2Cj)的距离

    math?formula=c_%7Bij%7D给定时,最短路径问题可以被描述为0-1整数规划问题:

    math?formula=min%5C%20z%3D%5Csum_%7Bi%3D1%7D%5E%7Bm%7D%5Csum_%7Bj%3D1%7D%5E%7Bm%7Dc_%7Bij%7Dx_%7Bij%7D%20%5C%5Cs.t.%20%5Csum_%7Bj%3D1%7D%5E%7Bm%7Dx_%7Bij%7D-%5Csum_%7Bk%3D1%7D%5E%7Bm%7Dx_%7Bki%7D%3D%5Cleft%5C%7B%20%5Cbegin%7Barray%7D%2011%2C%5C%20i%3D1%20%5C%5C%200%2C%5C%20i%3D2%2C3%2C...%2Cm-1%5C%5C%20-1%2C%5C%20i%3Dm%20%5Cend%7Barray%7D%20%5Cright.%20%5C%5Cx_%7Bij%7D%3D0%20%5C%20or%20%5C%201%5C%20(i%2Cj%3D1%2C2%2C...%2Cm)

    math?formula=x_%7Bij%7D是边

    math?formula=(i%2Cj)的决策变量,为1时代表选择该边,为0时代表不选择该边。

    求解这类问题的经典算法有Dijkstra算法,BellmanFord算法,Warshall-Floyd算法等,这里我们用遗传算法来进行求解。

    最短路径问题示例

    示例问题如图所示:

    b10203e4902c?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

    shortest path problem_description

    每条边上显示该边的长度(或者理解为cost),求从节点1到节点10的最短路径。

    i

    j

    math?formula=c_%7Bij%7D

    1

    2

    36

    1

    3

    27

    2

    4

    18

    2

    5

    20

    2

    3

    13

    3

    5

    12

    3

    6

    23

    4

    7

    11

    4

    8

    32

    5

    4

    16

    5

    6

    30

    6

    7

    12

    6

    9

    38

    7

    8

    20

    7

    9

    32

    8

    9

    15

    8

    10

    24

    9

    10

    13

    遗传算法求解最短路径问题

    个体编码

    一个比较自然的编码方案是使用二进制序列对边进行编码,为每条边分配一个二进制变量,为1代表选择该边加入路径,为0则代表不选择该边。但是这样的编码方式会生成大量的不可行解,相对于搜索空间,可行域极小,难以找到可行解。

    另一种编码方案是用优先度对节点进行编码:要想获得一条可行路径,需要从起始节点到结束节点依次将有路径连接的相邻节点放入备选解中。而每一次沿路径前进中可能会有多个节点作为下一步选择,节点的优先度就代表了在有多个选项的下一个节点中,要选择哪个节点放入备选解。

    优先度编码的解码方式如下:

    Step 1: 生成与节点

    math?formula=v_i(i%3D1%2C2%2C...%2Cm-1)邻接的节点集合

    math?formula=S_i,将路径初始化为

    math?formula=%5Cempty,当前节点初始化为

    math?formula=v_0,目标节点设置为

    math?formula=v_e

    Step 2: 从当前节点

    math?formula=v_i出发,在当前节点的邻接节点集合

    math?formula=S_i 中选择优先度最高的节点

    math?formula=v_q,加入路径,并从邻接节点集中删除选中的节点

    math?formula=S_i%5Cleftarrow%20S_i%20%5Cbackslash%20%5C%7Bv_q%5C%7D

    Step 3: 当

    math?formula=v_i%5Cne%20v_e时,重复Step 2。

    这样就可以基于优先度,生成从

    math?formula=v_0

    math?formula=v_e的一条可行路径。

    其他遗传算法操作

    评价函数:用字典保存每条路径长度,根据路径索引对应长度,对求得路径长度加和作为评价函数;此时为最小化问题

    育种选择:binary锦标赛选择

    变异算法:交叉-有序交叉(OX),突变-乱序突变(Shuffle Index)

    环境选择:子代完全替换父代(无精英保留)

    代码示例

    ## 环境设定

    import numpy as np

    import matplotlib.pyplot as plt

    from deap import base, tools, creator, algorithms

    import random

    params = {

    'font.family': 'serif',

    'figure.dpi': 300,

    'savefig.dpi': 300,

    'font.size': 12,

    'legend.fontsize': 'small'

    }

    plt.rcParams.update(params)

    # -------------------------

    ## 问题定义

    creator.create('FitnessMin', base.Fitness, weights=(-1.0,))

    creator.create('Individual', list, fitness=creator.FitnessMin)

    ## 个体编码

    geneLength = 10

    toolbox = base.Toolbox()

    toolbox.register('genPerm', np.random.permutation, geneLength)

    toolbox.register('individual', tools.initIterate, creator.Individual, toolbox.genPerm)

    ## 解码

    # 存储每个节点的可行路径,用于解码

    nodeDict = {'1':[2,3], '2':[3,4,5], '3':[5,6], '4':[7,8], '5':[4,6], '6':[7,9], '7':[8,9],

    '8':[9,10], '9':[10]}

    def decode(ind):

    # 输入一个优先度序列之后,返回一条从节点1到节点10的可行路径

    path = [1]

    while not path[-1] == 10:

    curNode = path[-1] # 当前所在节点

    toBeSelected = nodeDict[str(curNode)] # 获取可以到达的下一个节点列表

    priority = np.asarray(ind)[np.asarray(toBeSelected)-1] # 获取优先级,注意列表的index是0-9

    nextNode = toBeSelected[np.argmax(priority)]

    path.append(nextNode)

    return path

    ## 评价函数

    # 存储距离矩阵,用于评价个体

    costDict = {'12':36, '13':27, '24':18, '25':20, '23':13, '35':12, '36':23,

    '47':11, '48':32, '54':16, '56':30, '67':12, '69':38, '78':20,

    '79':32, '89':15, '810':24, '910':13}

    def evaluate(ind):

    path = decode(ind) # 路径:节点顺序表示

    pathEdge = list(zip(path[::1], path[1::1]))# 路径:用边表示

    pathLen = 0

    for pair in pathEdge:

    key = str(pair[0]) + str(pair[1])

    if not key in costDict:

    raise Exception("Invalid path!", path)

    pathLen += costDict[key] # 将该段路径长度加入

    return (pathLen),

    toolbox.register('evaluate', evaluate)

    ## 数据记录

    stats = tools.Statistics(key=lambda ind:ind.fitness.values)

    stats.register('min', np.min)

    stats.register('avg', np.mean)

    stats.register('std', np.std)

    ## 注册需要的工具

    toolbox.register('select', tools.selTournament, tournsize=2)

    toolbox.register('mate', tools.cxOrdered)

    toolbox.register('mutate', tools.mutShuffleIndexes, indpb=0.5)

    ## 注册参数

    toolbox.popSize = 100

    toolbox.ngen = 200

    toolbox.cxpb = 0.8

    toolbox.mutpb = 0.1

    ## 生成初始族群

    toolbox.register('population', tools.initRepeat, list, toolbox.individual)

    pop = toolbox.population(toolbox.popSize)

    # -------------------------

    ## 遗传算法

    pop, logbook= algorithms.eaSimple(pop, toolbox, cxpb=toolbox.cxpb, mutpb=toolbox.mutpb,

    ngen=toolbox.ngen, stats=stats, verbose=True)

    计算结果:

    ## 输出结果

    bestInd = tools.selBest(pop,1)[0]

    bestFit = bestInd.fitness.values[0]

    print('最优解为: '+str(decode(bestInd)))

    print('最短路径为: '+str(bestFit))

    ## 可视化迭代过程

    maxFit = logbook.select('min')

    avgFit = logbook.select('avg')

    plt.plot(maxFit, 'b-', label='Minimum Fitness')

    plt.plot(avgFit, 'r-', label='Average Fitness')

    plt.xlabel('# Gen')

    plt.ylabel('Fitness')

    plt.legend(loc='best')

    ## 结果

    # 最优解为: [1, 3, 6, 9, 10]

    # 最短路径为: 101.0

    迭代过程可视化如下:

    b10203e4902c?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

    Shortest path problem_priority based coding

    得到的路径如下:

    b10203e4902c?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

    shortest path problem_rsl

    展开全文
  • 1 #include 2 #include 3 #include 4 #include 5 #define NUM 3767 double dis_mat[NUM][NUM] = {{0.00,101.26,543.55,624.38,270.58,408.52,421.60,618.75,457.61,855.97,1052.50,1066.24,897.04,1050.24,1341.21,1...
  • } void GenerateInitialPopulation()//种群初始化,二进制编码初始化其中'1'表示路径顶点在最短路径中,'0'则反之 { int i,j; for(i = 0; i ; i++) { for(j = 1; j ; j++) { Group[i].chrom[j] = (int)(Random(1,10)...
  • 使用狄克斯特拉算法找出下图中从起点至终点耗时最短路径路径上的每个数字表示的都是时间,单位分钟。狄克斯特拉算法包含的4个步骤:(1)找出开销/消耗“最便宜”的节点,即在最短时间内到达的节点(2)对于该节点的...
  • c# 遗传算法 最短路径

    2011-07-06 09:22:17
    自己编写的遗传算法最短路,和大家互相学习,用的到的人上吧
  • 使用狄克斯特拉算法找出下图中从起点至终点耗时最短路径路径上的每个数字表示的都是时间,单位分钟。狄克斯特拉算法包含的4个步骤:(1)找出开销/消耗“最便宜”的节点,即在最短时间内到达的节点(2)对于该节点的...
  • 一、TSP问题TSP问题(Travelling Salesman Problem)即旅行商问题,又译为旅行推销员问题、货郎担问题,是数学领域中著名问题之一。...简单示例如下图所示:二、求解算法下面使用遗传算法对此TSP问题求近...
  • 遗传算法分析 顾名思义,遗传算法是根据遗传规律写的一个算法,但是相比于医学中的遗传来讲,这里讲的遗传算法原理相对简单很多。 遗传算法的核心有三个部分:交叉、变异、轮盘赌。 解决问题的关键和难点就是理解...
  • java-web遗传算法最短路径规划

    千次阅读 2017-08-26 22:16:13
    使用遗传算法,使用D3可视化库。前端部分使用CSS样式将需要点击的区域和body区域设置不同的样式。然后所有的内容都是用JavaScript完成,对于JavaScript的基本知识不做过多介绍,这也是一门面向对象的语言。 首先使用...
  • 遗传算法解决最短路径问题的matlab程序,并加以注释。 遗传算法解决最短路径问题的matlab程序,并加以注释。
  • 遗传算法最短路径

    2015-09-25 10:20:53
    遗传算法计算最短路径,可多点出发,多路环回,有图像分析
  • 遗传算法最短路径

    2014-04-14 23:10:51
    基于改进遗传算法最短路径路由优化算法的设计与实现
  • 遗传算法求解最短路径问题,文章应用遗传算法求解图论中的最短路径问题, 并提出了该算法在解决这一问题中的一些处 理方法· 使用该算法可以很快地求出一批最短路径集 。文中最后给出了算法运行结果及总结
  • 在9个城市中,两两互通,通过遗传算法学习最短路径,基因库是所有路径,8个基因组成染色体。
  • 我思考后认为,用遗传算法很难找到一个可以统一表示最短路径的函数,但是可以对每一对点分别计算,然后加入for循环,可将相互之间的所有情况解出。观察本题可发现,所有节点都是可双向行走,则可只计算i到j的路径与...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 351
精华内容 140
关键字:

遗传算法最短路径