API – ograniczenia pojemności

Ta strona opisuje zaawansowane funkcje OptiFacility dotyczące pojemności (dla sytuacji zbierania i rozwożenia produktów). Zanim przeczytasz tę część, zapoznaj się z podstawowymi możliwościami OptiFacility.

Następujący plik json definiuje przykład zadania z ograniczeniami pojemności. Dodatki do podstawowego pliku json są podświetlone:

{
    "UserID": "demo",
    "RequestID": 12348,
    "Comment": "my first request with capacity constraints",
    "Quality": 2,
    "AgentSpeed": 45.0,
    "AgentWorkTime": 8.0,
    "AgentVisitTime": 1.0,
    "CostAgentWork1h": 70.0,
    "CostAgentTravel1km": 1.0,
    "Products": 3,
    "Facilities": [{"Lat":51.929, "Lon":18.614},
                   {"Lat":52.057, "Lon":19.176, "ChangeInProducts":[0,-7,0]},
                   {"Lat":51.989, "Lon":18.588, "ChangeInProducts":[10,0,0]},
                   {"Lat":51.864, "Lon":18.764, "ChangeInProducts":[-10,0,-15]},
                   {"Lat":51.89,  "Lon":19.098, "ChangeInProducts":[-10,0,0]},
                   {"Lat":52.014, "Lon":18.889, "ChangeInProducts":[0,0,30]}],
    "Agents":[{"Lat":51.768, "Lon":19.094, "CapacityForProducts":40}],
    "Task": "FindRoutesCommutingIncluded"
}

Poniżej opisane są pola definiujące ograniczenia pojemności:

  • Products – deklaracja liczby różnych typów produktów, które powinny zostać odebrane/dostarczone.
  • Facilities: ChangeInProducts – tablica liczb całkowitych, które odzwierciedlają zmiany w pojemności produktów u pracownika odwiedzającego ten obiekt. Wartości w tablicy mogą być interpretowane jako zmiana objętości zajmowanej przez produkty (można oczywiście przyjąć dla uproszczenia, że jeden produkt wykorzystuje jedną jednostkę objętości). Na przykład tablica [-10, 25] zostanie zinterpretowana jako "wizyta w tym obiekcie zabiera pracownikowi 10 jednostek objętości produktu #1 i zwalnia 25 jednostek objętości produktu #2".

    Rozmiar tablicy powinien odpowiadać tablicy zdefiniowanej w "Products". Jeśli "ChangeInProducts" nie jest zdefiniowany dla obiektu, to zakłada się, że ta tablica składa się z samych zer.

  • Agents: CapacityForProducts – liczba całkowita określająca sumaryczną pojemność samochodu/ciężarówki pracownika.

Konkretna jednostka fizyczna powierzchni lub objętości nie jest narzucona, ale oczywiście jednostki używane w polach "ChangeInProducts" obiektu powinny odpowiadać jednostkom używanym w polach "CapacityForProducts" pracownika.