|
IreneAdler |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.10.2009, 20:39
Titel: optimierungsproblem
|
|
Hallo Leute,
angenommen ich habe mehrere Mitarbeiter. Jeder Mitarbeiter hat seine Kosten und seine Leistung/Stunde. Ich kann über die Mitarbeiter frei verfügen und wenn sie arbeiten dann kosten sie mich was und ansonsten kosten sie nichts. jeder Mitarbeiter leistet stätig seine Effektivität. für jede stunde habe ich einen bestimmten bedarf an Leistung. der bedarf an Leistung muss immer gedeckt sein.
so weit kann ich das alles programmieren. [mache ich mit integer programming; bintprog()]
jetzt das problem:
ich habe einen gewissen kapazitätsfaktor für jeden mitarbeiter vorgegeben. z.B. Mitarbeiter A hat einen kapazitätsfaktor von 0,75. er muss also 0,75 der gesamtstunden arbeiten.
das krieg ich einfach nicht in code formuliert kann mit da jmnd helfen?
|
|
|
|
|
Titus |
Forum-Meister
|
|
Beiträge: 871
|
|
|
|
Anmeldedatum: 19.07.07
|
|
|
|
Wohnort: Aachen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.10.2009, 10:10
Titel:
|
|
Hallo,
das müsste doch eine lineare Ungleichung sein, oder? Also der Form A*x<=b. Füge zu A eine Zeile hinzu, in der -1 für alle Variablen "Stunde wird von Arbeiter X gearbeitet", und b muss dann entsprechend -0.75*Gesamtstunden sein (die "-" kommen, damit es eigentlich ein ">=" wird).
Titus
|
|
|
Gast |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.10.2009, 23:21
Titel:
|
|
Hallo Titus,
Dein Problem kann mittels "Linear Programming" (google,wikipedia) gelöst werden. Dazu gibt es verscheidene sehr effiziente Algorythmen wie Simplex-Method, Criss-Cross Method, denn grundsätzlich hast du folgendes Problem
maximiere c_T*x (also etwa totale Kosten. x_i=Anzal Stunden die Arbeiter i leistet, c_i = Kosten pro Stunde für Arbeiter i)
subject to A*x<=b (Bedingungen wie z.B.: nicht mehr als 40 Stunden in der woche oder mindestens 0.75 gesammtstunden etc (unendlich !!! viele Bedinungen möglich)
wenn du das nur auf die schnelle und nicht verallgemeinert lösen musst kannst du das z.b. im Excel sehr effizient (mit sehr wenig Aufwand -> solver mit constraints) lösen. Ansonsten einen der Algorythmen implementieren.
Viele Grüsse
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.10.2009, 23:28
Titel:
|
|
hab grade bemerkt, dass Matlab Linear programming auch unterstützt
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|