Kuljetusongelma ( Monge-Kantorovich-ongelma ) on eräänlaisen lineaarisen ohjelmoinnin matemaattinen ongelma . [1] [2] Sitä voidaan pitää ongelmana optimaalisessa suunnitelmassa tavaroiden kuljettamiseksi lähtöpisteistä kulutuspisteisiin minimaalisilla kuljetuskustannuksilla.
Laskennallisen monimutkaisuuden teorian mukaan kuljetusongelma sisältyy monimutkaisuusluokkaan P . Kun tarjousten kokonaismäärä (lähtöpisteissä saatavilla olevat tavarat) ei ole yhtä suuri kuin kulutuspisteiden pyytämien tavaroiden (tavaroiden) kokonaiskysynnän määrä, kuljetusongelmaa kutsutaan epätasapainoiseksi ( avoin ).
Kuljetusongelma (klassinen) on ongelma optimaalisesta suunnitelmasta homogeenisen tuotteen kuljettamiseksi homogeenisista saatavuudesta homogeenisiin kulutuspisteisiin homogeenisissa ajoneuvoissa (ennalta määrätty määrä) staattisilla tiedoilla ja lineaarisella lähestymistavalla (nämä ovat tuotteen pääehdot). ongelma).
Klassisessa kuljetustehtävässä erotetaan kahden tyyppisiä tehtäviä: kustannuskriteeri (minimikuljetuskustannusten saavuttaminen) tai etäisyydet ja aikakriteeri (kuljetuksiin käytetty minimiaika). Kuljetusongelman nimellä määritellään laaja joukko ongelmia yhdellä matemaattisella mallilla, nämä ongelmat liittyvät lineaariseen ohjelmointiongelmiin ja voidaan ratkaista optimaalisella menetelmällä. Erityinen menetelmä kuljetusongelman ratkaisemiseksi voi kuitenkin merkittävästi yksinkertaistaa sen ratkaisua, koska kuljetusongelma on kehitetty minimoimaan kuljetuskustannukset.
Homogeeninen rahti keskittyy volyymillisesti toimittajille . Tämä rahti on toimitettava kuluttajille määrinä . - tavaran kuljetuskustannukset toimittajalta kuluttajalle . On laadittava kuljetussuunnitelma, joka mahdollistaa kaikkien valmistajien tuotteiden täydellisen viennin, täyttää täysin kaikkien kuluttajien tarpeet ja antaa vähimmäiskuljetuskustannukset. Merkitään kuljetusmääränä toimittajalta kuluttajalle . [3]
, ,Ensimmäisen kerran ranskalainen matemaatikko Gaspard Monge virallisti ongelman vuonna 1781 [4] . Edistystä ongelman ratkaisemisessa saavutti suuren isänmaallisen sodan aikana Neuvostoliiton matemaatikko ja taloustieteilijä Leonid Kantorovich [5] . Siksi joskus tätä ongelmaa kutsutaan Monge-Kantorovich-kuljetusongelmaksi .
Klassinen kuljetusongelma voidaan ratkaista simplex-menetelmällä , mutta useiden ominaisuuksien ansiosta se voidaan ratkaista yksinkertaisemmin (pienikokoisille ongelmille).
Ongelman ehdot sijoitetaan taulukkoon syöttäen soluihin kuljetetun rahdin määrä lastille ja pieniin soluihin vastaavat tariffit .
Tarvitaan perussuunnitelman määrittäminen ja peräkkäisten toimintojen avulla optimaalisen ratkaisun löytäminen. Viitesuunnitelma löytyy seuraavilla menetelmillä: "luoteinen kulma" , "pienin elementti" , kaksoispreferenssi ja Vogelin approksimaatio .
Luoteiskulmamenetelmä (diagonaalinen tai parannettu)Jokaisessa vaiheessa taulukon muun osan vasen yläsolu täytetään suurimmalla mahdollisella määrällä. Täyttö siten, että lasti poistetaan kokonaan tai tarve on täysin tyydytetty .
Vähiten elementti -menetelmäYksi tapa ratkaista ongelma on pienimmän (pienimmän) elementin menetelmä . Sen ydin on minimoida tavaroiden sivullinen uudelleenjako kuluttajien välillä.
Algoritmi:
Kun olet löytänyt peruskuljetussuunnitelman, sinun on sovellettava yhtä algoritmeista sen parantamiseksi, lähestyen optimaalista.
Tarkastellaan kaksiosaista graafia , jossa tuotantopisteet ovat ylempänä ja kulutuspisteet alemmassa osuudessa. Tuotanto - ja kulutuspisteitä yhdistävät pareittain äärettömän läpimenon ja virtausyksikköhinnan reunat .
Lähde on kiinnitetty keinotekoisesti ylälohkoon . Reunojen kapasiteetti lähteestä kuhunkin tuotantopisteeseen on sama kuin tuotevarasto kyseisessä kohdassa. Näiden reunojen hinta virtausyksikköä kohti on 0.
Samoin viemäri liittyy alalohkoon . Ripojen läpimeno kustakin kulutuspisteestä pesualtaaseen on sama kuin tuotteen kysyntä tässä vaiheessa. Näiden reunojen virtausyksikkökustannus on myös 0.
Seuraavaksi ratkaistaan pienimmän kustannusten maksimivirtauksen ( mincost maxflow ) löytämisen ongelma. Sen ratkaisu on samanlainen kuin Ford-Fulkerson-algoritmin maksimivirtauksen löytäminen . Vain lyhimmän täydentävän virtauksen sijasta etsitään halvinta. Näin ollen tämä alitehtävä ei käytä leveyshakua , vaan Bellman-Ford-algoritmia . Kun stream palautetaan, kustannus katsotaan negatiiviseksi.
"Mincost maxflow" -algoritmi voidaan ajaa välittömästi - perustasoa löytämättä. Mutta tässä tapauksessa päätösprosessi on jonkin verran pidempi. "Mincost maxflow" -algoritmin suoritus tapahtuu vain operaatioissa. ( on reunojen lukumäärä, on kärkien lukumäärä.) Satunnaisesti valituilla tiedoilla vaaditaan yleensä paljon vähemmän - operaatioiden järjestys.
Epätasapainoista kuljetusongelmaa ratkaistaessa käytetään tekniikkaa, jolla se tasapainotetaan. Voit tehdä tämän kirjoittamalla kuvitteellisia kohteita tai lähtöjä. Kuljetusongelman tasapainon toteutus on tarpeen, jotta voidaan soveltaa kuljetustaulukoiden käyttöön perustuvaa ratkaisualgoritmia.
Tässä versiossa pisteitä ei jaeta lähtö- ja kulutuspisteisiin, kaikki pisteet ovat yhtä suuret, mutta tuotanto on annettu positiivisella luvulla ja kulutus negatiivisella luvulla. Kuljetus tapahtuu tietyssä verkossa, jossa kaaret voivat yhdistää mitä tahansa pisteitä, mukaan lukien tuottaja-tuottaja, kuluttaja-kuluttaja.
Ongelma ratkaistaan hieman modifioidulla potentiaalien menetelmällä , joka on käytännössä sama kuin klassinen asetus.
Muunnelma siirtoongelmasta verkkoasetuksissa, jossa on määritelty joidenkin kaarien maksimiläpäisykyky.
Ongelma ratkaistaan hieman monimutkaisella potentiaalien menetelmällä .
Kuljetustehtävän muunnelma, jossa on useita tuotteita (pisteet voivat tuottaa/kuluttaa useita tuotteita). Joillekin kaarille asetetaan suoritusraja (ilman tätä rajaa tehtävä jakautuu erillisiin tehtäviin tuotteen mukaan).
Ongelma ratkaistaan simplex-menetelmällä (käytetään Danzig -Wulf-laajennusta, yhden tuotteen kuljetusongelmia käytetään alitehtävinä).