蚁群算法求解多维0_1背包问题
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Address :Instit ute of Co mp uter Science and Technology ,Ningbo Universit y ,Ningbo ,Zhejiang 315211 ,P. R. China
78
的一些实际问题都具有相当大的规模 , 需要寻找一些可行 的方法尽可能快地寻找较优的解 [4 ] 。
3
2 多维背包问题的数学模型
多维背包问题是带有一组约束的背包问题 , 其描述如 下 : 存在重量分别为 W [ 1 ] , W [ 2 ] , …, W [ n] 和价值相应为
V [ 1 ] ,V [ 2 ] , …,V [ n]的 n 个物品以及负重为 C [ 1 ] , C[ 2 ] ,
…, C[ m ]的 m 个背包 。要将尽量多的物品放入背包 , 在确 保每个背包中物品不超出承重的前提下满足最大化背包中 物品的总价值 。这里设 X [ i ] [ j ]为二进制变量 。如果物品
0, otherwise 其中 , m 是蚁群中蚂蚁的数量 ,α是轨迹的相对重要性 (α≥ 0 ) ,β是能见度的相对重要性 (β≥ 0 ) ,η i j 是边弧 ( i , j ) 的 能见度 ,τ i j 是 t 时刻在 i j 连线上残留的信息量 , al low e d k = { 0 , 1 , … , n - 1 } - t abuk 表示蚂蚁 k 下一步允许选择 的城市 。 与实际蚁群不同 , 人工蚁群系统具有记忆功能 , t abuk ( k = 1 , 2 , …, m) 用以记录蚂蚁 k 当前所走过的城市 , 集合 ρ是轨迹的持久性 ( 0 ≤ ρ t abuk 随着进化过程作动态调整 。 < 1 ) , 随着时间的推移 , 以前留下的信息逐渐消逝 , 用参数
收稿日期 :2005201220 ; 修订日期 :2006206202 基金项目 : 国家自然科学基金资助项目 (60472099) 作者简介 : 熊伟清 (1966 ) ,男 ,浙江丽水人 ,副教授 ,研究方向为进化计算和软件工程 。 通讯地址 :315211 浙江省宁波市宁波大学计算机科学与技术研究所 ; Tel : (0574) 87605806 ; E2mail :xwqdds @to m. co m
蚁群算法求解多维 0/ 1 背包问题
3
The A nt Colo ny Algo rit hm fo r Solving t he Multidimensio nal 0/ 1 Knap sack Pro blem
熊伟清 ,魏 平 ,王小权
XIONG Wei2qing , WEI Ping , WANG Xiao2quan ( 宁波大学计算机科学与技术研究所 , 浙江 宁波 315211) ( Institute of Computer Science and Technology , Ningbo University , Ningbo 315211 ,China)
i =1
= 1 , 2 , …, n , j = 1 , 2 , …, m 。因此 , 背包问题是一个特殊的
整数规划问题 ,也是一个 N P 难题 。对于多维的背包问题 , 在确定一个物品最多只能放入一个背包条件满足下 , 它的 时间复杂度为 O ( 2 m n ) 。在现实生活中 ,使用背包理论解决
摘 要 :0/ 1 背包问题是一类典型的组合优化问题 ,并且是 N P2完全的问题 ,研究它具有很重要的意义 。本文针对多维
0/ 1 背包问题的特点 ,设计了二进制编码的有向图 , 使得蚁群算法可以应用到背包问题上 。仿真结果表明 , 该蚁群算法在
求解多维 0/ 1 背包问题上的是相当出色的 。 Abstract : The 0/ 1 Knap sack Pro blem is of a class of typical co mbinato rial optimization p roblems and is N P2co mplete. It has important meanings to st udy it . Aiming at t he characteristics of t he multidimensional 0/ 1 knap sack p roblem , a binary coding directed grap h is designed , which makes t he ant colony algo rit hm suitable fo r t he Knap sack Problem. The simulation result s show t hat t he Ant Colo ny Algorit hm is very excellent in solving t he multidimensio nal 0/ 1 knap sack p roblem. 关键词 : 蚁群算法 ;N P2完全问题 ; 整数规划 ; 背包问题 Key words :ant colony algo rit hm ;N P2co mplete ;integer p rogramming ;knap sack p roblem 中图分类号 : TP311 文献标识码 :A
环 。各路径上信息量要根据下式作调整 : τ τ ) ・ Δ τi j i j ( t + n) = ρ・ i j ( t) + ( 1 - ρ
m
( 2) ( 3)
41 4 蚂蚁状态转移规则
第 k 只蚂蚁按以下概率从状态 i 转换到状态 j : α β η max τ , s ∈ al low e d k , if r ≤ p0 is ・ is
依概率 p k ij 选择 j , else
( 6)
其中 , p0 ∈( 0 , 1) , r 是 ( 0 , 1 ) 中均匀分布的随机数 , 由此增 加了所得解的多样性 , 在一定程度上削弱了蚁群陷入局部 τ 最优的趋势 。 ij ( t) 表示第 i 个分量候选组中第 j 个值的信 息量 。
41 5 信息量全局更新规则
CN4321258/ TP ISSN 10072130X
计算机工程与科学
COMPU TER EN GIN EERIN G & SCIENCE
2006 年第 28 卷第 10 期
Vol1 28 ,No1 10 ,2006
文章编号 :10072130X ( 2006) 01020078202
文献 [ 6 ] 提出信息量的全局修正规则如下 : τ τ ) ・ Δ τ ij ( t + n) = ρ・ ij ( t ) + ( 1 - ρ ij
( 表示信息消逝程度 。经过 n 个时刻 , 蚂蚁完成一次循 1 -ρ
41 2 做出有向图 G
定义有向图 G = ( C , L ) 。其中 , 顶点集 C 为 { c0 ( vs ) ,
1 0 1 0 c1 ( v0 N ) , c2 ( v N ) , c3 ( v N - 1 ) , c4 ( v N - 1 ) , …, c2 N - 3 ( v2 ) , c2 N - 2 1 0 1 ( v1 2 ) , c2 N - 2 ( v2 ) , c2 N - 1 ( v1 ) , c2 N ( v1 ) } , vs 为起始顶点 , 顶点 1 v0 j 和 v j 分别用于表示二进制码串中位 b j 取值为 0 和 1 的 1 0 0 状态 。有向弧集合 L 为 { ( vs , v0 N ) , ( vs , v N ) , ( v N , v N - 1 ) , 1 1 0 1 1 0 0 0 1 ( v0 N , v N - 1 ) , ( v N , v N - 1 ) , ( v N , v N - 1 ) , …, ( v2 , v1 ) , ( v2 , v1 ) , 0 1 1 0 ( v1 2 , v1 ) , ( v2 , v1 ) } , 即对于 j = 2 , 3 , …, N , 在所有顶点 v1 和 0 1 v1 1 处分别有且只有指向 v j - 1 和 v j - 1 的两条有向弧 , 如图 1
i 被放入背包 j 则 X [ i ][ j ] = 1 , 否则 X [ i ] [ j ] = 0 。则多维
背包问题的数学描述如下 :
m n
max =
m m
j =1 i =1
V [ i ] X [ i ][ j ] ∑∑
j =1
∑X [ i ][ j ] ≤ 1 , ∑W [ i ] X [ i ][ j ] ≤C[ j ] , X [ i ] [ j ] ∈ { 0 , 1} , i
从实践的角度来这些问题可以表述许多工业场合的应用最典型的应用如资金预算货物装载存储分配和密码加密等蚁群优化算法是20世纪90年代才提出的一种新型的模拟进化算法dorigo等人首先提出的称为蚁群系统antcolonysystem并应用该算法求解tsp问题分配问题job2shop调度问题取得了较好的结果
j =
Δ τi j =
k ij
k =1
Δ τ ∑
k ij
τ 表示第 k 只蚂蚁在本次循环中留在路径 i j 上的 其中 ,Δ τ 信息量 ,Δ ij 表示本次循环中路径 i j 上的信息量的增量 : Q / L k , 若第 k 只蚂蚁在本次循环中经过 i j k Δ τ ( 4) ij = 0 , 否则 其中 , Q 是体现蚂蚁所留轨迹数量的一个常数 , L k 表示第 k 只蚂蚁在本次循环中所走路径的长度 。在初始时刻 ,τ ij ( 0 ) τ η = c ,Δ ij = 0 , i , j = 0 , 1 , …, n - 1 。 ij 表示城市 i 转移到城市 j 的期望程度 , 可根据某种启发式算法具体确定 。根据具 k Δ τ 体算法的不同 ,τ ij ( t) 、 ij ( t) 及 Pij 的表达形式可以不同 , 需要根据具体问题而定 。
1 引言
背包问题 ( Knap sack Pro blem) 是典型的组 合 优 化 问 题 ,它极大地吸引了理论研究人员和实际工作者的注意力 。 理论方面研究兴趣来自于该问题简单的结构 , 这种特点既 可以深入探索许多组合特性 ,又可以通过解决一系列背包 子问题来最终求解更为复杂的优化问题 。从实践的角度来 看 ,这些问题可以表述许多工业场合的应用 ,最典型的应用 如资金预算 、 货物装载 、 存储分配和密码加密等 [1 ] 。 蚁群优化算法是 20 世纪 90 年代才提出的一种新型的 模拟进化算法 [2 ,3 ] , 它是由意大利学者 M. Do rigo 等人首 先提出的 , 称为蚁群系统 ( Ant Colony System) , 并应用该 算法求解 TSP 问题 、 分配问题 、 Job2shop 调度问题 ,取得了 较好的结果 。受其影响 , 蚁群系统模型逐渐引起研究者的 注意 ,并用该方法求解一些实际问题 。近几年 , 在欧 、 美召 开的有关会议上 , 蚁群优化算法已成为研究的热点之一 。 对此 ,我们在文中针对多维 0/ 1 背包问题的特点设计了基 于二进制编码的有向图遍历的蚂蚁算法 。
所示 。多维 0/ 1 背包问题求解对应多个如图 1 所示的有向 图 。由于是二进制编码 , 蚂蚁无需具有记忆功能 , 只需根据 面对的两条边留下的信息素大小选择 。
图1 二进制编码对应的有向图
41 3 初始化
随机产生 m 个初始解 , 计算这 m 个初始解的适应度 , 由这 m 个初始解得到各个分量值的候选组 ,并根据候选组 中的值按它们所在解的适应度计算其信息量 。
们对于多维 0/ 1 背包问题采用了分工的蚂蚁算法 [5 ] , 即蚂 蚁根据维数的不同分成相应功能的蚂蚁 ,在各自维中遍历 。
3 蚁群系统模型
现以求解 n 个城市的对称 TSP 问题为例 ,说明蚁群系 统模型 。 初始时刻 ,各条路径上信息量相等 , 设 τ = C( C i j ( 0) 为常数 ) 。蚂蚁 k ( k = 1 , 2 , …, m) 在运动过程中根据各条 路径上的信息量决定转移方向 。移动概率 Pk i j 是在 t 时刻 蚂蚁 k 由位置 i 转移到位置 j 的概率 : α β τ η ij ( t) ・ ij ( t) , j ,s ∈ allowed k α β τ η is ( t) ・ is ( t) k ∑k ( 1) Pi j = S ∈allowed
78
的一些实际问题都具有相当大的规模 , 需要寻找一些可行 的方法尽可能快地寻找较优的解 [4 ] 。
3
2 多维背包问题的数学模型
多维背包问题是带有一组约束的背包问题 , 其描述如 下 : 存在重量分别为 W [ 1 ] , W [ 2 ] , …, W [ n] 和价值相应为
V [ 1 ] ,V [ 2 ] , …,V [ n]的 n 个物品以及负重为 C [ 1 ] , C[ 2 ] ,
…, C[ m ]的 m 个背包 。要将尽量多的物品放入背包 , 在确 保每个背包中物品不超出承重的前提下满足最大化背包中 物品的总价值 。这里设 X [ i ] [ j ]为二进制变量 。如果物品
0, otherwise 其中 , m 是蚁群中蚂蚁的数量 ,α是轨迹的相对重要性 (α≥ 0 ) ,β是能见度的相对重要性 (β≥ 0 ) ,η i j 是边弧 ( i , j ) 的 能见度 ,τ i j 是 t 时刻在 i j 连线上残留的信息量 , al low e d k = { 0 , 1 , … , n - 1 } - t abuk 表示蚂蚁 k 下一步允许选择 的城市 。 与实际蚁群不同 , 人工蚁群系统具有记忆功能 , t abuk ( k = 1 , 2 , …, m) 用以记录蚂蚁 k 当前所走过的城市 , 集合 ρ是轨迹的持久性 ( 0 ≤ ρ t abuk 随着进化过程作动态调整 。 < 1 ) , 随着时间的推移 , 以前留下的信息逐渐消逝 , 用参数
收稿日期 :2005201220 ; 修订日期 :2006206202 基金项目 : 国家自然科学基金资助项目 (60472099) 作者简介 : 熊伟清 (1966 ) ,男 ,浙江丽水人 ,副教授 ,研究方向为进化计算和软件工程 。 通讯地址 :315211 浙江省宁波市宁波大学计算机科学与技术研究所 ; Tel : (0574) 87605806 ; E2mail :xwqdds @to m. co m
蚁群算法求解多维 0/ 1 背包问题
3
The A nt Colo ny Algo rit hm fo r Solving t he Multidimensio nal 0/ 1 Knap sack Pro blem
熊伟清 ,魏 平 ,王小权
XIONG Wei2qing , WEI Ping , WANG Xiao2quan ( 宁波大学计算机科学与技术研究所 , 浙江 宁波 315211) ( Institute of Computer Science and Technology , Ningbo University , Ningbo 315211 ,China)
i =1
= 1 , 2 , …, n , j = 1 , 2 , …, m 。因此 , 背包问题是一个特殊的
整数规划问题 ,也是一个 N P 难题 。对于多维的背包问题 , 在确定一个物品最多只能放入一个背包条件满足下 , 它的 时间复杂度为 O ( 2 m n ) 。在现实生活中 ,使用背包理论解决
摘 要 :0/ 1 背包问题是一类典型的组合优化问题 ,并且是 N P2完全的问题 ,研究它具有很重要的意义 。本文针对多维
0/ 1 背包问题的特点 ,设计了二进制编码的有向图 , 使得蚁群算法可以应用到背包问题上 。仿真结果表明 , 该蚁群算法在
求解多维 0/ 1 背包问题上的是相当出色的 。 Abstract : The 0/ 1 Knap sack Pro blem is of a class of typical co mbinato rial optimization p roblems and is N P2co mplete. It has important meanings to st udy it . Aiming at t he characteristics of t he multidimensional 0/ 1 knap sack p roblem , a binary coding directed grap h is designed , which makes t he ant colony algo rit hm suitable fo r t he Knap sack Problem. The simulation result s show t hat t he Ant Colo ny Algorit hm is very excellent in solving t he multidimensio nal 0/ 1 knap sack p roblem. 关键词 : 蚁群算法 ;N P2完全问题 ; 整数规划 ; 背包问题 Key words :ant colony algo rit hm ;N P2co mplete ;integer p rogramming ;knap sack p roblem 中图分类号 : TP311 文献标识码 :A
环 。各路径上信息量要根据下式作调整 : τ τ ) ・ Δ τi j i j ( t + n) = ρ・ i j ( t) + ( 1 - ρ
m
( 2) ( 3)
41 4 蚂蚁状态转移规则
第 k 只蚂蚁按以下概率从状态 i 转换到状态 j : α β η max τ , s ∈ al low e d k , if r ≤ p0 is ・ is
依概率 p k ij 选择 j , else
( 6)
其中 , p0 ∈( 0 , 1) , r 是 ( 0 , 1 ) 中均匀分布的随机数 , 由此增 加了所得解的多样性 , 在一定程度上削弱了蚁群陷入局部 τ 最优的趋势 。 ij ( t) 表示第 i 个分量候选组中第 j 个值的信 息量 。
41 5 信息量全局更新规则
CN4321258/ TP ISSN 10072130X
计算机工程与科学
COMPU TER EN GIN EERIN G & SCIENCE
2006 年第 28 卷第 10 期
Vol1 28 ,No1 10 ,2006
文章编号 :10072130X ( 2006) 01020078202
文献 [ 6 ] 提出信息量的全局修正规则如下 : τ τ ) ・ Δ τ ij ( t + n) = ρ・ ij ( t ) + ( 1 - ρ ij
( 表示信息消逝程度 。经过 n 个时刻 , 蚂蚁完成一次循 1 -ρ
41 2 做出有向图 G
定义有向图 G = ( C , L ) 。其中 , 顶点集 C 为 { c0 ( vs ) ,
1 0 1 0 c1 ( v0 N ) , c2 ( v N ) , c3 ( v N - 1 ) , c4 ( v N - 1 ) , …, c2 N - 3 ( v2 ) , c2 N - 2 1 0 1 ( v1 2 ) , c2 N - 2 ( v2 ) , c2 N - 1 ( v1 ) , c2 N ( v1 ) } , vs 为起始顶点 , 顶点 1 v0 j 和 v j 分别用于表示二进制码串中位 b j 取值为 0 和 1 的 1 0 0 状态 。有向弧集合 L 为 { ( vs , v0 N ) , ( vs , v N ) , ( v N , v N - 1 ) , 1 1 0 1 1 0 0 0 1 ( v0 N , v N - 1 ) , ( v N , v N - 1 ) , ( v N , v N - 1 ) , …, ( v2 , v1 ) , ( v2 , v1 ) , 0 1 1 0 ( v1 2 , v1 ) , ( v2 , v1 ) } , 即对于 j = 2 , 3 , …, N , 在所有顶点 v1 和 0 1 v1 1 处分别有且只有指向 v j - 1 和 v j - 1 的两条有向弧 , 如图 1
i 被放入背包 j 则 X [ i ][ j ] = 1 , 否则 X [ i ] [ j ] = 0 。则多维
背包问题的数学描述如下 :
m n
max =
m m
j =1 i =1
V [ i ] X [ i ][ j ] ∑∑
j =1
∑X [ i ][ j ] ≤ 1 , ∑W [ i ] X [ i ][ j ] ≤C[ j ] , X [ i ] [ j ] ∈ { 0 , 1} , i
从实践的角度来这些问题可以表述许多工业场合的应用最典型的应用如资金预算货物装载存储分配和密码加密等蚁群优化算法是20世纪90年代才提出的一种新型的模拟进化算法dorigo等人首先提出的称为蚁群系统antcolonysystem并应用该算法求解tsp问题分配问题job2shop调度问题取得了较好的结果
j =
Δ τi j =
k ij
k =1
Δ τ ∑
k ij
τ 表示第 k 只蚂蚁在本次循环中留在路径 i j 上的 其中 ,Δ τ 信息量 ,Δ ij 表示本次循环中路径 i j 上的信息量的增量 : Q / L k , 若第 k 只蚂蚁在本次循环中经过 i j k Δ τ ( 4) ij = 0 , 否则 其中 , Q 是体现蚂蚁所留轨迹数量的一个常数 , L k 表示第 k 只蚂蚁在本次循环中所走路径的长度 。在初始时刻 ,τ ij ( 0 ) τ η = c ,Δ ij = 0 , i , j = 0 , 1 , …, n - 1 。 ij 表示城市 i 转移到城市 j 的期望程度 , 可根据某种启发式算法具体确定 。根据具 k Δ τ 体算法的不同 ,τ ij ( t) 、 ij ( t) 及 Pij 的表达形式可以不同 , 需要根据具体问题而定 。
1 引言
背包问题 ( Knap sack Pro blem) 是典型的组 合 优 化 问 题 ,它极大地吸引了理论研究人员和实际工作者的注意力 。 理论方面研究兴趣来自于该问题简单的结构 , 这种特点既 可以深入探索许多组合特性 ,又可以通过解决一系列背包 子问题来最终求解更为复杂的优化问题 。从实践的角度来 看 ,这些问题可以表述许多工业场合的应用 ,最典型的应用 如资金预算 、 货物装载 、 存储分配和密码加密等 [1 ] 。 蚁群优化算法是 20 世纪 90 年代才提出的一种新型的 模拟进化算法 [2 ,3 ] , 它是由意大利学者 M. Do rigo 等人首 先提出的 , 称为蚁群系统 ( Ant Colony System) , 并应用该 算法求解 TSP 问题 、 分配问题 、 Job2shop 调度问题 ,取得了 较好的结果 。受其影响 , 蚁群系统模型逐渐引起研究者的 注意 ,并用该方法求解一些实际问题 。近几年 , 在欧 、 美召 开的有关会议上 , 蚁群优化算法已成为研究的热点之一 。 对此 ,我们在文中针对多维 0/ 1 背包问题的特点设计了基 于二进制编码的有向图遍历的蚂蚁算法 。
所示 。多维 0/ 1 背包问题求解对应多个如图 1 所示的有向 图 。由于是二进制编码 , 蚂蚁无需具有记忆功能 , 只需根据 面对的两条边留下的信息素大小选择 。
图1 二进制编码对应的有向图
41 3 初始化
随机产生 m 个初始解 , 计算这 m 个初始解的适应度 , 由这 m 个初始解得到各个分量值的候选组 ,并根据候选组 中的值按它们所在解的适应度计算其信息量 。
们对于多维 0/ 1 背包问题采用了分工的蚂蚁算法 [5 ] , 即蚂 蚁根据维数的不同分成相应功能的蚂蚁 ,在各自维中遍历 。
3 蚁群系统模型
现以求解 n 个城市的对称 TSP 问题为例 ,说明蚁群系 统模型 。 初始时刻 ,各条路径上信息量相等 , 设 τ = C( C i j ( 0) 为常数 ) 。蚂蚁 k ( k = 1 , 2 , …, m) 在运动过程中根据各条 路径上的信息量决定转移方向 。移动概率 Pk i j 是在 t 时刻 蚂蚁 k 由位置 i 转移到位置 j 的概率 : α β τ η ij ( t) ・ ij ( t) , j ,s ∈ allowed k α β τ η is ( t) ・ is ( t) k ∑k ( 1) Pi j = S ∈allowed