Location of income tax offices


    {  Exmpl15.5-1_TaxOfficeLocation.mpl  }

    {  Applications of Optimization with Xpress-MP  }

    {  Chapter 15.5,  Location of Income Tax Offices,  Size: 157x144,  Page 328 }


TITLE
    TaxOfficeLocation;

INDEX
    city := 1..12;
    city2 := city;

DATA
    Dist[city,city2] := ( 0,15,37,55,24,60,18,33,48,40,58,67,
                         15, 0,22,40,38,52,33,48,42,55,61,61,
                         37,22, 0,18,16,30,43,28,20,58,39,39,
                         55,40,18, 0,34,12,61,46,24,62,43,34,
                         24,38,16,34, 0,36,27,12,24,49,37,43,
                         60,52,30,12,36, 0,57,42,12,50,31,22,
                         18,33,43,61,27,57, 0,15,45,22,40,61,
                         33,48,28,46,12,42,15, 0,30,37,25,46,
                         48,42,20,24,24,12,45,30, 0,38,19,19,
                         40,55,58,62,49,50,22,37,38, 0,19,40,
                         58,61,39,43,37,31,40,25,19,19, 0,21,
                         67,61,39,34,43,22,61,46,19,40,21, 0);
    Pop[city] := (15,10,12,18, 5,24,11,16,13,22,19,20);
    NumLoc := 3;

VARIABLE
    Build[city];
    Depend[city,city2<>city];

MODEL

    MIN TotDist = SUM(city,city2<>city: Pop * Dist * Depend);

SUBJECT TO

    AssignCities2Offices[city] -> ASSC:
        SUM(city2: Depend) = 1;

    LimitOfficeNumber -> LIMN:
        SUM(city: Build) <= NumLoc;

    RelDependOfficeBuilt[city,city2] -> RDOB:
        Depend <= Build[city:=city2];

BINARY
    Build;

END




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