Announcement

Collapse
No announcement yet.

Hilfe in CPLEX benötigt! Tourenplanung zweier Fahrzeuge-Quadratische Nebenbedingungen

Collapse
This topic is closed.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Hilfe in CPLEX benötigt! Tourenplanung zweier Fahrzeuge-Quadratische Nebenbedingungen

    Hallo zusammen,

    ich bin neu hier im Forum und benötige Hilfe bei der Implementierung einer Tourenplanung zweier Fahrzeuge in CPLEX.

    Zur Erklärung:

    Die Planung beinhaltet zwei Fahrzeuge. Das eine Fahrzeug ist ein Trägerfahrzeug des Anderen. Es existieren mehrere Zielpositionen. Das getragene Fahrzeug soll an zu wählenden Orten vom Trägerfahrzeug starten, die Zielpositionen besuchen und an einem zu wählenden Ort wieder auf dem Trägerfahrzeug landen. Die Start- und Landepunkte sind also so zu wählen, dass die gesamte Tour minimiert wird. Eine Visualisierung ist im Anhang.

    Dabei bin ich von zwei beispielhaften Zielpositionen Z1(2/8) und Z2(8/7) ausgegangen.



    Mein formuliertes Programm sieht wie folgt aus:

    /*********************************************
    * OPL 12.7.1.0 Model
    * Author: Sven
    * Creation Date: 10.02.2019 at 12:50:30
    *********************************************/
    //Data
    int xstart=0; //x Coordinate Start- and End of Tour
    int ystart=0; //y Coordinate Start- and End of Tour

    int xA1[1..2]=[2,8]; //x Coordinates of Targets
    int yA1[1..2]=[8,7]; //y Coordinates of Targets

    int R=20; //max Flight Time of Drone
    int a=2; //max Speed of Drone

    //Help Data
    float intraDist1=sqrt(((xA1[2]-xA1[1])^2)+((yA1[2]-yA1[2])^2)); //Distance between Targets
    float intraFlugDist1; //Flight Distance of Drone between Targets
    float wegFlugDist1; //Flight Distance from launch point of Drone to first Target
    float hinFlugDist1; //Flight Distance of Drone from last Target to land point of Drone

    float kombiniertZeit0; //Distance from Start to launch Point of Drone
    float kombiniertZeit1; //Distance from land Point to End
    float getrenntZeit1; //Distance from launch Point to land Point of Drone

    //DVar
    dvar int xsA1; //x Coordinate launch Point
    dvar int ysA1; //y Coordinate launch Point
    dvar int xlA1; //x Coordinate land Point
    dvar int ylA1; //y Coordinate land Point

    minimize kombiniertZeit0+getrenntZeit1+kombiniertZeit1;

    subject to{

    sqrt(((xsA1-xstart)^2)+((ysA1-ystart)^2))<=kombiniertZeit0;
    sqrt(((xlA1-xsA1)^2)+((ylA1-ysA1)^2))<=getrenntZeit1;
    sqrt(((xlA1-xstart)^2)+((ylA1-ystart)^2))<=kombiniertZeit1;

    sqrt(((xA1[1]-xsA1)^2)+((yA1[1]-ysA1)^2))<=wegFlugDist1;
    sqrt(((xlA1-xA1[2])^2)+((ylA1-yA1[2])^2))<=hinFlugDist1;

    intraDist1<=intraFlugDist1;

    (wegFlugDist1+intraFlugDist1+hinFlugDist1)/a<=getrenntZeit1;

    getrenntZeit1<=R;
    }

    Bei Ausführung erhalte ich die Fehlermeldung: CPLEX(default) kann den Ausdruck nicht extrahieren für die quadratischen Nebenbedingungen.
    Wo liegt der Fehler in diesem Programm? Ich hoffe, dass jemand weiterhelfen kann. Ich bin für jeden Tipp dankbar!

    Vielen Dank im Voraus,
    Sven
    Attached Files

  • #2
    Crosspost
    https://www.computerbase.de/forum/th...ungen.1854964/
    geschlossen
    Christian

    Comment

    Working...
    X