Las Vegas är en typ av probabilistisk algoritm (se även Monte Carlo Algorithms ).
Tanken bakom Las Vegas-algoritmen är följande. Om vi har en viss probabilistisk algoritm som ger det korrekta resultatet med en viss sannolikhet, och det är möjligt att algoritmiskt kontrollera resultatet av algoritmen för korrekthet (säg, med hjälp av algoritmen ), då kan vi exekvera algoritmen tills kontrollen fastställer att resultatet är korrekt.
Kör algoritmen med resultatet tills det är sant.Namnet på denna princip gavs å ena sidan som en anspelning på Monte Carlo - metoden . Å andra sidan anspelar detta namn på "kasinovinnande metoden", som liknar processen för algoritmen - "om jag spelar igen och igen kommer jag definitivt att vinna någon gång."
Det bör noteras att Las Vegas-algoritmen garanterar ett korrekt resultat. Algoritmen körs i ändlig men icke-deterministisk tid. Du kan bara ange sannolikheten för att få ett resultat under en given tid.
Ett exempel på en algoritm relaterad till Las Vegas-klassen är Bogosort- sorteringsalgoritmen : data som ska sorteras blandas slumpmässigt och sedan kontrolleras om de är i rätt ordning. I händelse av fel upprepas blandningen många gånger tills önskad ordning uppnås.
Låt vara en Las Vegas-algoritm med förväntad tidskomplexitet , där är ingångslängden. Om vi slutar efter stegen ( ), får vi en Monte Carlo-algoritm med en felsannolikhet på . För att bevisa satsen, betrakta som en indata av längd och - en slumpmässig variabel som beskriver tidskomplexiteten för . Sedan den matematiska förväntan och enligt Markov ojämlikhet : .