Kurs:Algorithmen und Datenstrukturen/Vorlesung/Opimierung Grundlagen

Aus testwiki
Version vom 27. Februar 2016, 10:23 Uhr von imported>Dirk Hünniger
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Vorlage:Navigationsleiste/Algorithmen und Datenstrukturen


Grundlagen der Optimierung

Auf dieser Seite gibt es eine Einführung in das Thema Optimierung.

Die (Mathematische) Optimierung beschreibt eine Familie von Lösungsstrategien zur Maximierung/Minimierung einer Zielfunktion unter Nebenbedingungen. Viele der bisher untersuchten Probleme können als Optimierungsproblem modelliert werden. Zum Beispiel das Kürzeste Wege Problem: Minimiere die Länge eines Pfades unter der Nebenbedingung, dass der Pfad zwei gegebene Knoten verbindet. Oder das Rucksackproblem: Maximiere den Gesamtnutzen der Gegenstände unter der Nebenbedingung, dass die Kapazität des Rucksacks eingehalten wird. Oder das Flussprobleme: Maximiere den Fluss unter der Nebenbedingung, dass Kantenkapazitäten eingehalten werden.

Algorithmen wie Djikstra und Ford-Fulkerson sind domänenspezifische Algorithmen zur Lösung ihrer jeweiligen Optimierungsprobleme. Mathematische Optimierungsverfahren sind allgemeine Verfahren, die auf eine Vielzahl von Problemen anwendbar sind, dabei aber eventuell nicht immer so effizient wie speziellere Algorithmen sind.

Optimierung ist eine weites Feld, wir werden uns in dieser Vorlesung auf einen kleinen Ausschnitt konzentrieren:

  • Grundlagen der Optimierung
  • Kombinatorische Optimierung
  • Lineare Optimierung
  • Das Simplex‐Verfahren

Begriffe

Ein allgemeines (reelles) Optimierungsproblem ist gegeben durch P: Minimiere f(x)unter der Nebenbedingung xXmitXnundf:X. f ist dabei die Zielfunktion. xn heißt zulässig für P, falls xX. X ist die zulässige Menge und xX heißt globales Minimum von P, falls xX:f(x)f(x). Äquivalent gilt P: Minimiere f(x) unter der Nebenbedingung xX und P': Maximiere -f(x) unter der Nebenbedingung xX.

Beispiel Gewinnmaximierung

Eine Firma produziert zwei verschiedene Waren. Ware x1 erbringt einen Gewinn von einem Euro. Ware x2 erbringt einen Gewinn von 6 Euro.

Frage: Welches Verhältnis von x1 und x2 führt zum größten Gewinn?

Nebenbedingungen:

Die Firma kann täglich maximal 200 Einheiten der Ware x1 produzieren und maximal 300 Einheiten der Ware x2 .

Insgesamt kann die Firma maximal 400 Einheiten pro Tag produzieren.

Zuerst wird nun die Zielfunktion formuliert: Maximiere Gewinn (1 Euro pro x1, 6 Euro pro x2) : maxx1+6x2.

Anschließend werden die Nebenbedingungen formuliert.

Maximal 200 Exemplare von x1 x1200

Maximal 300 Exemplare von x2 x2300

Insgesamt maximal 400 Exemplare x1+x2400

Es müssen Waren produziert werden x1,x20

Der Punkt (0,0)2(x1=0,x2=0) ist zulässig mit Funktionswert 0 maxx1+6x2

Der Punkt (100,200)2 ist zulässig mit Funktionswert 1400 x2200

Der Punkt (100,300)2 ist zulässig mit Funktionswert 1900 und globales Maximum x1+x2400

Der Punkt (200,300)2 ist unzulässig x1,x20

Dieses Beispiel ist ein lineares Optimierungsproblem.

Beispiel Kürzester Weg

Beispielgraph
Beispielgraph

Es soll die Distanz von s nach y bestimmt werden. Dafür sollen folgende Variablen und Bezeichner betrachtet werden.

  • ea,b{0,1}: die Kante von a nach b ist Teil des kürzesten Pfades von s nach y für alle Kanten (a,b)
  • wa,b : Das Gewicht der Kante von a nach b, zum Beispiel ws,u=10
  • Die Zielfunktion ist mines,uws,u+es,xws,x+...+ev,ywv,y

Es gelten folgende Nebenbedingungen:

  1. Die Gewichte müssen wie im Graph sein ws,u=10,ws,u=5,...
  2. Alle Kanten (a,b) mit ea,b=1 müssen einen Pfad von s nach y bilden:
    1. Es gibt genau eine Kante mit Startpunkt s: es,u+es,x=1
    2. Es gibt genau eine Kante mit Zielpunkt y: ev,y+ex,y=1
    3. Für jeden anderen Knoten gilt, falls eine Kante in diesen Knoten reinführt, muss er auch wieder eine rausführen, zum Beispiel für x:es,x+eu,x=ex,u+ex,y

Beachte durch die Minimierung werden Kreise auf dem Pfad automatisch verhindert.

Vollständiges Optimierungsproblem für ein kleines Beispiel von u nach x:

Kürzester Weg
Kürzester Weg


mineu,vwu,v+eu,wwu,w+ev,wwv,w+ew,xww,x

wu,v=4

wu,w=6

wv,w=1

ww,x=2

eu,v+eu,w=1

ew,x=1

eu,v=ev,w

eu,w+ev,w=ew,x

eu,v,eu,w,ev,w,ew,x{0,1}

Das Problem der Kürzesten-Wegfindung ist ein ganzzahliges Optimierungsproblem, allgemeiner ein kombinatorisches Optimierungsproblem.

Problemklassen

Optimierungsprobleme sind unterschiedlich schwer lösbar max,minf(x1,...xn)

  • lineare Probleme: f,h sind linear, z.B. f/x,y)=3x+4y. Diese sind einfach zu lösen h1(x1,...,xn)b1
  • Quadratische Probleme: z.B. f(x,y)=x2+xy sind auch noch einfach zu lösen. hm1(x1,...,xn)bm1
  • Konvexe Probleme: z.B. min f(x,y)=log(x)+log(y) sind schon schwerer zu lösen. i1(x1,...,xn)<c1
  • Nicht-konvexe Probleme: z.B. f(x,y)=xsin(x) sind ziemlich schwer zu lösen. im2(x1,...,xn)<cm2
  • Ganzzahlige Probleme: x1,...,xn sind überraschenderweise schwerer zu lösen als reelle Probleme. Etwa allgemeiner handelt es sich hier um kombinatorische Probleme (diskrete Elemente, nicht notwendigerweise Zahlen)
  • Weitere Parameter
    • Restringierte Probleme: zulässige Menge ist beschränkt
    • Unrestringierte Probleme: zulässige Menge ist unbeschränkt

Hier werden wir uns aber nur mit linearer Optimierung befassen.


Discussion