[发明专利]一种解决1-邻域背包问题的前瞻贪婪方法在审

专利信息
申请号: 201410847986.6 申请日: 2014-12-30
公开(公告)号: CN104504276A 公开(公告)日: 2015-04-08
发明(设计)人: 余贻鑫;马世乾 申请(专利权)人: 天津大学
主分类号: G06F19/00 分类号: G06F19/00
代理公司: 天津市北洋有限责任专利代理事务所 12201 代理人: 杜文茹
地址: 300072*** 国省代码: 天津;12
权利要求书: 查看更多 说明书: 查看更多
摘要: 一种解决1-邻域背包问题的前瞻贪婪方法:设背包中存放的初始顶点,当前已选入背包的顶点的集合Z={v0};分别计算当前背包顶点的总价值PZ,总重量WZ和剩余容量CR;搜索集合Z的邻域,并将邻域中的顶点放入集合NB1;将顶点NB1(i)的邻域放入集合NBi2;得到比值Ri(j);找出Ri(j)中的最大值R2(i);对于顶点i的重量W(i)≤CR的顶点,单价R1(i)不变;对于W(i)>CR的顶点,R1(i)=0;选择最大值Rmax;将m加入集合Z,Z={Z,m};判断剩余容量CR是否大于顶点m的重量W(m);计算当前背包内顶点的总重量WZ和当前背包内顶点的总价值PZ;退出循环。本发明具有寻优能力更强的优点,更适合解决1-邻域背包问题这种高维约束优化问题。
搜索关键词: 一种 解决 邻域 背包 问题 前瞻 贪婪 方法
【主权项】:
一种解决1‑邻域背包问题的前瞻贪婪方法,其特征在于,包括如下步骤:1)设背包中存放的初始顶点为v0,则当前已选入背包的顶点的集合Z={v0};2)分别计算当前已选入背包的顶点的总价值PZ,当前已选入背包的顶点的总重量WZ和背包的剩余容量CR;3)搜索集合Z的邻域,并将邻域中的顶点放入集合NB1,所述的集合NB1代表与集合Z中的顶点相邻的顶点的集合,也即集合Z的邻域,集合NB1中顶点个数记为X,则NB1(i)是集合NB1中第i个顶点,i∈{1,2,…,X};4)将顶点NB1(i)的邻域放入集合NBi2,所述的集合NBi2代表与顶点NB1(i)相邻且不属于集合Z的顶点集合,也即NB1(i)的邻域,作为集合Z的邻域点的邻域,集合NBi2中顶点个数记为Yi,NBi2(j)代表顶点NB1(i)的第j个邻域点,i∈{1,2,…,X},j∈{1.2,…,Yi};5)对于的顶点,将顶点NB1(i)与顶点NBi2(j)的价值之和,与顶点NB1(i)和顶点NBi2(j)的重量之和相比,得到比值Ri(j):<mrow><msub><mi>R</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>P</mi><mo>[</mo><msup><mi>NB</mi><mn>1</mn></msup><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>]</mo><mo>+</mo><mi>P</mi><mo>[</mo><msup><msub><mi>NB</mi><mi>i</mi></msub><mn>2</mn></msup><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow><mo>]</mo></mrow><mrow><mi>W</mi><mo>[</mo><msup><mi>NB</mi><mn>1</mn></msup><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>]</mo><mo>+</mo><mi>W</mi><mo>[</mo><msup><msub><mi>NB</mi><mi>i</mi></msub><mn>2</mn></msup><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow><mo>]</mo></mrow></mfrac><mo>;</mo></mrow>对于<mrow><mi>W</mi><mo>[</mo><msup><mi>NB</mi><mn>1</mn></msup><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>]</mo><mo>+</mo><mi>W</mi><mo>[</mo><msubsup><mi>NB</mi><mi>i</mi><mn>2</mn></msubsup><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow><mo>]</mo><mo>></mo><msub><mi>C</mi><mi>R</mi></msub></mrow>的顶点,Ri(j)=0;6)找出Ri(j)中的最大值R2(i),R2(i)定义为顶点NB1(i)的前瞻单价如下式;<mrow><msup><mi>R</mi><mn>2</mn></msup><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>=</mo><munder><mi>max</mi><mrow><mo>&ForAll;</mo><mi>j</mi><mo>&Element;</mo><mo>{</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>Y</mi><mi>i</mi></msub><mo>}</mo></mrow></munder><mo>{</mo><msub><mi>R</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow><mo>}</mo><mo>;</mo></mrow>7)对于顶点i的重量W(i)≤CR的顶点,本身的单价R1(i)不变;对于W(i)>CR的顶点,R1(i)=0;8)按照下式选择集合NB1中所有顶点本身的单价和前瞻单价的最大值Rmax,若最大值为0,则转到步骤11);否则,将最大值对应的顶点记为m,若不同顶点的单价R相同,则优先选择价值P相对大的顶点,<mrow><msub><mi>R</mi><mi>max</mi></msub><mo>=</mo><munder><mi>max</mi><mrow><mi>i</mi><mo>&Element;</mo><mo>{</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>X</mi><mo>}</mo></mrow></munder><mo>{</mo><msup><mi>R</mi><mn>1</mn></msup><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>,</mo><msup><mi>R</mi><mn>2</mn></msup><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>}</mo><mo>;</mo></mrow>9)将m加入集合Z,Z={Z,m};10)判断剩余容量CR是否大于顶点m的重量W(m),是则返回步骤2),否则转到步骤11);11)计算当前背包内顶点的总重量WZ和当前背包内顶点的总价值PZ;12)退出循环,当前集合Z中的元素即为选择出放入背包的顶点,WZ和PZ分别为背包中顶点重量之和与价值之和。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201410847986.6/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top