Seminar „Perlen der Theoretischen Informatik“ WS 2003/2004 Thema: „Random Knapsack in Expected Polynomial Time“ Ausarbeitung von Evgenija Wetzel (Matr.-Nr. 6089919) Arbeitsgruppe Algorithmen und Komplexität Betreuer: Dipl.-Math. Valentina Damerow Januar 2004 Inhaltsverzeichnis 1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1 Nemhauser/Ullmann Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Average-case Analyse des Nemhauser-Ullmann Algorithmus . . . . . . . . . . . . . . . 7 2.1 Gleichverteilung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Andere Verteilungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.1 Exponentielle und andere langschweifige Verteilungen . . . . . . . . . . . . . . . . . . . . . 11 2.2.2 Verteilungen mit nicht steigender Dichte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.3 Allgemeine kontinuierliche Verteilungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Verzeichnis der Formelzeichen E[x] Erwartungswert der Variablen x Pr [ … ] Wahrscheinlichkeit q Anzahl der dominierenden Mengen vol ( A ) Volumen des Polytopes A 1 Einleitung Das 0/1 Rucksack Problem ist wie folgt definiert: Gegeben seien eine Menge von Objekten [ n ] = { 1, …, n } mit positiven Gewichten (weights) w 1, …, w n und Nutzwerte (profits) p 1, …, p n , und ein Behälter - Rucksack mit der Gewichtskapazität c, der mit den Objekten gefüllt werden soll. Nicht alle Objekte können mitgenommen werden, also soll eine Auswahl getroffen werden, die den Wert der eingepackten Objekten maximiert. Es wird eine Untermenge dieser Objekten gesucht, welche die Zielfunktion z = maximiert, unter Nebenbedingungen: ∑ w j x j ≤ c xj ∈ { 0, 1 }, j ∈ N , n ∑j = 1 p j x j j=1 wobei x j =1, wenn Objekt j in den Rucksack eingepackt wird, und x j =0 sonst. Oder, etwas vereinfacht: Es wird eine solche Teilmenge S ⊆ [ 1, 2, …, n ] gesucht, dass ∑ wi ≤ c und ∑ pi maximal ist. i∈s i∈S Das 0/1- Rucksackproblem ist ein Optimierungsproblem und sowohl vom theoretischen als auch vom praktischen Interesse. Es findet Anwendung in Industrie, Finanzverwaltung, bei der verschlüsselten Datenübertragung. Das Lösen vom Rucksack-Problem ist im worst-case NP-hart. Es existiert kein polynomieller Algorithmus für das Problem, es sei denn, dass P = NP. Alle existierenden Algorithmen für die Lösung des Rucksack-Problems haben im worst-case exponentielle Laufzeit. In der Praxis aber kann das Problem in vielen Fällen sehr effizient gelöst werden. Insbesondere ist das Problem im average-case für viele Input-Zufallsverteilungen in polynomielle Zeit lösbar. R.Beier und B.Vöcking untersuchen dieses Phänomen in [1], wo sie eine polynomielle Laufzeit im average-case für einen exakten Algorithmus des 0/1- Rucksack-Problems beweisen. Sie nehmen an, dass die Gewichte von Objekten widrig und die entsprechenden Nutzwerte nach einer bestimmten beschränkten Wahrscheinlichkeitsverteilung ausgewählt sind. Dies erlaubt auch die Beziehungen zwischen den Gewichten und den Nutzwerten von Objekten zu untersuchen, was auch eine praktische Bedeutung hat. Diese average-case Analyse des Problems basiert auf dem eleganten Algorithmus von Nemhauser und Ullmann. Man kann ihn als eine sparsame Approximation der dynamischen Programmierung bezeichnen. Er ist sehr effizient für viele praktische Fälle. R.Beier und B.Vöcking beweisen in ihrer Arbeit die polynomielle obere Schranke für die Laufzeit des Algorithmus, wobei der Grad des Polynoms abhängig von der grundliegenden Wahrscheinlichkeitsverteilung von drei bis fünf betragen kann. 3 4 1 Einleitung 1.1 Nemhauser/Ullmann Algorithmus Eine einfachste und zeitaufwendigste Methode das Rucksack-Problem zu lösen ist alle möglichen Teilmengen aus n Objekten zu untersuchen. Um den Suchraum zu reduzieren wird das sogenannten Dominanz-Konzept benutzt. Die Idee des Konzeptes ist folgende: Eine Teilmenge S ⊆ [ n ] mit dem Gewicht w ( S ) = ∑i ∈ S w i und dem Nutzwert p ( S ) = ∑ p i dominiert eine andere Teilmenge T ⊆ [ n ] , wenn w ( S ) ≤ w ( T ) i∈S und p ( S ) ≥ p ( T ) . Für Vereinfachung wird angenommen, dass keine zwei Teilmengen denselben Profit haben. Keine Teilmenge, die von einer anderen Teilmenge dominiert wird, kann eine optimale Lösung des Rucksack-Problems sein. Deswegen genügt es nur solche Teilmengen zu berücksichtigen, die nicht von einer anderen Teilmenge dominiert wird, die so genannten dominierenden Mengen (dominating sets). Mit anderen Worten, dominierende Mengen sind die Lösungen, die nicht in Nutzwert und Gewicht verbessert werden können, also die optimalen Teillösungen des Problems. Nemhauser und Ullmann haben den folgenden eleganten Algorithmus für die iterative Berechnung einer Liste der dominierenden Mengen in 1969 eingeführt: Für i ∈ [ n ] , sei S(i) eine gegebene Folge von dominierenden Teilmengen aus den Elementen 1,...,i. Die in S(i) enthaltenen Mengen sind nach ihren Gewichten ansteigend sortiert. Die nächste Folge S(i+1) kann mit Hilfe von S(i) berechnet werden: Zuerst werden die Teilmengen aus S(i) dupliziert, und dann wird zu jeder duplizierten Menge das i+1-ste Element addiert. So erhält man zwei geordnete Folgen. Jetzt werden die beiden Folgen gemischt und dabei die von einer anderen aus der Vereinigung der beiden Folgen dominierten Mengen entfernt. Das Ergebnis ist eine geordnete Folge S(i+1) von dominierenden Mengen aus Elementen 1,..., i+1. Nun kann die Folge S(i+1) aus der Folge S(i) in linearer Zeit berechnet werden. Zu berücksichtigen ist, dass dabei nur Additionen und Vergleichsoperationen benutzt werden. Die optimale Rucksackbepackung wird durch eine der Teilmengen aus S(n) beschrieben, nämlich durch die Menge mit dem größten Gewicht, das die Kapazität des Rucksackes c nicht überschreitet. Die graphische Interpretation hilft den oben beschriebenen Algorithmus besser zu verstehen. Sei f i R → R, i∈ [ n ] die Abbildung von Gewichten zu Nutzwerte, so dass f i ( t ) der maximale Profit aus allen Teilmengen von [i] mit dem Gewicht höchstens t ist. Daraus folgt, dass f i ( t ) eine nicht fallende Treppenfunktion ist. Außerdem ist die Anzahl von Treppen in f i ( t ) gleich der Anzahl der dominierenden Mengen aus [i] Elementen. Ein einfaches Beispiel in Bild 1.1 erklärt das Vorgehen dieses Algorithmus. Es werden für jedes i von 1 bis 5 die Treppenfunktionen f i berechnen. Die optimale Rucksackbepackung, die das Gewicht von 8 nicht überschreitet, kann man aus der letzten Grafik ablesen. Die optimale Rucksackbepackung entspricht in diesem Fall dem Nutzwert von 7 Einheiten. Für den oben angeführten Beschreibung des Nemhauser-Ullmann Algorithmus haben B.Vöcking und R.Beier in [1] folgendes Lemma gezeigt: 1.1 Nemhauser/Ullmann Algorithmus 5 10 p 1. i: 1 2 3 4 5 8 C= 8 w: 1 3 5 2 4 p: 2 1 4 1 3 6 4 f1 2 w 2 4 6 8 10 2. 10 p 10 8 8 6 6 4 f1 um (w2,p2) geshiftet f1 2 w 2 3. 10 8 4 2 6 4 4 f2 w 10 6 8 f3 2 4 6 8 10 p 10 6 6 4 f3 um (w4,p4) geshiftet f3 w 2 4 6 8 2 w 2 10 p 10 f4 um (w5,p5) geshiftet 4 4 f4 w 4 6 8 10 4 6 8 10 p f5 8 6 2 f4 4 6 2 10 w 8 8 8 2 8 10 6 p 10 p 2 4 8 6 4 w 2 10 2 f2 10 f2 um (w3,p3) geshiftet 2 5. 6 p 8 4. 4 p 2 w 2 4 6 8 10 Bild 1.1 Beispiel der Anwendung von Nemhauser/Ullmann Algorithmus 6 1 Einleitung Lemma 1.1. Für jedes i ∈ [ n ] sei q(i) die obere Schranke der geschätzten Anzahl der dominierenden Mengen aus Elementen von 1 bis i. Wir nehmen an, dass q ( i + 1 ) ≥ q ( i ) . Dann berechnet der Nemhauser-Ullmann Algorithmus die optimale Rucksackbepackung in der n erwarteten Zeit: O ∑ q ( i ) = O ( n ⋅ q ( n ) ) , dabei sind Gewichten gegeben und Nutz werte sind zufällig. i = 1 Im worst-case ist die Anzahl der dominierenden Mengen gleich Anzahl aller Teilmengen n aus n Elementen und gleich 2 . Dieser Fall tritt ein, wenn Nutzen und Gewicht von Objekten identisch sind. Also kann die Laufzeit von Nemhauser/Ullmann Algorithmus durch n i n O ∑ 2 = O ( 2 ) beschränkt werden. Aber, wenn Gewichte und Nutzen unabhängig i=1 von einander oder schwach ähnlich sind, ist die Laufzeit des Algorithmus viel kleiner. Außerdem, wenn die Angabewerte positive ganze Zahlen sind, kann die Laufzeit des Algorithmus pseudo-polynomiell beschränkt werden. In diesem Fall kann die Treppenfunktion f i höchstens i ⋅ P Treppen haben, wobei P der maximale Nutzwert ist. 2 Average-case Analyse des Nemhauser-Ullmann Algorithmus Die Herausforderung bei der average-case Analyse des Nemhauser/Ullmann Algorithmus ist die Anzahl der dominierenden Mengen von Elementen mit zufälligen Nutzwerten abzuschätzen, und auch festzustellen, wie diese Anzahl von den Beziehungen zwischen Gewichten und Profiten beeinflußt wird. In [1] untersuchen B.Vöcking und R.Beier verschiedene zufällige Eingabemodelle des Rucksackproblems. Dabei haben sie Gewichte von Objekten und die Kapazität des Rucksacks vom Gegner, und Nutzen nach einer Wahrscheinlichkeitsverteilung gewählt. Sie haben bei diesen Modellen die erwartete Anzahl der dominierenden Mengen und daraus auch die average-case Laufzeit des Nemhauser/Ullmann Algorithmus abgeschätzt. 2.1 Gleichverteilung Es wird angenommen, dass die Nutzen unabhängig, gleichmäßig zufällig aus dem Intervall [0,1] ausgewählt sind. Die Gewichte von Objekten sind immer vom Gegner gewählt. Das folgende Theorem gibt eine obere Schranke der geschätzten Anzahl der dominierenden Mengen im Nemhauser/Ullmann Algorithmus. Theorem 2.1. Seien die Gewichte beliebige positive Zahlen und die Nutzwerte zufällig gleich verteilt aus dem Intervall [0,1]. Und sei q die Anzahl der dominierenden Mengen aus 3 allen n Objekten. Dann ist E [ q ] = O ( n ) . n Beweis: Sei m = 2 und S 1, …, S m die ansteigend nach ihren Gewichten geordnete Folge aller Teilmengen von [ n ] . Sei p u = ∑i ∈ S p i der Nutzen der Teilmenge S u , u P u = max v ∈ [ u ] p v . Sei P 0 = 0 . Für alle 2 ≤ u ≤ m werde ∆u = P u – P u – 1 definiert. Zu beachten ist, dass S 1 immer eine dominierende Menge ist. Für jede dominierende Menge u ist ∆u > 0 . Bei einer graphischen Darstellung der entsprechenden Treppenfunktion f n ist ∆u die Höhe der Treppe. Das folgende Lemma zeigt, dass geschätzte Steigung des Profits der dominierenden Men–2 gen Ω ( n ) ist. Anders gesagt, die geschätzte Höhe der Treppen in der entsprechenden Treppenfunktion f n ist ziemlich groß und polynomiell von n. 1 Lemma 2.2. Für jede u ∈ [ m ], E [ ∆u ∆u > 0 ] ≥ ---------------2 . 32 ⋅ n 7 8 2 Average-case Analyse des Nemhauser-Ullmann Algorithmus Beweis: Sei u beliebig, aber fest u ∈ [ m ] . Wenn man die Definition für Erwartungswert einer Variablen x: E [ x ] = ∑ Pr [ x = d ] ⋅ d benutzt und ein bestimmtes d aussucht, zum 2 Beispiel d = 1 ⁄ ( 16 ⋅ n ) , giltd die Ungleichung 1 1 E [ ∆u ∆u > 0 ] ≥ Pr ∆u ≥ ----------2- ∆u > 0 ⋅ -----------2 . 16n 16n (2.1) Infolgedessen reicht es uns jetzt zu zeigen, dass 1 1 Pr ∆u ≥ -----------2 ∆u > 0 ≥ --- . 2 16n (2.2) Für jede v ∈ [ u – 1 ] werden zwei Mengen: X v = S u \S v und Y v = S v \S u definiert. Es gilt die folgende Gleichung 1 ∆u > 0 Pr ∆u ≥ ----------2 16n = Pr ∀v ∈ [ u – 1 ] ÷ ∑ i ∈ Su pi ≥ ∑ i ∈ Sv 1 ∀v ∈ [ u – 1 ] p i + ---------2 16n (2.3) ∑i ∈ S u pi > ∑ i ∈ Sv pi Hierbei wurde die Definition für ∆u benutzt. Jetzt kann man die gleichen Elemente aus den Summe in beiden Teilen der Ungleichungen weglassen und nur die Elemente aus den Mengen X v und Y v späterhin beachten. Also Gl. (2.3) = = Pr ∀v ∈ [ u – 1 ] ÷ ∑ i ∈ Xv pi ≥ ∑ 1 ∀v ∈ [ u – 1 ] p i + ----------2 i ∈ Yv 16n ∑i ∈ X u pi > ∑ i ∈ Yv pi Hier wird eine stetige Wahrscheinlichkeitsverteilung betrachtet, deshalb wird die Entspannung der strengen Ungleichheit in den Bedingungsteilen die Wahrscheinlichkeit nicht beeinflussen. Ohne Beschränkung der Allgemeinheit gilt S u = [ k ] . Man unterscheidet zwei Klassen von zufälligen Variablen, nämlich { p 1, …, p k } und { p k + 1, …, p n } . Zu beachten dabei ist, dass die X v alle Teilmengen der ersten Klasse sind und Y v Teilmengen der zweiten Klasse sind. Vorübergehend nimmt man an, dass die Variablen der zweiten Klasse beliebig aber fest sind. Unter dieser Annahme werden die Variablen der ersten Klasse untersucht. Es ist unwahrscheinlich, dass eine von den Variablen der ersten Klasse –1 viel kleiner als n ist. 1 ∀v ∈ [ u – 1 ] ÷ Pr ∃i ∈ [ k ] ÷ p i ≤ ----∑j ∈ X v p j ≥ ∑j ∈ Y v p j 4n 1 ∀v ∈ [ u – 1 ] ÷ Pr p i ≤ ----∑j ∈ X v p j ≥ ∑j ∈ Y v p j 4n 1 1 1 "" ≤ ∑ Pr p i ≤ ------ ≤ k ⋅ ------ ≤ --- . 4n 4n 4 i ∈ [k] "" ≤ ∑ i ∈ [k] (2.4) 2.1 Gleichverteilung 9 Also, die Wahrscheinlichkeit, dass eine von den 1 Variablen der ersten Klasse kleiner als ------ ist 4n nicht größer als 1/4. Diese Wahrscheinlichkeit ist klein genug, deswegen wird ab jetzt ange1 nommen, dass p i ≥ ------, ∀i ∈ [ k ] . 4n y 1 Α 1−ε Β Βε Sei L v = ∑i ∈ X p i der Gesamtgewinn der v Menge X v . 1 L v ≥ ------, ∀v ∈ [ u – 1 ] , weil X v mindestens ein 4n 1 Bild 2.1 Beispiel für 21 Element, das nicht kleiner als ------ ist, besitzt. dimensionale Polytope 4n Jetzt nimmt man an, dass die Variablen der ersten Klasse fixiert sind, und die Variablen p 1, …, p k werden nicht mehr beachtet. Unter dieser Berücksichtigung analysiert man die folgende Wahrscheinlichkeit: 1−ε x 1 ∆u > 0 . Pr ∆u < ----------2 16n (Zur Erinnerung: Das Ziel 1 1 ∆u > 0 ≥ --- .) Pr ∆u ≥ ----------2 2 16n ist die folgende (2.5) Formel zu beweisen 1 1 Man beweist, dass die Wahrscheinlichkeit aus Gl. (2.5) nicht größer als --- statt --- ist. Jetzt 4 2 wird die Gl. (2.3) unter Benutzung der Definition von L v geschreiben als Pr ∀v ∑ 3 1 ∀v p i ≤ L v ≥ --p i ≤ L v – ---------∑ 2 4 i ∈ Yv i ∈ Yv 16n (2.6) 1 für beliebiges aber festes L v ≥ ------ und Variablen p k + 1, …, p n . Aus diesen aus n-k Variablen 4n wird Vektor gebildet und den wird zufällig gleichverteilt aus einem (n-k)-dimensionalen Raum ausgewählt. Man versucht weiter durch eine geometrische Interpretation das Problem zu lösen. Man wechselt zu den (n-k)-dimensionalen Polytopen A und B, die wie folgt definiert: 1 n–k A = ( p k + 1 × … × p n ) ∈ [ 0, 1 ] ∀v ∈ [ u – 1 ] ∑ p i ≤ L v – -----------2 i ∈ Yv 16n n–k B = ( p k + 1 × … × p n ) ∈ [ 0, 1 ] ∀v ∈ [ u – 1 ] ∑ pi ≤ Lv . i ∈ Yv (2.7) 10 2 Average-case Analyse des Nemhauser-Ullmann Algorithmus Das Bild 2.1 zeigt ein Beispiel für 2-dimensionale Polytope. Die Polytope sind (n-k)dimensional, deswegen spricht man weiter von Volumen des Polytopen. Bei der Gleichverteilung ist die Wahrscheinlichkeit, dass ein Wert in einem bestimmten Bereich liegt, identisch zu dem Volumenanteil dieses Teilbereiches zu dem Gesamtvolumen. Deswegen kann man die Gl. (2.6) folgendermaßen umschreiben: ( A ∩ B ) vol ( A ) 1 ∆ ( u > 0 ) = vol ---------------------------- = ---------------Pr ∆u ≥ ----------2 vol (B) vol ( B ) 16n (2.8) 3 Also, man muß jetzt zeigen, dass vol ( A ) ≥ --- ⋅ vol ( B ) ist. 4 Das Verhältnis vol(A)/vol(B) ist von der Facettenanzahl des Polytopen abhängig. (Eine Facette von Polytop P ist definiert als eine maximale nicht leere echte Seitenfläche von P.) Diese Anzahl kann aber exponentiell sein. Die Idee ist dabei folgende: Das Polytop B gleichmäßig in allen Dimensionsrichtungen so zu schrumpfen bis es von dem Polytopen A beinhaltet wird. Man bezeichnet das neue Polytop als Bε . n–k Bε = ( p k + 1 × … × p n ) ∈ [ 0, 1 – ε ] ∀v ∈ [ u – 1 ] ∑ p i ≤ ( 1 – ε )L v v ∈ Yv (2.9) Offensichtlich ist B = B 0 , und im allgemeinen kann Bε durch Schrumpfen von B in jeder Dimension um den Faktor 1 – ε erhalten werden. Das Polytop B hat n-k Dimensionen, es n–k folgt daraus, dass vol ( B ε ) = ( 1 – ε ) ⋅ vol ( B ) . Jetzt muß man zeigen, dass ∃ε ÷ ( B ⊇ A ⊇ B ε ) . Aus den Definitionen für die Polytopen A 1 und Bε (Gl. (2.7),Gl. (2.9)) folgt folgende Ungleichheit ( 1 – ε )L v ≤ L v – -----------2 . Nach dem 16n 1 -. Vereinfachen bekommt man ε ≥ -------------------2 16n ⋅ L v 1 Weil L v ≥ -----4n 1 ist, wird das gesuchtes ε gefunden. Bei dem ε = ------ ist B ε ⊆ A . Es folgt 4n 3 n–k vol ( A ) ≥ vol ( B ε ) = ( 1 – ε ) ⋅ vol ( B ) ≥ ( 1 – ε ⋅ ( n – k ) ) ⋅ vol ( B ) ≥ --- ⋅ vol ( B ) . (2.10) 4 Das Lemma 2.2 ist damit bewiesen. Diese Lemma zeigt, dass erwartete Steigung des Nut1 ist. zen der dominierenden Mengen nicht kleiner als ----------2 32n Andererseits, der erwartete erreichbare Nutzwert der Rücksackbepackung aus allen Objekten ist n/2. Aus dem Lemma 2.2 folgt, dass erwartete Höhe der Treppen der entsprechenden 2 Funktion f n nicht kleiner als 1 ⁄ 32n ist. Aus diesen zwei Fakten ist klar, dass erwartete Anzahl der Treppen dieser Treppenfunktion und auch die Anzahl der dominierenden Men3 gen höchstens 16n sein muß. Die folgende Berechnung beweist es formal E [ Pm ] = P1 + ∑ m u=2 E [ ∆u ] = m ∑u = 2 Pr [ ∆u > 0 ] ⋅ E [ ∆u ∆(u > 0)] (2.11) 2.2 Andere Verteilungen ≥∑ 11 1 Pr [ ∆u > 0 ] ⋅ ----------2- . u=2 32n m n Andererseits ist E [ P m ] = --- und somit 2 E[q] = 1 + ∑ m u=2 2 3 Pr [ ∆u > 0 ] ≤ 1 + 32n E [ P m ] ≤ 16n + 1 . (2.12) Die zusätzliche 1 steht hier wegen der Menge S 1 , die immer dominierend ist. Damit ist das Theorem 2.1 bewiesen. 2.2 Andere Verteilungen Average-case Analyse versucht etwas über das typische Verhalten von Algorithmen auszusagen, wobei typisch sich auf Eingaben aus echten Anwendungen bezieht. Über die Eingaben muss man für die Analyse gewisse Annahmen machen. Diese Annahmen sind die unterschiedlichen Wahrscheinlichkeitsmodelle für die Eingaben des Algorithmus. Solche Eingabemodelle können allerdings zu unterschiedlichen Laufzeiten des untersuchten Algorithmus führen. Die Besonderheit der Average-case Analyse des Nemhauser/Ullmann Algorithmus von B.Vöcking und R.Beier aus [1] ist, dass ihre Analyse für ganz viele Verteilungen funktioniert und das gleiche oder ähnliches liefert. Außerdem, müssen die Eingaben des Algorithmus - die Profite nicht mal alle nach der gleichen Wahrscheinlichkeitsverteilung ausgewählt werden. Man kann die Profite ganz wild mischen und jeden Wert nach einer anderen kontinuierlichen beschränkten Wahrscheinlichkeitsverteilung ziehen. 2.2.1 Exponentielle und andere langschweifige Verteilungen – ax Eine Zufallsvariable x mit der Dichtefunktion f ( x ) = ae , x > 0 heißt exponentiell verteilt mit Parameter a. Wenn Nutzwerte nach dem exponentiellen Gesetz gewählt sind, dann 2 3 3 gilt E [ q ] = O ( n ) und E [ T ] = O ( n ) , wobei O ( n ) die obere Schranke der erwarteten Laufzeit des Algorithmus repräsentiert. Diese obere Schranke kann für alle beschränkten stetigen Verteilungen verallgemeinert werden. Als Schweife einer Verteilung bezeichnet man die extremen Regionen der Verteilung. Bei einer langschweifigen Verteilung sinken die Schweife der Dichtefunktion sehr langsam bis auf null, die Verteilung hat dabei längere Ausläufer. Bei einer kurzschweifigen Verteilung dagegen klingen die Schweife sehr schnell ab. Solche Verteilung hat kürzere Ausläufer. Man kann stetige Wahrscheinlichkeitsverteilungen nach ihrer Schweiflänge im Vergleich mit der Schweiflänge der exponentiellen Verteilung klassifizieren. Wenn exponentielle Funktion die untere Schranke einer Verteilungsfunktion ist, dann ist diese Verteilung langchweifig. Und wenn exponentielle Funktion die obere Schranke einer Verteilungsfunktion ist, dann ist diese Verteilung kurzschweifig. 12 2 Average-case Analyse des Nemhauser-Ullmann Algorithmus Die Pareto-Verteilung ist ein typisches Beispiel von langschweifigen Verteilung. Eine Zufallsvariable x mit der Dichtefunktion f ( x ) = ax Für Pareto-Verteilung a 3 E [ T ] = O ------------ n . a–1 mit Parameter a>1 –a–1 , x ≥ 1 heißt Pareto-verteilt. a 2 ist E [ q ] = O ------------ n und a–1 2.2.2 Verteilungen mit nicht steigender Dichte 2 Für diese Verteilungen wurde die feste untere Schranke E [ q ] = Ω ( n ) bewiesen. Diese Schranke ist scharf, man kann kein besseres Ergebnis dafür zeigen. 2.2.3 Allgemeine kontinuierliche Verteilungen Es wird angenommen, dass die Nutzwerte nach beliebigen, möglicherweise verschiedenen Wahrscheinlichkeitsverteilungen ausgewählt sind. Seien µ der maximale Nutzwert von allen Elementen und φ die maximale Dichte, d.h. der maximale Wert einer Dichtefunktion, 4 5 die die Profitenverteilung beschreibt. Dann gilt E [ q ] = O ( µφn ) und E [ T ] = O ( µφn ) . Das Ergebnis erlaubt den Einfluß des Zufälligkeitsgrades auf die Komplexität des Rucksack-Problems zu untersuchen. Normiert man die Profitenverteilungen, in dem man alle 1 Nutzwerte mit --- multipliziert, wird der maximale erwartete Profit gleich 1 sein. Die obere µ 4 Schranke für der Anzahl der dominierenden Mengen ist in diesem Fall E [ q ] = O ( φn ) . Nach dieser Normierung kann die maximale Dichte φ als Parameter für vorhandene Zufälligkeit gesehen werden. Für φ → ∞ strebt die Zufälligkeit in der Profitenbeschreibung n gegen null. In diesem Fall beträgt die geschätzte Anzahl der dominierenden Mengen 2 . Dagegen, wenn φ von einem konstanten Term beschränkt ist, ist die geschätzte Anzahl der dominierenden Mengen polynomiell von n. Dieses Ergebnis erlaubt die Korrelation zwischen Gewichten und Profiten zu untersuchen. Es wird davon ausgegangen, dass beides - Gewichte und Profite - von seinem Gegner aus dem Intervall [0,1] gezogen werden. Aber die vom Gegner festgelegten Profite können mit einer zufälligen Störung behaftet sein. Je nach Stärke der Störung hat der Gegner mehr oder weniger Einfluss auf die Profitenauswahl. Die Komplexität von Rucksack-Problem wird sich dadurch verändern. Wenn keine Störung vorhanden ist, können die Profite gleich mit n den Gewichten ausgewählt werden, so dass die Anzahl der dominierenden Mengen 2 wird. Bei starker Störung der Profite bekommt man nur polynomiell viele dominierende Mengen. Je stärker die Störung, desto mehr nähert man sich dem zufälligen Fall an. Die Profite werden nach der Gauß-Normalverteilung mit der Standartabweichung σ gestört, dass heißt, es wird auf jeden Profit eine Zufallszahl draufaddiert, die nach der Gauß-Verteilung gezogen worden ist. Anschließend wird der Erwartungswert ausgerechnet. Die Standartabweichung σ gibt den Grad der Stärke der Störungen sowie die Auswirkung des Zufalles auf 4 das Ergebnis an. Für solche gestörte Eingaben zeigt B.Vöcking, dass n 4 E [ q ] = O ----- + n gilt. σ 3 Zusammenfassung Das 0/1 Rucksack Problem ist NP vollständig. Das heißt, es gibt keinen Algorithmus, der das Problem in Polynomzeit löst, solange nicht P = NP ist. Sogar für randomisierten Algorithmen ist die worst-case Laufzeit exponentiell. Man beobachtet durch Experimente aber, dass bei manchen zufällig erzeugten Eingaben kann das Problem sehr effizient gelöst werden. Aber es gab vorher keinen Beweis dafür. R.Beier und B.Vöcking in [1] präsentieren die erste average-case Analyse des Problems und den ersten formalen Beweis, dass 0/1 Rucksack in erwartet polynomieller Zeit gelöst werden kann. Das theoretische Ergebnis gewinnt noch dadurch an Bedeutung, dass man einen exakten Algorithmus von Nemhauser-Ullmann untersucht hat und keinen randomisierten. Zudem lassen R.Beier und B.Vöcking noch mehrere stochastischen Modelle zu. Literaturverzeichnis [1] Beier, R.; Vöcking, B.: Random Knapsack in Expected Polynomial Time, (STOC’03),San Diege USA. [2] Vöcking, B.: Randomized Algorithms & Probabilistic Analysis, Lecture notes, Universität Dortmund, 2002 13 14