Even-Paz-algoritmi

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 12. helmikuuta 2020 tarkistetusta versiosta . vahvistus vaatii 1 muokkauksen .

Even-Paz- algoritmi  on laskennallisesti tehokas algoritmi kakun reilun leikkaamiseen . Se on tarkoitettu jollekin heterogeeniselle jaettavalle resurssille, kuten syntymäpäiväkakulle, n osallistujan kesken, joilla on erilaiset mieltymykset kakun eri osista. Algoritmi antaa n :lle mahdollisuuden saada suhteellinen jako .

Historia

Ensimmäinen julkaistu algoritmi kakun suhteelliselle jakamiselle oli viimeinen vähenevä algoritmi , joka julkaistiin vuonna 1948 ja joka oli monimutkainen . Vuonna 1984 israelilaiset matemaatikot Shimon Even ja Azariah Paz julkaisivat parannetun algoritmin, jonka monimutkaisuus oli [1] .

Kuvaus

Algoritmi käyttää hajota ja hallitse - strategiaa ja pystyy antamaan suhteellisen jaon ajassa .

Induktiolla voidaan todistaa, että jokainen kumppani, joka pelaa vähintään 1/ n arvon takaavien sääntöjen mukaan , riippumatta muiden kumppanien käyttäytymisestä.

Jaa ja hallitse -strategian ansiosta iteraatioiden määrä on vain O(log n ), toisin kuin viimeksi pelkistetyssä proseduurissa O( n ). Jokaisessa iteraatiossa vaaditaan yksi tunnus jokaiselta kumppanilta. Siksi vaadittujen merkkien määrä on .

Optimaalisuus

Muutama vuosi Even-Paz-algoritmin julkaisun jälkeen todistettiin, että minkä tahansa deterministisen tai satunnaistetun suhteellisen jakoproseduurin, joka määrittää kullekin osallistujalle jatkuvan kappaleen, täytyy käyttää toimintoja [2] .

Lisäksi kaikissa deterministisessä suhteellisessa jakomenettelyssä on käytettävä toimenpiteitä, vaikka menettelyn sallittaisiin antaa osallistujalle kappale, joka ei ole jatkuva, ja vaikka menettelyn sallittaisiin taata vain likimääräinen oikeudenmukaisuus [3] [4] .

Näistä algoritmin vaikeustuloksista seuraa, että Even-Paz-algoritmi on nopein algoritmi täyden suhteellisuuden saavuttamiseksi jatkuvilla kappaleilla, ja tämä algoritmi on nopein saavuttamaan jopa osittaisen suhteellisuuden ja jopa epäjatkuvien kappaleiden kanssa. Ainoa tapaus, jossa algoritmia voidaan parantaa, ovat satunnaistetut algoritmit , jotka takaavat osittaisen suhteellisuuden epäjatkuvilla paloilla. Katso " Edmonds-Prus-algoritmi ".

Satunnaistettu versio

Voit käyttää satunnaistamista vähentääksesi merkkien määrää. Seuraava satunnaistettu versio rekursiivisesta puolittajaproseduurista saavuttaa suhteellisen jaon käyttämällä keskimäärin vain O( n ) merkintäkyselyä [1] . Ajatuksena on, että jokaisessa iteraatiossa, sen sijaan, että kaikkia osallistujia pyydettäisiin merkitsemään keskelle, vain muutamaa kumppania pyydetään tekemään tällaisia ​​merkkejä, kun taas muut kumppanit valitsevat vain haluamansa puolikkaan. Kumppanit lähetetään joko länteen tai itään heidän mieltymyksensä mukaan, kunnes kumppaneiden määrä kummallakin puolella on n /2. Sitten tehdään leikkaus ja jokainen n /2 kumppanin ryhmä jakaa puolikkaan rekursiivisesti [5] .

Pahimmassa tapauksessa tarvitsemme silti n -1 markkeria iteraatiota kohden, joten vaadittu merkkien määrä on pahimmassa tapauksessa O( n log n ). Keskimääräisessä tapauksessa tarvitset kuitenkin vain O(log n ) -merkkiä iteraatiota kohden. Ratkaisemalla toistuvuusrelaatio voidaan osoittaa, että tarvittavien merkkien määrä on O( n ).

Huomaa, että pyyntöjen kokonaismäärä on O( n log n ), koska jokaisen kumppanin on valittava puolet.

Muistiinpanot

  1. 1 2 Even, Paz, 1984 , s. 285.
  2. Sgall, Woeginger, 2007 , s. 213-220.
  3. Edmonds, 2006 , s. 271-278.
  4. Edmonds, 2011 , s. 1–12.
  5. Tämä satunnaistettu rekursiivinen puolittamisalgoritmi on samanlainen kuin hyvin tunnettu satunnaistettu ranking -algoritmi - elementtien r -sijoituksen löytäminen lukujoukosta.

Kirjallisuus