新建
上传
首页
助手
最?/div>
资料?/div>
工具

 

实验四用分支限界法实?/p>

0-1

背包问题

 

一.实验目?/p>

 

1.

熟悉分支限界法的基本原理?/p>

 

2.

通过本次实验加深对分支限界法的理解?/p>

?? 

二.实验内容及要?/p>

 

内容?/p>

.

给定

n

种物品和一个背包。物?/p>

i

的重量是

w

,其价值为

v

,背包容量为

c

。问应该如何?/p>

择装入背包的物品,使得装入背包中物品的总价值最?/p>

? 

要求?/p>

使用优先队列式分支限界法算法编程,求?/p>

0-1

背包问题

 

三.程序列表

 

#include

<iostream>

 

#include

<stack>

 

usingnamespace

std; 

#define

N

100 

class

HeapNode

//

定义

HeapNode

结点?/p>

 

{ 

public

: 

 

double

upper,price,weight;

//upper

为结点的价值上界,

price

是结点所对应的价值,

weight

为结点所相应的重?/p>

 

 

int

level,x[

N

];

//

活节点在子集树中所处的层序?/p>

 

}; 

double

MaxBound(

int

i); 

double

Knap(); 

void

AddLiveNode(

double

up,

double

cp,

double

cw,

bool

ch,

int

level);

//up

是价值上界,

cp

是相应的价值,

cw

是该结点所?/p>

应的重量?/p>

ch

?/p>

tureorfalse

 

stack

<

HeapNode

>High;

//

最大队

High

 

double

w[

N

],p[

N

];

//

把物品重量和价值定义为双精度浮点数

 

Ͼλ
新建
上传
首页
助手
最?/div>
资料?/div>
工具

 

实验四用分支限界法实?/p>

0-1

背包问题

 

一.实验目?/p>

 

1.

熟悉分支限界法的基本原理?/p>

 

2.

通过本次实验加深对分支限界法的理解?/p>

?? 

二.实验内容及要?/p>

 

内容?/p>

.

给定

n

种物品和一个背包。物?/p>

i

的重量是

w

,其价值为

v

,背包容量为

c

。问应该如何?/p>

择装入背包的物品,使得装入背包中物品的总价值最?/p>

? 

要求?/p>

使用优先队列式分支限界法算法编程,求?/p>

0-1

背包问题

 

三.程序列表

 

#include

<iostream>

 

#include

<stack>

 

usingnamespace

std; 

#define

N

100 

class

HeapNode

//

定义

HeapNode

结点?/p>

 

{ 

public

: 

 

double

upper,price,weight;

//upper

为结点的价值上界,

price

是结点所对应的价值,

weight

为结点所相应的重?/p>

 

 

int

level,x[

N

];

//

活节点在子集树中所处的层序?/p>

 

}; 

double

MaxBound(

int

i); 

double

Knap(); 

void

AddLiveNode(

double

up,

double

cp,

double

cw,

bool

ch,

int

level);

//up

是价值上界,

cp

是相应的价值,

cw

是该结点所?/p>

应的重量?/p>

ch

?/p>

tureorfalse

 

stack

<

HeapNode

>High;

//

最大队

High

 

double

w[

N

],p[

N

];

//

把物品重量和价值定义为双精度浮点数

 

">
新建
上传
首页
助手
最?/div>
资料?/div>
工具

 

实验四用分支限界法实?/p>

0-1

背包问题

 

一.实验目?/p>

 

1.

熟悉分支限界法的基本原理?/p>

 

2.

通过本次实验加深对分支限界法的理解?/p>

?? 

二.实验内容及要?/p>

 

内容?/p>

.

给定

n

种物品和一个背包。物?/p>

i

的重量是

w

,其价值为

v

,背包容量为

c

。问应该如何?/p>

择装入背包的物品,使得装入背包中物品的总价值最?/p>

? 

要求?/p>

使用优先队列式分支限界法算法编程,求?/p>

0-1

背包问题

 

三.程序列表

 

#include

<iostream>

 

#include

<stack>

 

usingnamespace

std; 

#define

N

100 

class

HeapNode

//

定义

HeapNode

结点?/p>

 

{ 

public

: 

 

double

upper,price,weight;

//upper

为结点的价值上界,

price

是结点所对应的价值,

weight

为结点所相应的重?/p>

 

 

int

level,x[

N

];

//

活节点在子集树中所处的层序?/p>

 

}; 

double

MaxBound(

int

i); 

double

Knap(); 

void

AddLiveNode(

double

up,

double

cp,

double

cw,

bool

ch,

int

level);

//up

是价值上界,

cp

是相应的价值,

cw

是该结点所?/p>

应的重量?/p>

ch

?/p>

tureorfalse

 

stack

<

HeapNode

>High;

//

最大队

High

 

double

w[

N

],p[

N

];

//

把物品重量和价值定义为双精度浮点数

 

Ͼλ">
Ͼλ
Ŀ

实验 4 用分支限界法实现0-1背包问题 - 百度文库
新建
上传
首页
助手
最?/div>
资料?/div>
工具

 

实验四用分支限界法实?/p>

0-1

背包问题

 

一.实验目?/p>

 

1.

熟悉分支限界法的基本原理?/p>

 

2.

通过本次实验加深对分支限界法的理解?/p>

?? 

二.实验内容及要?/p>

 

内容?/p>

.

给定

n

种物品和一个背包。物?/p>

i

的重量是

w

,其价值为

v

,背包容量为

c

。问应该如何?/p>

择装入背包的物品,使得装入背包中物品的总价值最?/p>

? 

要求?/p>

使用优先队列式分支限界法算法编程,求?/p>

0-1

背包问题

 

三.程序列表

 

#include

<iostream>

 

#include

<stack>

 

usingnamespace

std; 

#define

N

100 

class

HeapNode

//

定义

HeapNode

结点?/p>

 

{ 

public

: 

 

double

upper,price,weight;

//upper

为结点的价值上界,

price

是结点所对应的价值,

weight

为结点所相应的重?/p>

 

 

int

level,x[

N

];

//

活节点在子集树中所处的层序?/p>

 

}; 

double

MaxBound(

int

i); 

double

Knap(); 

void

AddLiveNode(

double

up,

double

cp,

double

cw,

bool

ch,

int

level);

//up

是价值上界,

cp

是相应的价值,

cw

是该结点所?/p>

应的重量?/p>

ch

?/p>

tureorfalse

 

stack

<

HeapNode

>High;

//

最大队

High

 

double

w[

N

],p[

N

];

//

把物品重量和价值定义为双精度浮点数

 



ļ׺.doc޸Ϊ.docĶ

  • 2016߿ȫ1ѧ⼰(wordУ)(1)
  • ˰ᆳ̨˰̨ȫ-δģ
  • 2018ѧιܽ
  • 2016ʦ⼰
  • K12ʡƸ2017-2018ѧ߶ѧĩ
  • MATLABӦ(ڶ)κʵ
  • ȼԭκϰ
  • ʡ2018߿Ĵһָϰ1õ1Ի֪ʶ2
  • 2015ǶšŮǡĩ
  • ս̰ Сѧ 꼶²

վ

԰ Ͼλ
ϵͷ779662525#qq.com(#滻Ϊ@) ICP20003344-4