Potentiaalinen menetelmä

Potentiaalinen menetelmä on lineaarisen ohjelmointiongelman ratkaisun simpleksimenetelmän muunnos suhteessa kuljetusongelmaan . Se mahdollistaa jostain toteuttamiskelpoisesta ratkaisusta alkaen saada optimaalisen ratkaisun äärellisessä määrässä iteraatioita.

Kuljetusongelman muotoilu

Lavastusta on kahta tyyppiä - matriisi ja verkko. Matriisiformulaatiossa kuljetus on sallittu vain tuottajalta kuluttajalle. Verkkoympäristössä kuljetus voidaan suorittaa mihin tahansa suuntaan (pisteet voivat olla kauttakulkua). Olkoon  tuotanto-/kulutuspisteitä,  kuljetuskaareja , rahtihintoja kaaria  pitkin ja  joukko perussarakkeita.

Tehtävä on muotoiltu [1]

löytö

olosuhteissa

missä  - kuljetuskustannukset kaareina,  - tuotanto (+) / kulutus (-)

 - ratkaisu

Kuljetusongelman rajoitusmatriisi koostuu sarakkeista, joissa on vain kaksi nollasta poikkeavaa elementtiä - +1 tuottajalle ja -1 kuluttajalle [2] .

Huomautus: Yleisesti ottaen mikä tahansa matriisin neliömatriisi (eli ) on degeneroitunut, joten jotta simpleksimenetelmä toimisi, on tarpeen ottaa käyttöön keinotekoisia muuttujia tai jättää yksi rivi huomiotta. Käytettäessä kaatopaikkaa (katso alla), sitä vastaava rivi jätetään huomioimatta.

Algoritmi

Potentiaalimenetelmä on muunnos simpleksimenetelmästä, jossa kantamatriisi on esitetty puuna [3] .

Kuljetusongelman simpleksimenetelmän kaksoismuuttujia kutsutaan potentiaalisiksi .

Potentiaalit lasketaan kaavalla , joka vastaa

Kaarelle kaarien potentiaalit suhteutetaan kaavalla .

Siten kuluttajan potentiaali on sama kuin tuottajan potentiaali + kuljetuskustannukset. Taloudellisesta näkökulmasta tämä voidaan tulkita tuotteen kustannuksiksi kulutuspisteessä.

Suunnitelman optimaalisuuden tarkistaminen on taloudellisesti helposti tulkittavissa - jos tuotteen hinta kulutuspisteessä on suurempi kuin tuotantokustannukset + kuljetushinta, tämä kaari tulee kuljettaa. Suuruutta kutsutaan jäännöskaareksi .

Kaaren lisääminen aiheuttaa puussa syklin. Kelkan lisäys syötettyä kaaria pitkin johtaa virtausten uudelleenlaskentaan jakson aikana, jolloin kuljetus pitkin yhtä kaaria laskee nollaan. Kaari, jonka virtaus on nolla, poistetaan kannasta, kun taas kantagraafi pysyy puuna (sykli katkeaa).

Jää vain laskea uudelleen potentiaalit - lisää (tai vähennä - riippuu kaaren suunnasta) kaikkiin "riippuvan haaran" kärkiin jäännösarvolla

Prosessi päättyy, kun optimaalisuusehto täyttyy kaikille kaarille.

Avaa ongelmat

Ongelma on suljettu, jos tuotantojen summa on yhtä suuri kuin kulutuksen summa.

Yleensä ympäristössä tuotannon määrä on suurempi kuin kulutuksen määrä. Ei-suljettujen ongelmien ratkaisemiseksi sekä alkuperäisen perussuunnitelman saamisen helpottamiseksi käytetään keinotekoista perusmenetelmää [4] . Tätä varten alkuperäistä kaaviota laajennetaan, otetaan käyttöön "kaatopaikka" - lisäpiste, johon kaikki ylituotanto tuodaan nollahintaan.

Jos tuodaan kaareja kaatopaikalta kulutuspisteille erittäin korkealla hinnalla, alkuratkaisu rakentuu triviaalisti - kuljetamme kaiken tuotannon kaatopaikalle, kaiken kulutuksen kaatopaikalta.

Kaaret tuotantopisteistä kaatopaikalle vastaavat lisämuuttujia simplex-menetelmässä ja kaareet kaatopaikalta kulutuspisteisiin vastaavat keinotekoisia muuttujia .

Luoteiskulmamenetelmä

Matriisikuljetusongelmalle toinen algoritmi alkuperäisen suunnitelman rakentamiseksi on mahdollinen.

1. Valitse jokin kärkipiste i.

2. Valitse kaaritapahtuma i:lle. Asetetaan kaaren virtaus kaaren päissä olevien tuotanto- ja kulutusmäärien minimiin. Pienennetään näitä tilavuuksia kaaren virtauksen määrällä. Jätämme huomioimatta pisteen, jonka tilavuus on nolla, yhdessä siihen tulevien kaarien kanssa. Siirrytään kohtaan 2.

Jos tuotannon ja kulutuksen huiput numeroidaan uudelleen ja joka kerta kun valitaan pienimmän numeron omaava kaari, menetelmää kutsutaan luoteiskulmamenetelmäksi [5] .

Muutama huomio algoritmin tehokkuudesta

Lähtökaaren määrittely ja potentiaalien uudelleenlaskenta toteutetaan varsin tehokkaasti. Pääasiallinen ajan "kuluttaja" on optimitarkistus [6] .

Optimaalisuuden tarkistamiseen kuluvan ajan lyhentämiseksi käytetään useita menetelmiä.

1. Esteen avulla - heti kun poikkeaman arvo on suurempi kuin tietty arvo, tuomme kaaren kantaan menemättä muiden kaarien läpi. Jos kaaria ei löydy, vähennämme esteen havaittuun enimmäispoikkeamaan ja lisäämme vastaavan kaaren kantaan.

2. Syklinen näkymä - haku alkaa kohdasta, johon se pysähtyi edellisessä näkymässä.

3. "Hakijoiden" valinta - katseltaessa ei valita yhtä kaaria, vaan useita. Seuraavassa vaiheessa vain valitut kaaret tarkistetaan.

Perusmatriisin determinantti on aina 1, joten kokonaislukutiedolla tehtävä antaa kokonaislukuratkaisuja.

Kaistanleveysrajoitukset

Joillekin kaareille voidaan asettaa kaistanleveysrajoituksia . Pieni algoritmin monimutkaisuus voi ratkaista ongelman rajoitetulla kaistanleveydellä [7] .

löytö

olosuhteissa

Tässä  — lisämuuttujia (otettu käyttöön epätasa-arvon muuttamiseksi tasa-arvoksi).

Perus koostuu kolmesta sarjasta - , ja .

missä  ovat kaaret, jotka vastaavat tavallisia rajoituksia ( )

 — kaaret, jotka ovat saavuttaneet kaistanleveyden rajan (kyllästyt kaaret) ( )

 — kaaret, jotka eivät ole saavuttaneet kaistanleveysrajaa (vastaavat lisämuuttujia)( )

Perusmatriisilla on muoto

Kantaluvun käänteisarvo on tällöin yhtä suuri kuin

Kaksoismuuttujat lasketaan kaavalla

Tässä

 — potentiaalit (kuten potentiaalien standardimenetelmässä).

 — lisämaksu kuljetuksesta kyllästettyä kaaria pitkin.

Myös kaaren kaistanleveyden rajoittamista voidaan lisätä muuttamalla kuvaajaa hieman [8] .

Kaareen A->B lisätään kaksi kärkeä kustannuksella c ja maksimiläpäisyllä p: C kulutus -p ja D tuotanto p. Huiput yhdistetään kaavion A->C<-D->B mukaan A->B:n sijaan. Kaaren A->C hinta on c, kaarien C<-D ja D->B hinta on nolla. Tällainen kaavio ei salli p:tä suuremman virtauksen kulkea pisteiden A->B välillä.

Algoritmi

Algoritmi on hyvin samanlainen kuin tavallinen potentiaalimenetelmä. Kyllästynyt kaari ei saa täyttää optimaalisuuskriteeriä, muuten virtausta sitä pitkin tulisi vähentää. Loput kaaret tarkistetaan kriteerin suhteen samalla tavalla kuin vakioversiossa. Aivan kuten vakioalgoritmissa, molemmissa tapauksissa tulee ääriviiva, jossa virtausta tulee muuttaa (vähennä valitulle kaarelle, jos kaari poistetaan kyllästetyistä ja kasvaa normaalin kaaren tapauksessa). Kun virtaukset muuttuvat, yksi kaarista voi mennä nollaan (kuten vakioalgoritmissa) tai kaistanleveyden ylärajaan - käännämme sen kyllästyneiksi.

Samoin kuin vakioalgoritmissa, myös potentiaalit lasketaan uudelleen.

Muistiinpanot

  1. Romanovsky, 1977 , s. 109-110.
  2. Romanovsky, 1977 , s. 111.
  3. Romanovsky, 1977 , s. 115.
  4. Romanovsky, 1977 , s. 122.
  5. Romanovsky, 1977 , s. 124.
  6. Itse asiassa nämä ovat samoja lähestymistapoja kuin simplex-menetelmässä, hieman muutetulla terminologialla. Katso Yksipuolista menetelmää käsittelevän artikkelin Tehokkuustekniikat -osio.
  7. Romanovsky, 1977 , s. 137.
  8. Romanovsky, 1977 , s. 139.

Linkit