Matroids Matheplanet Forum Index
Moderiert von mire2
Mathematische Software & Apps » Andere Softwarepakete » XPRESS Mosel 2D Strip Packing Problem
Autor
Universität/Hochschule J XPRESS Mosel 2D Strip Packing Problem
Schnur98
Neu Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 08.03.2022
Mitteilungen: 2
  Themenstart: 2022-03-08

Ich weiß nicht, ob mir jemand hier im Forum helfen kann. Auf jeden Fall ist es einen Versuch wert. Ich muss für die Uni ein zweidimensionales Strip-Packing Problem programmieren. Rechtecke (um es für den Anfang einfach zu halten, sollen nur 5 Rechtecke platziert werden) sollen ohne Überlappung (dafür stehen die Schaltervariablen s1-s4, damit sich die Rechteck nicht rechts/links/oben/unten überlappen) und nicht drehbar platziert werden, so dass die Gesamthöhe minimal ist. Ich konnte zwar alle Nebenbedingungen aufstellen, aber ich finde keine passende Formulierung für die Zielfunktion. Vielleicht kann mir hier jemand helfen. Dies ist der Code, den ich bis jetzt programmiert habe. Vielleicht kann mir tatsächlich jemand helfen. 😄 Danke schon mal im Voraus. \sourceon \numberson W =50 Anzahl=5 M=10000 end-parameters !sample declarations section declarations Objective:linctr Packete=1..Anzahl x: array(Packete) of mpvar y: array(Packete) of mpvar s1: array(Packete, Packete) of mpvar s2: array(Packete, Packete) of mpvar s3: array(Packete, Packete) of mpvar s4: array(Packete, Packete) of mpvar w: array(Packete) of real h: array(Packete) of real end-declarations h::[10, 20, 30, 60, 50] w::[50, 30, 20, 20, 30] forall (i in Packete) do x(i)>=0 y(i)>=0 end-do forall (i in Packete, j in Packete) do s1(i,j) is_binary end-do forall (i in Packete, j in Packete) do s2(i,j) is_binary end-do forall (i in Packete, j in Packete) do s3(i,j) is_binary end-do forall (i in Packete, j in Packete) do s4(i,j) is_binary end-do forall (i in Packete) do x(i)+w(i)<=W end-do forall (i in Packete) do forall (j in Packete) do if i<>j then x(i)+w(i)<=x(j)+M*(1-s1(i,j)) end-if end-do end-do forall (i in Packete) do forall (j in Packete) do if i<>j then x(j)+w(j)<=x(i)+M*(1-s2(i,j)) end-if end-do end-do forall (i in Packete) do forall (j in Packete) do if i<>j then y(i)+h(i)<=y(j)+M*(1-s3(i,j)) end-if end-do end-do forall (i in Packete) do forall (j in Packete) do if i<>j then y(j)+h(j)<=y(i)+M*(1-s4(i,j)) end-if end-do end-do forall (i in Packete, j in Packete) do if i<>j then s1(i,j)+s2(i,j)+s3(i,j)+s4(i,j)>=1 end-if end-do \sourceoff


   Profil
Folgende Antworten hat der Fragensteller vermutlich noch nicht gesehen.
Er/sie war noch nicht wieder auf dem Matheplaneten
StefanVogel
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 26.11.2005
Mitteilungen: 4195
Wohnort: Raun
  Beitrag No.1, eingetragen 2022-04-16

Die Frage ist hier beantwortet.


   Profil
Das Thema wurde von einem Senior oder Moderator abgehakt.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]