Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.

 View Only
  • 1.  help needed urgently

    Posted Sat December 17, 2011 08:25 AM

    Originally posted by: shatha


    hello, the model below is a transportation model using lingo 9.0, but when solving it the lingo keeps giving me "unexpected jacobian overflow, can anyone help?
    MODEL:
    ! A 3 Warehouse, 4 Customer
    Transportation Problem;

    SETS:
    country / morroco, poland, ksa/ :available_veh1, sc ;
    warehouse / marka, layan/ :available_veh2;
    CUSTOMER / carrefoure, safeway, cozmo/;
    item / cheese, cornd_beef, milk/;
    time/ 1,2/;
    transfer1 ( country, warehouse, item, time) : quantity1;
    transfer2 (warehouse, customer, item, time) : quantity2;
    pair1 (country, item,time) : supply, price;
    pair2 (customer, item, time) : demand;
    pair3 (warehouse, item) ;
    pair4 (customer, item);
    link1 (country,warehouse, time) :cost1, travel_time1, arrival_time1;
    link2 (warehouse,customer, time) :cost2, travel_time2, arrival_time2;
    link3 (country, time) :required_veh1;
    link4 (warehouse, time) :required_veh2;

    ENDSETS

    ! The objective;
    OBJ MIN = 0.75*(@SUM( transfer1(i,j,r,t):(sc(i))+ ((COST1(i,j,t)+price(i,r,t)) * quantity1(i,j,r,t))+ (fixed1 * required_veh1(i,t)))
    + @SUM( transfer2(j,k,r,t): (COST2(j,k,t) * quantity2(j,k,r,t))+ (fixed2 * required_veh2(j,t))))
    + 0.25*(@SUM( link1(i,j,t): arrival_time1(i,j,t)) + @SUM ( link2(j,k,t):arrival_time2(j,k,t)));

    ! The demand constraints;
    @FOR( pair2(k,r,t): DEM
    @SUM( warehouse(j): quantity2( j,k,r,t)) >=
    DEMAND( k,r,t));

    ! The supply constraints;
    @FOR( pair1(i,r,t): SUP
    @SUM( warehouse( j): quantity1( i,j,r,t)) <=
    supply( i,r,t));

    !The flow conservation;
    @sum (transfer1(i,j,r,t): quantity1(i,j,r,t)) = @sum (transfer2(j,k,r,t): quantity2(j,k,r,t));

    ! The vehicles requirement;
    @for (link3(i,t):vehicles1
    required_veh1= @if ((@sum (pair3(j,r): quantity1(i,j,r,t))/capacity1) #LE# 1, 1,
    @sum (pair3(j,r): quantity1(i,j,r,t))/capacity1));

    @for ( link3(i,t):
    required_veh1 <= available_veh1);
    @for (link4(j,t):vehicles2
    required_veh2= @if ((@sum (pair4(k,r): quantity2(j,k,r,t))/capacity2) #LE# 1, 1,
    @sum (pair4(k,r): quantity2(j,k,r,t))/capacity2));

    @for ( link4(j,t):
    required_veh2 <= available_veh2);

    !arrival time;

    @for (link1(i,j,t): arvl1
    arrival_time1= @if(@sum(item(r): quantity1(i,j,r,t)) #GT# 0, travel_time1(i,j,t), 0));

    @for (link2(j,k,t): arvl2
    arrival_time2= @if(@sum(item(r): quantity2(j,k,r,t)) #GT# 0, travel_time2(j,k,t), 0));

    !integer values;
    @for (link3(i,t): @GIN (required_veh1(i,t)));
    @for (link4(j,t):@GIN (required_veh2(j,t)));

    @for (transfer1(i,j,r,t): @GIN (quantity1(i,j,r,t)));
    @for (transfer2(j,k,r,t):@GIN (quantity2(j,k,r,t)));

    ! Here are the parameters;
    DATA:
    sc = 2000 4000 2000;

    travel_time1 = 115 227
    763 236
    353 165;

    travel_time2= 2.5 4 1.5
    4 1.5 6;
    supply = 4000 2000 4000
    4000 2000 4000
    2000 1000 3000
    4000 2000 4000
    4000 2000 4000
    2000 1000 3000
    ;

    DEMAND = 2000 1000 2500
    1700 850 2125
    1530 522 1915
    2000 1000 2500
    1700 850 2125
    1530 522 1915
    ;

    COST1 = 0.49 0.5
    0.49 0.5
    0.4 0.25;

    cost2 = 0.5 0.85 0.5
    0.7 1 1.2 ;
    price= 1.189 0.55 4.3
    1.56 0.50 4.1
    1.2 0.47 4.06;

    Fixed1=100;
    Fixed2=70;

    available_veh1=60;
    available_veh2=25;

    capacity1=10000;
    capacity2=1000;

    ENDDATA
    END
    #DecisionOptimization
    #MathematicalProgramming-General