Production planning with personnel assignment


    {  Exmpl14.5-1_ProdPlanPersonnel.mpl  }

    {  Applications of Optimization with Xpress-MP  }

    {  Chapter 14.5,  Production Planning with Personnel Assignment,  Notransfer - Size: 10x9, Allowtransfer - Size: 20x39,  Page 303 }

#define Notransfer
!#define Allowtransfer

TITLE
    ProdPlanningWith_Personnel;

INDEX
    prod := 1..4;
    line := 1..5;
    line2 := line;

DATA
    Profit[prod] := (7,8,9,7);
    Dur[prod,line] := (1.3,0.9,2.0,0.3,0.9,
                       1.8,1.7,1.4,0.6,1.1,
                       1.3,1.2,1.3,1.0,1.4,
                       0.9,1.1,1.0,0.9,1.0);
    Cap[line] := (4500,5000,4500,1500,2500);
    Transf[line,line2] := (0,1,1,1,0,
                           0,0,1,0,1,
                           1,1,0,1,0,
                           0,0,0,0,1,
                           1,1,1,0,0);
    Tmax[line] := (400,800,500,200,300);

VARIABLE
    Load[line];
    Produce[prod];

#ifdef Allowtransfer
    Hours[line];
    Transfer[line,line2] WHERE (Transf);
#endif

MODEL

    MAX Profits = SUM(prod: Profit * Produce);

SUBJECT TO

    CalcLoad[line] -> CLD:
        Load = SUM(prod: Dur * Produce);

#ifdef Notransfer
    LineCapacity[line] -> LCAP:
        Load <= Cap;
#endif

#ifdef Allowtransfer
    Balance[line] -> BAL:
        Hours = Cap + SUM(line2: Transfer[line:=line2,line2:=line]) - SUM(line2: Transfer);

    LineCapacity[line] -> LCAP:
        Load <= Hours;

    TransferLimit[line] -> LTR:
        SUM(line2: Transfer) <= Tmax;
#endif


END


Back To Top | Maximal Home Page | List of Models | Previous Page | Next Page