Hey, wie sehen bei euch so die Ergebnisse des E-Tests aus? Haben noch mehr das Problem, dass sie wegen des Tests nicht bestanden haben?
View 4 more comments
Ich finde, der Ausgang des Tests auch viel davon abhing, welche Aufgaben man bekommen hat. Die Aufgaben waren meiner Meinung nach nicht gleich schwer, sodass bestimmt einige mehr und andere weniger Glück hatten. Da fehlt mir dann ein bisschen die Fairness und Objektivität, denn eigentlich sollten alle e-Test-Varianten vergleichbar sein.
Krass, warum wart ihr alle so gut? 80% haben 13 oder mehr Punkte. Ich dagegen...
Ich stehe momentan ziemlich auf dem Schlauch bei Task 5 bei der Bestimmung aller minimalen Separatoren. Hat irgendjemand ein paar gute Tipps, die er mir mitgeben kann? Bis auf diese Constraints steht bei mir ansonsten alles bereits...
Wie fandet ihr den E-Test?
Was ist der Unterschied zwischen x[ij] und x[i,j]? Ist doch genau das gleiche?
Kann man den Etest um 23:58 Uhr noch beginnen, sodass man um 00:43 abgibt oder muss der Etest bis 23:59 beendet sein?
Gibt es irgendwo Infos, was so für Fragen in dem aktuellen E-Test kommen? Ähnlich wie der Demo-Test? Sämtlicher Vorlesungsinhalt bisher?
View 4 more comments
Sind alle Sessions relevant? Auch die neusten: Branch-and-Bound Branch-and-Cut ?
Ja schon, alle Sessions sind relevant. Ich fand den Test fair, aber nicht einfach. Man sollte sich die Vorlesungsvideos anschauen!
Just a quick summary of some example questions in eTest 1 i know of thus far: - how to convert knapsack longest path arc variables to binary knapsack problem decision variables - why the TSP model from Danzig, Fulkerson, and Johnson wont run well in a MIP solver - max path knapsack arc formulations, pretty much the same as in the lecture (skip, item, and waste arcs) - explanation of decision variables in compact cutting stock problem - techniques and concepts used in the flow based cutting stock problem, multiple choice (demand aggregation and some others) - describe how the flow based model for cutting stock works - multiple choice statements about symmetry in MIP models - add a constraint to the makespan scheduling problem allowing only a certain number of jobs from a set to run on machine k
Was studieren Teilnehmer dieses Kurses?
Ist die Schwierigkeit der aktuellen 3. Abgabe (University Timetabling) angemessen?
Hallo, Kann jemand bestätigen, dass er im dataset 5 0.2 als ZFW erhält? Wenn ja, welche Penalties werden getriggert in diesem Fall? Ich habe die letzten Tage mit der Fehlversuche verbracht und bin langsam verzweifelt. :D Vielen Dank!
View 13 more comments
Danke @Messer, das macht natürlich Sinn!
Ob das Model fertig wird oder nicht, hing bei mir davon ab, in welcher REIHENFOLGE ich meine Pair-Constraints hinzugefüge. Hab sie dann sortiert, damit die Reihenfolge immer gleich bleibt. Wurde leider nie fertig dann. Rückwärts sortieren hat dann eine Reihenfolge ergeben, bei der es halt immer fertig wird xD Ich denke für die Bewertung ist das nicht schlimm, Hauptsache es ist prinzipiell korrekt.
Geht es mir nur so oder habt ihr den Aufwand des Faches auch völlig unterschätzt? Hatte zuvor oft gelesen, dass das Fach relativ einfache 5CP inkl. guter Note bietet. Gute Note JA, aber auch ordentlicher Aufwand.
View 5 more comments
Mir wurde über POM erzählt, dass man mit wenig bis null Aufwand eine 1.0 bekommt. Das hat sich wohl grundlegend geändert :D
Ich bin Wirting, habe aber schon etwas mit Python gearbeitet. Aber mehr als Basics würde ich mir selber auch nicht zuschreiben.
Hi, kann mir jemand einen Tipp geben für die Nebenbedingung, die besagt, dass Vorlesungen an mindestens d_k unterschiedlichen Tagen stattfinden sollen? Ich komme da nicht auf einen Ansatz. Meine erste Idee war: Summe der Vorlesungen eines Kurses an einem Tag <= Quotient aus #Lectures und MinWorkingDays Aber so richtig funktionieren tut das nicht. Wäre für jede Hilfe dankbar. Vielen Dank
Da musst du wohl noch weitere Variablen einführen und verknüpfen
Kann mir wer einen kleinen Hint geben, wie ich meinem (pandas) csv reader sage, dass bei "#" ein neuer Header beginnt? Wenn ich die csv einfach nur einlese, habe ich ja nur ein nicht sauber sortiertes Dataframe. Bin bisschen am verzweifeln.
Du kannst zB mit 'if "#" in string_var:' testen, ob in deinem eingelesen Zeilenelement das "#" vorkommt.
Es gibt in pandas zB die Befehle startswith() oder contains()
Wie viele weitere Variablen habt ihr neben x_j_i eingeführt?
View 2 more comments
Ja, das Frage ich mich auch. Wie weiß mein Modell dann ob ich ein Krankenhaus schließe?
Ich habe für alle bereits bestehenden Krankenhäuser noch eine variable eingebaut, die sagt ob es geschlossen wird (1) oder nicht (0).
Hat jemand die Lösung für die Aufgabe in der Vorlesung "Good Models" (Minute 11:00)? Es geht um Bin-Packing und um die Implementierung der 3. Variante, Variablen zu linken. Das sind meine neuen Constraints: for j in bins: model.addConstr(quicksum(a[i] * x[i,j] for i in items) <= b) for i in items: for j in bins: model.addConstr(x[i,j] <= y[j]) Aber das Programm ist nicht schneller, sondern langsamer als das originale Programm für Bin-Packing. Beim alten Programm gab's ja nur diese Constraint (welche ich beim neuen Programm rausgelöscht habe): for j in bins: model.addConstr(quicksum(a[i] * x[i,j] for i in items) <= b * y[i])
Ok, hab's herausgefunden. So muss es aussehen: for j in bins: model.addConstr(quicksum(a[i] * x[i,j] for i in items) <= b * y[i]) for i in items: for j in bins: model.addConstr(x[i,j] <= y[j]) Das * y[i] hätte ich nicht entfernen dürfen.
No area was marked for this question
Was ist mit der full_path_instance gemeint?
So wie ich es verstehe, stellt "full_path_instance" den vollständigen absoluten Dateipfad der CSV-Datei dar.
Das ist korrekt ;)
Hat jemand einen kleinen Hint wie man die erste Aufgabe modellieren kann, sodass die Flow conservation eingehalten wird?
View 6 more comments
Was sind denn eigentlich eure constraints? Ich komme da nicht weiter
Constraints sind nur: Abfluss von Knoten 1 entspricht 1 Zufluss zum Endknoten entspricht 1 Alle anderen Konten haben Zufluss - Abfluss = 0
Hat schon jemand die Testübung gemacht? Ich komme da schon am Anfang nicht weiter
View 1 more comment
ich verstehe nicht, wie ich mat.shape und mat.dtype als Text ausgeben kann, wie es gefordert wird.
eine möglichkeit wäre das: shape = mat.shape print("The matrix has " + str(shape[0]) + " rows and " + str(shape[1]) + " columns. It contains objects of type " + str(mat.dtype))
Hallou, braucht noch jemand nen Partner?:)
Hallo, sucht jemand noch einen partner für die abgaben? :)
Falls du noch keinen gefundeb hast, dann ich
🙈 kannst mir schreiben falls du noch jnd suchst 01635519523
Hallo zusammen , Welche Zugangsdaten für OR Submission System?
Das Submission System haben wir letztes Wintersemester bereits für die Gurobi Aufgaben in OR1 benutzt. Wir mussten damals die Zugangsdaten über einen Link selbst generieren. Dafür wird es mit Sicherheit die nächsten Tage den Link geben.
Ich überlege dieses Fach im nächsten Semester zu nehmen. Wie ist der Aufwand so ungefähr und die Benotung? Lohnt es sich? :)
Weiß jemand ob bei einer 1,5 gesamt noch studentenfreundlich abgerundet wird?
habe eine 1,52 und habe eine 1,7 im Resultat
Hei, weiß einer noch, wie lange ca. die Korrektur des zweiten Testats dauern sollte?
View 13 more comments
Ja, sieht so aus. Wisst ihr, wie die Rundungsregeln sind? Ähnlich wie bei der Gesamtnote (sprich 1,37 ist eine 1,3)?
Das ergibt ja in dem Fall keinen Sinn. Ich nehme an 1.0-1,14 gibt 1.0 ; 1,15-1,49 gibt ne 1.3, 1,5 - 1,84 ne 1,7 usw. Also immer von der Mitte zwischen den Noten auf- oder abgerundet.
Hat irgendwer noch Tipps für das zweite Testat morgen?
Hi, wir kommen bei der OR2 Aufgabe nicht weiter, die Vorlesungsfolien bringen das auch nicht verständlich rüber :( Könnte uns einer vielleicht irgendeine Quelle nennen wo man das gut nachlesen kann wie LP-Relaxation, RMP etc. funktioniert? Oder das in paar Sätzen kurz erklären? Wir checken das column generation gerade auch nicht so richtig. Wäre echt nett :)
View 2 more comments
Danke :)
Hi, ist es bei euch auch so dass columns/patterns die angefügt werden, teilweise identisch mit den vorherigen sind, also doppelt angefügt werden? Wir kommen auf die richtigen Ergebnisse, aber das sieht komisch aus. Hat jemand eine Ahnung woran das liegt oder ob das für die Lösung problematisch sein kann?
Bei mir kommt bei keiner der 5 Instanzen ein doppeltes Pattern raus. Vielleicht hängt es mit der Initialisierung zusammen?
Danke, aber manche Patterns, die angehängt wurden, werden nach Betrachtung identisch wieder angehängt und wieder betrachtet. Kann mir nicht vorstellen dass das mit der Startlösung zusammenhängt :(
Hat jemand die OR_2-Aufgabe als IP gelöst? Damit könnten wir Lösungen vergleichen. Oder hat man da am Ende zu viele Variabeln, sodass es zu lange rechnen würde?
Hat schon jemand Werte für die neue Aufgabe ? :)
View 17 more comments
Aber selbst wenn ich sie Binary setze rechnet ein Modell sogar fast 10 Minuten. Deshalb dachte ich es liegt vielleicht daran, dass ich die x-Var. innerhalb der while-Schleife einführe (wie auch im Beispiel aus der Vorlesung). Kann dazu jemand was sagen?
Also ich habe für das Pricing Problem nur die Binärvariablen x_i. Zudem ist es kein Problem diese erst innerhalb der Schleife einzuführen. Das, was Zeit kostet, ist meist die Komplexität der Constraints, die man einführt. Wie dem auch sei, am Ende der Geschichte erhält man die optimierte LP-Relaxation des RMP Problems. Die Lösung des Problems verrät einem nicht, welche Frequenz konkret man einer Antenne zuweisen soll. Wie ich das verstanden habe, ist das auch gar nicht gefordert. Die geforderte Bedingung, dass Lösungen, die durch Vertauschen von Frequenzen zum selben Lösungsvektor gehören sollen, schreit ja förmlich danach, dass wir eben nicht eine einfache konkrete Zahlenzuweisung machen sollen, sondern durch das RMP lediglich eine Auswahl an Mustern erhalten, die im übrigen nur aus binären Vektoren bestehen, und aus denen man sich dann hinterher eine konkrete Zuweisung ableiten könnte. Wir sollen nur das RMP lösen, welches eine Liste von Mustern liefert.
Hat jemand zufällig den Code des Cutting Stock Problems aus der Vorlesungseinheit 6? Der wurde vom Institut bis heute noch nicht hochgeladen :(
View 4 more comments
Also bei mir ist da nur csflow und cuttingstock und keins von beiden wurde mit column generation gelöst...
Die Daten wurden heute hochgeladen
Hat sich schon jemand mit einer (möglichen) Aufgabe 3 beschäftigt? Wir könnten wieder Möglichkeiten sammeln :)
View 1 more comment
Vor allem "relativ" einfache, alles was so einfällt wird dann gleich krass kompliziert... - Lagerkapazität ist beschränkt wäre recht einfach - Vielleicht irgendetwas mit den Kugelrohlingen? Beschränkung? Die brauche auch ein Lager? Nachbestellung? Recht kompliziert und wahrscheinlich aufwändig. Aber vielleicht habt ihr ne "testatmögliche" Idee.
Oder zwei Produktionslinien? Mehrere Kugeln gleichzeitig? Ist wahrscheinlich beides zu aufwändig
Hallo zusammen, leider kann ich wegen Überschneidung nicht zu den Vorlesungen/Übungen. Wurde letztes Mal noch etwas zum zweiten Testat gesagt? Wird dies wie das Erste sein? Danke euch :)
Hallo, kann mir hier jemand in anderen Worten erklären wieso die Nebenbedingung in lindor zur Sicherstellung, dass die Anlage in Periode t auf die Sorte am Ende der Periode t-1 eingestellt ist, so funktioniert wie sie eben im Code da steht? Mir ist klar, dass sie so wie sie da steht, sichertstellt, dass die Anlage, wenn sie in Periode t Sorte l produziert, entweder in Periode t oder eben in t-1 auf l eingestellt worden ist, aber das ist doch nicht äquivalent zu einander?!... Hier die entsprechenden Zeilen aus dem Modell von Lukas (btw: danke fürs hochladen): ## (8) update starting equipment for t in periods: for b in balls: model.addConstr(quicksum(u[b1, b, t] + u[b1, b, t-1] for b1 in balls if b != b1) >= p[b, t])
Hallo Controller, verwirrt dich, dass das Modell nicht explizit ausgibt, was in einer Periode zuerst und zuletzt produziert wird, bzw. welche Rüstung zu Beginn und welche Rüstung am Ende einer Periode angelegt ist?
Ja, irgendwie schon, aber irgendwie auch nicht :D Habs glaube ich schon verstanden wie das funktioniert, aber habe gehofft, jemand könnte mir das mit einer anderen Erklärung nochmal bestätigen, um sicherzugehen...
Hallo zusammen, wir stecken an der GallifrOR Aufgabe fest, und zwar haben wir nur eine nicht lineare Lösung. In der Zielfunktion kommen wir nicht ohne Multiplikation von zwei Entscheidungsvariablen aus. Wie entscheidet ihr in der Zielfunktion ob die Kosten für vor best oder für nach best berechnet werden?
Führe eine weitere Variable ein, die das Produkt von zwei Entscheidungsvariablen darstellt. Wie genau: Such mal in den Folien von OR1 nach "linearize", auf S.126/p.113 steht was Passendes dazu
muss die Zielfunktion linear sein?
Lösungsvergleich gallifrOR: 700 1480 820 2520 3100 24442 1550 1950 Bekommt jemand etwas anderes raus?
View 4 more comments
Bei mir auch. Dennoch dürfen wir nicht vergessen, dass die bloße Mehrheit beim Publikumsjoker bei Wer-wird-Millionär? nicht immer Recht hat :-D
Das Big-M sollte immer groß genug sein, um in jeder Variablenkonfiguration für das entsprechende Constraint seinen Sinn zu erfüllen. Bei mir zumindest reicht es, das Big-M einfach der größten Zahl, die im Datensatz vorkommt, dynamisch zuzuordnen. Sprich: Ist in dem einen Datensatz die 10 die größte Zahl, so ist M=10. Ist bei einem anderen Datensatz 1000 der größte Wert, so wähle M=1000. Dies funktioniert bei mir nur, weil mein M stets größer als die maximale Differenz in den Ankunftszeiten von zwei Flugobjekten sein sollte und das ist ja zu 100% der Fall, wenn man M als den größten Wert im Datensatz wählt.
kann jmd bei LindOR den Code zum Daten einlesen hochladen
Hat noch jemand diese Fehlermeldung bei LindOR? Ihre Abgabe hat einen Test nicht bestanden. Ihre Zielfunktion scheint inkorrekt zu sein. Die Instanz "data3" gab 77618,0 anstelle von 75818,0 zurück. Die Lösung (bei Nicht-Null-Variablen) war: ... Ihre Abgabe hat einen Test nicht bestanden. Ihre Zielfunktion scheint inkorrekt zu sein. Die Instanz "data2" gab 56297,0 anstelle von 53897,0 zurück. Die Lösung (bei Nicht-Null-Variablen) war: ... Liegt das wirklich an der Zielfunktion?
View 2 more comments
wir haben das angegebene genommen ...
Sry, das war es leider nicht
Hallo, hat sich schon einer mit möglichen Abwandlungen von pommeswork, für Aufgabe 3 im ersten Testat und deren jeweiligen Lösung auseinandergesetzt? Wir könnten hier sammeln.
View 6 more comments
Ich würde sagen, dass wir auch die Constraint aus dem Code nennen können. Ggfs. sagen die aber noch was dazu ;)
- Es kommen noch Kosten für eine Erweiterung der Kapazität hinzu
Hallo, wie habt ihr die Bedingung umgesetzt? " Auf welche Kugelsorte die Produktionsanlage zu Beginn (t=0) gerüstet ist, kann frei entschieden werden."
Einfach dadurch, dass es kein Constraint ist :-) Das Ausbleiben eines Constraints ist ja Freiheit. "Entschieden werden" soll das weiterhin im Rahmen des Optimierungsproblems, nicht als Vorbedingung.
Wie habt in der lindor-Aufgabe die Bedingung umgesetzt, dass die Ausrüstung, die in t zuletzt montiert war, in t+1 weiterhin auf der Maschine bleibt?
View 4 more comments
Genau, p und auch y sind beide binär.
bei mir sind p und y Element ganzer Zahlen und ich habe noch ein big M hinzugefügt: for m in products: for t in time: model.addConstr(M*quicksum(y[l,m,t] + y[l,m,t-1] for l in products if l != m) >= p[m,t])
Kommt ihr für die Lindor-Aufgabe bei der ersten Instanz auf den Wert von 36 wie vorgegeben? Wir kommen auf 25 und sehen nicht, wo unsere Lösung falsch sein soll. Für die anderen beiden Instanzen kommen wir auch auf richtige Werte.
Hatte ich auch zunächst raus, vielleicht habt ihr vergessen, die Lagerkosten der 0ten Periode zu addieren?
Danke, das war bei uns wohl Missinterpretation gepaart mit Doofheit :D Den Satz "Die Kugelrohlinge werden nicht im Lager berücksichtigt, da sich diese in einem anderen Lager befinden" haben wir fälschlicherweise so interpretiert, dass für die Anfangsbestände zunächst keine Kosten anfallen und zudem sind wir die ganze Zeit von 36 statt 39 als richtigen Wert ausgegangen...
Hätte jemand die ZFW und/oder den Code für Session 5 - Aufgabe 2 (Beachtung der Reihenfolgebeziehungen) für mich? Der Beispielcode wurde leider noch nicht im Lernraum hochgeladen...
Ich hätte bei pommeswork die folgenden Minimalkosten: data1.csv: 2408.51 data2.csv: 2218.7
View 19 more comments
@Heiko Wi wie hast du das mit der sollte(full_path_instance) implementiert
Mit den alten Stores wäre es Summe xo(i,j) for j in range(n_districts) <= yo(i)+capacity
Hat jmd eine funktionierende Lösung zu Pommeswork?
Wie sieht das eigentlich aus, wenn man eine Korrektur hochladen muss. Kriegt man dann zeitnah ein Feedback oder muss man bis nach der Frist warten?
Man muss bis nach der Frist warten
Jemand schon Zielfunktionswerte von der aktuellen Aufgabe zum Vergleichen? 600, 9450 und 52225?
View 8 more comments
@ Marie Marx: Könntest du das noch etwas näher ausführen? Bei mir will die Nebenbedingung auch nicht...
Du benötigst für die min_preference Bedingung eine weitere Binär-Variable die 1 wird, sobald du eine Gruppe einem Tutorium zugewiesen hast. D.h. x_s_t*preference/Gruppengröße >= Binär-Variable * min_preference.
Hat jemand die Lösungen aus dem letzten Jahr?
Es gab keine offizielle Musterlösung, daher könnte man den Code vergleichen und ziemlich einfach herausfinden, dass der nicht von euch geschrieben wurde...