Edmonds-Prus- protokollen er en retfærdig kageskæringsprotokol . Dens mål er at opnå en delvis proportional opdeling af en heterogen ressource blandt n personer, således at hver deltager modtager en delmængde af kagen (stykket), som hver deltager estimerer mindst 1/ an af det fulde estimat, hvor er en tilstrækkelig stor konstant . Algoritmen er probabilistisk med køretid O( n ) med en sandsynlighed for succes tæt på 1. Protokollen er udviklet af Jeff Edmond og Kirk Prus, som de senere forbedrede med Jaisingh Solanki.
Proportional opdeling af kagen kan opnås ved hjælp af den rekursive bisektionsalgoritme i tid . Nogle resultater om kompleksitet viser, at denne køretid er optimal over en bred vifte af antagelser. Især er rekursiv halvering den hurtigste algoritme til at opnå fuld proportionalitet, når brikkerne skal forbindes, og det er den hurtigst mulige deterministiske algoritme til at opnå selv partiel proportionalitet, og selvom det er tilladt at skære i afbrudte stykker. Der er et tilfælde, der ikke er dækket af resultaterne af kompleksitet, dette er tilfældet med probabilistiske algoritmer , der kun garanterer delvis proportionalitet og muligheden for afbrudte stykker . Edmonds-Prus-protokollen har til formål at give en køretid på O( n ) kun for dette tilfælde.
Den generelle ordning, efter Edmunds og Prus, er som følger [1] :
Algoritmen garanterer, at hver deltager med stor sandsynlighed modtager mindst halvdelen af sit kandidatstykke, hvilket indebærer (hvis præferencefunktionerne er additive), at værdien vil være mindst .
Der er O( n ) kandidatstykker og O( n ) yderligere klip i trin #5, der tager O(1) tid. Derfor er den samlede køretid for algoritmen O( n ).
Hovedopgaven i dette skema er valget af de sidste stykker i trin #4:
Lad os starte med at lave en skæringsgraf , en graf, hvis toppunkter er de semi-finale bidder, og en bue fra del I af medlem i til del J af medlem j eksisterer, hvis del I skærer J del af medlem j (derfor, hvis vi vælger chunk I og vil undgå kryds, skal vi også vælge stykke J ).
Lad os vælge en vilkårlig deltager i , som endnu ikke har modtaget sin brik, og vælge en vilkårlig brik I af denne deltager som den endelige brik. Derefter gennemgår vi forbindelsen i skæringsgrafen og vælger som de sidste brikker alle de brikker, der nås fra toppunktet I . Der er to gode scenarier - enten uddeler vi et sidste stykke til hver deltager og afslutter dermed proceduren, eller også når vi et stykke, der ikke har udgående links (hvilket betyder, at det ikke krydser andre stykker). I sidstnævnte tilfælde vælger vi blot et andet stykke fra et af de resterende medlemmer og fortsætter. Det dårlige scenarie sker, når vores rejse fører til to forskellige bidder af det samme medlem, eller tilsvarende en anden luns af medlem i , hvorfra vi startede rejsen. En sådan sti, der fører fra et stykke deltager i til et andet stykke af den samme deltager, kaldes en parret sti . Hvis skæringsgrafen ikke indeholder parrede stier, returnerer den beskrevne algoritme et sæt af n ikke-overlappende slutstykker, og vi har det ønskede resultat. Nu er det tilbage at beregne sandsynligheden for, at skæringsgrafen indeholder en parret sti.
Overvej først det særlige tilfælde, hvor alle deltagere har de samme præferencefunktioner (og dermed det samme sæt kandidatstykker). I dette tilfælde er sandsynligheden for en parret sti let at beregne, da sandsynligheden for hver bue er 1/ an , og alle kanter er uafhængige, så sandsynligheden for en bestemt parret bane af længden k er , og sandsynligheden for evt. parret sti er højst:
Ved at vælge d =1 og et tilstrækkeligt stort a , kan denne sandsynlighed gøres vilkårligt lille. Dette er sandt, selvom vi udelader semifinaleudvælgelsesfasen (#3) og betragter alle kvartfinalister som semifinalister.
Bemærk, at denne sag ligner kuglerne i urner model . Dette beviser, at hvis d urner vælges vilkårligt for hver bold, så kan der vælges en urne for hver bold, så alle urner er forskellige (det maksimale antal bolde er 1).
I den generelle kagemodel, når præferencefunktionerne er forskellige, er kantsandsynlighederne i skæringsgrafen afhængige, men takket være semifinalistudvælgelsesfasen kan vi vise, at sandsynligheden for, at skæringsgrafen indeholder en parret længdevej ved mindst 3 overstiger ikke .
Det er tilbage at overveje parrede stier af længde 2. Desværre er sandsynligheden for at opnå en sådan parret vej i skæringsgrafen ikke ubetydelig. Det er dog med stor sandsynlighed muligt at dele deltagerne op i to grupper, som hver ikke har parrede stier af længde 2. Derfor kan vi køre algoritmen til at vælge de sidste brikker to gange, én gang for hver gruppe. Et skæringspunkt kan kun forekomme mellem de sidste stykker af forskellige grupper, hvorfor overlapningen på hvert punkt af kagen ikke overstiger 2. Sandsynligheden for, at en sådan 2-partition er umulig , overstiger ikke .
Efter at have summeret de to ovenstående udtryk og taget d = 2, får vi, at sandsynligheden for fejl forbliver . Husk på, at a er et forhold mellem proportionalitet - jo større værdi, vi ønsker at garantere hver deltager, jo mere sandsynligt er det, at divisionen mislykkes og bør startes fra trin #1.
Nogle algoritmer virker også, hvis snittene er omtrentlige, det vil sige, at deltagerne ikke ved, om de markerede brikker er lige store. De kan markere et stykke med en p procent værdi over eller under den påkrævede værdi, og den nøjagtige fejl vælges tilfældigt [1] .
Du kan yderligere reducere risikoen for fejl ved at bruge følgende skema [2] :
Sandsynligheden for at fjerne en bestemt deltager i hvert pass er . Sandsynligheden for at fjerne en bestemt deltager i begge kørsler er lig med . Derfor er sandsynligheden for fejl , og den har en tendens til 0, når n stiger, selvom det partielle proportionalitetsforhold a holdes konstant.
Kagemodellen kan betragtes som en generalisering af boldproblemmodellen . Denne model finder bred anvendelse inden for områder som belastningsbalancering . I disse situationer repræsenterer bolden arbejde, der kan tildeles forskellige maskiner (i vores terminologi, urner). Groft sagt er fordelingen af belastningen af identiske maskiner kugler og urner, og fordelingen af belastningen af ulige maskiner skærer kagen. Derfor er det helt klart, at kagemodellen og Edmonds-Prus-protokollen bør have interessante anvendelser med hensyn til belastningsfordeling på uens maskiner [1] .