Začněte nyníZačněte zdarma

Problém obchodního cestujícího (TSP)

Problém obchodního cestujícího (TSP) je klasický optimalizační problém s praktickým využitím v logistice. Obchodní cestující dostane seznam měst a vzdálenosti mezi každou dvojicí. Jeho cílem je najít nejkratší trasu, která začíná ve výchozím městě, projde všemi ostatními městy a vrátí se zpět. Jde o výpočetně náročný problém, ale Miller-Tucker-Zemlin (MTZ) ukázali, že ho lze řešit pomocí celočíselného lineárního programování. V tomto cvičení definuješ účelovou funkci a část omezení pro TSP na malém datasetu s 15 městy (viz obrázek níže). Procvičíš si použití LpVariable.dicts spolu s generátorovou notací (list comprehension).

Photo of Cities

Tři proměnné n, cities a dist jsou už připravené \(^{1}\). Proměnná n udává počet měst, cities je seznam měst označených čísly a dist je pandas DataFrame se vzdálenostmi mezi každou dvojicí měst. Můžeš si je prozkoumat v konzoli. Model je také již inicializován.

\(^{1}\) Dataset pochází z: Gerhard Reinelt, TSPLIB - A Traveling Salesman Problem Library, ORSA Journal on Computing,

Toto cvičení je součástí kurzu

Supply Chain Analytics v Pythonu

Zobrazit kurz

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Define Decision Variables
x = LpVariable.dicts('X', [(____, ____) for c1 in ____ for c2 in ____], 
                     cat='____')
u = LpVariable.dicts('U', [____ for c1 in ____], 
                     lowBound=0, upBound=(n-1), cat=____)
Upravit a spustit kód