# Operations Research 1

## at RWTH Aachen

Next exam
FEB 14
Haben wir diese Woche den Test schon zurückbekommen? War leider krank..
Wo werden die Ergebnisse denn veröffentlicht? Bei uns im Tutorium wurde nur gesagt dass es die Tests nächste Woche gibt.
Last shared documents
Anonymous User shared last document 8 hours ago
Hi@all, I'm working on the second Python task "christmas market". I have two questions: 1) How to I implement the object function Sum over p∈persons Sum over s∈stands(xp,s*(alcohol content (s)/price(s)) in the code? 2) I don't know to come up with a solution for the environment constraint. Do I need to use If-loops? Can someone help? Thanks!
For your first question: You need to add the "obj." when adding the variable: x[p, s] = model.addVar(obj= (alcohol_content[s]/price[s]),name="x_%s_%s" % (p, s)), It represents the coefficient with which your variable is multiplied.
1) model.setObjective(quicksum(x[p, s] * alcohol_content[s] / price[s] for p in persons for s in stands), GRB.MAXIMIZE) 2) for p in persons: for s in stands: if environment[p] and cup_type[s] != 'ceramic' and cup_type[s] != 'glass': model.addConstr(x[p, s] == 0.0)
Ab heute findet keine Vorlesung mehr statt oder?
ja
Wann kommt die nächste Gurobiaufgabe Online?
Frage ich mich auch... Abgabe soll ja schon morgen in einer Woche sein
9.12
Für die, die den Test nicht mitschreiben konnten (war echt ultra ez): 1a) Shops: L Friends: K Total Budget: J Limit for Shop l: O_l Maximum cups of wine for group: R u_{l,k}: Joy received from shop l for friend k u_l: Amount of wine per cup for shop l Maximize joy with the constaints b) Tina is the driver and cant drink (she is h\in K), add new constraint c) Hot chocolates are also available for the shops I \subset L. They give a joy for all. 2a) Customers p\in[k] Courses o\in[l] exacly N_p courses for each customer p the cost for a course happening is G_o u_{p,o} is the transportation cost for customer p attending course o minimize cost
wie viele Punkte braucht man die Klausur bestehen？
Vermutlich die Hälfte?!
50% wird normal nicht runtergesetzt, fällt ok aus. Das sind in dem Fall 30 von 60 Pkt
Könnte das möglicherweise jemand erklären? Also verstehe das mit dem Big M nicht, was das heißen/bringen soll und warum es dahin muss...
Es besteht die Möglichkeit, dass die Firma einen Zug länger als 50 m nutzen kann, das kostet sie den Preis o. An dieser Stelle wird diese Kapazitätsbegrenzung erfasst. Jetzt bestimmt yj bei wie vielen Zügen dies stattfindet. Jetzt zum M. Wäre das M z.B. nur 1 groß könnte das Produkt xij bi größer als das M werden, was es aber nicht soll, da wir uns über yj ja mehr an Kapazität erkauft haben. Das M muss entsprechend so groß sein, dass es die maximale Länge bi aller Waggongs übersteigt, denn hier soll es ja möglich sein, dass wir durch die zusätzlich erkaufte Kapazität im Sonderfall auch nur einen Zug mit alles an Waggonlänge schicken können was wir können.
No area was marked for this question
Bei 5.a: warum soll die Summe aller y = n sein? Reicht es nicht aus, das y = 1 ist?
da steht die summe aller xi
Macht Sinn :D
No area was marked for this question
I came up with the same solution as the one presented here. Problem: My optimal solution for Data1 is 6 and Data2 is 7. But tutOR says it should be 7 and 8. Does someone have the same problem?
View 1 more comment
für Data1
👍🏼
Hallo zusammen, im letzten Jahr wurden die Themen/Übungsblätter für die Tests eingegrenzt. Weiß jemand was dazu, ob dass dieses Jahr auch der Fall ist oder sind alle bisher gemachten Tutorien relevant? Danke!
Date: Dec 05, 2019IPlace: TEMP 2IStart: 10:30IDuration: 30 minutesITwo tasks, 18 and 12 minutes, respectively. Similar to examtasks. Scores indicate the expected time in minutes.IAllowed utilities: only black/blue ink and dictionaryIPlease know your tutor/tutorial!IAfter the test: short break & regular exerciseITopic: “assignment-like”,nojob scheduling, TSP, etc.
No area was marked for this question
Hello :) But how can you solve the problem with these? Isn´t there a missing model/ obj. fct? I don´t get it, I´m sorry.
View 1 more comment
Okay I understand that that part. But when I´m trying to "proof" the model, then the program "visual studio code" tells me that the model is undefined and there are several error notifications.
Maybe Gurobi isn't installed correctly... Does the code execute when you call "python3 binpacking-data1.py"
Wann genau ist der erste Class Test?
Je an der Übung. Danach kurz Pause.
gibts dazu ein Thema?
No area was marked for this question
Why do we need in the conlfict constraints the m? x[conflict[0],j] <= (1-x[conflict[1],j])*m The constraint would be already realised with m = 1 but it takes more simplex iterations 133 respectively 194 (m=1). The solution is the same.
No area was marked for this question
I uploaded another solution that do not use the big M method
No area was marked for this question
why do we need the m?
No area was marked for this question
Why do we need the Big M?
No area was marked for this question
Big M ist ja wohl Kokolores oder? :D
Hi! Ich suche noch einen Partner für die Gurobi Aufgaben. Wer Interesse hat kann über den folgenden Link eine Gruppe mit mir bilden: https://tutor.or.rwth-aachen.de/lecture/9/group/access/78PJv8DAZpstqXWTgBqh+524
gibt es noch eine gruppe, der ich beitreten kann?
Falls noch jemand eine Gruppe sucht, einfach beitreten: https://tutor.or.rwth-aachen.de/lecture/9/group/access/8nD2UtzP46HDgt99XXlE+372
Hallo, ich suche noch einen Teampartner/in für die Gurobi/Python Aufgabe. Falls jemand Interesse hat, dann meldet euch doch einfach bei mir: 015756660238
hallo, habe mich jetzt etwas spät erst für dieses Fach entschieden. gibt es hier einen Pflichthausarbeit für die Zulassung oder sind diese Tests alle nur für Bonuspunkte?
Tests und Pyhton Aufgaben sind nur für Bonuspunkte
is someone still looking for the partner for Gurobi task?
Ich suche auch noch einen Partner, falls jemand interessiert ist?
Ich suche immer noch. Meldet ihr euch einfach unter +4915757201891 falls ihr Interesse habt. #teamwork I am still looking for the python partner, text me if you are interested in.
Kann jemand die Lösung der Übungen hochladen ?
Kann mir jemand erklären, welche Bedingung alle erfüllt sein müssen, um jeweils den Notenbonus zu erhalten? Ich finde dazu im Moodle (https://moodle.rwth-aachen.de/mod/page/view.php?id=89764 : 50%/75%) und auf den Übungsfolien (https://moodle.rwth-aachen.de/pluginfile.php/583032/mod_resource/content/2/20191011_Exercise01.pdf : 75%/85%) unterschiedliche Bedingungen. Auf meine Mail an or1@or.rwth-aachen.de habe ich bisher keine Antwort erhalten.
Ist mir auch aufgefallen, zumindest in moodle das sollte aktueller sein, da der Slidetext noch vom Vorjahr ist.
Das wird gerade noch geklärt, die korrekten Infos sollten bald erscheinen
Vielleicht etwas lächerliche Frage, aber ist das hier der Lernraum für OR1 im Master?? Also das Pflichtmodul, was man im Master belegen muss?
Ohne Zweifel: Ja
Mein Semester ist bereits relativ voll, und ich überlege, ob ich OR noch zusätzlich reinpacke oder ob ich das lieber sein lassen soll. Kann mir jemand ein bisschen was zum Umfang und Aufwand erzählen, sowohl für Anwesenheit/Hausaufgaben als auch für die Klausurvorbereitung?
View 1 more comment
Finden in den Tutorien auch Tests statt?
Nein, die Kurztests finden während der Hörsaalübungen statt. Die Termine usw. werden sicher rechtzeitig bekannt gegeben. In den Tutorien werden lediglich wöchentliche Übungsaufgaben sowie die Musterlösungen der Kurztests besprochen.
Wo finde ich die VL Videos online?
Im WS 17/18 wurden die Vorlesungen von der Video AG aufgezeichnet: Allgemeiner Link: https://video.fsmpi.rwth-aachen.de/courses Konkreter Link für OR1: https://video.fsmpi.rwth-aachen.de/17ws-or1 Inhaltlich könnte sich aber bereits einiges verändert haben.
Danke :) Die Vorlesung heute wurde nicht aufgezeichnet. Es wurde aber gesagt dass Videos online sind und wir die gucken können. Es wurde nur nicht gesagt wo :D
Wie bereitet man sich am besten für die Klausur vor? danke für eure antworten
Wer kann mir erklären, wie man eine topologische Sortierung entwickelt? Mir ist klar, dass kein Kreis enthalten sein darf - mehr weiss ich leider nicht.
Ich hab mal eine Frage was passiert , wenn man diese Testate nicht mit schreibt ?
Du bekommst einfach keinen Notenbonus für die Klausur. Die Testate sind keine Pflicht.
Weiß jemand die Lösung hierzu? In dem hochgeladenen Dokument wurde diese Aufgabe leider falsch bearbeitet...
fehlt hier nicht noch eine Bedingung, dass mindestens ein Zug in jede Stadt fährt?
Es ist genau ein Zug in jede Stadt: "a train is traveling to each city" - mit "exactly one" wäre es wohl offensichtlicher
Ist es egal wie ich diese Nebenbedingungen aufschreibe? Falls nein, wann verwende ich welche Version?
ist egal, bei der 2ten Version in der 2ten Zeile muss aber yj stehen damit es gleichwertig ist!
Danke, das hat mich die letzten Tagen immer wieder verwirrt. Jepp, yj stimmt natürlich :)
Ist falsch, laut Skript wird erst gepruned, wenn der bound strikt schlechter ist. Wurde das so im Tutorium gesagt?
View 1 more comment
Ja, aber ein gleich gutes, und wir sind doch auf der Suche nach allen Optimallösungen.
Und es geht nicht darum, was der Menschenverstand sagt, sondern der Algorithmus ;)
Meiner Meinung auch nicht ganz richtig: muss aufgeteilt werden sum z über j = di für alle i sum z über i <= sj für alle j
danke für deinen Kommentar! ist wohl richtig :D
Fehlt nicht hier noch die Bedingung, dass die Autos auch in der Fabrik (0) losfahren und wieder ankommen müssen? Also: sum(x0j) <=1 sum(xi0) =1
ne das mit sum muss nicht, man sagt ja schon in der timebedinung das jedes auto was benutzt wird bei t0 zum zeitpunkt 0 anfängt. irwann muss es zwangsläufig dahin zurück, da j nicht 0 enthält. Also in der verbesserten timebedingung wenn wir bei 8 letzter store bleiben, dann sagt die timebedingung nicht mehr das 8 nach 0 muss, aber sagt man mit sum (xi,j,k)über i=0bis n = yik für alle j in dem fall j=8, dass das auto noch irwo hin muss und das genau zu einem ort, dass muss dann 0 sein. Zu j=5 könnte es nicht mehr gehen weil j=5 bereits i=3 oder so als vorgänger hat. Man darf ja nur einen jeweils haben. für 8 bleibt dann nur noch 0
sehr verwirrend aber ich kanns nicht besser deutlich machen und weiß auch nicht genau obs passt
Was hat es mit der Übung und dem Tutorium auf sich? Ist das Tutorium zusätzlich? Oder beides verpflichtend? Vielen Dank!
Die Übung ist sozusagen eine Vorrechenübung. Das Tutorium dient zum Verständnis der Theorie und hat Schulklassencharakter. Weder Übung noch Tutorium sind verpflichtend, v.a. das Tutorium ist meiner Meinung nach jedoch sehr zu empfehlen!
Dankeschön!
KORREKTUR: yj
KORREKTUR: A i E (0...n) ; A j E (1...n)
Das bedeutet doch nur, dass das Zuhause auf der Route ist?! Start und Ziel Zuhause müsste doch eher mit sum(x_0j)=1 und sum(x_i0)=1 gelöst werden, oder nicht? Und fehlt hier als Nebenbedingung nicht noch die Kopplung zwischen x und y?
Kann ich aber anstatt y0=1 auch die Summen über x0,j und xi,0 =1 bilden? Ist das das gleiche?
Meiner Meinung das gleiche, leider basiert meine Wissen auf Selbststudium, also keine Garantie^^ ist aber mit y0=1 schneller
würde hier einfach nur Y_0=1 setzten. Wenn du dieses y dann oben in deine "flow"-bedingungen einsetzt hast du das Gleiche wie mit den beiden gleichungen. Ob das Programm dann wirklich bei 0 startet ist glaube ich egal. Hauptsache du machst ne tour mit deiner Startpostition. Das ergibt ja einen Kreis/Rundfahrt, wo du dann startest ist hier egal. Wird erst mit Zeitbegrenzungen relevant. Glaube ich zumindest
verstehe was du meinst, denkst du das es so wie es hier ist falsch sein könnte? oder ist es mit dem y einfach nur "schöner"
das weiß ich leider nicht, war leider nie irwo anwesend. Aber richtig sollten eigentlich ja beide sein
Kann mir jemand kurz erklären, wann ich bei einer SEC hinschreibe, dass S=V und wann S!=V ?
Müsste es hier nicht x3 <= 0 und x3 >= 1 heißen? Der optimale Wert 0,7 ist ja zwischen den beiden möglichen, und durch die Bedingungen wie sie da gerade stehen würde ja der gleiche Wert rauskommen oder?
Ja, ich denke auch dass die Vorzeichen andersherum sein müssten.
Korrekt, ist ein Fehler.
Alternativ vllt schöner: j \element {1,...,n}\S
Das sollte doch das labmda_p sein (welches dann auf der folgenden Seite genutzt wird), ne?
Ja, y_p ist ja eigentlich eine Menge mit Gegenständen (e.g. {1,2}) die eingepackt werden und lambda_y_p eine binäre Variable, die entscheidet, ob das Pattern genutzt wird oder eben nicht.
Wieso sind diese beiden Bedingungen im oberen Beispiel nicht notwendig?
ist meiner Meinung nach auch oben notwendig, nur dann summe x[i,j,k] = 1. Der Autor hat wahrscheinlich ausversehn die Depot Bedingung eingefügt.
Dürfte man hier auch schreiben: Tj2 >= ( Tj1 + Pj1) * Xj1,j2 für alle j1 j2 Element aus J?
Weiß jemand ob es hierfür eine Alternative gibt? Laut der einen Vorlesung ist ja Big M eher schlecht, und der Frage nach zu urteilen gibt es ja offenbar eine Alternative