Top Banner
Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005
94

Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Aug 21, 2019

Download

Documents

dinhquynh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Cardinality Constrained Knapsack Problem

Jan-Philipp Kappmeier, Melanie Schmidt

17. November 2005

Page 2: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Definition

Cardinality Constrained Knapsack Problem /k-item knapsack problem (kKP)

I n Objekte mit Gewichten w1, . . . ,wn und Profiten p1, . . . , pn

I Gewichtsschranke c

I Maximale Gesamtzahl an Objekten: k

Page 3: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Definition

Cardinality Constrained Knapsack Problem /k-item knapsack problem (kKP)

I n Objekte mit Gewichten w1, . . . ,wn und Profiten p1, . . . , pn

I Gewichtsschranke c

I Maximale Gesamtzahl an Objekten: k

Page 4: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Definition

Cardinality Constrained Knapsack Problem /k-item knapsack problem (kKP)

I n Objekte mit Gewichten w1, . . . ,wn und Profiten p1, . . . , pn

I Gewichtsschranke c

I Maximale Gesamtzahl an Objekten: k

Page 5: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Definition

Cardinality Constrained Knapsack Problem /k-item knapsack problem (kKP)

I n Objekte mit Gewichten w1, . . . ,wn und Profiten p1, . . . , pn

I Gewichtsschranke c

I Maximale Gesamtzahl an Objekten: k

Page 6: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Formulierung als ILP

Zielfunktion:

(1)n∑

i=1

pi · xi

Nebenbedingungen:

(2)n∑

i=1

wi · xi ≤ c

(3)n∑

i=1

xi ≤ k

(4) ∀i = 1, . . . , n : xi ∈ {0, 1}

Page 7: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Formulierung als ILP

Zielfunktion:

(1)n∑

i=1

pi · xi

Nebenbedingungen:

(2)n∑

i=1

wi · xi ≤ c

(3)n∑

i=1

xi ≤ k

(4) ∀i = 1, . . . , n : xi ∈ {0, 1}

Page 8: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Formulierung als ILP

Zielfunktion:

(1)n∑

i=1

pi · xi

Nebenbedingungen:

(2)n∑

i=1

wi · xi ≤ c

(3)n∑

i=1

xi ≤ k

(4) ∀i = 1, . . . , n : xi ∈ {0, 1}

Page 9: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Formulierung als ILP

Zielfunktion:

(1)n∑

i=1

pi · xi

Nebenbedingungen:

(2)n∑

i=1

wi · xi ≤ c

(3)n∑

i=1

xi ≤ k

(4) ∀i = 1, . . . , n : xi ∈ {0, 1}

Page 10: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Formulierung als ILP

Zielfunktion:

(1)n∑

i=1

pi · xi

Nebenbedingungen:

(2)n∑

i=1

wi · xi ≤ c

(3)n∑

i=1

xi ≤ k

(4) ∀i = 1, . . . , n : xi ∈ {0, 1}

Page 11: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Formulierung als ILP

Zielfunktion:

(1)n∑

i=1

pi · xi

Nebenbedingungen:

(2)n∑

i=1

wi · xi ≤ c

(3)n∑

i=1

xi ≤ k

(4) ∀i = 1, . . . , n : xi ∈ {0, 1}

Page 12: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

LP-Relaxation

Ersetze(4) ∀i = 1, . . . , n : xi ∈ {0, 1}

durch(5) ∀i = 1, . . . , n : 0 ≤ xi ≤ 1

Page 13: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Beobachtung

Sei x die optimale Losung einer LP-Relaxation mit zweifraktionalen Werten x1 und x2.

O.B.d.A. sei w1 ≤ w2.

Dann muss auch p1 ≤ p2 sein.

(Sonst ist eine Losung mit x1 = 1 oder x2 = 0 besser.)

Ebenso folgt aus p1 ≤ p2 , dass w1 ≤ w2 sein muss.

Page 14: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Beobachtung

Sei x die optimale Losung einer LP-Relaxation mit zweifraktionalen Werten x1 und x2.

O.B.d.A. sei w1 ≤ w2.

Dann muss auch p1 ≤ p2 sein.

(Sonst ist eine Losung mit x1 = 1 oder x2 = 0 besser.)

Ebenso folgt aus p1 ≤ p2 , dass w1 ≤ w2 sein muss.

Page 15: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Beobachtung

Sei x die optimale Losung einer LP-Relaxation mit zweifraktionalen Werten x1 und x2.

O.B.d.A. sei w1 ≤ w2.

Dann muss auch p1 ≤ p2 sein.

(Sonst ist eine Losung mit x1 = 1 oder x2 = 0 besser.)

Ebenso folgt aus p1 ≤ p2 , dass w1 ≤ w2 sein muss.

Page 16: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Beobachtung

Sei x die optimale Losung einer LP-Relaxation mit zweifraktionalen Werten x1 und x2.

O.B.d.A. sei w1 ≤ w2.

Dann muss auch p1 ≤ p2 sein.

(Sonst ist eine Losung mit x1 = 1 oder x2 = 0 besser.)

Ebenso folgt aus p1 ≤ p2 , dass w1 ≤ w2 sein muss.

Page 17: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Losungsstruktur der LP-Relaxation

In der LP-Relaxationslosung kommen nicht mehr als zwei nichtganzzahlige xi vor.

Bei mindestens drei gebrochenen xi lassen sich die Werte geeignetverschieben, so dass nur zwei weiterhin fraktional sind.

Seien x1, x2, x3 fraktional und O.B.d.A w1 ≤ w2 ≤ w3.Dann muss auch p1 ≤ p2 ≤ p3 sein (Beobachtung!)

Fallunterscheidung:

Falls p1w1≥ p3

w3Falls p1

w1≤ p3

w3

Setze x ′1 = min(1, x1 + x3) Setze x ′

1 = max(0, w1w3

x3 + x1 − 1)

und x ′3 = max(0, x1 + x3 − 1) und x ′

3 = min(1, x3 + w1w3

x1)

(Uberprufung von Gewichtsschranken und Profitwerten)

Page 18: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Losungsstruktur der LP-Relaxation

In der LP-Relaxationslosung kommen nicht mehr als zwei nichtganzzahlige xi vor.

Bei mindestens drei gebrochenen xi lassen sich die Werte geeignetverschieben, so dass nur zwei weiterhin fraktional sind.

Seien x1, x2, x3 fraktional und O.B.d.A w1 ≤ w2 ≤ w3.Dann muss auch p1 ≤ p2 ≤ p3 sein (Beobachtung!)

Fallunterscheidung:

Falls p1w1≥ p3

w3Falls p1

w1≤ p3

w3

Setze x ′1 = min(1, x1 + x3) Setze x ′

1 = max(0, w1w3

x3 + x1 − 1)

und x ′3 = max(0, x1 + x3 − 1) und x ′

3 = min(1, x3 + w1w3

x1)

(Uberprufung von Gewichtsschranken und Profitwerten)

Page 19: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Losungsstruktur der LP-Relaxation

In der LP-Relaxationslosung kommen nicht mehr als zwei nichtganzzahlige xi vor.

Bei mindestens drei gebrochenen xi lassen sich die Werte geeignetverschieben, so dass nur zwei weiterhin fraktional sind.

Seien x1, x2, x3 fraktional und O.B.d.A w1 ≤ w2 ≤ w3.Dann muss auch p1 ≤ p2 ≤ p3 sein (Beobachtung!)

Fallunterscheidung:

Falls p1w1≥ p3

w3Falls p1

w1≤ p3

w3

Setze x ′1 = min(1, x1 + x3) Setze x ′

1 = max(0, w1w3

x3 + x1 − 1)

und x ′3 = max(0, x1 + x3 − 1) und x ′

3 = min(1, x3 + w1w3

x1)

(Uberprufung von Gewichtsschranken und Profitwerten)

Page 20: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Losungsstruktur der LP-Relaxation

In der LP-Relaxationslosung kommen nicht mehr als zwei nichtganzzahlige xi vor.

Bei mindestens drei gebrochenen xi lassen sich die Werte geeignetverschieben, so dass nur zwei weiterhin fraktional sind.

Seien x1, x2, x3 fraktional und O.B.d.A w1 ≤ w2 ≤ w3.Dann muss auch p1 ≤ p2 ≤ p3 sein (Beobachtung!)

Fallunterscheidung:

Falls p1w1≥ p3

w3Falls p1

w1≤ p3

w3

Setze x ′1 = min(1, x1 + x3) Setze x ′

1 = max(0, w1w3

x3 + x1 − 1)

und x ′3 = max(0, x1 + x3 − 1) und x ′

3 = min(1, x3 + w1w3

x1)

(Uberprufung von Gewichtsschranken und Profitwerten)

Page 21: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Losungsstruktur der LP-Relaxation

In der LP-Relaxationslosung kommen nicht mehr als zwei nichtganzzahlige xi vor.

Bei mindestens drei gebrochenen xi lassen sich die Werte geeignetverschieben, so dass nur zwei weiterhin fraktional sind.

Seien x1, x2, x3 fraktional und O.B.d.A w1 ≤ w2 ≤ w3.Dann muss auch p1 ≤ p2 ≤ p3 sein (Beobachtung!)

Fallunterscheidung:

Falls p1w1≥ p3

w3Falls p1

w1≤ p3

w3

Setze x ′1 = min(1, x1 + x3) Setze x ′

1 = max(0, w1w3

x3 + x1 − 1)

und x ′3 = max(0, x1 + x3 − 1) und x ′

3 = min(1, x3 + w1w3

x1)

(Uberprufung von Gewichtsschranken und Profitwerten)

Page 22: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Beobachtung

Seien: x opt. Losung einer Relaxation mit Wert zR ,xi und xj fraktional, wj ≤ wi ,

z der Wert der optimalen Losung des nicht relaxierten Problems.

Dann ist z ≤∑

r 6=i ,j

xrpr + pi .

Denn:

I xi + xj = 1

I pj ≤ pi

I (∑

r 6=i ,j

xrpr ) + pixi + pjxj = zR

⇒ z ≤ zR = (∑r 6=i ,j

xrpr ) + pixi + pjxj ≤ (∑r 6=i ,j

xrpr ) + pi (xi + xj)

= (∑r 6=i ,j

xrpr ) + pi

Die ganzzahligen xr zusammen mit xj = 1 bilden eine Losung furdas nicht relaxierte Problem (Gewichtsschranke testen).

Page 23: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

BeobachtungSeien: x opt. Losung einer Relaxation mit Wert zR ,xi und xj fraktional, wj ≤ wi ,

z der Wert der optimalen Losung des nicht relaxierten Problems.

Dann ist z ≤∑

r 6=i ,j

xrpr + pi .

Denn:

I xi + xj = 1

I pj ≤ pi

I (∑

r 6=i ,j

xrpr ) + pixi + pjxj = zR

⇒ z ≤ zR = (∑r 6=i ,j

xrpr ) + pixi + pjxj ≤ (∑r 6=i ,j

xrpr ) + pi (xi + xj)

= (∑r 6=i ,j

xrpr ) + pi

Die ganzzahligen xr zusammen mit xj = 1 bilden eine Losung furdas nicht relaxierte Problem (Gewichtsschranke testen).

Page 24: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

BeobachtungSeien: x opt. Losung einer Relaxation mit Wert zR ,xi und xj fraktional, wj ≤ wi ,

z der Wert der optimalen Losung des nicht relaxierten Problems.

Dann ist z ≤∑

r 6=i ,j

xrpr + pi .

Denn:

I xi + xj = 1

I pj ≤ pi

I (∑

r 6=i ,j

xrpr ) + pixi + pjxj = zR

⇒ z ≤ zR = (∑r 6=i ,j

xrpr ) + pixi + pjxj ≤ (∑r 6=i ,j

xrpr ) + pi (xi + xj)

= (∑r 6=i ,j

xrpr ) + pi

Die ganzzahligen xr zusammen mit xj = 1 bilden eine Losung furdas nicht relaxierte Problem (Gewichtsschranke testen).

Page 25: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

BeobachtungSeien: x opt. Losung einer Relaxation mit Wert zR ,xi und xj fraktional, wj ≤ wi ,

z der Wert der optimalen Losung des nicht relaxierten Problems.

Dann ist z ≤∑

r 6=i ,j

xrpr + pi .

Denn:

I xi + xj = 1

I pj ≤ pi

I (∑

r 6=i ,j

xrpr ) + pixi + pjxj = zR

⇒ z ≤ zR = (∑r 6=i ,j

xrpr ) + pixi + pjxj ≤ (∑r 6=i ,j

xrpr ) + pi (xi + xj)

= (∑r 6=i ,j

xrpr ) + pi

Die ganzzahligen xr zusammen mit xj = 1 bilden eine Losung furdas nicht relaxierte Problem (Gewichtsschranke testen).

Page 26: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

BeobachtungSeien: x opt. Losung einer Relaxation mit Wert zR ,xi und xj fraktional, wj ≤ wi ,

z der Wert der optimalen Losung des nicht relaxierten Problems.

Dann ist z ≤∑

r 6=i ,j

xrpr + pi .

Denn:

I xi + xj = 1

I pj ≤ pi

I (∑

r 6=i ,j

xrpr ) + pixi + pjxj = zR

⇒ z ≤ zR = (∑r 6=i ,j

xrpr ) + pixi + pjxj ≤ (∑r 6=i ,j

xrpr ) + pi (xi + xj)

= (∑r 6=i ,j

xrpr ) + pi

Die ganzzahligen xr zusammen mit xj = 1 bilden eine Losung furdas nicht relaxierte Problem (Gewichtsschranke testen).

Page 27: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Heuristik

Gegeben sei eine kKP-Eingabe.

1. Berechne die optimale Losung x mit Wert z der relaxiertenVariante.

2. Fallunterscheidung:I x enthalt keine fraktionalen xi . Dann ist z insgesamt die

optimale Losung.I x enthalt ein fraktionales xi . Dann gib max(

∑r 6=i

xrpr , pi ) zuruck.

I x enthalt xi und xj , beide fraktional und wj ≤ wi .Dann gib max(

∑r 6=i,j

xrpr + pj , pi ) zuruck.

Laufzeit: O(n)

Page 28: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Heuristik

Gegeben sei eine kKP-Eingabe.

1. Berechne die optimale Losung x mit Wert z der relaxiertenVariante.

2. Fallunterscheidung:

I x enthalt keine fraktionalen xi . Dann ist z insgesamt dieoptimale Losung.

I x enthalt ein fraktionales xi . Dann gib max(∑r 6=i

xrpr , pi ) zuruck.

I x enthalt xi und xj , beide fraktional und wj ≤ wi .Dann gib max(

∑r 6=i,j

xrpr + pj , pi ) zuruck.

Laufzeit: O(n)

Page 29: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Heuristik

Gegeben sei eine kKP-Eingabe.

1. Berechne die optimale Losung x mit Wert z der relaxiertenVariante.

2. Fallunterscheidung:I x enthalt keine fraktionalen xi . Dann ist z insgesamt die

optimale Losung.

I x enthalt ein fraktionales xi . Dann gib max(∑r 6=i

xrpr , pi ) zuruck.

I x enthalt xi und xj , beide fraktional und wj ≤ wi .Dann gib max(

∑r 6=i,j

xrpr + pj , pi ) zuruck.

Laufzeit: O(n)

Page 30: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Heuristik

Gegeben sei eine kKP-Eingabe.

1. Berechne die optimale Losung x mit Wert z der relaxiertenVariante.

2. Fallunterscheidung:I x enthalt keine fraktionalen xi . Dann ist z insgesamt die

optimale Losung.I x enthalt ein fraktionales xi . Dann gib max(

∑r 6=i

xrpr , pi ) zuruck.

I x enthalt xi und xj , beide fraktional und wj ≤ wi .Dann gib max(

∑r 6=i,j

xrpr + pj , pi ) zuruck.

Laufzeit: O(n)

Page 31: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Heuristik

Gegeben sei eine kKP-Eingabe.

1. Berechne die optimale Losung x mit Wert z der relaxiertenVariante.

2. Fallunterscheidung:I x enthalt keine fraktionalen xi . Dann ist z insgesamt die

optimale Losung.I x enthalt ein fraktionales xi . Dann gib max(

∑r 6=i

xrpr , pi ) zuruck.

I x enthalt xi und xj , beide fraktional und wj ≤ wi .Dann gib max(

∑r 6=i,j

xrpr + pj , pi ) zuruck.

Laufzeit: O(n)

Page 32: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Heuristik

Gegeben sei eine kKP-Eingabe.

1. Berechne die optimale Losung x mit Wert z der relaxiertenVariante.

2. Fallunterscheidung:I x enthalt keine fraktionalen xi . Dann ist z insgesamt die

optimale Losung.I x enthalt ein fraktionales xi . Dann gib max(

∑r 6=i

xrpr , pi ) zuruck.

I x enthalt xi und xj , beide fraktional und wj ≤ wi .Dann gib max(

∑r 6=i,j

xrpr + pj , pi ) zuruck.

Laufzeit: O(n)

Page 33: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Heuristik-Fehlerabschatzung

Fallunterscheidung:

I keine fraktionalen xi ⇒ optimale Losung, kein Fehler.

I ein fraktionales xi , d.h. Ruckgabe zA := max(∑r 6=i

xrpr , pi ).

⇒ z ≤ (∑r 6=i

xrpr ) + pi ≤ 2zA.

I xi und xj , beide fraktional und wj ≤ wi , d.h. RuckgabezA := max(

∑r 6=i ,j

xrpr + pj , pi ).

⇒ z ≤∑

r 6=i ,j

xrpr + pj + pi ≤ 2zA.

Also ist zA mindestens die Halfte von z .Die optimale Losung ohne Relaxation ist nur evtl. kleiner als z .

⇒ Approximationsgute 2

Page 34: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Heuristik-Fehlerabschatzung

Fallunterscheidung:

I keine fraktionalen xi ⇒ optimale Losung, kein Fehler.

I ein fraktionales xi , d.h. Ruckgabe zA := max(∑r 6=i

xrpr , pi ).

⇒ z ≤ (∑r 6=i

xrpr ) + pi ≤ 2zA.

I xi und xj , beide fraktional und wj ≤ wi , d.h. RuckgabezA := max(

∑r 6=i ,j

xrpr + pj , pi ).

⇒ z ≤∑

r 6=i ,j

xrpr + pj + pi ≤ 2zA.

Also ist zA mindestens die Halfte von z .Die optimale Losung ohne Relaxation ist nur evtl. kleiner als z .

⇒ Approximationsgute 2

Page 35: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Heuristik-Fehlerabschatzung

Fallunterscheidung:

I keine fraktionalen xi ⇒ optimale Losung, kein Fehler.

I ein fraktionales xi , d.h. Ruckgabe zA := max(∑r 6=i

xrpr , pi ).

⇒ z ≤ (∑r 6=i

xrpr ) + pi ≤ 2zA.

I xi und xj , beide fraktional und wj ≤ wi , d.h. RuckgabezA := max(

∑r 6=i ,j

xrpr + pj , pi ).

⇒ z ≤∑

r 6=i ,j

xrpr + pj + pi ≤ 2zA.

Also ist zA mindestens die Halfte von z .Die optimale Losung ohne Relaxation ist nur evtl. kleiner als z .

⇒ Approximationsgute 2

Page 36: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Heuristik-Fehlerabschatzung

Fallunterscheidung:

I keine fraktionalen xi ⇒ optimale Losung, kein Fehler.

I ein fraktionales xi , d.h. Ruckgabe zA := max(∑r 6=i

xrpr , pi ).

⇒ z ≤ (∑r 6=i

xrpr ) + pi ≤ 2zA.

I xi und xj , beide fraktional und wj ≤ wi , d.h. RuckgabezA := max(

∑r 6=i ,j

xrpr + pj , pi ).

⇒ z ≤∑

r 6=i ,j

xrpr + pj + pi ≤ 2zA.

Also ist zA mindestens die Halfte von z .Die optimale Losung ohne Relaxation ist nur evtl. kleiner als z .

⇒ Approximationsgute 2

Page 37: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Heuristik-Fehlerabschatzung

Fallunterscheidung:

I keine fraktionalen xi ⇒ optimale Losung, kein Fehler.

I ein fraktionales xi , d.h. Ruckgabe zA := max(∑r 6=i

xrpr , pi ).

⇒ z ≤ (∑r 6=i

xrpr ) + pi ≤ 2zA.

I xi und xj , beide fraktional und wj ≤ wi , d.h. RuckgabezA := max(

∑r 6=i ,j

xrpr + pj , pi ).

⇒ z ≤∑

r 6=i ,j

xrpr + pj + pi ≤ 2zA.

Also ist zA mindestens die Halfte von z .Die optimale Losung ohne Relaxation ist nur evtl. kleiner als z .

⇒ Approximationsgute 2

Page 38: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Exact k-item knapsack problem (E-kKP)

Anderung: Genau k Objekte mussen eingepackt werden

Zielfunktion:

(1)n∑

i=1

pi · xi

Nebenbedingungen:

(2)n∑

i=1

wi · xi ≤ c

(3)n∑

i=1

xi = k

(4) ∀i = 1, . . . , n : xi ∈ {0, 1}

Page 39: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Exact k-item knapsack problem (E-kKP)

Anderung: Genau k Objekte mussen eingepackt werden

Zielfunktion:

(1)n∑

i=1

pi · xi

Nebenbedingungen:

(2)n∑

i=1

wi · xi ≤ c

(3)n∑

i=1

xi = k

(4) ∀i = 1, . . . , n : xi ∈ {0, 1}

Page 40: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

kKP mit E-kKP losen

Lose kKP mit einem E-kKP-Algorithmus.Wandle kKP-Eingabe in eine E-kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k k · w1, . . . , k · wn k · p1, . . . , k · pn k(c + 1)− 1

1. x = x1, . . . , xn ist eine Losung fur kKP

I ⇒n∑

i=1

k · wixi ≤ kn∑

i=1

wixi ≤ ck ≤ ck + k − 1 = k(c + 1)− 1

I Mit Dummyobjekten istn∑

i=1

x ′i = k erfullbar.

⇒ x ′ ist eine Losung fur E-kKP.

Page 41: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

kKP mit E-kKP losen

Lose kKP mit einem E-kKP-Algorithmus.Wandle kKP-Eingabe in eine E-kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c

⇓ ⇓ ⇓ ⇓k k · w1, . . . , k · wn k · p1, . . . , k · pn k(c + 1)− 1

1. x = x1, . . . , xn ist eine Losung fur kKP

I ⇒n∑

i=1

k · wixi ≤ kn∑

i=1

wixi ≤ ck ≤ ck + k − 1 = k(c + 1)− 1

I Mit Dummyobjekten istn∑

i=1

x ′i = k erfullbar.

⇒ x ′ ist eine Losung fur E-kKP.

Page 42: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

kKP mit E-kKP losen

Lose kKP mit einem E-kKP-Algorithmus.Wandle kKP-Eingabe in eine E-kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓

k k · w1, . . . , k · wn k · p1, . . . , k · pn k(c + 1)− 1

1. x = x1, . . . , xn ist eine Losung fur kKP

I ⇒n∑

i=1

k · wixi ≤ kn∑

i=1

wixi ≤ ck ≤ ck + k − 1 = k(c + 1)− 1

I Mit Dummyobjekten istn∑

i=1

x ′i = k erfullbar.

⇒ x ′ ist eine Losung fur E-kKP.

Page 43: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

kKP mit E-kKP losen

Lose kKP mit einem E-kKP-Algorithmus.Wandle kKP-Eingabe in eine E-kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k k · w1, . . . , k · wn k · p1, . . . , k · pn k(c + 1)− 1

1. x = x1, . . . , xn ist eine Losung fur kKP

I ⇒n∑

i=1

k · wixi ≤ kn∑

i=1

wixi ≤ ck ≤ ck + k − 1 = k(c + 1)− 1

I Mit Dummyobjekten istn∑

i=1

x ′i = k erfullbar.

⇒ x ′ ist eine Losung fur E-kKP.

Page 44: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

kKP mit E-kKP losen

Lose kKP mit einem E-kKP-Algorithmus.Wandle kKP-Eingabe in eine E-kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k k · w1, . . . , k · wn k · p1, . . . , k · pn k(c + 1)− 1

1. x = x1, . . . , xn ist eine Losung fur kKP

I ⇒n∑

i=1

k · wixi ≤ kn∑

i=1

wixi ≤ ck ≤ ck + k − 1 = k(c + 1)− 1

I Mit Dummyobjekten istn∑

i=1

x ′i = k erfullbar.

⇒ x ′ ist eine Losung fur E-kKP.

Page 45: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

kKP mit E-kKP losen

Lose kKP mit einem E-kKP-Algorithmus.Wandle kKP-Eingabe in eine E-kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k k · w1, . . . , k · wn k · p1, . . . , k · pn k(c + 1)− 1

1. x = x1, . . . , xn ist eine Losung fur kKP

I ⇒n∑

i=1

k · wixi ≤ kn∑

i=1

wixi ≤ ck ≤ ck + k − 1 = k(c + 1)− 1

I Mit Dummyobjekten istn∑

i=1

x ′i = k erfullbar.

⇒ x ′ ist eine Losung fur E-kKP.

Page 46: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

kKP mit E-kKP losen

Lose kKP mit einem E-kKP-Algorithmus.Wandle kKP-Eingabe in eine E-kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k k · w1, . . . , k · wn k · p1, . . . , k · pn k(c + 1)− 1

1. x = x1, . . . , xn ist eine Losung fur kKP

I ⇒n∑

i=1

k · wixi ≤ kn∑

i=1

wixi ≤ ck ≤ ck + k − 1 = k(c + 1)− 1

I Mit Dummyobjekten istn∑

i=1

x ′i = k erfullbar.

⇒ x ′ ist eine Losung fur E-kKP.

Page 47: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

kKP mit E-kKP losen

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k k · w1, . . . , k · wn k · p1, . . . , k · pn k(c + 1)− 1

2. x = x1, . . . , xn ist keine Losung fur kKPZwei mogliche Fehlerursachen:

In∑

i=1

xi > k ⇒ E-kKP nicht erfullbar

In∑

i=1

wixi ≥ c + 1 ⇔n∑

i=1

kwixi ≥ ck + k > ck + k − 1

⇒ es gibt kein x ′ als Losung fur E-kKP.

Page 48: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

kKP mit E-kKP losen

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k k · w1, . . . , k · wn k · p1, . . . , k · pn k(c + 1)− 1

2. x = x1, . . . , xn ist keine Losung fur kKP

Zwei mogliche Fehlerursachen:

In∑

i=1

xi > k ⇒ E-kKP nicht erfullbar

In∑

i=1

wixi ≥ c + 1 ⇔n∑

i=1

kwixi ≥ ck + k > ck + k − 1

⇒ es gibt kein x ′ als Losung fur E-kKP.

Page 49: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

kKP mit E-kKP losen

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k k · w1, . . . , k · wn k · p1, . . . , k · pn k(c + 1)− 1

2. x = x1, . . . , xn ist keine Losung fur kKPZwei mogliche Fehlerursachen:

In∑

i=1

xi > k ⇒ E-kKP nicht erfullbar

In∑

i=1

wixi ≥ c + 1 ⇔n∑

i=1

kwixi ≥ ck + k > ck + k − 1

⇒ es gibt kein x ′ als Losung fur E-kKP.

Page 50: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

kKP mit E-kKP losen

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k k · w1, . . . , k · wn k · p1, . . . , k · pn k(c + 1)− 1

2. x = x1, . . . , xn ist keine Losung fur kKPZwei mogliche Fehlerursachen:

In∑

i=1

xi > k ⇒ E-kKP nicht erfullbar

In∑

i=1

wixi ≥ c + 1 ⇔n∑

i=1

kwixi ≥ ck + k > ck + k − 1

⇒ es gibt kein x ′ als Losung fur E-kKP.

Page 51: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

kKP mit E-kKP losen

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k k · w1, . . . , k · wn k · p1, . . . , k · pn k(c + 1)− 1

2. x = x1, . . . , xn ist keine Losung fur kKPZwei mogliche Fehlerursachen:

In∑

i=1

xi > k ⇒ E-kKP nicht erfullbar

In∑

i=1

wixi ≥ c + 1 ⇔n∑

i=1

kwixi ≥ ck + k > ck + k − 1

⇒ es gibt kein x ′ als Losung fur E-kKP.

Page 52: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

kKP mit E-kKP losen

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k k · w1, . . . , k · wn k · p1, . . . , k · pn k(c + 1)− 1

2. x = x1, . . . , xn ist keine Losung fur kKPZwei mogliche Fehlerursachen:

In∑

i=1

xi > k ⇒ E-kKP nicht erfullbar

In∑

i=1

wixi ≥ c + 1 ⇔n∑

i=1

kwixi ≥ ck + k > ck + k − 1

⇒ es gibt kein x ′ als Losung fur E-kKP.

Page 53: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

E-kKP mit kKP losen

Definiere folgende Hilfsvariablen:

P :=n∑

i=1

pi W :=n∑

i=1

wi

Wandle E-kKP-Eingabe in eine kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k W + w1, . . . ,W + wn P + p1, . . . ,P + pn kW + c

1. x = x1, . . . , xn ist eine Losung fur E-kKP

In∑

i=1

(W + wi )xi = kW +n∑

i=1

wixi ≤ kW + c

⇒ x ′ ist eine Losung fur E-kKP.

Page 54: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

E-kKP mit kKP losen

Definiere folgende Hilfsvariablen:

P :=n∑

i=1

pi W :=n∑

i=1

wi

Wandle E-kKP-Eingabe in eine kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k W + w1, . . . ,W + wn P + p1, . . . ,P + pn kW + c

1. x = x1, . . . , xn ist eine Losung fur E-kKP

In∑

i=1

(W + wi )xi = kW +n∑

i=1

wixi ≤ kW + c

⇒ x ′ ist eine Losung fur E-kKP.

Page 55: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

E-kKP mit kKP losen

Definiere folgende Hilfsvariablen:

P :=n∑

i=1

pi W :=n∑

i=1

wi

Wandle E-kKP-Eingabe in eine kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c

⇓ ⇓ ⇓ ⇓k W + w1, . . . ,W + wn P + p1, . . . ,P + pn kW + c

1. x = x1, . . . , xn ist eine Losung fur E-kKP

In∑

i=1

(W + wi )xi = kW +n∑

i=1

wixi ≤ kW + c

⇒ x ′ ist eine Losung fur E-kKP.

Page 56: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

E-kKP mit kKP losen

Definiere folgende Hilfsvariablen:

P :=n∑

i=1

pi W :=n∑

i=1

wi

Wandle E-kKP-Eingabe in eine kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓

k W + w1, . . . ,W + wn P + p1, . . . ,P + pn kW + c

1. x = x1, . . . , xn ist eine Losung fur E-kKP

In∑

i=1

(W + wi )xi = kW +n∑

i=1

wixi ≤ kW + c

⇒ x ′ ist eine Losung fur E-kKP.

Page 57: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

E-kKP mit kKP losen

Definiere folgende Hilfsvariablen:

P :=n∑

i=1

pi W :=n∑

i=1

wi

Wandle E-kKP-Eingabe in eine kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k W + w1, . . . ,W + wn P + p1, . . . ,P + pn kW + c

1. x = x1, . . . , xn ist eine Losung fur E-kKP

In∑

i=1

(W + wi )xi = kW +n∑

i=1

wixi ≤ kW + c

⇒ x ′ ist eine Losung fur E-kKP.

Page 58: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

E-kKP mit kKP losen

Definiere folgende Hilfsvariablen:

P :=n∑

i=1

pi W :=n∑

i=1

wi

Wandle E-kKP-Eingabe in eine kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k W + w1, . . . ,W + wn P + p1, . . . ,P + pn kW + c

1. x = x1, . . . , xn ist eine Losung fur E-kKP

In∑

i=1

(W + wi )xi = kW +n∑

i=1

wixi ≤ kW + c

⇒ x ′ ist eine Losung fur E-kKP.

Page 59: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

E-kKP mit kKP losen

Definiere folgende Hilfsvariablen:

P :=n∑

i=1

pi W :=n∑

i=1

wi

Wandle E-kKP-Eingabe in eine kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k W + w1, . . . ,W + wn P + p1, . . . ,P + pn kW + c

1. x = x1, . . . , xn ist eine Losung fur E-kKP

In∑

i=1

(W + wi )xi = kW +n∑

i=1

wixi ≤ kW + c

⇒ x ′ ist eine Losung fur E-kKP.

Page 60: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

E-kKP mit kKP losen

Definiere folgende Hilfsvariablen:

P :=n∑

i=1

pi W :=n∑

i=1

wi

Wandle E-kKP-Eingabe in eine kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k W + w1, . . . ,W + wn P + p1, . . . ,P + pn kW + c

1. x = x1, . . . , xn ist eine Losung fur E-kKP

In∑

i=1

(W + wi )xi = kW +n∑

i=1

wixi ≤ kW + c

⇒ x ′ ist eine Losung fur E-kKP.

Page 61: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

E-kKP mit kKP losen

P :=n∑

i=1

pi W :=n∑

i=1

wi

Wandle E-kKP-Eingabe in eine kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k W + w1, . . . ,W + wn P + p1, . . . ,P + pn kW + c

2. x = x1, . . . , xn als Losung fur E-kKP existiert nicht.

I kKP ist Losbar mit weniger als k Objekten.

In∑

i=1

(P + pi )xi ≤ (k − 1)P +n∑

i=1

pixi ≤ (k − 1)P + P = kP

⇒ Jede Losung x ′ die auch E-kKP lost, hatte einen großerenProfit als kP.

Page 62: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

E-kKP mit kKP losen

P :=n∑

i=1

pi W :=n∑

i=1

wi

Wandle E-kKP-Eingabe in eine kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k W + w1, . . . ,W + wn P + p1, . . . ,P + pn kW + c

2. x = x1, . . . , xn als Losung fur E-kKP existiert nicht.

I kKP ist Losbar mit weniger als k Objekten.

In∑

i=1

(P + pi )xi ≤ (k − 1)P +n∑

i=1

pixi ≤ (k − 1)P + P = kP

⇒ Jede Losung x ′ die auch E-kKP lost, hatte einen großerenProfit als kP.

Page 63: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

E-kKP mit kKP losen

P :=n∑

i=1

pi W :=n∑

i=1

wi

Wandle E-kKP-Eingabe in eine kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k W + w1, . . . ,W + wn P + p1, . . . ,P + pn kW + c

2. x = x1, . . . , xn als Losung fur E-kKP existiert nicht.

I kKP ist Losbar mit weniger als k Objekten.

In∑

i=1

(P + pi )xi ≤ (k − 1)P +n∑

i=1

pixi ≤ (k − 1)P + P = kP

⇒ Jede Losung x ′ die auch E-kKP lost, hatte einen großerenProfit als kP.

Page 64: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

E-kKP mit kKP losen

P :=n∑

i=1

pi W :=n∑

i=1

wi

Wandle E-kKP-Eingabe in eine kKP-Eingabe um:

Gewichte Profite Gewichtsschranke

k w1, . . . ,wn p1, . . . , pn c⇓ ⇓ ⇓ ⇓k W + w1, . . . ,W + wn P + p1, . . . ,P + pn kW + c

2. x = x1, . . . , xn als Losung fur E-kKP existiert nicht.

I kKP ist Losbar mit weniger als k Objekten.

In∑

i=1

(P + pi )xi ≤ (k − 1)P +n∑

i=1

pixi ≤ (k − 1)P + P = kP

⇒ Jede Losung x ′ die auch E-kKP lost, hatte einen großerenProfit als kP.

Page 65: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Losung fur kKP mit dynamischer Programmierung

Definiere yj(q, `) als

minimales Gewicht, um mit

hochstens ` der ersten j Objekte

genau den Wert q zu erreichen.

⇒ yj(q, `) = min

{j∑

i=1

wixi

∣∣∣∣∣j∑

i=1

pixi = q,

j∑i=1

xi = `, xi ∈ {0, 1}

}

Wichtig: Obere Schranke U fur maximalen Wert notig, sonst qunbeschrankt!

Page 66: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Losung fur kKP mit dynamischer Programmierung

Definiere yj(q, `) als

minimales Gewicht, um mit

hochstens ` der ersten j Objekte

genau den Wert q zu erreichen.

⇒ yj(q, `) = min

{j∑

i=1

wixi

∣∣∣∣∣j∑

i=1

pixi = q,

j∑i=1

xi = `, xi ∈ {0, 1}

}

Wichtig: Obere Schranke U fur maximalen Wert notig, sonst qunbeschrankt!

Page 67: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Losung fur kKP mit dynamischer Programmierung

Definiere yj(q, `) als

minimales Gewicht, um mit

hochstens ` der ersten j Objekte

genau den Wert q zu erreichen.

⇒ yj(q, `) = min

{j∑

i=1

wixi

∣∣∣∣∣j∑

i=1

pixi = q,

j∑i=1

xi = `, xi ∈ {0, 1}

}

Wichtig: Obere Schranke U fur maximalen Wert notig, sonst qunbeschrankt!

Page 68: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Losung fur kKP mit dynamischer Programmierung

Definiere yj(q, `) als

minimales Gewicht, um mit

hochstens ` der ersten j Objekte

genau den Wert q zu erreichen.

⇒ yj(q, `) = min

{j∑

i=1

wixi

∣∣∣∣∣j∑

i=1

pixi = q,

j∑i=1

xi = `, xi ∈ {0, 1}

}

Wichtig: Obere Schranke U fur maximalen Wert notig, sonst qunbeschrankt!

Page 69: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Losung fur kKP mit dynamischer Programmierung

Definiere yj(q, `) als

minimales Gewicht, um mit

hochstens ` der ersten j Objekte

genau den Wert q zu erreichen.

⇒ yj(q, `) = min

{j∑

i=1

wixi

∣∣∣∣∣j∑

i=1

pixi = q,

j∑i=1

xi = `, xi ∈ {0, 1}

}

Wichtig: Obere Schranke U fur maximalen Wert notig, sonst qunbeschrankt!

Page 70: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Initialisierung

y0(0, 0) = 0

y0(q, `) = c + 1, ` = 1, . . . , k, q = 0, . . . ,U,

Losungen mit 0 Objekten sind nicht moglich oder irrelevant−→ ungultigen Gewichtswert setzen

Page 71: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Initialisierung

y0(0, 0) = 0

y0(q, `) = c + 1, ` = 1, . . . , k, q = 0, . . . ,U,

Losungen mit 0 Objekten sind nicht moglich oder irrelevant−→ ungultigen Gewichtswert setzen

Page 72: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Initialisierung

y0(0, 0) = 0

y0(q, `) = c + 1, ` = 1, . . . , k, q = 0, . . . ,U,

Losungen mit 0 Objekten sind nicht moglich oder irrelevant−→ ungultigen Gewichtswert setzen

Page 73: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Bellmansche Optimalitatsgleichung

Berechnung der yj(q, `) aus allen yj−1(q′, `′).

I Objekt j kann einen Wert haben, der großer als q ist

I sonst testen, ob Objekt j zu einem niedrigeren Gewicht fuhrt

yj(q, `) =

{yj−1(q, `) , q < pj

min{yj−1(q, `), yj−1(q − pj , `− 1) + wj} , ` > 0, q ≥ pj

Optimum:

max {q | yn(q, `) ≤ c , q = 0, . . . ,U, ` = 0, . . . , k}

Page 74: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Bellmansche Optimalitatsgleichung

Berechnung der yj(q, `) aus allen yj−1(q′, `′).

I Objekt j kann einen Wert haben, der großer als q ist

I sonst testen, ob Objekt j zu einem niedrigeren Gewicht fuhrt

yj(q, `) =

{yj−1(q, `) , q < pj

min{yj−1(q, `), yj−1(q − pj , `− 1) + wj} , ` > 0, q ≥ pj

Optimum:

max {q | yn(q, `) ≤ c , q = 0, . . . ,U, ` = 0, . . . , k}

Page 75: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Bellmansche Optimalitatsgleichung

Berechnung der yj(q, `) aus allen yj−1(q′, `′).

I Objekt j kann einen Wert haben, der großer als q ist

I sonst testen, ob Objekt j zu einem niedrigeren Gewicht fuhrt

yj(q, `) =

{yj−1(q, `) , q < pj

min{yj−1(q, `), yj−1(q − pj , `− 1) + wj} , ` > 0, q ≥ pj

Optimum:

max {q | yn(q, `) ≤ c , q = 0, . . . ,U, ` = 0, . . . , k}

Page 76: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Laufzeit / Speicherplatz

Um alle Tabelleneintrage zu bestimmen, ist Laufzeit O(nkU) notig(Schranken der einzelnen Parameter).

Fur die Bestimmung des optimalen Werts ohne Angabe der Losungselbst braucht man O(n + kU) Speicherplatz.

Fur die Bestimmung des optimalen Werts und Angabe der Losungselbst brauche man O(k2U) Speicherplatz.

Page 77: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Laufzeit / Speicherplatz

Um alle Tabelleneintrage zu bestimmen, ist Laufzeit O(nkU) notig(Schranken der einzelnen Parameter).

Fur die Bestimmung des optimalen Werts ohne Angabe der Losungselbst braucht man O(n + kU) Speicherplatz.

Fur die Bestimmung des optimalen Werts und Angabe der Losungselbst brauche man O(k2U) Speicherplatz.

Page 78: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Laufzeit / Speicherplatz

Um alle Tabelleneintrage zu bestimmen, ist Laufzeit O(nkU) notig(Schranken der einzelnen Parameter).

Fur die Bestimmung des optimalen Werts ohne Angabe der Losungselbst braucht man O(n + kU) Speicherplatz.

Fur die Bestimmung des optimalen Werts und Angabe der Losungselbst brauche man O(k2U) Speicherplatz.

Page 79: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Divide & Conquer-Ansatz

Dynamische Programmierung benotigt viel Platz zum Speichernder Losung.Darum: versuche, nur die Daten zu speichern, die wirklich benotigtwerden.

I Teile die Anzahl der Objekte auf und verringere sie so.

I Es kann irgendwann leicht entschieden werden, ob ein Objektgewahlt wird oder nicht.

Naturlich muß die Gewichtsschranke auch immer verringert werden!

Page 80: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Divide & Conquer-Ansatz

Dynamische Programmierung benotigt viel Platz zum Speichernder Losung.Darum: versuche, nur die Daten zu speichern, die wirklich benotigtwerden.

I Teile die Anzahl der Objekte auf und verringere sie so.

I Es kann irgendwann leicht entschieden werden, ob ein Objektgewahlt wird oder nicht.

Naturlich muß die Gewichtsschranke auch immer verringert werden!

Page 81: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Divide & Conquer Algorithmus

Gegeben sei eine kKP-Eingabe mit n, k, U.KKP DIVIDE CONQUER(n, k, U)

1. Teile die Objekte in zwei etwa gleichgroße Mengen n1 und n2.

2. Benutze den dynamischen Algorithmus zum Berechnensamtlicher Losungenv(n1, k

′, u) und v(n2, k′, u), u = 0, . . . ,U, k ′ = 0, . . . , k

3. Berechne optimale Losung v(n, k,U) und suche aus denberechneten Losungen eine Losung mit u1 + u2 = U,k1 + k2 = k und v(n1, k1, u1) + v(n2, k2, u2) = v(n, k,U)

4. Wenn n1 oder n2 nur noch aus einem Objekt bestehen, prufeob sie in eine optimale Losung passen und fuge sie hinzu

5. Sonst rufe KKP DIVIDE CONQUER(n1, k1, u1),KKP DIVIDE CONQUER(n2, k2, u2) auf

Page 82: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Divide & Conquer Algorithmus

Gegeben sei eine kKP-Eingabe mit n, k, U.KKP DIVIDE CONQUER(n, k, U)

1. Teile die Objekte in zwei etwa gleichgroße Mengen n1 und n2.

2. Benutze den dynamischen Algorithmus zum Berechnensamtlicher Losungenv(n1, k

′, u) und v(n2, k′, u), u = 0, . . . ,U, k ′ = 0, . . . , k

3. Berechne optimale Losung v(n, k,U) und suche aus denberechneten Losungen eine Losung mit u1 + u2 = U,k1 + k2 = k und v(n1, k1, u1) + v(n2, k2, u2) = v(n, k,U)

4. Wenn n1 oder n2 nur noch aus einem Objekt bestehen, prufeob sie in eine optimale Losung passen und fuge sie hinzu

5. Sonst rufe KKP DIVIDE CONQUER(n1, k1, u1),KKP DIVIDE CONQUER(n2, k2, u2) auf

Page 83: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Divide & Conquer Algorithmus

Gegeben sei eine kKP-Eingabe mit n, k, U.KKP DIVIDE CONQUER(n, k, U)

1. Teile die Objekte in zwei etwa gleichgroße Mengen n1 und n2.

2. Benutze den dynamischen Algorithmus zum Berechnensamtlicher Losungenv(n1, k

′, u) und v(n2, k′, u), u = 0, . . . ,U, k ′ = 0, . . . , k

3. Berechne optimale Losung v(n, k,U) und suche aus denberechneten Losungen eine Losung mit u1 + u2 = U,k1 + k2 = k und v(n1, k1, u1) + v(n2, k2, u2) = v(n, k,U)

4. Wenn n1 oder n2 nur noch aus einem Objekt bestehen, prufeob sie in eine optimale Losung passen und fuge sie hinzu

5. Sonst rufe KKP DIVIDE CONQUER(n1, k1, u1),KKP DIVIDE CONQUER(n2, k2, u2) auf

Page 84: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Divide & Conquer Algorithmus

Gegeben sei eine kKP-Eingabe mit n, k, U.KKP DIVIDE CONQUER(n, k, U)

1. Teile die Objekte in zwei etwa gleichgroße Mengen n1 und n2.

2. Benutze den dynamischen Algorithmus zum Berechnensamtlicher Losungenv(n1, k

′, u) und v(n2, k′, u), u = 0, . . . ,U, k ′ = 0, . . . , k

3. Berechne optimale Losung v(n, k,U) und suche aus denberechneten Losungen eine Losung mit u1 + u2 = U,k1 + k2 = k und v(n1, k1, u1) + v(n2, k2, u2) = v(n, k,U)

4. Wenn n1 oder n2 nur noch aus einem Objekt bestehen, prufeob sie in eine optimale Losung passen und fuge sie hinzu

5. Sonst rufe KKP DIVIDE CONQUER(n1, k1, u1),KKP DIVIDE CONQUER(n2, k2, u2) auf

Page 85: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Divide & Conquer Algorithmus

Gegeben sei eine kKP-Eingabe mit n, k, U.KKP DIVIDE CONQUER(n, k, U)

1. Teile die Objekte in zwei etwa gleichgroße Mengen n1 und n2.

2. Benutze den dynamischen Algorithmus zum Berechnensamtlicher Losungenv(n1, k

′, u) und v(n2, k′, u), u = 0, . . . ,U, k ′ = 0, . . . , k

3. Berechne optimale Losung v(n, k,U) und suche aus denberechneten Losungen eine Losung mit u1 + u2 = U,k1 + k2 = k und v(n1, k1, u1) + v(n2, k2, u2) = v(n, k,U)

4. Wenn n1 oder n2 nur noch aus einem Objekt bestehen, prufeob sie in eine optimale Losung passen und fuge sie hinzu

5. Sonst rufe KKP DIVIDE CONQUER(n1, k1, u1),KKP DIVIDE CONQUER(n2, k2, u2) auf

Page 86: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Divide & Conquer Algorithmus

Gegeben sei eine kKP-Eingabe mit n, k, U.KKP DIVIDE CONQUER(n, k, U)

1. Teile die Objekte in zwei etwa gleichgroße Mengen n1 und n2.

2. Benutze den dynamischen Algorithmus zum Berechnensamtlicher Losungenv(n1, k

′, u) und v(n2, k′, u), u = 0, . . . ,U, k ′ = 0, . . . , k

3. Berechne optimale Losung v(n, k,U) und suche aus denberechneten Losungen eine Losung mit u1 + u2 = U,k1 + k2 = k und v(n1, k1, u1) + v(n2, k2, u2) = v(n, k,U)

4. Wenn n1 oder n2 nur noch aus einem Objekt bestehen, prufeob sie in eine optimale Losung passen und fuge sie hinzu

5. Sonst rufe KKP DIVIDE CONQUER(n1, k1, u1),KKP DIVIDE CONQUER(n2, k2, u2) auf

Page 87: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Bemerkungen

I Das Berechnen der Profitwerte v(n, k,U) geht in Zeit O(nkU)und benotigt O(n + kU) Speicherplatz.

I Falls n nur aus einem Objekt besteht, kann leicht festgestelltwerden, ob es zur optimalen Losung gehort.

I Eine Einteilung, fur die u1 + u2 = U, k1 + k2 = k undv(n1, k1, u1) + v(n2, k2, u2) = v(n, k,U) gilt, existiert.

Page 88: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Bemerkungen

I Das Berechnen der Profitwerte v(n, k,U) geht in Zeit O(nkU)und benotigt O(n + kU) Speicherplatz.

I Falls n nur aus einem Objekt besteht, kann leicht festgestelltwerden, ob es zur optimalen Losung gehort.

I Eine Einteilung, fur die u1 + u2 = U, k1 + k2 = k undv(n1, k1, u1) + v(n2, k2, u2) = v(n, k,U) gilt, existiert.

Page 89: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Bemerkungen

I Das Berechnen der Profitwerte v(n, k,U) geht in Zeit O(nkU)und benotigt O(n + kU) Speicherplatz.

I Falls n nur aus einem Objekt besteht, kann leicht festgestelltwerden, ob es zur optimalen Losung gehort.

I Eine Einteilung, fur die u1 + u2 = U, k1 + k2 = k undv(n1, k1, u1) + v(n2, k2, u2) = v(n, k,U) gilt, existiert.

Page 90: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Bemerkungen

I Das Berechnen der Profitwerte v(n, k,U) geht in Zeit O(nkU)und benotigt O(n + kU) Speicherplatz.

I Falls n nur aus einem Objekt besteht, kann leicht festgestelltwerden, ob es zur optimalen Losung gehort.

I Eine Einteilung, fur die u1 + u2 = U, k1 + k2 = k undv(n1, k1, u1) + v(n2, k2, u2) = v(n, k,U) gilt, existiert.

Page 91: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Divide & Conquer Laufzeitanalyse

Ohne rekursive Aufrufe betragt die Laufzeit O(nkU).

In jedem Level sind die gesamten Kosten durch U beschrankt.In Level ` gibt es durch die halbierung der Objektanzahl in derRekursion nur etwa |n|

2` Objekte.Addition uber jede Ebene im Rekursionsbaum ergibt:

log n∑i=1

|n|2`· k · U ≤ 2nkU

Page 92: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Divide & Conquer Laufzeitanalyse

Ohne rekursive Aufrufe betragt die Laufzeit O(nkU).In jedem Level sind die gesamten Kosten durch U beschrankt.

In Level ` gibt es durch die halbierung der Objektanzahl in derRekursion nur etwa |n|

2` Objekte.Addition uber jede Ebene im Rekursionsbaum ergibt:

log n∑i=1

|n|2`· k · U ≤ 2nkU

Page 93: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Divide & Conquer Laufzeitanalyse

Ohne rekursive Aufrufe betragt die Laufzeit O(nkU).In jedem Level sind die gesamten Kosten durch U beschrankt.In Level ` gibt es durch die halbierung der Objektanzahl in derRekursion nur etwa |n|

2` Objekte.

Addition uber jede Ebene im Rekursionsbaum ergibt:

log n∑i=1

|n|2`· k · U ≤ 2nkU

Page 94: Cardinality Constrained Knapsack Problemls11- · Cardinality Constrained Knapsack Problem Jan-Philipp Kappmeier, Melanie Schmidt 17. November 2005

Divide & Conquer Laufzeitanalyse

Ohne rekursive Aufrufe betragt die Laufzeit O(nkU).In jedem Level sind die gesamten Kosten durch U beschrankt.In Level ` gibt es durch die halbierung der Objektanzahl in derRekursion nur etwa |n|

2` Objekte.Addition uber jede Ebene im Rekursionsbaum ergibt:

log n∑i=1

|n|2`· k · U ≤ 2nkU