Simplex < Operations Research < Diskrete Mathematik < Hochschule < Mathe < Vorhilfe
|
Aufgabe | In einem Artikel von 1969 habe ich gefunden, dass ein damaliger Computer bei der Berechnung eines linearen Programms mit Hilfe der Simplexmethode in die Knie gegangen ist, wenn das lineare Programm 1000 Nebenbedingungen hatte. |
Leider habe ich keine Quelle gefunden, wo so eine Abschätzung für heute drinsteht. Kennt jemand eine zuverlässige Quelle, bei wie vielen Nebenbedingungen auch ein aktueller Computer nicht in vertretbarer Zeit zu einem Ergebnis kommt?
Schönen Gruß
___________________________________
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 19:04 Mi 23.05.2007 | Autor: | piet.t |
Hmm, gute Frage....
Ich gebe da einfach einmal ein fröhliches "kommt drauf an" als Antwort.
Denn:
- Was ist ein aktueller Computer? Ein 1000-CPU-Supercomputer in einem Rechenzentrum oder das, was ich unter dem Schreibtisch stehen habe?
- Was ist "vertretbare Zeit"? Wird der Simplex pro Iterationsschritt in einem MIP aufgerufen (und damit vielleicht ein paar 1000 mal bis zur Lösung des MIP), dann wird das sicher etwas anderes bedeuten, als wenn ein komplexes Planungsproblem zu lösen ist, wo die Kiste ruhig auch mal eine Nacht durchnudeln kann.
Ich denke, eine wirklich harte Grenze wird sich hier nicht finden lassen. Abgesehen von der Rechenleistung moderner CPUs hat sich natürlich auch die Speicherausstattung und die größe des Adressierbaren Speichers deutlich vergrößert. Durch Zwischenspeichern von Werten auf Festplatte kann man die Grenze, ab der einem der Speicher ausgeht praktisch beliebig weit hinausschieben, allerdings geht das natürlich massiv auf die Problemlösungszeit.
Darüberhinaus haben sich auch die Implementierungen des Simplex deutlich verbessert und nutzen Eigenschaften wie sparsity (viele Nullen im Problem) oder supersparsity (viele gleiche Werte im Problem) deutlich effektiver. Auch solche Eigenschaften sind (neben der Anzahl der Restriktionen) wesentlich für die effiziente Lösbarkeit des LP.
Allerdings lässt sich sicher sagen, dass die Grenzen heute um mehrere Größenordnungen höher liegen.
In der NETLIB-Sammlung (eine Sammlung von Standard-LP-Problemen z.B. zum Testen von Solvern) gibt es Probleme mit 100000 Restriktionen und 150000 Variablen (bei 500000 Einträgen [mm] \not= [/mm] 0, Problem KEN-18), die sicher in vertretbarer Zeit lösbar sind.
Um die Größenordnung zu haben: in dem Artikel, den ich gerade bei de Hand habe testet der Autor seinen Lösungsalgorithmus (allerdings eine Variante des dualen Simplex-Algorithmus) mit einen PentiumIII50 und 256MB RAM. Ein Problem der Größenordnung 23000x15000 löst er hier in ca. 500 sec.
Das war zwar nicht ganz Deine Frage, aber vielleicht hilft's weiter...
Gruß
piet
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:20 Di 29.05.2007 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|