Kls prolmów #P Pwł Gor /2/28
Agn Prolmy klsy #P Prolmy #P-zupłn Przykł prolmu #PC: zlizni roszrzń liniowyh Przykłow lgorytmy zlizni rozszrzń liniowyh /2/28 2
Kls polmów #P Kls #P kls prolmów zlizni związnyh z prolmmi yzyjnymi z klsy NP Przykły: NP #P Czy istnij w gri ykl Hmilton o koszi mnijszym niż? Czy istnij wrtośiowni spłniją ormułę CNF? Czyistnij oskonł skojrzni w gri wuzilnym? Il istnij w gri ykli Hmilton o koszi mnijszym niż? Il istnij wrtośiowń spłnijąyh ormułę CNF? Il istnij oskonłyh skojrzń w gri wuzilnym? /2/28 3
Kls prolmów #P-zupłnyh Kls #P-omplt kls prolmów z #P tkih, ż kży prolm z #P się o nih zrukowć w zsi wilominowym. Przykły: #SAT (il jst wrtośiowń spłnijąyh zną ormułę?) #HAMILTON_PATH (il jst śiżk Hmilton w gri?) #PERMANENT (il jst ilnyh skojrzń w gri wuzilnym?) /2/28 4
Dowozni przynlżnośi o #PC Rukj prolmu A o prolmu B: x A? /2/28 5
Dowozni przynlżnośi o #PC Rukj prolmu A o prolmu B: R x A? R(x) B N /2/28 6
Dowozni przynlżnośi o #PC Rukj prolmu A o prolmu B: x A S(N) R S R(x) B N /2/28 7
Dowozni przynlżnośi o #PC Rukj prolmu A o prolmu B: x A S(N) R S R(x) B N JśliS jst unkją intyznośiową,to jst to rukj oszzęn. /2/28 8
Truność prolmów z #P i #PC Prolmy z klsy #P są o njmnij tk trun jk opowiją im prolmy z klsy NP Jżli istnij wilominowy lgorytm l prolmu z #PC, to P = NP (o pokzno, ż #SAT jst w klsi #PC). Tki lgorytm ni jst jszz znny... /2/28 9
Pytni kontroln #PNPC -kls prolmów z #P, któr opowiją prolmom z NPC. Czy #PC = #PNPC? /2/28
Pytni kontroln #PNPC -kls prolmów z #P, któr opowiją prolmom z NPC. Czy #PC = #PNPC? NIE!! /2/28
Prolmy z #PC Do klsy #PC nlżą tż prolmy, l któryh opowini prolm yzyjny posi rozwiązni wilominow. Przykł: Prolm istnini ilngo skojrzni w gri wuzilnym /2/28 2
Wżny przykł prolmu z #PC Prolm znjowni ilośi rozszrzń liniowyh zioru zęśiowo uporząkowngo (postu). Post= (P, ), P = n Rlj jst:. Zwrotn: l z S 2. Antysymtryzn: jśli i, to = 3. Przhoni: jśli i, to /2/28 3
Post Elmnty x, y są porównywln, jżli x y lu y x Wpp x,y niporównywln(x y) Porząk liniowy: kż 2 lmnty P są porównywln Łńuh w P: poziór P ęąy porząkim liniowym Antyłńuhw P: poziór P, w którym wszystki lmnty są niporównywln Szrokość P: rozmir njwiększgo ntyłńuh w P (w(p)) /2/28 4
Rozszrzni liniow postu Post (P, ) jst rozrzsznim(p, ), gy l x,y z zioru P x y implikuj x y Rozszrzni liniow = rozszrzni ęą łńuhm /2/28 5
Digrm Hssgo Przykł igrmu Hssgo: /2/28 6
Prolmy związn z postmi Jk znjowć wszystki rozszrzni liniow? Il jst wszystkih rozszrzń liniowyh? Il jst roszrzń liniowyh, w któryh x jst n pozyji ustlonj pozyji? Il jst rozszrzń liniowyh, w któryh x jst prz y? Pirwszy prolm się rozwiązć w zmortyzownym zsi stłym (O((P)), gzi (P) ilość rozszrzń liniowyh) Osttni 3 prolmy nlżą o klsy #PC. /2/28 7
Potrzn pojęi Post P jst krtą, jżli l owolyh x, y z P istnij in{x, y} = x Λv orz sup{x, y} = x v y. Ił: poziór D postu P: D x x y P y D x,, Filtr: poziór U postu P: /2/28 8 D x x y P y D x,, U y y x P y U x,,
Zlizni rozszrzń liniowyh Algorytm ynmizny Post (P, ) o szrokośi k. Z tw. Dilworth się go pokryć k rozłąznymi łńuhmi: x x x, 2, k, < <... < x x x,2 2,2 k,2 < <... <......... < < x, n x x, n... <, 2.. n k /2/28 9
Algorytm ynmizny Kżmu iłowi I możn jnoznzni przyporząkowć krotkę: U k { i, j i= I = x : j < p } p, p,..., p ) i ( 2 k Różn iły są rprzntown przz różn krotki, np krotk (,,...,) rprzntuj ił pusty. /2/28 2
Algorytm ynmizny [p,p 2,...,p k ] ilość rozszrzń liniowyh iłu rprzntowngo przz tą krotkę [,,...,] = Jśli (p,p 2,...,p k ) ni rprzntuj iłu, to [p,p 2,...,p k ] = Jśli (p,p 2,...,p k ) rprzntuj ił, to [p,p 2,...,p k ] = [p -,p 2,...,p k ] + [p,p 2 -,...,p k ] +... + [p,p 2,...,p k -] /2/28 2
Algorytm ynmizny /2/28 22
Algorytm ynmizny N koni olizń: [ 2 n, n,..., n k ] = liz rozszrzń liniowyh Wszystkih krotk jst o njwyżj: /2/28 23
Algorytm ynmizny Ilość oprji n prztworzni krotki: Łązn ilość oprji lgorytmu: Dl ustlongo k złożoność: Dl k = Θ(n) złożoność: /2/28 24
Algorytm II krt iłów Krt iłów: {,,,,,} {,,,,} {,,,} {,,,} {,,} {,,} {,} {,} {} /2/28 25 Ø
Algorytm II krt iłów Krt iłów: {,,,,,} {,,,,} {,,,} {,,,} {,,} {,,} {,} {,} {} /2/28 26 Ø
Oznzni ImSu(I) list zpośrnih nstępników I Chil(I) list zpośrnih poprzników I LinExtFiltr(I) ilość rozszrzń liniowyh iltru P\I VisitIl(I) lg: zy I ył już owizony przz lgorytm /2/28 27
Algorytm Buil (Post P) zuuj krtę iłów P; ount <- Assign(Ø); Assign (Il I) VisitIl(I) <- tru; xtnsions <- ; or h il I inimsu(i) o ii = P thnxtnsions <-xtnsions + ; ls i not VisitIl(I ) thn xtnsions <- xtnsions + Assign(I ); ls xtnsions <- xtnsions + LinExtFiltr(I ); LinExtFiltr(I) <- xtnsions; rturnxtnsions; /2/28 28
Przykł /2/28 29
Przykł /2/28 3
Przykł /2/28 3
Przykł /2/28 32
Przykł /2/28 33
Przykł /2/28 34
Przykł /2/28 35
Przykł /2/28 36
Przykł /2/28 37
Przykł /2/28 38
Przykł /2/28 39
Przykł /2/28 4
Przykł /2/28 4
Przykł /2/28 42
Przykł /2/28 43
Przykł 2 /2/28 44
Przykł 2 3 /2/28 45
Przykł 2 3 3 /2/28 46
Przykł 2 3 3 /2/28 47
Przykł 2 3 2 3 /2/28 48
Przykł 2 3 2 5 /2/28 49
Przykł 2 3 2 5 5 /2/28 5
Znjowni rozszrzń liniowyh Kż rozszrzni liniow opowi śiż o njmnijszgo o njwiększgo iłu /2/28 5
Znjowni rozszrzń liniowyh Gnrt (Krt L) I<-Ø; E<- ; whil(i P) umulassignmnt <- ; rn <- rnom numr rom {,...,LinExtFiltr(I)}; or h il I in ImSu(I) o umulassignmnt <- umulassignmnt + LinExtFiltr(I ); i rn umulassignmnt thn E.(I \I); I <-I ; rk; rturn E; /2/28 52
Zlizni liniowyh rozszrzń Pytni: Il jst rozszrzń liniowyh, w któryh lmnt x występuj n pozyji i? Rozwiązni: Stosujmy lgorytm Assignl porząku owróongo i otrzymujmy wrtośi LinExtIl(I) ilość liniowyh rozszrzń iłu I. /2/28 53
Zlizni rozszrzń liniowyh ComputRnks(Post P) zuuj krtę iłów; Assign(Ø); or h lmnt E in P o or h Hight in,..., P o Rnk(E, Hight) <- ; ComputRnk(Ø, ); rturn Rnk; ComputRnk(Il I, Intgr Hight) VisitIl(I) <- tru; or h il I inimsu(i) o Rnk(I \I, Hight) += LinExtIl(I) * LinExtFiltr(I ); i(i P) n not VisitIl(I ) thn ComputRnk(I, High + ); /2/28 54
Zlizni rozszrzń liniowyh ComputMutulRnk(Il I, Intgr Hight) Buil th il ltti o P; Assign(Ø); For h lmnt E inp For h lmnt F inp o MR(E, F) <-; ComputMutulRnkDFS(Ø,); rturn MR; // MR(E, F) ilość rozszrzń, w któryh // lmnt F jst prz lmntm E ComputMutulRnkDFS(Il I, Intgr Hight) lr lol rry HsVisit; VisitIl(I)<-tru; or h il I inimsu(i) o HsVisit(I \I) <- tru; or h lmnt E inp o i HsVisit(E) = Tru thn MR(I \I, E) <- MR(I \I, E) + LinExtIl(I) * LinExtFiltr(I ) i I P n not VisitIl(I ) thn ComputMutulRnkDFS(I, Hight + ); /2/28 55
Złożoność Zlizni rozszrzń liniowyh: O(I(P) * w(p)) Znjowni koljnyh rozszrzń liniowyh: O(P * w(p)) Zlizni ilośi rozszrzń, l któryh x jst n pozyji i : O(I(P) * P * w(p)) Zlizni ilośi rozszrzń, l któryh x jst prz y: O(I(P)* P * w(p)) /2/28 56
Biliogri M. Pzrski Lizni rozszrzń liniowyh w zsi wilominowym M. Pzrski Nw rults in Minimum-Comprison Sorting G.Pruss, F. Rusky Gnrting linr xtnsions st K. D Loo, B. D Bts, H. D Myr Exploiting th ltti o ils rprsnttion o posts M.Hi, R.Min, L. Nourin, G.Stinr Eiint lgorithm on istriutiv lttis Ch. Ppimitriou Złożoność olizniow M. Wlls Elmnts o omintoril Computing /2/28 57
Dziękuję z uwgę!! Pytni? /2/28 58