• Nem Talált Eredményt

Algoritmuselmélet Közelít˝o algoritmusok Katona Gyula Y.

N/A
N/A
Protected

Academic year: 2022

Ossza meg "Algoritmuselmélet Közelít˝o algoritmusok Katona Gyula Y."

Copied!
86
0
0

Teljes szövegt

(1)

Algoritmuselmélet

Közelít ˝o algoritmusok

Katona Gyula Y.

Számítástudományi és Információelméleti Tanszék Budapesti M ˝uszaki és Gazdaságtudományi Egyetem

14. el ˝oadás

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 1 / 27

(2)

Közelít ˝o algoritmusok

Hátha nem szükséges pontos megoldás, elég az optimumtól nem túl messze lev ˝o is, ha az polinom id ˝oben kiszámolható.

Közelítés additív konstanssal: OPT−c≤APPR≤OPT+c Ilyen ritkán van.

(3)

Közelít ˝o algoritmusok

Hátha nem szükséges pontos megoldás, elég az optimumtól nem túl messze lev ˝o is, ha az polinom id ˝oben kiszámolható.

Közelítés additív konstanssal: OPT−c≤APPR≤OPT+c

Ilyen ritkán van.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 2 / 27

(4)

Közelít ˝o algoritmusok

Hátha nem szükséges pontos megoldás, elég az optimumtól nem túl messze lev ˝o is, ha az polinom id ˝oben kiszámolható.

Közelítés additív konstanssal: OPT−c≤APPR≤OPT+c Ilyen ritkán van.

(5)

Közelít ˝o algoritmusok

C-KÖZÚT

Bemenet:G

Kérdés: Van-e legalábbv(G)−chosszú útG-ben?

Tétel

C-KÖZÚT∈NP-teljes. Bizonyítás.

C-KÖZÚT∈NP, tanú egy út. √

H-ÚTC-KÖZÚT:G=⇒G0 =G+cdb izolált pont.

HaG-ben van Hamilton-út, ezG0-ben egyv(G0)−chosszú út. √ HaG0-ben van egyv(G0)−chosszú út, akkor azGminden pontját tartalmazza, tehát Hamilton-út. √

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 3 / 27

(6)

Közelít ˝o algoritmusok

C-KÖZÚT

Bemenet:G

Kérdés: Van-e legalábbv(G)−chosszú útG-ben?

Tétel

C-KÖZÚT∈NP-teljes.

Bizonyítás.

C-KÖZÚT∈NP, tanú egy út. √

H-ÚTC-KÖZÚT:G=⇒G0 =G+cdb izolált pont.

HaG-ben van Hamilton-út, ezG0-ben egyv(G0)−chosszú út. √ HaG0-ben van egyv(G0)−chosszú út, akkor azGminden pontját tartalmazza, tehát Hamilton-út. √

(7)

Közelít ˝o algoritmusok

C-KÖZÚT

Bemenet:G

Kérdés: Van-e legalábbv(G)−chosszú útG-ben?

Tétel

C-KÖZÚT∈NP-teljes.

Bizonyítás.

C-KÖZÚT∈NP, tanú egy út. √

H-ÚTC-KÖZÚT:G=⇒G0=G+cdb izolált pont.

HaG-ben van Hamilton-út, ezG0-ben egyv(G0)−chosszú út. √ HaG0-ben van egyv(G0)−chosszú út, akkor azGminden pontját tartalmazza, tehát Hamilton-út. √

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 3 / 27

(8)

Közelít ˝o algoritmusok

C-KÖZÚT

Bemenet:G

Kérdés: Van-e legalábbv(G)−chosszú útG-ben?

Tétel

C-KÖZÚT∈NP-teljes.

Bizonyítás.

C-KÖZÚT∈NP, tanú egy út. √

H-ÚTC-KÖZÚT:G=⇒G0=G+cdb izolált pont.

HaG-ben van Hamilton-út, ezG0-ben egyv(G0)−chosszú út. √

HaG0-ben van egyv(G0)−chosszú út, akkor azGminden pontját tartalmazza, tehát Hamilton-út. √

(9)

Közelít ˝o algoritmusok

C-KÖZÚT

Bemenet:G

Kérdés: Van-e legalábbv(G)−chosszú útG-ben?

Tétel

C-KÖZÚT∈NP-teljes.

Bizonyítás.

C-KÖZÚT∈NP, tanú egy út. √

H-ÚTC-KÖZÚT:G=⇒G0=G+cdb izolált pont.

HaG-ben van Hamilton-út, ezG0-ben egyv(G0)−chosszú út. √ HaG0-ben van egyv(G0)−chosszú út, akkor azGminden pontját tartalmazza, tehát Hamilton-út. √

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 3 / 27

(10)

Közelít ˝o algoritmusok

Közelítés multiplikatív konstanssal: 1cOPT ≤APPR≤c·OPT

Ilyen sokszor van. Keressünk 1-hez minél közelebbi konstanst.

(11)

Közelít ˝o algoritmusok

Közelítés multiplikatív konstanssal: 1cOPT ≤APPR≤c·OPT Ilyen sokszor van. Keressünk 1-hez minél közelebbi konstanst.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 4 / 27

(12)

Euklideszi utazó ügynök probléma

AznpontúKnteljes gráf élein adott a nemnegatív érték ˝ud

súlyfüggvény. Erre teljesül a háromszög-egyenl ˝otlenség: tetsz ˝oleges különböz ˝ou,v,w csúcsokra érvényes ad(u,w)≤d(u,v) +d(v,w) egyenl ˝otlenség(az euklideszi feltétel).

A cél egy minimális összsúlyú Hamilton-kör keresése. Keresünk egy minimális összsúlyú feszít ˝ofát (pl. Kruskal), megkett ˝ozzük az éleit és„körbejárjuk”egy Euler-körsétával.

A minimális feszít ˝ofa összsúlya legyens =⇒Euler-séta hossza 2s.

(13)

Euklideszi utazó ügynök probléma

AznpontúKnteljes gráf élein adott a nemnegatív érték ˝ud

súlyfüggvény. Erre teljesül a háromszög-egyenl ˝otlenség: tetsz ˝oleges különböz ˝ou,v,w csúcsokra érvényes ad(u,w)≤d(u,v) +d(v,w) egyenl ˝otlenség(az euklideszi feltétel).

A cél egy minimális összsúlyú Hamilton-kör keresése.

Keresünk egy minimális összsúlyú feszít ˝ofát (pl. Kruskal), megkett ˝ozzük az éleit és„körbejárjuk”egy Euler-körsétával.

A minimális feszít ˝ofa összsúlya legyens =⇒Euler-séta hossza 2s.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 5 / 27

(14)

Euklideszi utazó ügynök probléma

AznpontúKnteljes gráf élein adott a nemnegatív érték ˝ud

súlyfüggvény. Erre teljesül a háromszög-egyenl ˝otlenség: tetsz ˝oleges különböz ˝ou,v,w csúcsokra érvényes ad(u,w)≤d(u,v) +d(v,w) egyenl ˝otlenség(az euklideszi feltétel).

A cél egy minimális összsúlyú Hamilton-kör keresése.

Keresünk egy minimális összsúlyú feszít ˝ofát (pl. Kruskal), megkett ˝ozzük az éleit és„körbejárjuk”egy Euler-körsétával.

A minimális feszít ˝ofa összsúlya legyens =⇒Euler-séta hossza 2s.

(15)

Euklideszi utazó ügynök probléma

AznpontúKnteljes gráf élein adott a nemnegatív érték ˝ud

súlyfüggvény. Erre teljesül a háromszög-egyenl ˝otlenség: tetsz ˝oleges különböz ˝ou,v,w csúcsokra érvényes ad(u,w)≤d(u,v) +d(v,w) egyenl ˝otlenség(az euklideszi feltétel).

A cél egy minimális összsúlyú Hamilton-kör keresése.

Keresünk egy minimális összsúlyú feszít ˝ofát (pl. Kruskal), megkett ˝ozzük az éleit és„körbejárjuk”egy Euler-körsétával.

A minimális feszít ˝ofa összsúlya legyens =⇒Euler-séta hossza 2s.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 5 / 27

(16)

Euklideszi utazó ügynök probléma

AznpontúKnteljes gráf élein adott a nemnegatív érték ˝ud

súlyfüggvény. Erre teljesül a háromszög-egyenl ˝otlenség: tetsz ˝oleges különböz ˝ou,v,w csúcsokra érvényes ad(u,w)≤d(u,v) +d(v,w) egyenl ˝otlenség(az euklideszi feltétel).

A cél egy minimális összsúlyú Hamilton-kör keresése.

Keresünk egy minimális összsúlyú feszít ˝ofát (pl. Kruskal), megkett ˝ozzük az éleit és„körbejárjuk”egy Euler-körsétával.

A minimális feszít ˝ofa összsúlya legyens =⇒Euler-séta hossza 2s.

(17)

Euklideszi utazó ügynök probléma

AznpontúKnteljes gráf élein adott a nemnegatív érték ˝ud

súlyfüggvény. Erre teljesül a háromszög-egyenl ˝otlenség: tetsz ˝oleges különböz ˝ou,v,w csúcsokra érvényes ad(u,w)≤d(u,v) +d(v,w) egyenl ˝otlenség(az euklideszi feltétel).

A cél egy minimális összsúlyú Hamilton-kör keresése.

Keresünk egy minimális összsúlyú feszít ˝ofát (pl. Kruskal), megkett ˝ozzük az éleit és„körbejárjuk”egy Euler-körsétával.

A minimális feszít ˝ofa összsúlya legyens =⇒Euler-séta hossza 2s.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 5 / 27

(18)

Euklideszi utazó ügynök probléma

AznpontúKnteljes gráf élein adott a nemnegatív érték ˝ud

súlyfüggvény. Erre teljesül a háromszög-egyenl ˝otlenség: tetsz ˝oleges különböz ˝ou,v,w csúcsokra érvényes ad(u,w)≤d(u,v) +d(v,w) egyenl ˝otlenség(az euklideszi feltétel).

A cél egy minimális összsúlyú Hamilton-kör keresése.

Keresünk egy minimális összsúlyú feszít ˝ofát (pl. Kruskal), megkett ˝ozzük az éleit és„körbejárjuk”egy Euler-körsétával.

A minimális feszít ˝ofa összsúlya legyens =⇒Euler-séta hossza 2s.

(19)

Euklideszi utazó ügynök probléma

AznpontúKnteljes gráf élein adott a nemnegatív érték ˝ud

súlyfüggvény. Erre teljesül a háromszög-egyenl ˝otlenség: tetsz ˝oleges különböz ˝ou,v,w csúcsokra érvényes ad(u,w)≤d(u,v) +d(v,w) egyenl ˝otlenség(az euklideszi feltétel).

A cél egy minimális összsúlyú Hamilton-kör keresése.

Keresünk egy minimális összsúlyú feszít ˝ofát (pl. Kruskal), megkett ˝ozzük az éleit és„körbejárjuk”egy Euler-körsétával.

A minimális feszít ˝ofa összsúlya legyens =⇒Euler-séta hossza 2s.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 5 / 27

(20)

Euklideszi utazó ügynök probléma

AznpontúKnteljes gráf élein adott a nemnegatív érték ˝ud

súlyfüggvény. Erre teljesül a háromszög-egyenl ˝otlenség: tetsz ˝oleges különböz ˝ou,v,w csúcsokra érvényes ad(u,w)≤d(u,v) +d(v,w) egyenl ˝otlenség(az euklideszi feltétel).

A cél egy minimális összsúlyú Hamilton-kör keresése.

Keresünk egy minimális összsúlyú feszít ˝ofát (pl. Kruskal), megkett ˝ozzük az éleit és„körbejárjuk”egy Euler-körsétával.

A minimális feszít ˝ofa összsúlya legyens =⇒Euler-séta hossza 2s.

(21)

Euklideszi utazó ügynök probléma

AznpontúKnteljes gráf élein adott a nemnegatív érték ˝ud

súlyfüggvény. Erre teljesül a háromszög-egyenl ˝otlenség: tetsz ˝oleges különböz ˝ou,v,w csúcsokra érvényes ad(u,w)≤d(u,v) +d(v,w) egyenl ˝otlenség(az euklideszi feltétel).

A cél egy minimális összsúlyú Hamilton-kör keresése.

Keresünk egy minimális összsúlyú feszít ˝ofát (pl. Kruskal), megkett ˝ozzük az éleit és„körbejárjuk”egy Euler-körsétával.

A minimális feszít ˝ofa összsúlya legyens =⇒Euler-séta hossza 2s.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 5 / 27

(22)

Euklideszi utazó ügynök probléma

AznpontúKnteljes gráf élein adott a nemnegatív érték ˝ud

súlyfüggvény. Erre teljesül a háromszög-egyenl ˝otlenség: tetsz ˝oleges különböz ˝ou,v,w csúcsokra érvényes ad(u,w)≤d(u,v) +d(v,w) egyenl ˝otlenség(az euklideszi feltétel).

A cél egy minimális összsúlyú Hamilton-kör keresése.

Keresünk egy minimális összsúlyú feszít ˝ofát (pl. Kruskal), megkett ˝ozzük az éleit és„körbejárjuk”egy Euler-körsétával.

A minimális feszít ˝ofa összsúlya legyens =⇒Euler-séta hossza 2s.

(23)

Euklideszi utazó ügynök probléma

AznpontúKnteljes gráf élein adott a nemnegatív érték ˝ud

súlyfüggvény. Erre teljesül a háromszög-egyenl ˝otlenség: tetsz ˝oleges különböz ˝ou,v,w csúcsokra érvényes ad(u,w)≤d(u,v) +d(v,w) egyenl ˝otlenség(az euklideszi feltétel).

A cél egy minimális összsúlyú Hamilton-kör keresése.

Keresünk egy minimális összsúlyú feszít ˝ofát (pl. Kruskal), megkett ˝ozzük az éleit és„körbejárjuk”egy Euler-körsétával.

A minimális feszít ˝ofa összsúlya legyens =⇒Euler-séta hossza 2s.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 5 / 27

(24)

Euklideszi utazó ügynök probléma

AznpontúKnteljes gráf élein adott a nemnegatív érték ˝ud

súlyfüggvény. Erre teljesül a háromszög-egyenl ˝otlenség: tetsz ˝oleges különböz ˝ou,v,w csúcsokra érvényes ad(u,w)≤d(u,v) +d(v,w) egyenl ˝otlenség(az euklideszi feltétel).

A cél egy minimális összsúlyú Hamilton-kör keresése.

Keresünk egy minimális összsúlyú feszít ˝ofát (pl. Kruskal), megkett ˝ozzük az éleit és„körbejárjuk”egy Euler-körsétával.

A minimális feszít ˝ofa összsúlya legyens =⇒Euler-séta hossza 2s.

(25)

Euklideszi utazó ügynök probléma

AznpontúKnteljes gráf élein adott a nemnegatív érték ˝ud

súlyfüggvény. Erre teljesül a háromszög-egyenl ˝otlenség: tetsz ˝oleges különböz ˝ou,v,w csúcsokra érvényes ad(u,w)≤d(u,v) +d(v,w) egyenl ˝otlenség(az euklideszi feltétel).

A cél egy minimális összsúlyú Hamilton-kör keresése.

Keresünk egy minimális összsúlyú feszít ˝ofát (pl. Kruskal), megkett ˝ozzük az éleit és„körbejárjuk”egy Euler-körsétával.

A minimális feszít ˝ofa összsúlya legyens =⇒Euler-séta hossza 2s.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 5 / 27

(26)

Euklideszi utazó ügynök probléma

AznpontúKnteljes gráf élein adott a nemnegatív érték ˝ud

súlyfüggvény. Erre teljesül a háromszög-egyenl ˝otlenség: tetsz ˝oleges különböz ˝ou,v,w csúcsokra érvényes ad(u,w)≤d(u,v) +d(v,w) egyenl ˝otlenség(az euklideszi feltétel).

A cél egy minimális összsúlyú Hamilton-kör keresése.

Keresünk egy minimális összsúlyú feszít ˝ofát (pl. Kruskal), megkett ˝ozzük az éleit és„körbejárjuk”egy Euler-körsétával.

A minimális feszít ˝ofa összsúlya legyens =⇒Euler-séta hossza 2s.

(27)

Ez nem Hamilton-kör =⇒levágjuk a fölösleges részeket, közben rövidítünk is.

Ha az optimális Hamilton-körb ˝ol elhagyunk egy élet =⇒egy legalább s súlyú feszít ˝ofát kapunk.

A módszer legfeljebb 2-szer akkora utat ad, mint az optimális.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 6 / 27

(28)

Ez nem Hamilton-kör =⇒levágjuk a fölösleges részeket, közben rövidítünk is.

Ha az optimális Hamilton-körb ˝ol elhagyunk egy élet =⇒egy legalább s súlyú feszít ˝ofát kapunk.

A módszer legfeljebb 2-szer akkora utat ad, mint az optimális.

(29)

Ez nem Hamilton-kör =⇒levágjuk a fölösleges részeket, közben rövidítünk is.

Ha az optimális Hamilton-körb ˝ol elhagyunk egy élet =⇒egy legalább s súlyú feszít ˝ofát kapunk.

A módszer legfeljebb 2-szer akkora utat ad, mint az optimális.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 6 / 27

(30)

Ez nem Hamilton-kör =⇒levágjuk a fölösleges részeket, közben rövidítünk is.

Ha az optimális Hamilton-körb ˝ol elhagyunk egy élet =⇒egy legalább s súlyú feszít ˝ofát kapunk.

A módszer legfeljebb 2-szer akkora utat ad, mint az optimális.

(31)

Ez nem Hamilton-kör =⇒levágjuk a fölösleges részeket, közben rövidítünk is.

Ha az optimális Hamilton-körb ˝ol elhagyunk egy élet =⇒egy legalább s súlyú feszít ˝ofát kapunk.

A módszer legfeljebb 2-szer akkora utat ad, mint az optimális.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 6 / 27

(32)

Ez nem Hamilton-kör =⇒levágjuk a fölösleges részeket, közben rövidítünk is.

Ha az optimális Hamilton-körb ˝ol elhagyunk egy élet =⇒egy legalább s súlyú feszít ˝ofát kapunk.

A módszer legfeljebb 2-szer akkora utat ad, mint az optimális.

(33)

Ez nem Hamilton-kör =⇒levágjuk a fölösleges részeket, közben rövidítünk is.

Ha az optimális Hamilton-körb ˝ol elhagyunk egy élet =⇒egy legalább s súlyú feszít ˝ofát kapunk.

A módszer legfeljebb 2-szer akkora utat ad, mint az optimális.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 6 / 27

(34)

Ez nem Hamilton-kör =⇒levágjuk a fölösleges részeket, közben rövidítünk is.

Ha az optimális Hamilton-körb ˝ol elhagyunk egy élet =⇒egy legalább s súlyú feszít ˝ofát kapunk.

A módszer legfeljebb 2-szer akkora utat ad, mint az optimális.

(35)

Ez nem Hamilton-kör =⇒levágjuk a fölösleges részeket, közben rövidítünk is.

Ha az optimális Hamilton-körb ˝ol elhagyunk egy élet =⇒egy legalább s súlyú feszít ˝ofát kapunk.

A módszer legfeljebb 2-szer akkora utat ad, mint az optimális.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 6 / 27

(36)

Ez nem Hamilton-kör =⇒levágjuk a fölösleges részeket, közben rövidítünk is.

Ha az optimális Hamilton-körb ˝ol elhagyunk egy élet =⇒egy legalább s súlyú feszít ˝ofát kapunk.

A módszer legfeljebb 2-szer akkora utat ad, mint az optimális.

(37)

Ez nem Hamilton-kör =⇒levágjuk a fölösleges részeket, közben rövidítünk is.

Ha az optimális Hamilton-körb ˝ol elhagyunk egy élet =⇒egy legalább s súlyú feszít ˝ofát kapunk.

A módszer legfeljebb 2-szer akkora utat ad, mint az optimális.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 6 / 27

(38)

Ez nem Hamilton-kör =⇒levágjuk a fölösleges részeket, közben rövidítünk is.

Ha az optimális Hamilton-körb ˝ol elhagyunk egy élet =⇒egy legalább s súlyú feszít ˝ofát kapunk.

A módszer legfeljebb 2-szer akkora utat ad, mint az optimális.

(39)

Ez nem Hamilton-kör =⇒levágjuk a fölösleges részeket, közben rövidítünk is.

Ha az optimális Hamilton-körb ˝ol elhagyunk egy élet =⇒egy legalább ssúlyú feszít ˝ofát kapunk.

A módszer legfeljebb 2-szer akkora utat ad, mint az optimális.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 6 / 27

(40)

Ez nem Hamilton-kör =⇒levágjuk a fölösleges részeket, közben rövidítünk is.

Ha az optimális Hamilton-körb ˝ol elhagyunk egy élet =⇒egy legalább ssúlyú feszít ˝ofát kapunk.

A módszer legfeljebb 2-szer akkora utat ad, mint az optimális.

(41)

Ez nem Hamilton-kör =⇒levágjuk a fölösleges részeket, közben rövidítünk is.

Ha az optimális Hamilton-körb ˝ol elhagyunk egy élet =⇒egy legalább ssúlyú feszít ˝ofát kapunk.

A módszer legfeljebb 2-szer akkora utat ad, mint az optimális.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 6 / 27

(42)

Ládapakolás

Ládapakolás: Adottak azs1, . . . ,sm (racionális) súlyok, 0≤si ≤1. A cél a súlyok elhelyezése minél kevesebb 1 súlykapacitású ládába.

NP-nehéz,a PARTÍCIÓ probléma visszavezethet ˝o rá.

(43)

Ládapakolás

Ládapakolás: Adottak azs1, . . . ,sm (racionális) súlyok, 0≤si ≤1. A cél a súlyok elhelyezése minél kevesebb 1 súlykapacitású ládába.

NP-nehéz,

a PARTÍCIÓ probléma visszavezethet ˝o rá.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 7 / 27

(44)

Ládapakolás

Ládapakolás: Adottak azs1, . . . ,sm (racionális) súlyok, 0≤si ≤1. A cél a súlyok elhelyezése minél kevesebb 1 súlykapacitású ládába.

NP-nehéz,a PARTÍCIÓ probléma visszavezethet ˝o rá.

(45)

Ládapakolás

FF-módszer(first fit): Vegyünk el ˝oször üres ládákat, és számozzuk meg ˝oket az 1,2, . . . ,megészekkel.

Tegyük fel, hogy azs1, . . . ,si−1súlyokat már elhelyeztük. Ekkorsi kerüljön az els ˝o (legkisebb sorszámú) olyan ládába, amelybe még befér.

1. 2. 3.

4. 6.

5. 7.

8. 1.

2. 3.

4.

5.

6.

7. 8.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 8 / 27

(46)

Ládapakolás

FF-módszer(first fit): Vegyünk el ˝oször üres ládákat, és számozzuk meg ˝oket az 1,2, . . . ,megészekkel.

Tegyük fel, hogy azs1, . . . ,si−1súlyokat már elhelyeztük. Ekkorsi kerüljön az els ˝o (legkisebb sorszámú) olyan ládába, amelybe még befér.

1. 2. 3.

4. 6.

5. 7.

8. 1.

2. 3.

4.

5.

6.

7. 8.

(47)

Ládapakolás

FF-módszer(first fit): Vegyünk el ˝oször üres ládákat, és számozzuk meg ˝oket az 1,2, . . . ,megészekkel.

Tegyük fel, hogy azs1, . . . ,si−1súlyokat már elhelyeztük. Ekkorsi kerüljön az els ˝o (legkisebb sorszámú) olyan ládába, amelybe még befér.

1. 2. 3.

4.

6.

5. 7.

8.

1.

2. 3.

4.

5.

6.

7. 8.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 8 / 27

(48)

First Fit

Tétel

Jelölje a Ládapakolás probléma egy I inputjára OPT(I)az optimális (minimálisan elegend ˝o), FF(I)pedig az FF -módszer által

eredményezett ládaszámot. A probléma tetsz ˝oleges I inputjára teljesül, hogy FF(I)≤2OPT(I).

Bizonyítás. dPm

i=1sie ≤OPT(I) FF(I)≤ d2Pm

i=1sie ⇐=nincs két olyan láda, amely nincs félig kitöltve. Felhasználjuk, hogyd2xe ≤2dxe:

FF(I)≤ d2

m

X

i=1

sie ≤2d

m

X

i=1

sie ≤2OPT(I).

(49)

First Fit

Tétel

Jelölje a Ládapakolás probléma egy I inputjára OPT(I)az optimális (minimálisan elegend ˝o), FF(I)pedig az FF -módszer által

eredményezett ládaszámot. A probléma tetsz ˝oleges I inputjára teljesül, hogy FF(I)≤2OPT(I).

Bizonyítás.

dPm

i=1sie ≤OPT(I)

FF(I)≤ d2Pm

i=1sie ⇐=nincs két olyan láda, amely nincs félig kitöltve. Felhasználjuk, hogyd2xe ≤2dxe:

FF(I)≤ d2

m

X

i=1

sie ≤2d

m

X

i=1

sie ≤2OPT(I).

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 9 / 27

(50)

First Fit

Tétel

Jelölje a Ládapakolás probléma egy I inputjára OPT(I)az optimális (minimálisan elegend ˝o), FF(I)pedig az FF -módszer által

eredményezett ládaszámot. A probléma tetsz ˝oleges I inputjára teljesül, hogy FF(I)≤2OPT(I).

Bizonyítás.

dPm

i=1sie ≤OPT(I) FF(I)≤ d2Pm

i=1sie ⇐=nincs két olyan láda, amely nincs félig kitöltve.

Felhasználjuk, hogyd2xe ≤2dxe:

FF(I)≤ d2

m

X

i=1

sie ≤2d

m

X

i=1

sie ≤2OPT(I).

(51)

First Fit

Tétel

Jelölje a Ládapakolás probléma egy I inputjára OPT(I)az optimális (minimálisan elegend ˝o), FF(I)pedig az FF -módszer által

eredményezett ládaszámot. A probléma tetsz ˝oleges I inputjára teljesül, hogy FF(I)≤2OPT(I).

Bizonyítás.

dPm

i=1sie ≤OPT(I) FF(I)≤ d2Pm

i=1sie ⇐=nincs két olyan láda, amely nincs félig kitöltve.

Felhasználjuk, hogyd2xe ≤2dxe:

FF(I)≤ d2

m

X

i=1

sie ≤2d

m

X

i=1

sie ≤2OPT(I).

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 9 / 27

(52)

First Fit

Tétel (D. S. Johnson és munkatársai, 1976)

A probléma tetsz ˝oleges I inputjára teljesül, hogy FF(I)≤ d1.7OPT(I)e.

Továbbá vannak tetsz ˝olegesen nagy méret ˝u I inputok, melyekre FF(I)≥1.7(OPT(I)−1).

(53)

First Fit Decreasing

FFD-módszer(first fit decreasing): el ˝oször rendezzük a súlyokat nem növ ˝o sorrendbe, utána alkalmazzuk azFF-módszert.

1. 2. 6.

7. 3.

8.

4. 5.

1. 2. 3. 4.

6. 8. 7.

5.

Tétel (D. S. Johnson, 1973)

Tetsz ˝oleges I inputra teljesül, hogy FFD(I)≤ 119OPT(I) +4, és tetsz ˝olegesen nagy méret ˝u I inputok vannak, melyekre

FFD(I)≥ 119OPT(I).(119 =1.222. . .)

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 11 / 27

(54)

First Fit Decreasing

FFD-módszer(first fit decreasing): el ˝oször rendezzük a súlyokat nem növ ˝o sorrendbe, utána alkalmazzuk azFF-módszert.

1. 2. 6.

7.

3.

8.

4. 5.

1. 2. 3. 4.

6.

8. 7.

5.

Tétel (D. S. Johnson, 1973)

Tetsz ˝oleges I inputra teljesül, hogy FFD(I)≤ 119OPT(I) +4, és tetsz ˝olegesen nagy méret ˝u I inputok vannak, melyekre

FFD(I)≥ 119OPT(I).(119 =1.222. . .)

(55)

First Fit Decreasing

FFD-módszer(first fit decreasing): el ˝oször rendezzük a súlyokat nem növ ˝o sorrendbe, utána alkalmazzuk azFF-módszert.

1. 2. 6.

7.

3.

8.

4. 5.

1. 2. 3. 4.

6.

8. 7.

5.

Tétel (D. S. Johnson, 1973)

Tetsz ˝oleges I inputra teljesül, hogy FFD(I)≤ 119OPT(I) +4, és tetsz ˝olegesen nagy méret ˝u I inputok vannak, melyekre

FFD(I)≥ 119OPT(I).(119 =1.222. . .)

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 11 / 27

(56)

First Fit Decreasing

FFD-módszer(first fit decreasing): el ˝oször rendezzük a súlyokat nem növ ˝o sorrendbe, utána alkalmazzuk azFF-módszert.

1. 2. 6.

7.

3.

8.

4. 5.

1. 2. 3. 4.

6.

8. 7.

5.

Tétel (D. S. Johnson, 1973)

Tetsz ˝oleges I inputra teljesül, hogy FFD(I)≤ 119OPT(I) +4, és tetsz ˝olegesen nagy méret ˝u I inputok vannak, melyekre

FFD(I)≥ 119OPT(I).(119 =1.222. . .)

(57)

Jobb approximáció

Tétel (W. Fernandez de la Vega, G. S. Lueker)

Tetsz ˝olegesε >0-hoz van olyan P lineáris algoritmus, amire

P(I)≤(1+ε)OPT(I) +1.

Futásideje:

O (n) + 2 2

O((1/ε)log(1/ε))

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 12 / 27

(58)

Jobb approximáció

Tétel (W. Fernandez de la Vega, G. S. Lueker)

Tetsz ˝olegesε >0-hoz van olyan P lineáris algoritmus, amire

P(I)≤(1+ε)OPT(I) +1.

Futásideje:

O (n) + 2 2

O((1/ε)log(1/ε))

(59)

Véletlent használó módszerek

El ˝ony: Gyorsabb lehet.

Hátrány: Kis valószín ˝oséggel hibás választ kapunk.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 13 / 27

(60)

Véletlent használó módszerek

El ˝ony: Gyorsabb lehet.

Hátrány:Kis valószín ˝oséggel hibás választ kapunk.

(61)

Véletlent használó módszerek

El ˝ony: Gyorsabb lehet.

Hátrány:Kis valószín ˝oséggel hibás választ kapunk.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 13 / 27

(62)

Prímtesztelés

Bemen ˝o adatként adott (binárisan) egympáratlan egész; szeretnénk eldönteni, hogymprímszám-e.

Fermat-teszt(m)

1. Válasszunk egy véletlenaegészet az[1,m)intervallumból. 2. Ha lnko(a,m)6=1, akkor a válasz„mösszetett”.

3. Haam−1≡1 (modm), akkor a válasz„mvalószín ˝uleg prím”, különben a válasz„mösszetett”.

2. Euklideszi algoritmussal gyorsan végrehajtható. 3. Gyors hatványozással gyorsan végrehajtható. Ha azt kapjuk, hogy„mösszetett” =⇒ez biztos igaz.

Pl.: m=21=7·3 ésa=2 =⇒aazmFermat-tanúja, hiszen 220 ≡4 (mod 21).

(63)

Prímtesztelés

Bemen ˝o adatként adott (binárisan) egympáratlan egész; szeretnénk eldönteni, hogymprímszám-e.

Fermat-teszt(m)

1. Válasszunk egy véletlenaegészet az[1,m)intervallumból.

2. Ha lnko(a,m)6=1, akkor a válasz„mösszetett”.

3. Haam−1≡1 (modm), akkor a válasz„mvalószín ˝uleg prím”, különben a válasz„mösszetett”.

2. Euklideszi algoritmussal gyorsan végrehajtható. 3. Gyors hatványozással gyorsan végrehajtható. Ha azt kapjuk, hogy„mösszetett” =⇒ez biztos igaz.

Pl.: m=21=7·3 ésa=2 =⇒aazmFermat-tanúja, hiszen 220 ≡4 (mod 21).

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 14 / 27

(64)

Prímtesztelés

Bemen ˝o adatként adott (binárisan) egympáratlan egész; szeretnénk eldönteni, hogymprímszám-e.

Fermat-teszt(m)

1. Válasszunk egy véletlenaegészet az[1,m)intervallumból.

2. Ha lnko(a,m)6=1, akkor a válasz„mösszetett”.

3. Haam−1≡1 (modm), akkor a válasz„mvalószín ˝uleg prím”, különben a válasz„mösszetett”.

2. Euklideszi algoritmussal gyorsan végrehajtható. 3. Gyors hatványozással gyorsan végrehajtható. Ha azt kapjuk, hogy„mösszetett” =⇒ez biztos igaz.

Pl.: m=21=7·3 ésa=2 =⇒aazmFermat-tanúja, hiszen 220 ≡4 (mod 21).

(65)

Prímtesztelés

Bemen ˝o adatként adott (binárisan) egympáratlan egész; szeretnénk eldönteni, hogymprímszám-e.

Fermat-teszt(m)

1. Válasszunk egy véletlenaegészet az[1,m)intervallumból.

2. Ha lnko(a,m)6=1, akkor a válasz„mösszetett”.

3. Haam−1≡1 (modm), akkor a válasz„mvalószín ˝uleg prím”, különben a válasz„mösszetett”.

2. Euklideszi algoritmussal gyorsan végrehajtható.

3. Gyors hatványozással gyorsan végrehajtható. Ha azt kapjuk, hogy„mösszetett” =⇒ez biztos igaz.

Pl.: m=21=7·3 ésa=2 =⇒aazmFermat-tanúja, hiszen 220 ≡4 (mod 21).

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 14 / 27

(66)

Prímtesztelés

Bemen ˝o adatként adott (binárisan) egympáratlan egész; szeretnénk eldönteni, hogymprímszám-e.

Fermat-teszt(m)

1. Válasszunk egy véletlenaegészet az[1,m)intervallumból.

2. Ha lnko(a,m)6=1, akkor a válasz„mösszetett”.

3. Haam−1≡1 (modm), akkor a válasz„mvalószín ˝uleg prím”, különben a válasz„mösszetett”.

2. Euklideszi algoritmussal gyorsan végrehajtható.

3. Gyors hatványozással gyorsan végrehajtható.

Ha azt kapjuk, hogy„mösszetett” =⇒ez biztos igaz.

Pl.: m=21=7·3 ésa=2 =⇒aazmFermat-tanúja, hiszen 220 ≡4 (mod 21).

(67)

Prímtesztelés

Bemen ˝o adatként adott (binárisan) egympáratlan egész; szeretnénk eldönteni, hogymprímszám-e.

Fermat-teszt(m)

1. Válasszunk egy véletlenaegészet az[1,m)intervallumból.

2. Ha lnko(a,m)6=1, akkor a válasz„mösszetett”.

3. Haam−1≡1 (modm), akkor a válasz„mvalószín ˝uleg prím”, különben a válasz„mösszetett”.

2. Euklideszi algoritmussal gyorsan végrehajtható.

3. Gyors hatványozással gyorsan végrehajtható.

Ha azt kapjuk, hogy„mösszetett” =⇒ez biztos igaz.

Pl.: m=21=7·3 ésa=2 =⇒aazmFermat-tanúja, hiszen 220 ≡4 (mod 21).

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 14 / 27

(68)

Prímtesztelés

Bemen ˝o adatként adott (binárisan) egympáratlan egész; szeretnénk eldönteni, hogymprímszám-e.

Fermat-teszt(m)

1. Válasszunk egy véletlenaegészet az[1,m)intervallumból.

2. Ha lnko(a,m)6=1, akkor a válasz„mösszetett”.

3. Haam−1≡1 (modm), akkor a válasz„mvalószín ˝uleg prím”, különben a válasz„mösszetett”.

2. Euklideszi algoritmussal gyorsan végrehajtható.

3. Gyors hatványozással gyorsan végrehajtható.

Ha azt kapjuk, hogy„mösszetett” =⇒ez biztos igaz.

Pl.: m=21=7·3 ésa=2 =⇒aazmFermat-tanúja, hiszen 220 ≡4 (mod 21).

(69)

Prímtesztelés

Bemen ˝o adatként adott (binárisan) egympáratlan egész; szeretnénk eldönteni, hogymprímszám-e.

Fermat-teszt(m)

1. Válasszunk egy véletlenaegészet az[1,m)intervallumból.

2. Ha lnko(a,m)6=1, akkor a válasz„mösszetett”.

3. Haam−1≡1 (modm), akkor a válasz„mvalószín ˝uleg prím”, különben a válasz„mösszetett”.

2. Euklideszi algoritmussal gyorsan végrehajtható.

3. Gyors hatványozással gyorsan végrehajtható.

Ha azt kapjuk, hogy„mösszetett” =⇒ez biztos igaz.

Pl.: m=21=7·3 ésa=2 =⇒aazmFermat-tanúja, hiszen 220 ≡4 (mod 21).

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 14 / 27

(70)

Prímtesztelés

Tétel

Ha m-nek van olyan a Fermat-tanúja (1≤a<m és am−16≡1 (modm)), melyre lnko(a,m) =1, akkor az[1,m)intervallum egészeinek legalább a fele Fermat-tanú.

Bizonyítás.

Legyenatanú=⇒am−16≡1 (mod m)ésc1,c2, . . . ,cs nem tanúk

=⇒cim−1≡1 (mod m)

Feltehetjük, hogya,ci relatív prímekm-hez.

=⇒(aci)m−1≡am−1cim−1≡am−16≡1 (modm) =⇒aci tanú. Haaci ≡acj (modm) =⇒m|aci−acj =a(ci−cj) =⇒m|ci−cj, hiszen lnko(a,m) =1. =⇒ac1,ac2, . . . ,acs mind különböz ˝oek lesznek =⇒legalább annyi tanú, mint nem tanú. √

Vannak olyan számok, amelyeknek nincs tanújuk: Carmichael-számok Pl. 561=3·11·17

Alford, Granville, Pomerance, 1992=⇒végtelen sok ilyen szám van

(71)

Prímtesztelés

Tétel

Ha m-nek van olyan a Fermat-tanúja (1≤a<m és am−16≡1 (modm)), melyre lnko(a,m) =1, akkor az[1,m)intervallum egészeinek legalább a fele Fermat-tanú.

Bizonyítás.

Legyenatanú=⇒am−16≡1 (mod m)ésc1,c2, . . . ,cs nem tanúk

=⇒cim−1≡1 (mod m)

Feltehetjük, hogya,ci relatív prímekm-hez.

=⇒(aci)m−1≡am−1cim−1≡am−16≡1 (modm) =⇒aci tanú. Haaci ≡acj (modm) =⇒m|aci−acj =a(ci−cj) =⇒m|ci−cj, hiszen lnko(a,m) =1. =⇒ac1,ac2, . . . ,acs mind különböz ˝oek lesznek =⇒legalább annyi tanú, mint nem tanú. √

Vannak olyan számok, amelyeknek nincs tanújuk: Carmichael-számok Pl. 561=3·11·17

Alford, Granville, Pomerance, 1992=⇒végtelen sok ilyen szám van

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 15 / 27

(72)

Prímtesztelés

Tétel

Ha m-nek van olyan a Fermat-tanúja (1≤a<m és am−16≡1 (modm)), melyre lnko(a,m) =1, akkor az[1,m)intervallum egészeinek legalább a fele Fermat-tanú.

Bizonyítás.

Legyenatanú=⇒am−16≡1 (mod m)ésc1,c2, . . . ,cs nem tanúk

=⇒cim−1≡1 (mod m)

Feltehetjük, hogya,cirelatív prímekm-hez.

=⇒(aci)m−1≡am−1cim−1≡am−16≡1 (modm) =⇒aci tanú. Haaci ≡acj (modm) =⇒m|aci−acj =a(ci−cj) =⇒m|ci−cj, hiszen lnko(a,m) =1. =⇒ac1,ac2, . . . ,acs mind különböz ˝oek lesznek =⇒legalább annyi tanú, mint nem tanú. √

Vannak olyan számok, amelyeknek nincs tanújuk: Carmichael-számok Pl. 561=3·11·17

Alford, Granville, Pomerance, 1992=⇒végtelen sok ilyen szám van

(73)

Prímtesztelés

Tétel

Ha m-nek van olyan a Fermat-tanúja (1≤a<m és am−16≡1 (modm)), melyre lnko(a,m) =1, akkor az[1,m)intervallum egészeinek legalább a fele Fermat-tanú.

Bizonyítás.

Legyenatanú=⇒am−16≡1 (mod m)ésc1,c2, . . . ,cs nem tanúk

=⇒cim−1≡1 (mod m)

Feltehetjük, hogya,cirelatív prímekm-hez.

=⇒(aci)m−1≡am−1cim−1≡am−16≡1 (modm) =⇒aci tanú.

Haaci ≡acj (modm) =⇒m|aci−acj =a(ci−cj) =⇒m|ci−cj, hiszen lnko(a,m) =1. =⇒ac1,ac2, . . . ,acs mind különböz ˝oek lesznek =⇒legalább annyi tanú, mint nem tanú. √

Vannak olyan számok, amelyeknek nincs tanújuk: Carmichael-számok Pl. 561=3·11·17

Alford, Granville, Pomerance, 1992=⇒végtelen sok ilyen szám van

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 15 / 27

(74)

Prímtesztelés

Tétel

Ha m-nek van olyan a Fermat-tanúja (1≤a<m és am−16≡1 (modm)), melyre lnko(a,m) =1, akkor az[1,m)intervallum egészeinek legalább a fele Fermat-tanú.

Bizonyítás.

Legyenatanú=⇒am−16≡1 (mod m)ésc1,c2, . . . ,cs nem tanúk

=⇒cim−1≡1 (mod m)

Feltehetjük, hogya,cirelatív prímekm-hez.

=⇒(aci)m−1≡am−1cim−1≡am−16≡1 (modm) =⇒aci tanú.

Haaci ≡acj (modm) =⇒

m|aci−acj =a(ci−cj) =⇒m|ci−cj, hiszen lnko(a,m) =1. =⇒ac1,ac2, . . . ,acs mind különböz ˝oek lesznek =⇒legalább annyi tanú, mint nem tanú. √

Vannak olyan számok, amelyeknek nincs tanújuk: Carmichael-számok Pl. 561=3·11·17

Alford, Granville, Pomerance, 1992=⇒végtelen sok ilyen szám van

(75)

Prímtesztelés

Tétel

Ha m-nek van olyan a Fermat-tanúja (1≤a<m és am−16≡1 (modm)), melyre lnko(a,m) =1, akkor az[1,m)intervallum egészeinek legalább a fele Fermat-tanú.

Bizonyítás.

Legyenatanú=⇒am−16≡1 (mod m)ésc1,c2, . . . ,cs nem tanúk

=⇒cim−1≡1 (mod m)

Feltehetjük, hogya,cirelatív prímekm-hez.

=⇒(aci)m−1≡am−1cim−1≡am−16≡1 (modm) =⇒aci tanú.

Haaci ≡acj (modm) =⇒m|aci−acj =a(ci−cj) =⇒m|ci−cj, hiszen lnko(a,m) =1.

=⇒ac1,ac2, . . . ,acs mind különböz ˝oek lesznek =⇒legalább annyi tanú, mint nem tanú. √

Vannak olyan számok, amelyeknek nincs tanújuk: Carmichael-számok Pl. 561=3·11·17

Alford, Granville, Pomerance, 1992=⇒végtelen sok ilyen szám van

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 15 / 27

(76)

Prímtesztelés

Tétel

Ha m-nek van olyan a Fermat-tanúja (1≤a<m és am−16≡1 (modm)), melyre lnko(a,m) =1, akkor az[1,m)intervallum egészeinek legalább a fele Fermat-tanú.

Bizonyítás.

Legyenatanú=⇒am−16≡1 (mod m)ésc1,c2, . . . ,cs nem tanúk

=⇒cim−1≡1 (mod m)

Feltehetjük, hogya,cirelatív prímekm-hez.

=⇒(aci)m−1≡am−1cim−1≡am−16≡1 (modm) =⇒aci tanú.

Haaci ≡acj (modm) =⇒m|aci−acj =a(ci−cj) =⇒m|ci−cj, hiszen lnko(a,m) =1. =⇒ac1,ac2, . . . ,acs mind különböz ˝oek lesznek =⇒legalább annyi tanú, mint nem tanú. √

Vannak olyan számok, amelyeknek nincs tanújuk: Carmichael-számok Pl. 561=3·11·17

Alford, Granville, Pomerance, 1992=⇒végtelen sok ilyen szám van

(77)

Prímtesztelés

Tétel

Ha m-nek van olyan a Fermat-tanúja (1≤a<m és am−16≡1 (modm)), melyre lnko(a,m) =1, akkor az[1,m)intervallum egészeinek legalább a fele Fermat-tanú.

Bizonyítás.

Legyenatanú=⇒am−16≡1 (mod m)ésc1,c2, . . . ,cs nem tanúk

=⇒cim−1≡1 (mod m)

Feltehetjük, hogya,cirelatív prímekm-hez.

=⇒(aci)m−1≡am−1cim−1≡am−16≡1 (modm) =⇒aci tanú.

Haaci ≡acj (modm) =⇒m|aci−acj =a(ci−cj) =⇒m|ci−cj, hiszen lnko(a,m) =1. =⇒ac1,ac2, . . . ,acs mind különböz ˝oek lesznek =⇒legalább annyi tanú, mint nem tanú. √

Vannak olyan számok, amelyeknek nincs tanújuk: Carmichael-számok

Pl. 561=3·11·17

Alford, Granville, Pomerance, 1992=⇒végtelen sok ilyen szám van

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 15 / 27

(78)

Prímtesztelés

Tétel

Ha m-nek van olyan a Fermat-tanúja (1≤a<m és am−16≡1 (modm)), melyre lnko(a,m) =1, akkor az[1,m)intervallum egészeinek legalább a fele Fermat-tanú.

Bizonyítás.

Legyenatanú=⇒am−16≡1 (mod m)ésc1,c2, . . . ,cs nem tanúk

=⇒cim−1≡1 (mod m)

Feltehetjük, hogya,cirelatív prímekm-hez.

=⇒(aci)m−1≡am−1cim−1≡am−16≡1 (modm) =⇒aci tanú.

Haaci ≡acj (modm) =⇒m|aci−acj =a(ci−cj) =⇒m|ci−cj, hiszen lnko(a,m) =1. =⇒ac1,ac2, . . . ,acs mind különböz ˝oek lesznek =⇒legalább annyi tanú, mint nem tanú. √

Vannak olyan számok, amelyeknek nincs tanújuk: Carmichael-számok Pl. 561=3·11·17

Alford, Granville, Pomerance, 1992=⇒végtelen sok ilyen szám van

(79)

Prímtesztelés

Tétel

Ha m-nek van olyan a Fermat-tanúja (1≤a<m és am−16≡1 (modm)), melyre lnko(a,m) =1, akkor az[1,m)intervallum egészeinek legalább a fele Fermat-tanú.

Bizonyítás.

Legyenatanú=⇒am−16≡1 (mod m)ésc1,c2, . . . ,cs nem tanúk

=⇒cim−1≡1 (mod m)

Feltehetjük, hogya,cirelatív prímekm-hez.

=⇒(aci)m−1≡am−1cim−1≡am−16≡1 (modm) =⇒aci tanú.

Haaci ≡acj (modm) =⇒m|aci−acj =a(ci−cj) =⇒m|ci−cj, hiszen lnko(a,m) =1. =⇒ac1,ac2, . . . ,acs mind különböz ˝oek lesznek =⇒legalább annyi tanú, mint nem tanú. √

Vannak olyan számok, amelyeknek nincs tanújuk: Carmichael-számok Pl. 561=3·11·17

Alford, Granville, Pomerance, 1992=⇒végtelen sok ilyen szám van

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 15 / 27

(80)

Rabin-Miller teszt

Definíció

Legyen m egy páratlan természetes szám. Írjuk fel m−1-et m−1=2kn alakban, ahol n páratlan. Az1≤a<m egész Rabin–Miller-tanú(m összetettségére), ha az

an−1, an+1, a2n+1, . . . , a2k−1n+1 számok egyike sem osztható m-mel.

(81)

Rabin-Miller teszt

Tétel

Ha m prím, akkor m-hez nincs Rabin–Miller-tanú.

Bizonyítás.

am−1−1= (an−1)(an+1)(a2n+1)· · ·(a2k−1n+1) mprím =⇒a kis Fermat-tétel szerintmosztja a bal oldalt.

=⇒mosztja a jobb oldal valamelyik tényez ˝ojét =⇒anem Rabin–Miller-tanú.

Tétel

Ha m összetett, akkor az1≤a<m feltételt teljesít ˝o a egészeknek legalább a fele Rabin–Miller-tanú.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 17 / 27

(82)

Rabin-Miller teszt

Tétel

Ha m prím, akkor m-hez nincs Rabin–Miller-tanú.

Bizonyítás.

am−1−1= (an−1)(an+1)(a2n+1)· · ·(a2k−1n+1)

mprím =⇒a kis Fermat-tétel szerintmosztja a bal oldalt.

=⇒mosztja a jobb oldal valamelyik tényez ˝ojét =⇒anem Rabin–Miller-tanú.

Tétel

Ha m összetett, akkor az1≤a<m feltételt teljesít ˝o a egészeknek legalább a fele Rabin–Miller-tanú.

(83)

Rabin-Miller teszt

Tétel

Ha m prím, akkor m-hez nincs Rabin–Miller-tanú.

Bizonyítás.

am−1−1= (an−1)(an+1)(a2n+1)· · ·(a2k−1n+1) mprím =⇒a kis Fermat-tétel szerintmosztja a bal oldalt.

=⇒mosztja a jobb oldal valamelyik tényez ˝ojét =⇒anem Rabin–Miller-tanú.

Tétel

Ha m összetett, akkor az1≤a<m feltételt teljesít ˝o a egészeknek legalább a fele Rabin–Miller-tanú.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 17 / 27

(84)

Rabin-Miller teszt

Tétel

Ha m prím, akkor m-hez nincs Rabin–Miller-tanú.

Bizonyítás.

am−1−1= (an−1)(an+1)(a2n+1)· · ·(a2k−1n+1) mprím =⇒a kis Fermat-tétel szerintmosztja a bal oldalt.

=⇒mosztja a jobb oldal valamelyik tényez ˝ojét =⇒anem Rabin–Miller-tanú.

Tétel

Ha m összetett, akkor az1≤a<m feltételt teljesít ˝o a egészeknek legalább a fele Rabin–Miller-tanú.

(85)

Rabin-Miller teszt

Tétel

Ha m prím, akkor m-hez nincs Rabin–Miller-tanú.

Bizonyítás.

am−1−1= (an−1)(an+1)(a2n+1)· · ·(a2k−1n+1) mprím =⇒a kis Fermat-tétel szerintmosztja a bal oldalt.

=⇒mosztja a jobb oldal valamelyik tényez ˝ojét =⇒anem Rabin–Miller-tanú.

Tétel

Ha m összetett, akkor az1≤a<m feltételt teljesít ˝o a egészeknek legalább a fele Rabin–Miller-tanú.

Katona Gyula Y. (BME SZIT) Algoritmuselmélet 14. el ˝oadás 17 / 27

(86)

Rabin-Miller teszt

RM(m)

1. Írjuk felm−1-etm−1=2knalakban, aholnpáratlan.

2. Válasszunk egy véletlenaegészet az[1,m)intervallumból.

3. Ha azan−1, an+1, a2n+1, . . . , a2k−1n+1 számok egyike sem oszthatóm-mel, akkor megállunk azzal a válasszal, hogy„m

összetett”, különben megállunk azzal a válasszal, hogy„m valószín ˝uleg prím”.

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

Egy párosítás akkor és csak akkor maximális, ha nincs hozzá tartozó

(2) Elkészítjük a G ford gráfot, melyet úgy kapunk G-b ˝ol, hogy minden él irányítását megfordítjuk. (4) Ha mindkét bejárás során minden pontot bejártunk, akkor

Egy H hipergráf Hamilton-út telített, ha H-ban nincs nyílt Hamilton-lánc (Hamilton-út), de akárhogy veszünk hozzá új élet már lesz benne.. Hamilton-lánc telített

Ez optimális, nincs olyan keres ˝o algoritmus, ami minden esetben kevesebb mint dlog 2 (n + 1)e kérdést

Ha P = NP teljesülne, akkor minden olyan problémára, amelyre van hatékony tanúsítvány (azaz NP-beli), lenne polinomiális algoritmus is. Fogunk mutatni olyan problámákat,

kész adatbázisba adatok beillesztése, módosítása magas szinten (az adatbázis fogalmi keretének feltöltése) pl.: új diák felvétele, tárgyfelvétel, jegybeírás, ehhez adott

A pótlási héten lesz még egy alkalom kizárólag azoknak, akik még nem szerezték meg az aláírást (anyaga ugyanaz, mint a

Ez a színezés takaros, ha van G-nek olyan minimális költség ˝u feszít ˝ofája, ami az összes kék élet tartalmazza, és egyetlen piros élet sem tartalmaz.... A