|
Hallo,
ich habe von meinem Lehrer die Aufgabe bekommen, ein Programm in Java zu schreiben welches eine Lineare Optimierung durchführt. Es geht nicht um das Java Programm, sondern erstmal um die rein schriftliche rechnerische Lösung.
Jedes Jahr gibt es bei uns an der Schule Projekttage. Dieses Jahr soll jeder Schüler bis zu Prioritäten für unterschiedliche Projekte angeben können. Nach Ablauf der Anmeldefrist, soll mithilfe einer Linearen Optimierung jedem Schüler die möglichst höchste Priorität zugewiesen werden.
Ich habe mir das erstmal nur mit zwei Prioritäten die Rechnung vorgestellt, habe aber scheinbar einen Fehler drin, wenn ich es nämlich grafisch löse, habe ich meinen Schnittpunkt bei und . Nur was soll ich jetzt mit dem Schnittpunkt anfangen? (siehe Bild)
Ist schon etwas beim Ansatz falsch oder fällt euch eine andere Methode zur Lösung ein?
Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert): "Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen." |
|
pivot
19:02 Uhr, 17.02.2017
|
Hallo,
eine Bedingung für ein vernünftiges Ergebnis ist das du Binärvariablen verwendest. Ich habe aber dein Modell nicht ganz verstanden. Wie sind x und y überhaupt definiert ? Diese Frage ist die aller, aller wichtigste bei der Formulierung eines Modells.
Ich habe mir das jetzt so vorgestellt. Es gibt jeweils ein Schüler der eine bestimmte Bewertungskombination von Projekten angibt. Daneben gibt es noch weitere Bewertungskombinationen. Verschiedene Schüler können die gleiche Bewertungskombination haben. Beispielhaft habe ich jetzt 3 Bewertungskombinationen () und damit auch 3 Schüler. Die Anzahl der Projekte () ist 4.
Die erste Zeile bedeutet, dass 1 Schüler die Projekte 2 und 4 bevorzugt. Ich für meinen Teil würde bei 4 Projekten vier verschiede Bewertungspunkte vorschreiben die jeweils einmal verwendet werden müssen, z.B. 1,2,3,4.
i ist der Index für die Projekte
j ist der Index für die Bewertungskombinationen
Jeder Schüler darf nur einem Projekt zu geordnet werden.
Dafür benötigt man eine Binärvariable (). Sie kann nur den Wert 1 oder 0 annehmen. Sie nimmt den Wert 1 an, wenn der Schüler mit dem Bewertungsprofil i dem Projekt j zugeordnet ist. Ansonsten hat sie den Wert 0.
Die mathematische Formulierung ist
Für ist die ausgeschriebene Version Insgesamt sind es 3 Gleichungen.
Man kann jetzt noch Höchst- oder Mindestanzahl an Zuordnungen von Schülern zu einem Projekt festlegen. Zum Beispiel darf jedem Projekt höchstens 2 Schüler zu geordnet werden.
Für Projekt j=1 is die ausgeschriebene Nebenbedingung
Insgesamt wären es hier 4 Gleichungen.
Eine Mindestbedingung würde in diesem Beispiel nicht greifen, da es weniger Schüler gibt als Projekte bzw. das Programm hätte keine zulässige Lösung.
Die Zielfunktion ist dann
Dabei ist jeweils die Bewertung des Schüler für das Projekt .
Grüße
pivot
|
Femat
16:53 Uhr, 20.02.2017
|
Mir würde eine Tabelle wie folgt und ein gesundes Mass an Menschenkenntnis reichen, um eine Zuordnung zu realisieren.
|