A számítástechnikában és az operációkutatásban számos kombinatorikus optimalizálási probléma számításilag megoldhatatlan a probléma pontos megoldásához (azaz az optimális megoldás eléréséhez). Sok ilyen probléma gyors ( polinomiális idejű ) közelítő algoritmusokat tesz lehetővé – vagyis olyan algoritmusokat, amelyek garantáltan közel optimális megoldást adnak vissza bármilyen bemenetre.
A valószínűségi kerekítés [1] egy széles körben használt megközelítés ilyen közelítő algoritmusok kidolgozására és elemzésére [2] [3] . Az alapötlet egy valószínűségi módszer alkalmazása egy lineáris programozási (LP) probléma megfelelő optimális megoldásának az eredeti probléma optimális megoldásának közelítésévé való átalakítására.
Az alapvető megközelítés három lépésből áll:
(Bár a megközelítés főként lineáris programozást alkalmaz, a feltételek másfajta relaxációja is használható. Például Goeman és Williamson algoritmusa a félig határozott programozási közelítő maximum vágási algoritmust használja .)
Az első lépés célja az egész lineáris programozási feladat megfelelő utasításának kiválasztása. Ez megköveteli a lineáris programozás alapos ismeretét, és különösen annak megértését, hogyan lehet a problémákat lineáris programozással és egész lineáris programozással modellezni. Azonban sok probléma esetén létezik egy jól teljesítő természetes egész lineáris programozási probléma, amint az a probléma lefedő példájában látható. (Egy egészszámú lineáris programozási feladatnak kis integer résnek kell lennie. Ezenkívül a valószínűségi kerekítést gyakran használják az egész számok közötti eltérések bizonyítására.)
A második lépésben az optimális tört megoldás általában polinomiális időben számítható ki egy szabványos lineáris programozási algoritmus segítségével .
A harmadik lépésben a tört megoldást egész megoldássá (és ezáltal az eredeti feladat megoldásává) kell átalakítani. Ezt a folyamatot frakcionált megoldás kerekítésnek nevezzük . A végső egész megoldásnak (bizonyíthatóan) olyan árral kell rendelkeznie, amely nem sokban tér el a tört megoldás árától. Ez biztosítja, hogy egy egész számú megoldás költsége ne legyen sokkal nagyobb, mint egy optimális egész megoldás költsége.
A harmadik lépésben (kerekítés) alkalmazott fő technika a valószínűségi megközelítés alkalmazása, majd a valószínűségi érvelés a kerekítéssel járó áremelkedés korlátozása érdekében. Itt valószínűségi argumentumokat használunk a kívánt tulajdonságokkal rendelkező diszkrét struktúra létezésének kimutatására. Ebben az összefüggésben a valószínűségi argumentumokat a következők bemutatására használjuk:
Adott néhány tört megoldás az LP feladatra, a valószínűségi kerekítés pozitív valószínűséggel olyan egész megoldást ad , amely valamilyen kívánt kritérium szerint közelít .Végül, hogy a harmadik lépés számításilag hatékony legyen, vagy nagy valószínűséggel közelinek mutatjuk be (hogy a lépés valószínűségi maradjon), vagy a kerekítési lépést derandomizáljuk , általában feltételes valószínűségekkel . Ez utóbbi módszer a valószínűségi kerekítési folyamatot egy hatékony determinisztikus folyamattá alakítja át, amely garantáltan jó eredményt ad.
A valószínűségi kerekítési lépés két szempontból különbözik a valószínűségi módszer legtöbb alkalmazásától:
A módszert egy példával lehet a legjobban illusztrálni. A következő példa bemutatja, hogyan lehet véletlenszerű kerekítéssel egy közelítő algoritmust létrehozni a beállított fedőprobléma számára .
Vegyük a halmazlefedési probléma bármely példányát a gyűjteményben .
Az 1. lépésben legyen az egész szám LP probléma a szabványos egész lineáris programozási probléma a halmaz lefedésére .
A 2. lépésben legyen az LP probléma az ILP probléma gyengítése az LP problémára, és legyen ennek a gyengített problémának az optimális megoldása, amelyet bármely szabványos lineáris programozási algoritmus kaphat . (Az LP probléma megoldásához szükséges idő polinomiálisan függ a bemenet méretétől.)
(Az LP probléma érvényes megoldásai olyan vektorok , amelyek minden halmazhoz nemnegatív súlyt rendelnek , úgy, hogy bármely elemhez , fedek - a , -t tartalmazó halmazokhoz rendelt összsúly legalább 1, azaz
Az optimális megoldás egy megvalósítható megoldás, amelynek költsége
a lehető legkisebb.)
Ne feledje, hogy a készlet bármely borítója megvalósítható megoldást ad ( ahol a -ra , ellenkező esetben). Ennek a fedezetnek az ára megegyezik az árral , azaz
Más szóval, a lineáris programozási probléma az adott halmazlefedési probléma relaxációja.
Mivel az LP-probléma megvalósítható megoldásai közül ennek van a minimális ára, ezért az ár a halmaz optimális fedezetének költségének alsó korlátja .
Az alábbiakban ismertetjük a harmadik lépés leírását, a kerekítési lépést, amelynek a minimális árkészlet részleges fedezetét kell érvényes egész megoldássá konvertálnia (a megfelelő halmazfedezetnek megfelelően).
A kerekítési lépés olyan megoldást ad , amely pozitív valószínűséggel az ártól kis mértékben eltér ára. Ekkor (mivel az ár az optimális lefedettség árának alsó határa), az ár kis mértékben el fog térni az optimális ártól.
Kiindulásként vegye figyelembe a legtermészetesebb kerekítési sémát:
Minden egyes halmaz esetében valószínűséggel veszünk , ellenkező esetben .E kerekítési séma szerint a kiválasztott készletek árának matematikai elvárása nem haladja meg a részfedezet árát. Ez jó, de sajnos a lefedettség nem jó. Ha a változók kicsik, annak a valószínűsége, hogy az elemet nem fedi le, hozzávetőleges
Így a lefedett elemek arányának matematikai elvárása állandó lesz.
Annak érdekében , hogy nagy valószínűséggel lefedje az összes elemet, a standard kerekítési séma először egy megfelelő tényezővel növeli a kerekítési valószínűségeket . Szabványos kerekítési séma:
Javítjuk a paramétert . Minden készlethez , valószínűséggel veszünk , ellenkező esetben .A valószínűségek szorzata -val növeli az ár várható értékét , de valószínűbbé teszi az összes elem lefedettségét. Itt az az ötlet, hogy a lehető legkisebbre válasszunk, hogy minden elem bizonyíthatóan nem nulla valószínűséggel lefedve legyen. Az alábbiakban egy részletes elemzés található.
Lemma (a kerekítési séma garantált hatékonysága) Javítjuk . Pozitív valószínűséggel a kerekítési séma olyan fedezetet ad vissza , amelynek költsége nem haladja meg (és ez a költség az optimális beállított fedezet költségének szorzójával tér el ).(Ne feledje, hogy némi körültekintéssel az értéket le lehet csökkenteni .)
BizonyításA véletlenszerű kerekítési séma kimenete a kívánt tulajdonságokkal rendelkezik mindaddig, amíg a következő "rossz" események bekövetkeznek:
Mindegyik matematikai elvárása nem haladja meg a . A matematikai elvárás linearitása miatt az elvárás nem haladja meg a . Ekkor a Markov-egyenlőtlenség szerint az első rossz esemény valószínűsége nem haladja meg a .
A fennmaradó rossz eseményekhez (egy elemhez egyet ) vegye figyelembe, hogy mivel , bármely adott elemére a nem fedezett valószínűség
(Itt az egyenlőtlenséget használjuk , ami szigorúan igaz -ra .)
Így tetszőleges számú elem esetén annak a valószínűsége, hogy az elemet nem fedi le, kisebb, mint .
Kisebb annak a valószínűsége, hogy valamelyik rossz esemény megtörténik . Ekkor a rossz események hiányának valószínűsége nagyobb, mint nulla, és ez a halmaz fedezete, amelynek költsége nem haladja meg a .
QED (amit be kellett bizonyítani)
A fenti lemma azt mutatja , hogy létezik egy készlet borítója, amelynek költsége ). Ebben az összefüggésben a célunk egy hatékony közelítő algoritmus, nem csak a létezés bizonyítása, ezért még nem fejeztük be a 3. lépést.
Egyik megközelítésként lehetne egy kicsit növelni , majd megmutatni, hogy a siker valószínűsége legalább 1/4. Ezzel a módosítással, a véletlenszerű kerekítési lépés többszöri megismétlésével nagy valószínűséggel biztosítható a siker.
Ez a megközelítés gyengíti a garantált hatékonyságot, de leírunk egy másik megközelítést, amely egy olyan determinisztikus algoritmust eredményez, amely biztosítja a fent jelzett garantált hatékonyságot. A megközelítést feltételes valószínűségek módszerének nevezik .
A determinisztikus algoritmus egy valószínűségi kerekítési sémát emulál – minden halmazt figyelembe vesz , és azonban ahelyett, hogy véletlenszerűen választana a alapján , az algoritmus determinisztikus választást hoz, így a választás által meghatározott feltételes meghibásodási valószínűség 1-nél kisebb marad .
A meghibásodás feltételes valószínűségének megkötéseMinden változó értékét úgy szeretnénk beállítani , hogy a feltételes meghibásodási valószínűség 1-nél kisebb legyen. Ennek eléréséhez jó korlátra van szükségünk a feltételes meghibásodási valószínűségre vonatkozóan. A határt az eredeti létezési bizonyíték újralátogatásával kapjuk meg. Ez a bizonyítás implicit módon a valószínűségi változó várható értékére korlátozza a sikertelenség valószínűségét
,ahol
a fedetlenül hagyott elemek halmaza.
A valószínűségi változó kissé rejtélyesnek tűnhet, de a valószínűségi bizonyítás szisztematikus megközelítését tükrözi. A képlet első tagját úgy kapjuk meg, hogy a Markov-egyenlőtlenségeket alkalmazzuk az első rossz eseményhez kötött valószínűségre (a költség túl magas). Ez a tag legalább 1-gyel járul hozzá, ha az ár túl magas. A második tag a második típusú rossz események (fedetlen elemek) számát számolja. Legalább 1-gyel járul hozzá, ha bármilyen elemet fedetlenül hagy. Így minden 1-nél kisebb kimenetnél a megoldásnak minden elemet le kell fednie, és a lemma kívánt korlátjának megfelelő árral kell rendelkeznie. Röviden, ha a kerekítési lépés sikertelen, . Ebből következik ( Markov egyenlőtlensége szerint ), hogy mi a kudarc valószínűségének felső korlátja. Vegye figyelembe, hogy a fenti érvek implicit módon már jelen vannak a lemma bizonyításában, ami azt is mutatja, hogy .
A feltételes valószínűségi módszer alkalmazásához ki kell terjesztenünk a feltételes meghibásodási valószínűség korlátozásának indoklását a kerekítési lépés során. Ez általában szisztematikusan megtehető, bár technikailag időigényes lehet.
Tehát mekkora a sikertelenség feltételes valószínűsége, ha a kerekítési lépés végighalad a halmazokon? Mivel minden eredmény azt jelenti, hogy a kerekítési lépés kudarchoz vezetett, a Markov-féle egyenlőtlenség szerint a sikertelenség feltételes valószínűsége nem haladja meg a feltételes várakozást .
Ezután kiszámítjuk a feltételes átlagot , ugyanúgy, mint az eredeti bizonyításban. Tekintsük a kerekítési folyamat állapotát minden iteráció végén . Jelölje a beolvasott halmazokat (az első halmazokat a -ban ). Jelöljön egy (részben hozzárendelt) vektort (csak akkor van így definiálva, ha ). Egy ilyen halmaz esetén jelölje azt a valószínűséget, amellyel 1-hez lesz rendelve. Tartalmazzon fedetlen elemeket. Ekkor a választás által adott feltételes elvárás , azaz a döntés adta , akkor
Ne feledje, hogy csak a iteráció után kerül meghatározásra .
A meghibásodás feltételes valószínűségének 1-nél kisebb tartásaAhhoz, hogy a meghibásodás feltételes valószínűsége 1-nél kisebb legyen, elegendő a feltételes átlagot 1-nél kisebb értéken tartani. Ehhez elegendő elkerülni a feltételes átlag növekedését, és ezt fogja tenni az algoritmus. Az algoritmus minden iterációnál úgy lesz beállítva
(hol ).
Egy iterációnál hogyan állítható be az algoritmus a következőre ? Kiderült, hogy egyszerűen beállíthatja , hogy utánozza az értékét .
Az ok megértéséhez vegye figyelembe az iteráció kezdetének időpontját. Ezen a ponton az érték meg van határozva, de az érték definiálatlan – két lehetséges értéket vehet fel, attól függően, hogy hogyan van beállítva az iterációban . A Let értéket jelent . Jelölje a két lehetséges értékét , attól függően, hogy 0-ra vagy 1-re van állítva. A feltételes elvárás definíciója szerint,
Mivel két mennyiség súlyozott átlaga mindig nagyobb vagy egyenlő, mint a legkisebb mennyiség, ebből az következik
Így a kapott érték minimálisra csökkentése biztosítja, hogy . Ezt fogja tenni az algoritmus.
Részletesen, mit jelent ez? A függvény függvényének tekintve (az összes többi rögzített értékkel együtt), ez a függvény lineáris -ben , és az at együttható ebben a függvényben
Így az algoritmusnak 0-ra kell állítania, ha ez a kifejezés pozitív, és 1-re egyébként. Mindez a következő algoritmust adja.
bemenet: halmazok halmaza , populáció , árvektor
kimenet: lefedettség halmaza (egy szabványos egész lineáris programozási probléma megoldása egy halmaz lefedésére)
Az algoritmus biztosítja, hogy a feltételes elvárás ne nőjön minden iterációnál. Mivel ez a feltételes elvárás eredetileg kisebb volt 1-nél (amint fentebb látható), az algoritmus biztosítja, hogy a feltételes elvárás 1-nél kisebb maradjon. Mivel a meghibásodás feltételes valószínűsége nem haladja meg a feltételes elvárást , az algoritmus biztosítja, hogy a meghibásodás feltételes valószínűsége megmaradjon. 1-nél kisebb. Így az algoritmus végén, amikor minden elem definiálva van, az algoritmus sikeres eredményt kap. Ez azt jelenti, hogy a fenti algoritmus egy halmazfedelet ad vissza , amelynek ára nem haladja meg egyetlen (töredékes) halmazfedezet minimális árát.
A fenti példában az algoritmus egy valószínűségi változó feltételes elvárásán alapult . Egyes esetekben a pontos feltételes elvárás helyett egy bizonyos értékű feltételes elvárás felső (és esetenként alsó) korlátját alkalmazzák. Ezt pesszimista becslésnek nevezzük .