Simplex-Algorithmus < Numerik < Hochschule < Mathe < Vorhilfe
|
Hi,
ich muss ein Problem mithilfe des Simplex-Verfahrens lösen. Das soll in C++ geschehen.
Deswegen suche ich einen Quellcode für C++, mit dem ich den Simplex-Algorithmus in mein integrieren kann.
Kennt jemand eine solche Seite, wo ich den Quellcode finden kann?
Danke schon mal
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 17:45 Mo 27.08.2007 | Autor: | piet.t |
Hallo,
in der Linear Programming FAQ gibt es eine aufstellung "freier", also in der Regel auch quelloffener Simplex-Solver.
Ich habe die Aufstellung nur mal überflogen, aber es sind auch Projekte in C und in C++ dabei - vielleicht findest Du da ja etwas, das Du verwenden kannst.
Gruß
piet
|
|
|
|
|
Hi,
kann mir jemand mit dem Simplexalgorithmus helfen? Ich hab den Algorithmus implementiert, der bei Wikipedia beschrieben ist. Dummerweise handelt es sich dabei um ein Maximierungsproblem.
Ich brauche aber nun einen Algorithmus für eine Minimierung. Mit dem Vertauschen des Vorzeichens der Zielfunktion ist es dabei nicht getan, da ja auch später noch Bedinungen geprüft werden (Zielfunktsfaktor > 0, Maximaler Zielfunktionswert, etc.).
Kann mir jemand sagen, wie ich das schnell umschreiben kann?
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 11:30 Do 30.08.2007 | Autor: | dormant |
Hi!
Einfach die Zielfunktion mal minus eins nehmen. Der Grund, dass überall das Verfahren nur für Maximieren steht, ist dass man tatsächlich so einfach ein Maximierungs- in ein Minimierungsproblem überführen kann.
An welcher Stelle wird Zielfunktionsfaktor > 0 überprüft?
Gruß,
dormant
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 13:15 Do 30.08.2007 | Autor: | BertanARG |
Hi,
das steht genau auf Wikipedia. Ich beschreibs dir mal grob:
Am Anfang prüft man über alle Zielfunktionsfaktoren, ob diese noch >0 sind. Falls ja, wird für diese ein Simplexschritt ausgeführt. Das geschieht so lange, bis eben alle Faktoren <0 geworden sind.
Das Problem an meinem Compiler ist, dass ich durch Verändern der Werte 300 auf -300, und 500 auf -500 das Programm nicht mehr starten kann.
Dann erhalte ich die Meldung...
<Die Anweisung in "0x00401bca" verweis auf Speicher in "0xbe211538". <Der Vorgan "read" konnte nicht auf dem Speicher durchgeführt werden.
Was hat das zu bedeuten?
Danke schon mal
|
|
|
|