Ein Server hat einen Plattendurchsatz von 100MB/s, eine Netzwerkkapazität von 1000MBit/s und einen Hauptspeicher mit 8000MB. Er soll Jobs dreier verschiedener Arten verarbeiten. Jobs vom Typ 1 haben die höchste Priorität von 20 und benötigen 8MB/s Plattendurchsatz, 50MBit/s vom Netzwerk und 50MB Speicher (wir unterscheiden hier nicht zwischen mittlerer und Peakauslastung). Von Typ 1 stehen 10 in der Queue. Die 5 Jobs vom Typ 2 haben Priorität 8 und benötigen 5MB/s, 2MBit/s und 800MB. Außerdem gibt es noch 50 Jobs vom Typ 3 mit Priorität 2, welche 2MB/s Platte und 40MB Speicher benötigen. Alle Jobs dauern gleich lange. Wir möchten die Jobs so auswählen, dass die Summe der Prioritäten maximal wird. Formulieren Sie die Aufgabe als lineares Programm.
Bringen Sie die Formulierung in die Standardform. Definieren Sie
die Matrix A sowie auch die Vektoren b und c in
aufgabe.py
.
Lösen Sie das Problem mit scipy.optimize.linprog
.
Nutzen Sie die simplex Methode und als Bounds 0, None
.
Implementieren Sie die Funktion
run_simplex_method
.