下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验报告课程名称:算法设计与分析 实验名称:回溯法、分支限界法解 0-10-1 背包问题 任 课教师:张锦雄专业:计算机科学与技术 班级:2007:2007 级 1 1 班学号:姓名: 蓝冠恒完成日期:20112011 年 1 1 月 1212 日、实验目的:慣拥创测法、彷支就界法的庶岬月能够按摊脈歼轴用宾现解决 61 弁包的恿.W 加洋对冋渊決、分支臥界沐的则解”-】浚实凝内容及建求:L蔓求分别用冋潮法和分址限界法求解(M祈包树嗨:2.要忒交互輪入背也壽赧物舶电皿独41 杓品仰值敌齟; 乩整求显示踽果匡实验环境和壬具;援件家境叫i眉操作蘇瓏卄址1 Hi Ck?lipsc.V4 . |dk l
2、.b* javaw、实齡給果 m 外也 (绪调试IF确的训码庁;和和用的运fr給果L k冋溯法求解0T背包问题源代码:p kag uru JLgh;.Lapox LJ AVA. j_o. Buf f.*Ledfte&der;114(1 curtjwr Inputr r iamP tad*!;t npor tjav. uti丄inpoxt j A V u LLtiX丄.L? GIBip A EI 鼻斗*HWWo-il*0 diitllor醞諒机 Jpublic cla修TKhapvAfk |dmiiil豺c; .-*1int n; /double J対丨doubleFE,hHdouble
3、 cw; /!川:itdouble cp; / l沪:也QparAHIccOrel urn対优价(ftfor (ini i = 0; i n; )(q (i.) = new element (x 1, pp (x / ww 1;Arrays borx( (q n;IbacktEAck(1;retttrn bestp;Idouble btp; , I;l ”/*何欄eparaai pp鞫胡价伯敕姐OparAMwpublic double knapsack(double pp9double ww(9double cc) c = cc;n = pp丄ength;cw = 0.0;cp 0.0;bet
4、p = 0.0;Element I) q = new Elemen(n;p nw doublen 1;w = new doublen令丄;for (int x = 1; i n; i*)(P( (iJ PPq(i - 11. id - 1);w(i) = ww(q(i - IJ.id - 1);/ HNHfVprivate void backtrack(int i)(if n) (/ S! W bestp = up;return;if b tp)( backtrack(1 i;1/ private double bound(int i)( doub丄0 cleft = u cw;double
5、bound - cp;/以檎此3位篁罠价序您入物丛while (i 5 n 44 wi ccleft) cleftwi;bound = p(i;I/ ttiAHtiif (i (thi id id;thio.d d;itttaOautlior M.融卜public class EleaCompacatoc 1 implements CoaipArutor ( public int compare(Object objctl. Objact object2) 童丄nt rlBine) objeel;Element elwaentZ = (Bleaent) objectZ;if (leMtntl.
6、d 丄ntC.d(return 1; else (return 0;public static void a&xn(Stcxng ( ) acgs) I3ring input;String仝丄g;double capacity = 0;double( pp;doiibl() ww;double bestfD.0;BTKnapsack btKnapoacknew BTKnapsAck();But f eredftadE in = neM But ter edReadt: (new InputStceAmKeadti: (Syste in);do (try do (System, oue
7、. prxntlnf|f t(/功能fib JL检入1HW 2-XllllJflag = ceadLineO)wKile (Hflag.equalB(wl) | | f l ;if (flag-equaliCC-)(break;do (Sy9te.0ue.prinein(-i,mAWlV “ StlHZ何必须以顿匕M利分H!);xnput = r eadLxne (tirun();input iri K dlin O * *;)whl(inpu qu丄8(*);if(input.equal(-2-)(break;1dtcjing datas ( = xnput 9p丄itd、);int nl
8、= datas丄ength;ppnew doublenl;ww=new double(nl;for (int 10; 1 nl;wwi* Doubl p4rAePoubJe(daasi);11。(ystni.oue.printanf入价仏IKIKZ同必縊以 radtxne() replaceAll(N, *:)wkl (input oqu丄(”;if (input equAla(*2w)(bTeak;1dataa input.)H; int n2 daA lenqh;丄f(nll=n)(System. oueprinln;continue;1for (xnt 1=0; i pp(i=Doubl
9、e p4r3eDoub2e(daa9x);1do |out. psxn.ln;)while (input qu丄(l9vv;it (input equals (二)(break;1capacityDoub丄( (input);bestP=btKnapsack knapsack(pptwwtcapacity);System, out. pcintln(:Utt.价W *bestP;)catch (exception )(e printStackTrace();)1.2、运行结果:j 2; BTKMpsackJ“ 23 1 Outline 3、曰)1uakaao;: =:;4 1_ 九Q * 1:
10、 Problems Jovadpc edaratior Q Ccrap c 12=ns BTKnapsack Java Applction E:InsUll5 肖 *it .:;J / J : 青送择数字功餵疑:1一谕入数扼一退出系块 诸输入各物品求蚩.鹑据之间必须以领号间隔分开!4SA&辆品席值.数据之阎必须以枫号间隔分开!ico. so if eo诺侑入背色的容豈,4:回浹住解得晶优价俏:220.0渚送择魏字功R:一諭入針据2遇出系统谒迭汗数宇功龍律:输入歆帰,2週出系统 请籀入各物品重量,数撼之间必須以槓号间隔分开!iC. 0Mli. 2i. 10名输入昔物品们值.的抿之间必須以
11、额邑间隔分幵!21D S0,沢1QG 20输入背色的吝SH0回洌恙解得最优价值,350.0二送庠齣字功iStt: 1一诫入埶療.2陨出系统2,1.分支柬界法求解0-1背包问題源代码:package cn 丄gh;inport j ava丄o Bui fec edReadez;import j av I.Q InputdtceamKeades;iinport j av util鼻rfy;4/JCVAWiZiro-丄介包问Author iSJtHUpubl 1.Q clas8 BBKnapsack (double c;/ Hftl 1* uint n;】*i:double ) w; /吃;:i故纠
12、doublet) p;/小AA价fl. t*1l double cw; / i.卜;l double cp; / * t i ffr int ( brtx;/MaxHeap maxHeap = new MaxHeapO; hi :l. I计口n点所的B理的iw private double bound(int i)( double clft c - cw;double b = cp;/以的丄臥位耋钛价位递就整以创余滸址while (i = n 4 wi = cleft)( cleft w(i);b = pH);/if (i n) Ib pi Z wi) cleft;return b;/那如的応
13、*戍洌FQ:樹in优尤敗列叩private void ddLiveNode(double uppecPeofit, doitble pp double ww, int levels BBnode parent. boolean lfChi丄d)(BBnode b new BBnode(parene, leftchild); HeapHode code = new HeapNode(b/uppecPcofit, pp. ww, level);maxHeap put(node);I/优处队列式分支界private double bbKnap ck()(BBnode enod null;int i
14、= 1;doiibl b#stp 0 0;double up bound(1);n点妁圧儿f VAif (wt (“ (cp pi btp bestp - cp p(x);*4iAl (i n * 1) Idouble wt cw w(i);ddliv Nodup. cp p(i, cw w(iri丄,enodtftrue);up = bound(i 1);T,n cbestp) AddtiveNod (up9up. cw#i 1, enoderf al ; 3-)(b tx(3 ( nod丄ftchild?1 : 0;tnode = enode将卜竹体依15他暇fit价他从人势卜帅W 能4;
15、iBPUbbKn puk宅成U分支HBUlhfc. ereturn WttHiptiblic double knapsack (doublet pp. doubled wwrdouble cc9int ( xx)(c cc;n = pp丄ength;EL q = new Elenen( (n;double ws 0 0;doubl p9 0 0;for (int is0; i n; i*)( q(i) = new eieent;(i 丄.ppi / wwi); P 2 PP( (i; W8 = ww(i;11 (W8 for (int i - 1; i return ps;/依单位載就价tMI
16、序Arrays 3oxX(q. new KleuCoaiparator ( ); p = new doublen令丄】;w = new doublen丄;fox (int i 1; in; !)(p(i) = pptqli - 1.id - 1; w(i) = wwq(i - IJ.id - 1;Icw = 0.0;cp = 0.0; b J new int n 1;maxHtap ne%public static void naxn(Strxn9 argf)( Spring input;Sexing flag; double capacity=0; doublet pp; doublet w
17、w;Int (J xx;double b tP90 0;BBKnapaack bbKnap 2kfew BBKnapsack ();SyateM. out. prxnlnf入卄ti的客!:u );xnput = m readtxncO trxa();inpu9in readLxne().replaceAll|* , *;)wfkLLe (input eqiut丄if(input.equals ;System. oue.println;System, out. printin(个被转XWMM况丄&小嵌铁入0农不未帙钱入) Jfor (int i 0; i System out .prin
18、t丄)catch (Exception e)(o printStackTrce I wtiile (txue);) pckr i妊们/public C14S8 BBcode IBBnodt parent;/ 4 tiboolean leftChxld;/). i-public BBnode( BBnode patent#boolean leftChild( thi parentparen; thio.leftChildxleftChiid;pck9 cn.lgh;inport jav* uti丄.Covwparacor;ElementllSl比9utlor tfMtV/public clAfl
19、fl ElCompat:ACor iaplevents CompartorObj ( public lot coaipace(Object object!* Objectobject)( element elementl = (Blement)obj ectl;BleBtnt elem*nt2c(ELemenX)obj c2;if (lMbntl. d lmnc2 . d)(rctuxn 1;I丄(return 0;package cn丄gh; Bauthor收包術/public classIInt id;杓品隈;double d;人和;V IFpublic Bleaient (int xde
20、double d)( thi idid this d=d;package cn丄gh;import j av utxl.Compat:ator;MI 0山比B.4 author代址和public cla HpConp4t acor iapleMnto Comprtor ( public int compre(Object objecU* Objectobjec2)( HeapNode heApNodel = Heapt obj ectl;HeapNode heapNodeZ = (HeapNode)obj ect2;11 (heapNode丄.uppetPEofit hepNod2 uppex
21、Pr( return 1;I(xetuzn 0;package cn丄gh;/*MV A author酋丑帕/public cJLasB HeapNode (BBnode liveNodt; /人H!,double upperPcofxt; /1 I ! *double profx; /|J, *b;* !double weight; / i iInt level; (门沏4讥】/細&力注public HpNod(BBnod liveNodt, double upprProfi9double pcofi9dotable weight, nt丄v (th丄xveNode = liveNo
22、de;thi .upprProfi r npp*rProfit thl profit = profit;thi wexght=weight;thi level level;inport java整驶切仔円XpNode知嫁. Cautlior ifi1n/public clatfo MaxHeap /斥H点祚;Kprivate Li8t heapnew AcEAyList(); public void pu(MeapNode heapNode)(heap add(heapNode);public KeapNode rrmovMax()(Collectxons 9orr(hG p. new HedpCoapatatoc();HeapNode aiaxNGdenull;if(Iheap i epty()(nxNod(!P (0);h0请输入背包的&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026水运工程试验检测师资格考试(水运材料)历年参考题库含答案详解
- 2026核安全工程师-核安全工程师-核安全工程师(核安全专业实务)历年参考题库含答案详解3套试卷
- 图像边缘处理设计课程设计
- 测量课程设计扣分点
- 多源数据城市拥堵预测设计课程设计
- 餐饮互动体验课程设计
- 工位遮挡设计方案范本
- 拆零件课程设计
- 基于NLP的语音情感分析工具课程设计
- 超声波测距报警装置编程视频课程设计
- 赤峰市牌匾标识管理办法
- GB/T 45690-2025地理标志产品质量要求普洱咖啡
- 码头项目事故案例
- 消化内镜治疗护理新进展
- 《愿望的实现》读书分享课件
- 教师健身排舞教案模板
- JJG 257-2007浮子流量计行业标准
- 飞机结构强度规范课件
- 超市设备采购招标文件
- 稳定同位素地球化学
- 税法说课专题知识公开课一等奖市赛课一等奖课件
评论
0/150
提交评论