Systematische Suche SS10

Aus ProgrammingWiki
< AuK
Archivierte Version vom 2010-04-13T11:32:44+00:00. Aktuelle Version

Inhaltsverzeichnis

Autoren:
Daniel Horbach
Richard Hettmann


Rucksackproblem

Das Rucksackproblem ist ein Optimierungsproblem der Kombinatorik. Aus einer Menge von Objekten, die jeweils ein Gewicht und einen Wert haben, soll eine Teilmenge ausgewählt werden, deren Gesamtgewicht eine vorgegebene Gewichtsschranke nicht überschreitet. Unter dieser Bedingung soll der Wert der ausgewählten Objekte maximiert werden. Zur Veranschaulichung dieses klassischen Problems wird auch gerne der Dieb herangezogen, der nur einen kleinen Teil der Beute im Rucksack abtransportieren kann und nun versucht, den größtmöglichen Wert herauszuschlagen.


Grundsätzliches

Gegeben sei eine nichtleere Menge von n Gegenständen, von denen jeder einen Wert w_i und ein Gewicht g_i. Da unser Rucksack nicht unbegrenzt belastbar ist, brauchen wir noch die Aufnahmekapazität K, welche keinesfalls durch das aktuelle Gesamtgewicht überschritten werden darf.

Unser Ziel ist es nun, den Rucksack so zu füllen, dass die Wertsumme der eingepackten Gegenstände maximal ist und die Aufnamekapazität nicht überschrittn wird.

Man unterscheidet diese zwei grundsätzlich veschiedenen Arten von Rucksackproblemen:


Bruchteilrucksackproblem

Ein beliebiger Teil t eines jeden Gegenstandes darf eingepackt werden.

t , 0 \% <= t <= 100 \%


0/1 Rucksackproblem

Jeder einzelne Gegenstand wird entweder vollständig (1) oder garnicht (0) in den Rucksack aufgenommen


Wir befassen uns nur mit dem 0/1 Rucksackproblem


Ziel

Unser Ziel ist das Erreichen der maximalen Wertsumme ohne die Aufnahmekapazität zu überschreiten.

\sum \limits _{i =1}^n {x_i w_i} \to max , wobei \sum \limits _{i =1}^n {x_i g_i} \leq K , mit x_i \in \{0,1\}


Teilmengen-Summen-Problem

Das Teilmengen-Summen-Problem ist ein Spezialfall des Rucksackproblems. Aus einer Menge natürlicher Zahlen M wird eine Teilmenge gesucht, deren Elementensumme möglichst nahe an die Kapazitätsgrenze K herankommt und diese auch erreichen darf. Dieser Spezialfall ergibt sich nur dann, wenn Gewicht und Wert eines jeden Gegenstandes zahlenmäßig überein stimmen.

M = \{ a_i | 1 \leq i \leq n und a_i, n \in N \}

g_i = w_i , mit g_i,w_i \in N