informatikai algoritmusok (elte).pdf

816

Upload: danikaa3

Post on 13-Aug-2015

224 views

Category:

Documents


8 download

TRANSCRIPT

INFORMATIKAI ALGORITMUSOK I.

Ivnyi Antal alkot szerkeszt

INFORMATIKAI ALGORITMUSOK I.

ELTE Etvs Kiad, Budapest, 2004

A knyv az Oktatsi Minisztrium tmogatsval, a Felsooktatsi Plyzatok Irodja ltal lebonyoltott felsooktatsi tanknyvtmogatsi program keretben jelent meg.

Alkot szerkeszto: Ivnyi Antal Szerzok: Ksa Zoltn (1.), Jrai Antal s Kovcs Attila (2.), Jrg Rothe (3. s 4.), Gyires Tibor (5.), Ivnyi Antal s Claudia Leopold (6.), Eberhard Zehendner (7.), Szidarovszky Ferenc (8.), Vizvri Bla (9.), Ulrich Tamm (10.), Balogh dm s Ivnyi Antal (11.), Demetrovics Jnos s Sali Attila (12.), Mikls Istvn (13.), Ingo Althfer s Stefan Schwartz (14.), Szirmay-Kalos Lszl (15.), Elek Istvn s Sidl Csaba (16.), Galntai Aurl s Jeney Andrs (17.)Szakmai lektorok: Fekete Istvn (1.), Rnyai Lajos (2.), Gonda Jnos (3.), Ivanyos Gbor (4.), Toke Pl (5.), Sima Dezso (6. s 7.), Mayer Jnos (8.), Csirik Jnos (9.), Fridli Sndor (10.), Varga Lszl (11.), Kiss Attila (12.), Hunyadvri Lszl s Katsnyi Istvn (13.), Szntai Tams (14.), Vida Jnos (15.), Mesk Attila (16.), Szntai Tams (17.) Nyelvi lektor: Bir Gabriella Fordtk: Lng Zsuzsa (3.), Sidl Csaba (4.), Roszik Jnos s Sztrik Jnos (5.), Szakcs Laura (7.), Pintr Mikls (8.), Sike Sndor (10.), Belnyesi Viktor s Nikovits Tibor (14.) A knyv cmoldaln a Szpmuvszeti Mzeum engedlyvel s az ELTE Informatikai Karnak tmogatsval Vasarely Victor Dirac cmu festmnye lthat. A borthoz felhasznlt GOMA RT. bocstotta rendelkezsnkre. A bortt Ivnyi Antal tervezte. c Ingo Althfer, Balogh dm, Belnyesi Viktor, Bir Gabriella, Csirik Jnos, Demetrovics Jnos, Elek Istvn, Fekete Istvn, Fridli Sndor, Galntai Aurl, Gonda Jnos, Gyires Tibor, Hunyadvri Lszl, Ivnyi Anna, Ivnyi Antal, Ivanyos Gbor, Jrai Antal, Jeney Andrs, Katsnyi Istvn, Ksa Zoltn, Kovcs Attila, Lng Zsuzsa, Claudia Leopold, Locher Kornl, Lukcs Andrs, Mayer Jnos, Mesk Attila, Mikls Istvn, Nikovits Tibor, Pintr Mikls, Roszik Jnos, Rnyai Lajos, Jrg Rothe, Sali Attila, Stefan Schwarz, Sidl Csaba, Sima Dezso, Sike Sndor, Szakcs Laura, Szntai Tams, Szidarovszky Ferenc, Szirmay-Kalos Lszl, Sztrik Jnos, Ulrich Tamm, Toke Pl, Varga Lszl, Vida Jnos, Vizvri Bla, Eberhard Zehendner, 2004 c Hungarian printed edition ELTE Etvs Kiad, 2004 ISBN: 963 463 664 0 Kiadja az ELTE Etvs Kiad 1051 Budapest, Szerb utca 21. Telefon: 411-6740, Fax: 485-52-26 Honlap: http://www.elte.hu/szervezet/eotvos_kiado.html Elektronikus cm: [email protected] Felelos kiad: Pndi Andrs Nyoms s kts: Debreceni Kinizsi Nyomda Felelos vezeto: Brdos Jnos lmet a

Tartalomjegyzk

Tartalomjegyzk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Elosz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I. ALAPOK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 9 12 13 14 15 22 36 38 39 44 63 71 88 94 95 107 110 116 116 125 126 133 139 144

Bevezets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. Rekurzv egyenletek (Ksa Zoltn) . . . . . . . . . . . . . . . . . . . . . . . . 1.1. 1.2. 1.3. 2. Lineris rekurzv egyenletek Numerikus megolds . . . . . . . . . . . . . . . . . . . . . . . . . Genertorfggvnyek s rekurzv egyenletek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Komputeralgebra (Jrai Antal s Kovcs Attila) 2.1. 2.2. 2.3. 2.4. 2.5. Polinomok kzs gykei Szimbolikus integrls Elmlet s gyakorlat

Adatbrzols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grbner-bzis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.

Kriptogr a (Jrg Rothe) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1. 3.2. 3.3. 3.4. 3.5. Alapok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kulcscsere Diie s Hellman szerint . . . . . . . . . . . . . . . . . . . . . RSA s faktorizls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rivest, Rabi s Sherman protokolljai . . . . . . . . . . . . . . . . . . . . . Interaktv bizonytsi rendszerek s zr ismeret . . . . . . . . . . . . . . .

4.

Bonyolultsgelmlet (Jrg Rothe) . . . . . . . . . . . . . . . . . . . . . . . . . 4.1. 4.2. 4.3. 4.4. Alapok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NP-teljessg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Az tletlogika kielgthetosg-problmja . . . . . . . . . . . . . . . . . . Gr zomor zmus s alssg . . . . . . . . . . . . . . . . . . . . . . . . .

6II.

Tartalomjegyzk

HLZATOK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

162 163 164 164 165 167 169 172 178 189 195 210 222 224 227 235 242 244 268 268 278 287 295 306 312 313 314 315 320 349 362 363 364 365 368 370 378 389 397

Bevezets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. Hlzatok szimulcija (Gyires Tibor) . . . . . . . . . . . . . . . . . . . . . . 5.1. 5.2. 5.3. 5.4. 5.5. 5.6. 5.7. 5.8. 5.9. 6. A szimulci tpusai sgessge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A telekommunikcis hlzatok modellezsnek s szimulcijnak szk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A telekommunikcis hlzatok tpusai Teljestmnyjellemzok szimulcihoz A forgalom jellemzse

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

Szimulcis modellezo rendszerek . . . . . . . . . . . . . . . . . . . . . . Modellfejlesztsi letciklus . . . . . . . . . . . . . . . . . . . . . . . . . . A forgalom ingadozsnak hatsa nagy sebessgu hlzatokra . . . . . . . Mrsi adatok bemutatsa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Prhuzamos szmtsok (Ivnyi Antal s Claudia Leopold) 6.1. 6.2. 6.3. 6.4. 6.5.

Prhuzamos architektrk . . . . . . . . . . . . . . . . . . . . . . . . . . . Hatkonysgi mrtkek s optimalizls . . . . . . . . . . . . . . . . . . . Prhuzamos programozs . . . . . . . . . . . . . . . . . . . . . . . . . . . Szmtsi modellek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PRAM algoritmusok . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7.

Szisztolikus rendszerek (Eberhard Zehendner) . . . . . . . . . . . . . . . . . 7.1. 7.2. 7.3. 7.4. 7.5. A szisztolika alapfogalmai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tr-ido-lekpezs s szisztolikus rcs

A be/kiviteli sma levezetse . . . . . . . . . . . . . . . . . . . . . . . . . Vezrlsi szempontok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lineris szisztolikus rcsok . . . . . . . . . . . . . . . . . . . . . . . . . .

III.

FOLYTONOS OPTIMALIZCI . . . . . . . . . . . . . . . . . . . . . . .

Elosz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8. Jtkelmlet (Szidarovszky Ferenc) 8.1. 8.2. 8.3. IV . . . . . . . . . . . . . . . . . . . . . . . .

Vges jtkok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Folytonos jtkok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Az oligopol feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

DISZKRT OPTIMALIZCI . . . . . . . . . . . . . . . . . . . . . . . . .

Bevezets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9. temezselmlet (Vizvri Bla) . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1. 9.2. 9.3. 9.4. 9.5. 9.6. Formlis rendszer temezsi feladatok osztlyozsra . . . . . . . . . . . . A Gantt-diagramok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . temezsi problmk egyetlen gpen Az egyutas temezsi problma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . temezsi problmk prhuzamos berendezseken

. . . . . . . . . . . . . . . . . . . . . . .

A tbbutas temezsi problma . . . . . . . . . . . . . . . . . . . . . . . .

Tartalomjegyzk

7416 417 418 419 429 440 443 447 456 456 470 480 491 503 503 504 511 530 536 537 538 538 552 554 560 562 572 580 580 584 600 605 605 606 618 628 637 645 662

V .

ADATBZISKEZELS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Bevezets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10. Adattmrts (Ulrich Tamm) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10.1. Informcielmleti eredmnyek

10.2. Aritmetikai kdols s modellezs . . . . . . . . . . . . . . . . . . . . . . 10.3. ZivLempel tmrts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4. BurrowsWheeler-transzformci 10.5. Kptmrts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11. Memriagazdlkods (Balogh dm s Ivnyi Antal) 11.2. Lapcserlsi algoritmusok

11.1. Partcionls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3. Anomlik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4. llomnyok optimlis elhelyezse . . . . . . . . . . . . . . . . . . . . . . 12. Relcis adatmodell tervezs (Demetrovics Jnos s Sali Attila) . . . . . . . . 12.1. Bevezets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2. Funkcionlis fggosgek

12.3. Relcis smk sztvgsa

12.4. ltalnos fggosgek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VI. ALKALMAZSOK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Bevezets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13. Bioinformatika (Mikls Istvn) . . . . . . . . . . . . . . . . . . . . . . . . . . 13.1. Algoritmusok szekvencikon . . . . . . . . . . . . . . . . . . . . . . . . . 13.2. Algoritmusok fkon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.3. Algoritmusok sztochasztikus nyelvtanokon . . . . . . . . . . . . . . . . . 13.4. Szerkezetek sszehasonltsa . . . . . . . . . . . . . . . . . . . . . . . . . 13.5. Trzsfakszts tvolsgon alapul algoritmusokkal . . . . . . . . . . . . . 13.6. Vlogatott tmk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14. Ember-gp klcsnhats (Ingo Althfer s Stefan Schwarz) . . . . . . . . . . 14.1. Tbb vlasztsi lehetosget knl rendszerek . . . . . . . . . . . . . . . . 14.2. Tbb lehetsges megolds elolltsa . . . . . . . . . . . . . . . . . . . . . 14.3. Tovbbi interaktv problmamegold algoritmusok . . . . . . . . . . . . .

15. Szmtgpes gra ka (Szirmay-Kalos Lszl) . . . . . . . . . . . . . . . . . . 15.1. Analitikus geometriai alapok . . . . . . . . . . . . . . . . . . . . . . . . . 15.2. Ponthalmazok lersa egyenletekkel 15.4. Tartalmazsi algoritmusok . . . . . . . . . . . . . . . . . . . . . 15.3. Geometriai feldolgoz s tesszellcis algoritmusok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.5. Mozgats, torzts, geometriai transzformcik 15.7. Az inkrementlis kpszintzis algoritmusai

15.6. Megjelents sugrkvetssel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

Tartalomjegyzk

16. Trinformatika (Elek Istvn s Sidl Csaba) 16.2. Trbeli indexels 16.4. Mintavtelezs

. . . . . . . . . . . . . . . . . .

685 685 687 694 710 717 717 727 748 758 769 787 799

16.1. A trinformatika adatmodelljei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.3. Digitlis szursi eljrsok . . . . . . . . . . . . . . . . . . . . . . . . . . .

17. Tudomnyos szmtsok (Galntai Aurl s Jeney Andrs) 17.2. Lineris egyenletrendszerek

17.1. Lebegopontos aritmetika s hibaelemzs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.3. Sajtrtkszmts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.4. Numerikus programknyvtrak s szoftvereszkzk . . . . . . . . . . . . . Irodalomjegyzk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Trgymutat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sznes brk s ismertetok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Elsz

Az informatikai algoritmusok magyar nyelvu szakirodalma az utbbi huszont vben alakult ki. Az elso szakknyvet Lovsz Lszl s Gcs Pter rta 1978-ban [295]. Ezt a knyvet fordtsok kvettk: 1982-ben Aho, Hopcroft s Ullman [6] knyve, 1987-ben Knuth hromktetes monogr ja [258, 259, 260], majd 1987-ben Cormen, Leiserson s Rivest muve [89]. 1999-ben jra hazai szerzok kvetkeztek Rnyai Lajos, Ivanyos Gbor s Szab Rka [392] majd 2002-ben megjelent Lynch Osztott algoritmusok cmu monogrja [301]. Ezt 2003 tavaszn Ivnyi Antal Prhuzamos algoritmusok cmu knyve [221], majd 2003 oszn j algoritmusok cmmel Cormen, Leiserson, Rivest s Stein tanknyvnek [90] fordtsa kvette. A magyar informatikus hallgatk s gyakorlati szakemberek nagy rdeklodssel fogadtk az j algoritmusokat nhny hnap alatt a kiadott 2000 pldny fele gazdra tallt. Ez sztnzte ennek a knyvnek a hazai szerzoit, hogy klfldi kollgik segtsgvel tovbbi informatikai terletek algoritmusait is sszefoglaljk. A knyv tartalmt hat rszre tagoljuk: Alapok, Hlzatok, Diszkrt optimalizls, Folytonos optimalizls, Adatbzisok s Alkalmazsok. Az elso ktetbe azok a fejezetek kerlt, amelyek szeptemberig elkszltek. Minden fejezet bemutat egy alkalmazsi vagy elmleti szempontbl lnyeges terletet s azokhoz kapcsold algoritmusokat. Az algoritmusok tbbsgt szban s olyan pszeudokddal is megadjuk, amely a programozsi tapasztalattal rendelkezo olvask szmra knnyen rtheto. Az elso ktet 247 brt, 157 pszeudokdot s 133 pldt tartalmaz, amelyek elosegtik a trgyalt algoritmusok mukdsnek megrtst. Az nll tanulst az alfejezetek vgn lvo gyakorlatok (sszesen 269), az egyes tmkban val elmlylst pedig a fejezetek vgn lvo (sszesen 66) feladatok segtik. A fejezetek anyagval kapcsolatos friss s kiegszto ismeretekre val utalsok tallhatk a fejezetek vgn lvo Megjegyzsek a fejezethez cmu rszben. Az irodalomjegyzkben megadjuk egyrszt a felhasznlt szakirodalom bibliogr ai adatait, msrszt teljessgre trekedve felsoroljuk a magyar nyelvu forrsokat. Az algoritmusok bemutatsa az ignyelt eroforrsok elsosorban futsi ido s memria elemzst is magban foglalja. A szakirodalomban szoksos mdon felso korltokat adunk meg a legrosszabb esetre jellemzo eroforrsignyre, s esetenknt a megoldand problma eroforrsignyre jellemzo als korltot is levezetnk.A A knyv kziratt HL T EX kiadvnyszerkeszto eszkz segtsgvel ksztettk, amelyet

10

Elosz

az elmlt hat v sorn Belnyesi Viktorral s Locher Kornllal fejlesztettnk ki, s korbban mr hrom knyv kziratnak elolltsra hasznltunk. Az brk tbbsgt Locher Kornl rajzolta. Az irodalomjegyzket Ivnyi Anna tette lov. Garey s Johnson klasszikus muvt [149] kvetve mindazon algoritmusok futsi idejt exponencilisnak nevezzk, amelyekre nem adhat polinomilis felso korlt. Az j algoritmusok pldjt kvetve tizedespontot hasznlunk. Mindig klns gondot fordtunk knyveink klsejre. Az adott esetben olyan megoldst kerestnk, amely

tkrzi a knyv tartalmi gazdagsgt (az elso ktet 17 s a msodik ktet hasonl szm fejezett) s az alkotk szoros ktodst mind Magyarorszghoz, mind pedig Eurphoz. gy gondoljuk, hogy a pcsi szletsu Vsrhelyi Viktor aki francia festoknt Victor

Vasarely nven vlt vilghruv kpeire jellemzo a formk s sznek gazdagsga, lettja pedig tkrzi kultrnk eurpai ktodst. A budapesti s pcsi mzeumokban sszesen kzel 500 Vasarely-alkots van. Ezek a muvsz ajndkai a szlofld irnti hla s tisztelet szimblumai. Vasarely gazdag letmuvbol a knyv alkoti s majdani olvasi segtsgvel vlasztottunk. A szavazk a Dirac, Kubtuz, Rikka, Sixa s a Tupa-fond cmu kpeket emeltk ki. Kzlk kt olyan kpet a Dirac s a Kubtuz cmu festmnyeket vlasztottuk, amelyeken szakaszokbl kr alakul ki szemlltetve az informatika azon alapveto tulajdonsgt, hogy a folytonos vals vilgot diszkrt objektumokkal (bitekkel) rja le s amelyekhez sikerlt felhasznlsi engedlyt kapnunk. Kzismert, hogy az elmlt vszzadban nemcsak muvszeink, hanem sok kivl tudsunk is klfldn rt fel a cscsra. Nagy rszkre azonban folyamatosan szmthat a hazai oktats s tudomnyos let. A hlzati szimulcis fejezet szerzoje Gyires Tibor (Illinois Egyetem), a jtkelmleti fejezetet pedig Szidarovszky Ferenc (Arizonai Muszaki Egyetem) rta. A msodik ktetben a megbzhatsgrl szl fejezetet Gcs Pter (Bostoni Egyetem) rta, a belsopontos mdszerekrol szl fejezet egyik szerzoje pedig Terlaky Tams (McMaster Egyetem). Ma mind a ngy szerzo az adott terlet vezeto kutatja, amerikai egyetemek professzora egykor magyar egyetemen tanultak, majd tantottak. A rekurzis fejezet szerzoje Ksa Zoltn (Babe s-Bolyai Tudomnyegyetem), a szisztolikus rendszerekrol szl fejezetet Szakcs Laura (Babe s-Bolyai Tudomnyegyetem) fordtotta nmetrol magyarra. Rszvtelk a knyv megszletsben a hatrainkon tli magyar nyelvu oktatssal val szoros kapcsolatunk rsze. Knyvnk tartalmi gazdagsga j klfldi elsosorban nmet kapcsolatainknak is ksznheto. Az elso ktet kriptogr ai s bonyolultsgelmleti fejezett Jrg Rothe (Dsseldor Egyetem), szisztolikus rendszerekkel foglalkoz fejezett Eberhard Zehendner (Friedrich Schiller Egyetem) rta. Az adattmrtsi fejezet szerzoje Ulrich Tamm (Chemnitzi Egyetem), a prhuzamos programozsrl szl fejezet egyik szerzoje Claudia Leopold (Kasseli Egyetem), az ember-gp kapcsolatokkal foglalkoz fejezet szerzoi Ingo Althfer s Stefan Schwartz (Friedrich Schiller Egyetem). Az alkotk (szerzok, lektorok, fordtk s segtotrsaik) tbbsge a hazai informatikai felsooktats meghatroz intzmnyeinek Budapesti Corvinus Egyetem, Budapesti Muszaki s Gazdasgtudomnyi Egyetem, Budapesti Muszaki Foiskola, Debreceni Egyetem, Etvs Lornd Tudomnyegyetem, Miskolci Egyetem, Pcsi Tudomnyegyetem, Szegedi

Elosz

11

Tudomnyegyetem oktatja. Az Oktatsi Minisztrium tmogatsnak ksznhetoen ez a tanknyv nagyon kedvezo ron juthat el az Olvaskhoz. Ugyancsak az Oktatsi Minisztrium tmogatsnak ksznheto, hogy 2005 tavasztl a knyv elektronikus vltozata is mindenki szmra szabadon hozzfrheto lesz. Az albbi kollgknak ksznjk, hogy a tervezett knyv mindkt formjt tmogattk: Fazekas Gbor egyetemi docens (Debreceni Egyetem Informatikai Karnak dknhelyettese), Imreh Balzs egyetemi docens (Szegedi Egyetem), Ksa Zoltn egyetemi tanr (BBTE Matematikai s Informatikai Karnak dknhelyettese), Kozma Lszl egyetemi docens (ELTE Informatikai Karnak dknja), Jrg Rothe egyetemi tanr (Heinrich Heine Universitt, Dsseldorf), Sima Dezso foiskolai tanr (Budapesti Muszaki Foiskola Neumann Jnos Informatikai Karnak foigazgatja), Sidl Csaba PhD hallgat (ELTE Informatikai Doktori Iskola), Szeidl Lszl egyetemi tanr (Pcsi Tudomnyegyetem Matematikai s Informatikai Intzet igazgatja), Szidarovszky Ferenc egyetemi tanr (Arizonai Muszaki Egyetem), Szirmay-Kalos Lszl egyetemi tanr (BME Villamosmrnki s Informatikai Kara), Terlaky Tams egyetemi tanr (McMaster Egyetem, Hamilton) Ugyancsak ksznjk azoknak a kollginknak a segtokszsgt, akiknek a lektori vlemnyt csatolni tudtuk a plyzathoz: Fekete Istvn egyetemi docens (Rekurzik cmu fejezet), Fridli Sndor egyetemi docens (Adattmrts), Gonda Jnos egyetemi docens (Kriptogr a), Hunyadvri Lszl egyetemi docens s Katsnyi Istvn PhD hallgat (Bioinformatika), Kiss Attila egyetemi docens (Relcis adatbzisok tervezse), Toke Pl egyetemi docens (Hlzatok szimulcija), Vida Jnos egyetemi docens (Gra ka). Az elektronikus vltozat elkszltig a

http://people.inf.elte.hu/tony/konyvek/infalgcmu honlapon talljk meg olvasink a knyv kiegsztst, amely tbbek kztt az lo irodalomjegyzket, a nvmutatt, a gyakorlatok s feladatok egy rsznek megoldst, mukdo programokat, a tallt hibk jegyzkt tartalmazza. Ezen a honlapon keresztl fogjuk Olvasinkat tjkoztatni az elektronikus vltozat hlzati cmrol. Ksznet illeti azokat Belnyesi Viktor, Thomas H. Cormen, rsek Nndor, Pavel Fabian, Johan Gade, Ivnyi Anna, Kimo Johnson, Shamir Kuller, Lorentey Kroly, Stefan Schumann, Joel Seiferas, Beau Skinner, Ofer Springer, George Stephanides, Sekar Sundarraj, Szntai Tams, Szeidl Lszl, Ronald Tungl, Veszprmi Anna, David Wagner akik szrevteleikkel segtettek a knyvnk alapjul szolgl mu, az j algoritmusok elso kiadsnak javtsban. Az elozetes rdeklods alapjn arra szmtunk, hogy rvidesen jabb kiadsra lesz szksg. Ebben szeretnnk az elso kiads hibit kijavtani. Ezrt krjk a knyv Olvasit, hogy javaslataikat, szrevteleiket kldjk el a

[email protected] cmre levelkben le-

hetoleg pontosan megjellve a hiba elofordulsi helyt, s megadva a javasolt szveget. A knyv honlapjn megtallhat a szerzok s lektorok elektronikus cmeit tartalmaz kolofonoldal. Olvasink javaslataikkal, krdseikkel megkereshetik a knyv alkotit. Budapest, 2004. szeptember 22. Ivnyi Antal alkot szerkeszto

I. ALAPOK

Bevezets

Ebben az alapoz rszben ngy tmakrt trgyalunk. Az informatikai algoritmusok elemzse sorn gyakran elofordul, hogy pldul felismerjk az n s n

+ 1 mretu feladatok megoldsi ideje kztti kapcsolatot s ennek az gy-

nevezett rekurzv egyenletnek a felhasznlsval szeretnnk kzvetlenl felrni az n mretu bemenethez tartoz futsi idot. Az elso fejezet a rekurzv egyenletek leggyakrabban elofordul tpusainak megoldsi mdszereit mutatja be. A mai szmtgpek sebessge s trolkapacitsa, valamint az elmleti eredmnyek szmos olyan feladat knyelmes (mechanikus) megoldst lehetov teszik, melyeket korbban nem, vagy csak nagy nehzsgek rn tudtunk kezelni. Ezek egy rsze mint a formlis dierencils s integrls a msodik fejezetben trgyalt komputeralgebrhoz tartozik. Az elektronikus kommunikci hatalmas iram terjedsvel egytt no a kommunikci biztonsgnak jelentosge. Ezrt a mai informatika egyik kulcsfontossg terlete a kriptogr a, mellyel a knyv harmadik fejezete foglalkozik. Az algoritmusok elemzsnek hagyomnyosan fontos rsze az eroforrsigny legrosszabb esetre vonatkoz felso korltjnak megadsa. Az csak az utbbi 15 vben vlt termszetess, hogy az eroforrsignyre vonatkoz a problma s a megengedett algoritmusok tulajdonsgain alapul als korltokat is megadnak. Pldul Donald Knuth The Art of Computer Programming cmu monogr jnak 1968ban megjelent elso ktetben szerepelt az aszimptotikus felso korltok jellemzsre hasznlt O-jells (nagy ordo) de ncija ugyanakkor mg nem szerepelt az als korltok jellemzsre alkalmas

-jells, valamint a pontos nagysgrend megadsra alkalmas -jells. Az

Introduction to Algorithms 1990-ben megjelent elso kiadsban, a Distributed Algorithms 1996-ban megjelent elso kiadsban, valamint Knuth knyvnek 1997-ben megjelent harmadik kiadsban mr az

-jells s a -jells de

ncija is szerepel.

A negyedik fejezet szerint a bonyolultsgelmlet fontos feladata, hogy a problmkhoz s szmtsi modellekhez minl pontosabb als korltokat adjon meg ezzel is segtve a problmk eroforrsigny szerinti osztlyozst. A msodik ktetben fog megjelenni az algebrai algoritmusok elemzse.

1. Rekurzv egyenletek

Kzismert a Fibonacci-szmok rekurzv de ncija: ha F n jelli az n-edik Fibonacciszmot, akkor F0 F n+2

= 0,

F1

=1,ha n

=

F n+1

+ Fn ,

0.

Szeretnnk explicit formban megadni F n rtkt tetszoleges n-re. A feladat tulajdonkppen olyan egyenlet megoldst kri, amelyben az ismeretlen rekurzv mdon van megadva, ezrt rekurzv egyenletnek hvjuk. Itt a megolds felfoghat gy, mint termszetes szmokon rtelmezett fggvny, mivel F n minden n-re rtelmezett. Az ilyen rekurzv egyenletet szoks mg dierenciaegyenletnek is nevezni, de nevezhetnnk akr diszkrt dierencilegyenletnek is. 1.1. de nci. A k-adrendu rekurzv egyenlet (k f ( xn , xn+1 , . . . , , xn+k )

1) egy = 0,n

0

(1.1)

alak egyenlet, ahol xn -et kell explicit formban megadnunk. Ahhoz, hogy egyrtelmuen meghatrozhassuk xn -et, meg kell adnunk k kezdortket, ezek ltalban x0 , x1 , . . . , xk1 . Ezek az rtkadsok kezdeti feltteleknek tekinthetok. Mivel a Fibonacci-szmokat de nil egyenlet msodrendu rekurzv egyenlet, ezrt ott kt kezdeti rtket adunk meg. Az (1.1) egyenletet s annak adott kezdeti feltteleit kielgto xn adott egyenlet partikulris megoldsnak nevezzk. Ha az xn

=

g(n) sorozatot az

=

h(n, C 1 , C 2 , . . . , C k ) soro-

zatbl a C 1 , C 2 , . . . , C k llandk alkalmas megvlasztsval az (1.1) egyenlet minden partikulris megoldsa elollthat, akkor a sorozatot az egyenlet ltalnos megoldsnak nevezzk. A rekurzv egyenletek megoldsa ltalban nem egyszeru. A kvetkezokben sajtos esetekben alkalmazhat mdszereket ismertetnk. Az rsmdban fggvny helyett inkbb sorozatot hasznlunk (ami tulajdonkppen termszetes szmokon rtelmezett fggvny). gy a jells egyszerubb lesz, x(n) helyett mindenhol xn -t runk. A fejezet hrom rszbol ll. Az 1.1. alfejezetben a lineris rekurzv egyenletek megoldsval, a 1.2. alfejezetben a genertorfggvnyek felhasznlsval, az 1.3. alfejezetben pedig lineris rekurzv egyenletek numerikus megoldsval foglalkozunk.

1.1. Lineris rekurzv egyenletek

15

1.1. Lineris rekurzv egyenletekHa a rekurzv egyenlet f0 (n) xn

+

f1 (n) xn+1

+ +

fk (n) xn+k

=

f (n),

n

00, s

alak, ahol f , f0 , f1 , . . . , fk termszetes szmokon rtelmezett fggvnyek, f0 , fk

xn -et kell explicit mdon megadnunk, akkor lineris rekurzv egyenletrol beszlnk. Ha f azonosan nulla, akkor az egyenlet homogn, s klnben inhomogn. Amennyiben az f0 , f1 , . . . , fk fggvnyek mindegyike lland, akkor lland egytthats lineris rekurzv egyenletrol van sz.

1.1.1. lland egytthats homogn lineris rekurzv egyenletekLegyen a0 xn

+ a1 xn+1 + + ak xn+k = 0,0, k

n

k,

(1.2)

ahol a0 , a1 , . . . , ak vals llandk, a0 , ak

1. Amennyiben adva van k kezdeti rtk

(leggyakrabban x0 , x1 , . . . , xk1 ), az egyenlet megoldsa egyrtelmuen meghatrozhat. A megolds rdekben rendeljk hozz az egyenlethez a karakterisztikus egyenlett: a0

+ a1 r + + ak1 rk1 + ak rk = 0 ,

(1.3)

amely vals egytthats egyenlet. Ennek az egyenletnek k gyke van a komplex szmok krben. Behelyettestssel ellenorizheto, hogy ha r0 vals megoldsa a karakterisztikus egyenletnek, akkor C 0 rn 0

megoldsa az (1.2) egyenletnek, ahol C 0 tetszoleges lland.

Az (1.2) egyenlet ltalnos megoldsa xn ahol xn (i(i) (1) (2) (k) = C1 xn + C 2 xn + + Ck xn ,

= 1, 2, . . . , k) az (1.2) egyenlet linerisan fggetlen megoldsai. A kezdeti felt-

telekbol mindig meghatrozhatk a C 1 , C 2 , . . . , C k llandk egy k egyenletbol ll egyenletrendszer megoldsval. A linerisan fggetlen megoldsokat a karakterisztikus egyenlet gykei szolgltatjk a kvetkezok szerint. Minden gykhz hozzrendelheto egy fundamentlisnak nevezett megolds. Klnbzo vals gykk Legyenek r1 , r2 , . . . , r p a karakterisztikus egyenlet egymstl klnbzo vals gykei. Ekkor r1 , r2 , megoldsai az (1.2) rekurzv egyenletnek, s C 1 r1 is az, tetszoleges C 1 , C 2 , ltalnos megoldsa.n n + C 2 r2 + + C p rn p n n

...,

rp

n

(1.4)

...,

C p llandkra. Ha p

=

k, akkor (1.4) a rekurzv egyenlet

161.1. plda. Oldjuk meg az xn+2

1. Rekurzv egyenletek

=

xn+1

+ xn ,

x0

= 0,

x1

=1

rekurzv egyenletet. A karakterisztikus egyenlet r amelynek gykei r12

r1=0 , 5

=

1

+2

,

r2

=

1

2

5

.

Ezek valsak s egymstl klnbznek, teht az egyenlet ltalnos megoldsa

xn

n n 5 5 1+ 1 = C1 + C2 . 2 2 gyelembe vesszk, hogy x0

A C 1 s C 2 meghatrozhatk a kezdeti felttelekbol. Ha kvetkezo egyenletrendszerhez jutunk: C1 5

=

0, x1

=

1, a

C1

1

+2

+ C2

1

+ C2 52

= =

0 1

, .

Az egyenletrendszer megoldsa C 1

xn

= 1/ 5, C2 = 1/ 5 . gy az ltalnos megolds n n 1 5 5 1+ 1 1 = ,5 2 5 2

amely ppen F n , az n-edik Fibonacci-szm.

Tbbszrs vals gykk Legyen r egy p-szeres gyke a karakterisztikus egyenletnek. Ekkor rn

,

nr

n

,

n r

2 n

, ...,

n

p1 n

r

megoldsai az (1.2) rekurzv egyenletnek (az r tbbszrs gykhz tartoz fundamentlis megoldsok), s C0

+ C1 n + C2 n2 + + C p1 n p1 ...,

r

n

(1.5)

is megolds, tetszoleges C 0 , C 1 ,

C p1 llandkra. Ha a karakterisztikus egyenletnek

nincs ms gyke, akkor (1.5) a rekurzv egyenlet ltalnos megoldsa.1.2. plda. Oldjuk meg az xn+2

= 4 xn+1 4 xn ,

x0

= 1,

x1

=3

rekurzv egyenletet. A karakterisztikus egyenlet r amelynek r2

4r + 4 = 0 ,

= 2 ktszeres gyke. Ekkorxn

= (C0 + C1 n)2n

megoldsa az egyenletnek.

1.1. Lineris rekurzv egyenletek

17

A kezdeti felttelekbol

C0 2C 0 Innen C 0

= =

1 3

, .

+ 2C1

= 1, C1 = 1/2, azaz az ltalnos megoldsxn

=

1

+

1 2

n 2

n

vagy

xn

= (n + 2)2n1 .

Egyszeres komplex gykk Ha a trigonometrikus alakban felrt a(cos b + i sin b) komplex szm gyke a karakterisztikus egyenletnek, akkor az a(cos b vals egytthats. Ekkor a cos bn megoldsa az (1.2) rekurzv egyenletnek s C 1 a cos bnn n

i sin b) konjuglt is az, mivel a karakterisztikus egyenletn

s

a sin bn

+ C2 an sin bn

(1.6)

is az, tetszoleges C 1 s C 2 llandkra. Ha a karakterisztikus egyenletnek nincsenek ms gykei, akkor (1.6) ltalnos megolds.1.3. plda. Oldjuk meg az xn+2

= 2 xn+1 2 xn ,

x0

= 0,

x1

=1

rekurzv egyenletet. A karakterisztikus egyenlet2

r

2r + 2 = 0 , 2(cos(/4)

amelynek gykei 1

+ i s 1 i, trigonometrikus alakban: n 4

+ i sin(/4)) s

2(cos(/4)

i sin(/4)). Ezrt a rekurzv egyenletnek

xn

= C1 (

2) cos

n

+ C2 (

2) sin

n

n 4

megoldsa. A kezdeti felttelekbol

C1 2 cos

4

+ C2

C1 2 sin

4

= =

0 1

, .

Innen azt kapjuk, hogy C 1

= 0,

C2

= 1. Az ltalnos megolds tehtxn

=

2

n

sin

n 4

.

18Tbbszrs komplex gykk

1. Rekurzv egyenletek

Ha a trigonometrikus alakban felrt a(cos b + i sin b) komplex szm p-szeres gyke a karakterisztikus egyenletnek, akkor az a(cos b Ekkor az (1.2) rekurzv egyenletnek a cos bn, na cos bn, s a sin bn, na sin bn, megoldsai. Ekkor megolds (C 0n n n n

i sin b) konjuglt is az. ..., ...,p1 n

n

a cos bn

n

p1

a sin bn

n

+ C1 n + + C p1 n p1 )an cos bn + (D0 + D1 n + + D p1 n p1 )an sin bn

is, ahol C 0 , C 1 , . . . , C p1 , D0 , D1 , . . . , D p1 tetszoleges llandk, amelyek meghatrozhatk a kezdeti felttelekbol. Ez ltalnos megolds, ha a karakterisztikus egyenletnek nincsenek ms gykei.1.4. plda. Oldjuk meg az xn+4

+ 2 xn+2 + xn = 0,

x0

= 0,

x1

= 1,

x2

= 2,

x3

=3

rekurzv egyenletet. A karakterisztikus egyenlet r amely (r2 4

+ 2r 2 + 1 = 0 ,

+ 1)2 = 0 alakban is rhat, s amelynek i s i ktszeres gyke. Ezek trigonometrikus alakjai

= cos

2

+ i sin ,2

valamint

i = cos

2

i sin

2

.

Ezrt az ltalnos megolds xn

= (C0 + C1 n) cos

n 2

+ (D0 + D1 n) sin

n 2

.

A kezdeti felttelekbol kvetkezik: C0

(C 0 (C 0

+ C1 ) cos

2

+ (D0 + D1 ) sin

2

= = = =

0 1 2 3

, , , ,

+ 2C1 ) cos + (D0 + 2D1 ) sin 3 3 (C 0 + 3C 1 ) cos + (D0 + 3D1 ) sin2 2 azaz C0 D0

= = = =

0 1 2 3

, , , ,

+ D1 2C1

D0 3 D1s innen C 0

= 0, C1 = 1, D0 = 3 s D1 = 2. Az ltalnos megolds tehtxn

= (3 2n) sin

n 2

n cos

n 2

.

1.1. Lineris rekurzv egyenletek

19

A most vizsglt ngy eset segtsgvel brmilyen lland egytthats homogn egyenletet megoldhatunk.1.5. plda. Oldjuk meg az xn+3

= 4 xn+2 6 xn+1 + 4 xn ,

x0

= 0,

x1

= 1,

x2

=1

rekurzv egyenletet. A karakterisztikus egyenlet r amelynek gykei: 2, 13

4r2 + 6r 4 = 0 ,

+ i s 1 i. Ezrt az ltalnos megolds n n n + C3 2 xn = C 1 2 + C 2 2 cos4

n

sin

n 4

.

Az llandk meghatrozsa utn

xn

= 2

n1

+

2 2

n

cos

n 4

+ 3 sin

n 4

.

ltalnos megolds Az (1.2) k-adrendu homogn lineris rekurzv egyenlethez rendelt karakterisztikus egyenletnek sszesen k gyke van a komplex szmok kztt, amelyek nem felttlenl klnbzok. Legyenek ezek a gykk a kvetkezok: r1 vals, p1 -szeres ( p1 r2 vals, p2 -szeres, ( p2 ... rt vals, pt -szeres, ( pt s1 s2 ... sm

1) 1)

, ,

1) , = a1 (cos b1 + i sin b1 ) komplex, q1 -szeres (q1 1) = a2 (cos b2 + i sin b2 ) komplex, q2 -szeres (q2 1)

, , .

= am (cos bm + i sin bm ) komplex, qm -szeres (qm 1)

Mivel sszesen k gyk van, p1

+ p2 + + pt + 2(q1 + q2 + + qm ) = k.

Ekkor az (1.2) rekurzv egyenlet ltalnos megoldsat ( j) ( j) p 1 + C1 n + +C n p 1j j

xn

=j=1 m

C

( j) 0

rj

n

+j=1 m

D

( j) 0

j) ( j) q 1 + D( n + + D n 1 q 1j j

a j cos b j n

n

+j=1

E

( j) 0

( j) ( j) q 1 + E1 n + + E n q 1j j

a j sin b j n

n

,

(1.7)

ahol C( j) 0

,

C

( j) 1

, ...,

C

( j) p j 1

,

j

= 1, 2, . . . , t ,

20D(l) 0

1. Rekurzv egyenletek

,

E

(l) 0

,

D

(l) 1

,

E

(l) 1

, ...,

D

(l) pl 1

,

E

(l) pl 1

,

l

= 1, 2, . . . , m

llandk, melyek a kezdeti

felttelekbol meghatrozhatk. Az eddigiek a kvetkezo ttelben foglalhatk ssze. 1.2. ttel. Legyen k

1 egsz, a0 , a1 ,j n

. . . , ak

vals szmok, a0 , ak

0. Az (1.2) line-

ris rekurzv egyenlet ltalnos megoldsa elollthat az (17.39) karakterisztikus egyenlet ri gykeibol kpezett n ri alak tagok lineris kombincijaknt, ahol a pi -szeres ri gyk esetben 0

jk

szmsorozatot jelkpezi, mg az

1 zk

( A(z)

a0 a1 z a2 z2 ak1 zk1 ) =nk

an z

nk

=n0

ak+n z

n

genertorfggvny az1.7. plda. Legyen A(z)

< ak , ak+1 , ak+2 , . . . >= 1 + z + z2 + . Ekkor1 z A(z)

sorozatot.

1 =

A(z)

s

A(z)

=

1 1

z

.

Szorzs Ha A(z) s B(z) genertorfggvnyek, akkor A(z) B(z)

= = =

(a0

+ a1 z + + an zn + )(b0 + b1 z + + bn zn + ) 2 a0 b0 + (a0 b1 + a1 b0 )z + (a0 b2 + a1 b1 + a2 b0 )z + sn zn0 n

,

24n

1. Rekurzv egyenletek

ahol sn

=k=0

ak bnk .

Sajtos eset. Ha bn

= 1 brmely n termszetes szmra, akkor n 1 n = A(z) ak z . 1z n0 k =0

(1.10)

Ha mg ezenkvl an

= 1 is igaz brmely n termszetes szmra, akkor1 (1

z)2

=n0

(n

+ 1)zn .

(1.11)

Derivls A (z)

= a1 + 2a2 z + 3a3 z2 + =n0

(n

+ 1)an+1 zn .

1.8. plda. Az A(z)

=n0

z

n

=

1 1

z

genertorfggvny mindkt oldalt derivlva azt kapjuk, hogy

A (z)

=n1

nz

n1

=

1 (1

z)2

.

Integrlsz

A(t)dt0

= a0 z +

1 2

a1 z

2

+

1 3

a2 z

3

+ =n1

1 n

an1 z

n

.

1.9. plda. Legyen 1 1

z

= 1 + z + z2 + z3 +

Mindkt oldalt integrlva azt kapjuk, hogy 1 1

ln

z

=z+

1 2

z

2

+

1 3

z

3

+ =n1

1 n

z

n

.

Ha a kt fenti genertorfggvnyt sszeszorozzuk, akkor 1 1 1 2 1 3 1 n 1 1

z

ln

z

=n1

Hn z

n

,

ahol Hn

=1+

+

+ +

( H0

= 0,

H1

= 1) az n. harmonikus szmok.

1.2. Genertorfggvnyek s rekurzv egyenletek

25

Argumentum cserje Legyen A(z)n n

=

n0

n0 c an z pedig az

< a0 , a1 , a2 , . . . > sorozatot jelkpezi, akkor A(cz) = < a0 , ca1 , c2 a2 , . . . cn an , . . . > sorozatot. Igazak mg a kvetkezok is:an z , amely azn

1 2 1 2

A(z)

+ A(z) = a0 + a2 z2 + + a2n z2n + ,

A(z)

A(z) = a1 z + a3 z3 + + a2n1 z2n1 + .1 1

1.10. plda. Legyen A(z)

= 1 + z + z2 + z3 + =1 22

z1 2

. Ekkor1 1

1

+ z2 + z4 + =

A(z)

+ A(z) =

z

+

1 1

+z

=

1 1

z2

,

amely megkaphat gyis, hogy z-t z -tel helyettestjk A(z)-ben. Hasonlkppen, megkaphatjuk a pratlan kitevoju tagok sszegt:

z

+ z3 + z5 + =

1 2

A(z)

A(z) =

1 2 1

1

z

1 1

+z

=

z 1

z2

.

A genertorfggvnyek segtsgvel rdekes kpleteket kaphatunk. Legyen pldul A(z)

=

1/(1

z)

=

1

+

z

+

z

2

+

z

3

+ .

Ekkor zA z(1

+

z)

=

F (z), vagyis ppen a

Fibonacci-szmok genertorfggvnye. A fenti kpletbol zA z(1 Az zn+1

+ z) = z + z2 (1 + z) + z3 (1 + z)2 + z4 (1 + z)3 + . + 1)-edik Fibonacci-szm, mg a

n+1

egytthatja a bal oldalon ppen F n+1 , vagyis az (n

jobb oldali egytthatja, a binomilis kplet alkalmazsa utn minden tagban nk 0

kk

.

Innen F n+1

n+1

=k 0

n

kk

2

=k=0

n

kk

.

(1.12)

Emlkeztetnk, hogy a binomilis kplet ltalnosthat tetszoleges vals r -re is, vagyis

(1

+ z)r =n0

r n

z

n

,r n

amely a binomilis egytthatk genertorfggvnye. Itt ls r -re, vagyis

a kombinci ltalnostsa va-

r n

=

r (r 1, 0,

1)(r 2) . . . (r n + 1) , n(n 1) . . . 1

ha n ha n ha n

>0, =0, n1

(n

+

1)/2 . Egyszeru okoskodssal ki

=

1 esetet, vagyis bn

=

2

tetszoleges n

1 termszetes szmra.

=

1 konvenci alapjn. Akrcsak az elozo feladatoknl, itt is a bal s jobb j levl van. A bi b( j) (k j)

oldali rszfkat vizsgljuk meg. Ha a bal oldali rszfban i cscs s j levl van, akkor a jobb oldaliban n

i 1 cscs s k

ni1

szorzat ppen ezeknek a fknak a

szma. sszegezve k s j szerint, a kvetkezo rekurzv kpletet kapjuk:n2 k1

bn

(k)

k) = 2b( + n1 i=1 j=1

bi b

( j)

(k j) ni1

.

(1.18)

Ennek a rekurzv egyenletnek a megoldsra hasznljuk a kvetkezo genertorfggvnyt: B(k)

(z)

=n0

bn z

(k) n

,

ahol k

1.

1.2. Genertorfggvnyek s rekurzv egyenletek

31=0, 1,

Az (1.18) egyenlet mindkt oldalt z -nel megszorozva, majd sszeadva az n 2, . . . rtkekre, a kvetkezot kapjuk:

n

(k) n bn z n1

=2n1

b

(k) n1

z

n

+n1

n2 i=1

k 1

bij=1

( j)

n b ni1 z .(k j)

Az sszegezs sorrendjt felcserlvek 1 (k) n bn z n1

=2n1

b

(k) n1

z

n

+j=1 n1

n2 ( j ) ( k j ) n bi bni1 z .i=1

Innen B vagy B(k ) (k)

(z)

= 2zB

(k)

k1 (z) + z j=1

B

( j)

(z) B

(k j)

(z)

k1 (z) = 1 2z zj=1

B

( j)

(z) B

(k j)

(z) .

(1.19)

Lpsrol lpsre haladva, felrhatjuk a kvetkezoket. B(2)

(z)

=

z 1

2z2z2 2

B

(1)

(z )

2

,3

B

(3)

(z)

= =

(1

2z)5z3

B

(1)

(z)

, .

B

(4)

(z)

(1

2z)k1

3

B

(1)

(z)

4

Az ltalnos megoldst megprbljuk a kvetkezo alakban keresni:(k)

B ahol, amint lttuk, c2

(z)

=

ck z (1

2z)

k1

B

(1)

(z)

k

,szmokra

= 1, c3 = 2, c4 = 5. Az (1.19) kpletbe behelyettestve, a ckk 1

egy rekurzv sszefggst kapunk:

ck

=i=1

ci cki

. =2, akkor c2

Ezt szintn a genertorfggvnyek segtsgvel oldjuk meg. Ha k innen c1

=

c1 c1 , s

=

1. Legyen c0

=

1. Ha C (z)

=

n0

cn z

n

a cn szmok genertorfggvnye, akkor

gyelembe vve a genertorfggvnyek szorzsi kplett C (z)

1 z = (C (z) 1)2

vagy

C (z )

2

3C (z) + z + 2 = 0 ,

amelyet C (z)-re nzve megoldunk, s a 3

C (z)

=

1

4z

2

32kpletet kapjuk, mivel C (0) 3 2 3 2

1. Rekurzv egyenletek

= 1 miatt csak a negatv elojel j. Sorba fejts utn1 2 (1

C (z)

= =

+

4z)1/2 =1

3 2 2n n

zn

1 2n0

1 2n 1

2n n 1

z

n

n0

2(2n

1)1

=1+n1

2n n

2(2n

1)

z

n

.

Innen cn(1)

=

2n n

2(2n

1)

,

n

1.

Mivel bn

= 2n1 , ha n 1, knnyen ellenorizheto, hogy B(1) = z/(1 2z). TehtB(k)

(z )

=

1 2(2k

2k k (1

z

2k 1

1)

2z)2k1

.

Mivel azonban 1 (1

z)m

=n0

n

+m1n

z

n

,

a kvetkezo eredmnyhez jutunk: 1 2(2k 2k k 2k kn2k1 n0

B

(k )

(z)

= =

2k

+n2n n

1) 1)

2 z

n 2k+n1

1 2(2k

1 n 2k + 1

2

n2k+1 n

z

.

Innen pedig bn vagy bn(k) (k)

=

1 2k

2k k

1

1 2k 2n n 2

2

n2k

=

1 2k n k 2k

n2k

1

.

1.2.3. A Z-transzformci mdszereHa genertorfggvnyekkel oldunk meg egy inhomogn lineris rekurzv egyenletet, akkor, amint lttuk, mindig egy racionlis trtfggvny sorba fejtse adja meg a megoldst. A Z-transzformci mdszervel ezt a sorba fejtst knnyebben elvgezhetjk. Legyen a racionlis trtfggvny P(z)/ Q(z), ahol P(z) kisebb fokszm, mint Q(z). Ha ismerjk a nevezo gykeit, a trtfggvnyt elemi (vagy parcilis) trtfggvnyek sszegre bonthatjuk a hatrozatlan egytthatk mdszervel. Nzzk meg eloszr azt az esetet, amikor a nevezonek csak egyszeres (azaz egymstl klnbzo) gykei vannak, s legyenek ezek Ekkor felrhatjuk, hogy P(z) Q(z)

1 , 2 , . . . , k .

=

A1 z

1

+ +

Ai z

i

+ +

Ak z

k

.

1.2. Genertorfggvnyek s rekurzv egyenletek

33

Knnyen belthat, hogy

Ai

=

zi

lim (z

i )

P(z) Q(z)

,

i

= 1, 2, . . . , k . Ai i , 1 i z

Msfelol z

Ai

i

= i

Ai 1

1

=z

i

ahol

i = 1/i . Ha most ezt az elemi trtet sorba fejtjk, akkor a kvetkezot kapjuk: Ai i = A i i 1 i z1n + i z + + n z + . i

Innen a z egytthatja

n

+1 Ai n , s jelljk ezt Ci (n)-nel. Ekkor iC i (n)

+1 = i = A i n i

zi

lim (z

i )

P(z) Q(z)

,

vagy C i (n) Ha most elvgezzk a z

+1 = n i

zi

lim

(z

i )P(z)Q(z)

. i = 1/i , akkor

1/z talaktst, sC i (n)

gyelembe vesszk, hogy

=

zi

lim (z

i )zn1P(1/z) Q(1/z)

p(z) q(z)

,

ahol

p(z) q(z)n

=

.

Ekkor az X (z) kifejtsben a z egytthatja ppen C 1 (n) Knnyen belthat, hogy ha polinomnak. Pldul, ha P(z) Q (z )

+ C2 (n) + + Ck (n) . =1/ gyke a q(z)

gyke a Q(z) polinomnak, akkor

=

2z (1

z

z)(1 2z)

,

akkor

p(z) q(z)

=

2 (z

1)(z 2)

.

Amennyiben egy gyk tbbszrs, pldul mny C i (n) dp

i

p-szeres, akkor a neki megfelelo rszeredp(z) q(z)

=

1 (p

1)! z

limi

d

p1

dz p1

(z

i ) p zn1

.

Itt

f (z) az f (z) fggvny p-edrendu derivltjt jelenti. dz p Az eddigiek a kvetkezo algoritmusban sszegezhetok. Feltesszk, hogy az egyenlet

egytthatit a A, a megolds llandit pedig a C tmb tartalmazza.

34L - ( A, k , f ) 1 2 3 4 legyen az egyenlet a0 xn

1. Rekurzv egyenletek

+ a1 xn+1 + + ak xn+k =n

f (n);

szorozzuk be az egyenlet mindkt oldalt z -nel s sszegezznk n szerint hozzuk az egyenletet X (z) vgezzk el a z

=

P(z)/ Q(z) alakra, ahol X (z)

=

n0

xn z

n

,

P(z) s Q(z) pedig polinomok

1/z talaktst, legyen az eredmny

p(z)/q(z), ahol p(z) s q(z) polinomok legyenek q(z) gykei:

1 2...

p1 -szeres, p1 p2 -szeres, p2 pk -szeres, pk

1, 1, 1;ahol (z

kxn

ekkor az eredeti egyenlet ltalnos megoldsa

= C1 (n) + C2 (n) + + Ck (n), d C i (n) = 1/(( pi 1)!) limz dz pi 1 i pi 1

i ) p zn1 ( p(z)/q(z)) ,i

i

= 1, 2, . . . , k .

5

return C A mdszer neve onnan ered, hogy ha egy genertorfggvnyben z helybe 1/z-t helyet-

testnk, akkor megkapjuk a Z-transzformltjt, amelyre hasonl muveletek lteznek, mint a genertorfggvnyekre, s amelyre alkalmazva a reziduum-ttelt, a fenti eredmnyhez jutunk.1.12. plda. Oldjuk meg az xn+1

2 xn = 2n+1 2,

ha

n

0,

x0

=0

rekurzv egyenletet. z -nel beszorozva s sszegezve xn+1 zn0 n n

2n0

xn z

n

=n0

2

n+1 n

z

n0

2z

n

,

azaz

1 z

X (z)

2X (z) =

2 1

2z =

2 1

z2z

,2

ahol X (z)

=n0

xn z

n

.

Innen X (z) Az (1

z)(1 2z)22z

.

1/z helyettestst elvgezvep(z) q(z)

=

(z

1)(z 2)2

,

ahol a nevezo gykei: 1 egyszeres, 2 ktszeres gyk. Ezrt

C1n

= limz1

2z (z

n

2)2nz

=2(z

s

C2

= limz2

d dz

2z z

n1

1

= 2 limz2

(z

1) zn = 2n (n 2) . 1)2

1.2. Genertorfggvnyek s rekurzv egyenletek

35

Az ltalnos megolds teht xn

= 2n (n 2) + 2,

n

0.

1.13. plda. Oldjuk meg az xn+2

= 2 xn+1 2 xn ,

ha

n

0,

x0

= 1,

x1

=1

rekurzv egyenletet. z -nel beszorozva s sszegezve 1 z innen2 n0 n

xn+2 z

n+2

=

2 zn0

xn+1 z

n+1

2n0

xn z

n

,

1 z2

F (z)

z =1 z2

2 z

F (z)

2 F ( z) ,1 z

azaz F (z) Ekkor

=

2 z

+2 =

.

F (1/z) A nevezo gykei 1

z2

z . 2z + 2i(1

+ i s 1 i. Kiszmtjuk C1 (n)-t s C2 (n)-t:C 1 (n)

= =

z1+i

lim

z

zn+1 = (1 i)

+ i)n2

s

C 2 (n) Mivel 1 hatvnyozs utn (1

lim z1i z

zn+1 i(1 i)n = . (1 + i) 2 ,1

+i= 2

2 cos

4

+ i sin

4

i=

2 cos

4

i sinn 4

4

,n 4

+ i)n =

n

cos

n 4

+ i sin

n 4

,

(1

i)n = 2n

2

n

cos

i sin

,

xn

= C1 (n) + C2 (n) =

sin

n 4

.

Gyakorlatok1.2-1. Szmtsuk ki, hny olyan n cscs binris fa van, amelynek sem a bal, sem pedig a jobb oldali rszfja nem res. 1.2-2. Szmtsuk ki, hny olyan n cscs binris fa van, amelyben minden levltol klnbzo cscsnak pontosan kt gyereke van. 1.2-3. Oldjuk meg genertorfggvny segtsgvel az albbi rekurzv egyenletet. Hn

= 2Hn1 + 1,

H0

=0.

( Hn itt a Hanoi-tornyai nevu feladat lpsszmt jelenti.)

36

1. Rekurzv egyenletek

1.2-4. Oldjuk meg Z-transzformci segtsgvel az albbi rekurzv egyenletet: F n+2

=

F n+1

+ Fn + 1,

ha n

0,

s

F0

= 0, F 1 = 1 .

1.2-5. Oldjuk meg a kvetkezo egyenletrendszert: un vn ahol u0

= =

vn1 un

+ un2 , + un1 ,

= 1, u1 = 2, v0 = 1.

1.3. Numerikus megoldsLerunk egy fggvnyeljrst, amellyel lineris rekurzv egyenleteket oldhatunk meg numerikusan. Az egyenletet a szoksos mdon, a kvetkezo formban adjuk meg: a0 xn

+ a1 xn+1 + + ak xn+k =

f (n)

.

Az a0 , a1 , . . . , ak egytthatkat az A, mg az x0 , x1 , . . . , xk1 kezdortkeket az X vektor tartalmazza. Hogy kiszmtsuk xn rtkt, sorra kiszmtjuk az xk , xk+1 , . . . , xn rtkeket, minden alkalommal az X vektor elso k elemben (azaz a 0, 1, . . . , k orizve meg a sorozat elozo k rtkt. R (A, X, k, n, f ) 1 for j 2 3 4 5 6 7 8 9 10 return v A 25. sorokban kiszmtjuk a kvetkezo x j ( j

1 indexu elemekben)

do v

k to n A[0] X [0] for i 1 to k 1 do v v + A[i] X [i] v f ( j k) v /A[k]if j n then for i

0 to k 2 X [i + 1] X [k 1] vdo X [i]

= k, k + 1, . . . , n) rtkt (az elozo k rtk

felhasznlsval), ezt az rtket az algoritmusban v jelli. A 79. sorokban, amennyiben mg nem rtk el az n-et, tmsoljuk az utols k rtket az X vektor elso k elembe. A 10. sor visszaadja az xn rtkt. Knnyen belthat, hogy az algoritmus futsi ideje

(kn).

1.3-1. Hny sszeadst, kivonst, szorzst, osztst s rtkadst vgez a R algoritmus, ha az 1.4. pldban szereplo adatokkal kiszmtja x1000 rtkt?

Gyakorlatok

1. Feladatok

37

Feladatok1-1. Homogn egyenlet megoldhatsga genertorfggvnnyel Bizonytsuk be, hogy tetszoleges homogn lineris rekurzv egyenlet genertorfggvnnyel val megoldskor csak akkor fordulhat elo olyan eset, hogy nem tudjuk alkalmazni a megadott mdszert, mivel az X (z) minden n-re. 1-2. Komplex gykk Z-transzformlskor Vizsgljuk meg, mi trtnik, ha a Z-transzformci mdszere alkalmazsakor a nevezo gykei komplex szmok. A rekurzv egyenlet megoldsnak mindig valsnak kell lennie. Biztostja-e ezt a mdszer?

=

0 egyenlethez jutunk, ha az egyenlet megoldsa xn

=

0

Megjegyzsek a fejezethezElaydi [119], Flajolet s Sedgewick [421], Greene s Knuth [175], valamint Mickens [327] knyve rszletesen trgyalja a rekurzv egyenletek megoldst. Vannak a genertorfggvnyekkel foglalkoz, magyar nyelvu knyvek is pldul Knuth [258], valamint Graham, Knuth s Patashnik [171]. Vilenkin muve [478] egyszeru mdon trgyal sok-sok feladatot a knyv utols kt fejezete rekurzv egyenletekkel s genertorfggvnyekkel foglalkozik. Lovsz [296] kombinatorikai problmkat s feladatokat tartalmaz knyvben is vannak genertorfggvnyekre vonatkoz feladatok. A binris fk megszmolsa Knuth [258] knyvbol, a levelek megszmolsa a binris fk halmazban, valamint az n cscs k levelu binris fk megszmolsa Ksa Zoltn [243] knyvbol valk.

2. Komputeralgebra

A klnfle matematikai szmtsok elvgzsre kpes informatikai eszkzk nlklzhetetlenek a modern tudomnyban s ipari technolgiban. Kpesek vagyunk kiszmolni bolygk, csillagok plyjt, vezrelni atomeromuveket, egyenletekkel lerni, modellezni a termszet szmos trvnyt. Ezek a szmtsok alapvetoen ktflk lehetnek: numerikusak s szimbolikusak. mbr a numerikus szmtsok nemcsak elemi aritmetikai muveleteket foglalnak magukban, hanem olyan muveleteket is, mint matematikai fggvnyek numerikus rtknek, polinomok gykeinek vagy mtrixok sajtrtknek meghatrozsa, ezek a muveletek alapvetoen szmokon rtelmezettek, s ezek a szmok a legtbb esetben nem pontosak, pontossguk az adott szmtgpes architektra lebegopontos brzolsi mdjtl fgg. A szimbolikus szmtsokat matematikai vagy informatikai objektumokat jelento szimblumokon rtelmezzk. Ezek az objektumok lehetnek szmok (egszek, racionlis szmok, vals s komplex szmok, algebrai szmok), de lehetnek polinomok, racionlis s trigonometrikus fggvnyek, egyenletek, egyenletrendszerek, algebrai struktrk elemei, vagy ppen halmazok, listk, tblzatok. A szimbolikus szmtsok elvgzsre alkalmas szmtgpes rendszereket (amelyek legtbbszr numerikus szmtsokra s az eredmnyek gra kus megjelentsre egyarnt kpesek) komputeralgebra-rendszereknek vagy szimbolikus-algebrai rendszereknek nevezzk. Az utal. algebra sz a szimbolikus objektumokkal vgzett muveletek algebrai eredetre

A komputeralgebra-rendszerek mint szmtgpes programok alapfeladata: (1) matematikai objektumok szimbolikus brzolsa, (2) aritmetika ezekkel az objektumokkal. A komputeralgebra, mint tudomnyterlet feladata pedig erre az aritmetikra plo hatkony algoritmusok keresse, elemzse s megvalstsa tudomnyos kutatsokhoz s alkalmazsokhoz. Mivel a komputeralgebra-rendszerek szimbolikusan, (lnyegben) tetszoleges pontossggal s hibamentesen kpesek szmolni, eloszr tisztzni kell, milyen adatszerkezeteket lehet hozzrendelni a klnfle objektumokhoz. A 2.1. alfejezet a matematikai objektumok brzolsnak problmakrt taglalja. A tovbbiakban a szimbolikus algoritmusok kzl ismertetjk azokat, melyek az idok folyamn a mindennapi tudomny s technika elengedhetetlen rszv vltak. A termszettudomnyok tbbsge jelensgeit, gondolatait matematikai egyenletekkel rja le. A lineris egyenletek, egyenletrendszerek szimbolikus megoldsainak vizsglata a jl ismert elimincis mdszereken alapul. A nemlineris egyenletrendszerek megoldsai-

2.1. Adatbrzols

39

nak megkeressre eloszr megvizsgljuk az euklideszi algoritmus klnfle vltozatait s a rezultnsmdszert. A hatvanas vek kzepn Buchberger doktori dolgozatban egy hatkony mdszert dolgozott ki tbbvltozs polinomegyenletek szimbolikus megoldsainak meghatrozsra, amit ma Grbner-bzis elmlet nven ismernk. Buchberger munkjra csak vekkel ksobb kezdtek fel gyelni, azta a terlet a komputeralgebra egyik legnpszerubb ga. Ezekrol lesz sz a 2.2. s a 2.3. alfejezetekben. A kvetkezo bemutatand terlet a szimbolikus integrls. Habr a problma formlis termszete mr tbb, mint 100 ve ismert (Liouville-elmlet), csak 1969-ben tudott Risch hatkony algoritmust adni annak eldntsre, hogy ha adott egy vals elemi f fggvny, akkor az f ( x)d x integrl is elemi-e s ha igen, az algoritmus meg is adja az integrl rtkt. A mdszerrel a 2.4. alfejezetben foglalkozunk. A fejezet vgn ttekintjk a szimbolikus algoritmusok elmleti s gyakorlati vonatkozsait (2.5. alfejezet), kln rszt sznva napjaink komputeralgebra-rendszereinek.

2.1. AdatbrzolsA komputeralgebrban a legklnflbb matematikai objektumok fordulnak elo. Ahhoz, hogy ezekkel az objektumokkal szmolni lehessen, brzolni s trolni kell oket a szmtgp memrijban. Ez elmleti s gyakorlati problmk egsz sort veti fel. Ebben az alfejezetben ezekrol a krdsekrol lesz sz. Tekintsk az egszeket. Egyrszt matematikai tanulmnyainkbl tudjuk, hogy halmazuk megszmllhat szmossg, viszont informatikai szemszgbol azzal is tisztban vagyunk, hogy szmtgpnk csak vges sok egsz trolsra kpes. Az, hogy mekkora a legnagyobb egsz, amit minden tovbbi erofeszts nlkl brzolni tudunk, attl fgg, hogy szmtgpes architektrnkban mekkora a gpi sz mrete. Ez tipikusan 16, 32, 48 vagy 64 bit. Az egy gpi szban brzolhat egszeket egyszeres pontossg egszeknek nevezzk. Nem biztos, hogy egy tetszoleges egsz szm elfr egy gpi szban, vagyis olyan adatstruktrra van szksg, ami tbb gpi sz felhasznlsval tetszolegesen nagy egsz brzolsra kpes. Termszetesen a tetszolegesen nagy nem jelent vgtelen nagyot, hiszen valamilyen tervezsi igny vagy a memria mrete mindenkppen korltot szab. Emellett olyan adatbrzolst kell megvalstani, amelyre hatkony muveletek pthetok. Az egszek reprezentcijnak alapvetoen kt tja van:

helyirtkes (a hagyomnyos decimlis szmrendszerbeli brzols ltalnostsa), amelyben egy n egszet hogy Bk1 i= 0

di B alakban runk fel, ahol a B alapszm akrmilyen,

i

egynl nagyobb egsz lehet. A hatkonysg nvelse miatt B-t gy rdemes vlasztani,

{0

di

1 belefrjen egy gpi szba. A di jegyek (0 i k 1) vagy a kanonikus B 1} vagy a szimmetrikus { B/2 < di B/2 } jegyhalmazbl val

egyszeres pontossg egszek. Az gy lerhat tbbszrs pontossg egszek lineris lists [d0 , d1 , . . . , dk1 ] brzolsnak szmtgpes megvalstsa trtnhet dinamikusan vagy statikusan, attl fggoen, hogy a lineris listt lncolt listaknt vagy tmbknt implementljuk.

modulris, amelyben az n egsz megfelelo szm, egyszeres pontossg, pronknt relatv prm modulusokkal vett modulris kpeinek lineris listjaknt adhat meg. A modulris kpekbol n a knai maradkttel segtsgvel rekonstrulhat.

40

2. Komputeralgebra

A modulris alak gyorsabb az sszeads, kivons s szorzs muveleteket tekintve, de lnyegesen lassabb pldul oszthatsgi vizsglatoknl (amelyek sok esetben elkerlhetetlenek). Nyilvnval, hogy az adatstruktra megvlasztsa erosen befolysolja algoritmusaink sebessgt.2.1. plda. Az albbi pldban az egyszerusg kedvrt termszetes szmokkal dolgozunk. Tegyk fel, hogy olyan szmtgp architektrnk van, ahol a gpi sz 32 bites, vagyis szmtgpnk az I1

=

[0, 250

32

1] =

[0, 4 294 967 295] intervallum egszeivel kpes egsz aritmetikt vgezni. Erre

az aritmetikra ptve az architektrnkon valstsunk meg olyan egsz aritmetikt, amellyel az I2 [0, 10 ] intervallumban is szmolni tudunk. A helyirtkes brzolshoz legyen B n1 n2 Ekkor n1 n2 n1 n1

=

= 104 , tovbb ,

= =

123456789098765432101234567890 2110

.

= = = =

[7890, 3456, 1012, 5432, 9876, 7890, 3456, 12] [2110]

,

, , ,

+

n2 n2

[0, 3457, 1012, 5432, 9876, 7890, 3456, 12]

[7900, 3824, 6049, 1733, 9506, 9983, 3824, 6049, 2]

ahol az sszeadst s a szorzst helyirtkesen szmoltuk. A modulris brzolshoz vlasszunk pronknt relatv prm szmokat az I1 intervallumbl gy, hogy szorzatuk nagyobb legyen 10 m1 m4 mi i=1 tossal brzolunk. prmek, ahol Ekkor n1 n1 n1 valamint n2 n1 n16 50

-nl. Legyenek pldul m2 m5

= 4294967291, = 4294967197,1050

= 4294967279, = 4294967189,

m3 m6

= 4294967231 , = 4294967161

>

. Egy I2 intervallumbeli egszet teht az I1 intervallumbl vett szmha-

2009436698 4253639097 2459482973

(mod m1 ), (mod m3 ), (mod m5 ),

n1 n1 n1

961831343 1549708 3373507250

(mod m2 )

, ,

(mod m4 )

,

(mod m6 )

2110 = =

(mod mi ), (1

i 6), vagyis , ,

+

n2 n2

[2009438808, 961833453, 4253641207, 1551818, 2459485083, 3373509360]

[778716563, 2239578042, 2991949111, 3269883880, 1188708718, 1339711723]

ahol az sszeads s a szorzs koordintnknt modulrisan elvgezve rtendo.

ltalnosabban, a matematikai objektumok brzolsnak hrom absztrakcis szintjt rdemes megklnbztetni: 1. Az objektumok szintje. Ezen a szinten az objektumok formlis matematikai objektumoknak tekinthetok. Pldul 2 + 2, 3 3 5 s 4 ugyanazt az objektumot jellik. Hasonlan, az ( x

+

1) ( x

2

1) s x

3

+

x

2

x

1 polinomok az objektumok szintjn azonosnak

tekinthetok.

2.1. Adatbrzols

41

2.

A forma szintje. Itt mr megklnbztetjk az objektumok eltro brzolsait. Pldul az ( x

+ 1)2 ( x 1) s

x

3

+ x2 x 1 polinomok ugyanannak a polinomnak klnbzo

reprezentcii, hiszen az elobbi egy szorzat, utbbi egy sszeg. 3. Az adatstruktra szintje. Itt a szmtgp memrijban eltro brzolsokat tekintjk klnbzoknek. Az x3

+ x2 x 1 polinomnak ezen a szinten tbbfle reprezentcija

is lehet, a polinomot lerhatja pldul

egy egytthatkbl ll tmb: [1, 1, 1, 1] , egy lncolt lista: [1, 0]

[1, 1] [1, 2] [1, 3]

.

A klnbzo matematikai objektumok szmtgpes brzolshoz a komputeralgebrarendszerek tervezoinek dntenik kell mind a forma, mind az adatstruktra szintjn. A dntst olyan krdsek neheztik, mint a reprezentci memriaignye, olvashatsga, vagy az brzols szmtsi ideje. Pldul az f ( x)

= =5

1)2 ( x + 1)3 (2 x + 3)4 9 8 7 6 5 4 3 2 16 x 80 x + 88 x + 160 x 359 x + x + 390 x 162 x 135 x + 81(x

polinom szorzat alakja kifejezobb, mint az sszeg alakja, de utbbi elonysebb, ha mondjuk az x -es tag egytthatjra vagyunk kvncsiak. A forma szintjre vonatkoz dntsi nehzsgeket szemllteti az albbi plda:

x

1000

1 s ( x 1)( x999 + x998 + + x + 1)1000

, .

(x

+ 1)

s x

1000

+ 1000 x

999

+ + 1000 x + 1

A matematikai objektumok minden ignyt kielgto brzolsra tkletes mdszert nem ismernk. A gyakorlatban az objektumoknak klnbzo reprezentcii is megengedettek. Ez azt a problmt veti fel, hogy ugyanazon objektum eltro brzolsa esetn meg kell tudnunk llaptani azok egyenlosgt, konvertlni kell tudnunk egyik alakbl a msikba s az egyrtelmu brzolshoz egyszerustseket kell tudnunk azokon vgrehajtani. A forma szintjn pldul minden egsz szmot felrhatunk valamely B alap szmrendszerben, mg az adatstruktra szintjn a forma szintjn kapott lineris listt lncolt listaknt vagy tmbknt reprezentlhatjuk. A racionlis szmok egszek prjaibl, a szmllbl s a nevezobol llnak. Memria takarkossg rdekben, valamint kt racionlis szm knnyu sszehasonlthatsga miatt clszeru a szmll s a nevezo legnagyobb kzs osztjval egyszerustett alakot brzolni. Mivel az egszek euklideszi gyurut alkotnak, a legnagyobb kzs oszt euklideszi algoritmussal gyorsan szmolhat. Az brzols egyrtelmusghez a nevezot rdemes pozitvnak vlasztani, a racionlis szm elojele gy a szmll elojele lesz. A tbbvltozs polinomok (az R[ x1 , x2 , . . . , xn ] n-vltozs polinomgyuru elemei, ahol R gyuru) a1 x xei1

e1

1

x

ei

2

2

. . . xn

ein

+ a2 xe + + an xe2

n

alakak, ahol ai

R \ {0}, ei = (ei , . . . , ei1

n

) s x i -t rtunk

e

helyett. A forma szintjn az albbi reprezentcis lehetosgek addnak.

1.

Kiterjesztett vagy faktorizlt brzols, ahol a polinom sszegknt vagy szorzatknt jelenik meg:

x y

x2 + y 1 , 2 x + 1 (y 1) .2

422.

2. Komputeralgebra

Rekurzv vagy disztributv brzols (csak tbbvltozs esetben). Pldul ktvltozs polinomgyuruben f ( x, y) tekintheto R[ x, y]-belinek, (R[ x])[y]-belinek vagy (R[y])[ x]belinek:

+ x2 + xy2 1 , 2 2 ( x + x )y + x 1 , 2 2 2 (y + 1) x + y x 1 .x y2 2 2 4

Az adatstruktra szintjn ritka vagy teljes reprezentci lehetsges, pldul a ritka x polinom teljes brzolsa x A3 2

1 + 0 x + 0 x + 0 x 1. A gyakorlatban a tbbvltozs polinomok4

ritka brzolsa a clravezeto.

i ai x alak hatvnysorok legegyszerubb brzolsa az, ha valamilyen vges reni=0 dig adjuk csak meg az egytthatk sorozatt, gy lnyegben egyvltozs polinomoknaktekintjk oket. Ezzel a megkzeltssel az a problma, hogy klnbzo hatvnysorokhoz tartozhat ugyanaz a reprezentci. Ezt elkerlendo, a hatvnysort az egytthati sorozatt generl fggvnnyel szoks lerni. A generl fggvny egy olyan kiszmthat f fggvny, amire f (i)

= ai . A hatvnysorokkal vgzett muveletekhez ekkor elegendo azt ismerni, =i

hogy hogyan kell az operandusok egytthatibl elolltani a muvelet eredmnyt reprezentl sorozat egytthatit. Pldul az f s g hatvnysorok szorzatt jello h hatvnysor egytthatit a hik=0

fk gik fggvny segtsgvel szrmaztathatjuk. Ekkor a hi egytt-

hatkat csak akkor kell tnylegesen kiszmolni, ha szksg van az rtkkre. Ezt a komputeralgebrban is gyakran hasznlt technikt ksleltetett kirtkelsnek nevezzk. Mivel a komputeralgebra-rendszerek szimbolikusan szmolnak, az algoritmusok muveletignynek vizsglatn kvl mindig szksg van memriaignyk vizsglatra is, hiszen a memriaigny befolysolja a tnyleges futsi idot. Tekintsnk egyszeru pldaknt egy n ismeretlenes, n egyenletbol ll lineris egyenletrendszert, ahol minden egyes egsz egytthat elfr a szmtgp1

hosszsg rekeszben. Kizrlag egsz aritmetikt s Gaussn1

elimincit alkalmazva a redukci eredmnyeknt kapott egytthatk egyenknt 2

tr-

helyet ignyelhetnek. Ha az egytthatk polinomok lennnek s polinomaritmetikt hasznlnnk, az eredmny polinomok egytthatinak mrete, csakgy mint a fokszmuk, exponencilis nvekedst mutatna. A meg gyelt exponencilis nvekeds ellenre a kapott vgeredmny mgis normlis mretu, hiszen a Cramer-szably miatt a megoldsok de terminnsok hnyadosaiknt is megkaphatk, amelyek pedig kzeltoleg csak n trhelyet ignyelnek. Ezt a jelensget nevezzk kztes szmtsi trrobbansnak. Elofordulsa gyakori a komputeralgebra algoritmusokban.2.2. plda. Egsz aritmetikt hasznlva oldjuk meg az albbi lineris egyenletrendszert. 37 x 31 x

+ 22y + 22z 14y 25z

= = =

1

, ,

97

11 x + 13y + 15z

86 .

Eloszr a msodik egyenlet x vltozjt eliminljuk. Szorozzuk meg az elso sort 31-gyel, a msodikat

37-tel s adjuk ssze oket. Ha ezt a mdszert alkalmazzuk a harmadik egyenlet

x vltozjnak

1

A futsi idot mi a RAM-modellnek megfeleloen muveletszmban mrjk. Ha Turing-gp modellt s konstans

hossz gpi szavakat hasznlnnk, akkor ilyen problma nem merl fel, mert a tr mindig als korltja az idonek.

2.1. Adatbrzols

43

R-beli feladat

modulris redukci

-

R/ m -beli feladat

kzvetlen szmtsok modulris szmtsok

?R-beli megolds

? rekonstrukci R/ m -beli megolds

2.1. bra. A modulris algoritmusok ltalnos smja.

elimincijra, az eredmny az albbi lesz: 37 x

+ 22y + 22z + 1607z + 797z723y

= = =

1

,

1200y

3558 , 3171 . 1200-zal szorozzuk, majd sszeadjuk

Most y eliminlshoz a msodik sort 723-mal, a harmadikat oket. Az eredmny: 37 x

+ 22y + 22z + 1607z205461z

= = =

1

, .

1200y

3558 ,1232766

Tovbb folytatva az eljrst s sorban eliminlva a vltozkat vgl azt kapjuk, hogy 1874311479932400 x 246553200y 205461z Egyszerusts utn x

= = =

5622934439797200

,

2712085200 ,1232766

.

= 3, y = 11, z = 6 addik. Termszetesen, ha a szmtsok kzben a legnagyobb

kzs osztkkal egyszerustnk, az egytthatk nagysga kevsb drasztikusan no.

A szmtsi trrobbans elkerlsre modulris mdszerek hasznlatosak: ahelyett, hogy a szmtsainkat az R struktra (pl. euklideszi gyuru) egszeivel vgeznnk, valamely faktorstruktrban dolgozunk, majd az eredmnyt visszatranszformljuk R-be (2.1. bra). A modulris redukci s a modulris szmtsok ltalban hatkonyan elvgezhetok, a rekonstrukcis lps pedig valamilyen interpolcis stratgival trtnhet. Megjegyezzk, hogy a modulris algoritmusok nagyon gyakoriak a komputeralgebrban, de nem univerzlisak.

44

2. Komputeralgebra

2.2. Polinomok kzs gykeiLegyen R egy integritsi tartomny, tovbb legyenek f ( x) g( x)

= =

+ f1 x + + fm1 xm1 + fm xm R[ x], fm n1 g0 + g1 x + + gn1 x + gn xn R[ x], gnf0

0 0

,

(2.1) (2.2)

tetszoleges polinomok, n, m

N, n + m > 0. llaptsuk meg, hogy mi annak a szksges s

elgsges felttele, hogy a kt polinomnak legyen kzs gyke R-ben.

2.2.1. Klasszikus s bvtett euklideszi algoritmusHa T test, akkor T [ x] euklideszi gyuru. Emlkeztetol, az R integritsi tartomnyt euklideszi gyurunek nevezzk a a, b esetn ltezik olyan q, r

R

\ {0}

esetn

\ {0} N euklideszi fggvnnyel, ha brmely a, b R (b 0) R, hogy a = qb + r, ahol r = 0 vagy (r) < (b), tovbb minden (ab) (a). A q = a quo b elemet hnyadosnak, az r = a rem b: R

elemet maradknak nevezzk. Ha egy R euklideszi gyuruben dolgozunk, azt szeretnnk, ha a legnagyobb kzs oszt egyrtelmuen meghatrozhat lenne. Ehhez az R gyuru egysgszorzk ltal meghatrozott ekvivalencia-osztlyainak mindegyikbol egyetlen elem kivlasztsa szksges. (Pldul az egszek {0}, {1, 1}, {2, 2}, . . . osztlyaibl mindig a nemnegatvat vlasztjuk.) gy minden a a

R egyrtelmuen rhat fel = unit(a) normal(a) R elem normlalakja legyen a megfelelo = a/ lc(a), ahol lc(a) jelenti az a polinom foegyttha0) s

alakban, ahol normal(a)-t az a elem normlalakjnak nevezzk. Tekintsnk egy T test feletti R

=

T [ x] euklideszi gyurut. Ekkor az a

normlt fopolinom, vagyis normal(a)

tjt. Foglaljuk ssze a lnyegesebb eseteket:

ha R ha R

= Z, akkor unit(a) = =

sgn(a) (a

(a) = normal(a) = | a |,1

T [ x] (T test), akkor unit(a)

megllapodssal), normal(a)

= lc(a) (az a polinom foegytthatja a unit(0) = = a/ lc(a) s (a) = deg a.

Az albbi algoritmus tetszoleges euklideszi gyuruben kiszmtja kt elem legnagyobb kzs osztjt. Megjegyezzk, hogy a vilg egyik legosibb algoritmusrl van sz, amit Euklidsz mr i. e. 300 krl ismert. K-E(a, b) 1 2 3 4 5 6 7 c d

normal(a) normal(b)0 do r

while d

c d d rc

rem d

return normal(c)

Az egszek gyurujben a 4. sor maradk kpzse c c/d -t jelenti. Ha R

= T [ x], ahol T

test,

akkor a 4. sor maradk kpzse az E -- - (c, d )

2.2. Polinomok kzs gykei

45iterci 1 2 3 4 r 18 12 6 0 c 18 30 18 12 6 d 30 18 12 6 0

(a) K-E(18, 30) mukdse.

iterci 1 2 3 4x2

r x x4

c

d x2

17

38 3

+23 6

20 3

x

3 3

x

3

+20

13

23 x+ 40

+ 7x 2 3 38 20 2 4x x+ 3 3 23 23 4 x+ 6x

3 2

23 3

x

+

14 3

x

3

4x

+ 7x 2 20 x+ 3 3 23 23 4 x+ 620 3

x

2

2

38

0

(b) K-E(12 x

4

68 x3 + 52 x2 92 x + 56, 12 x3 + 80 x2 84 x + 24) mukdse.

2.2. bra. A K-E algoritmus mukdsnek bemutatsa bemeno adatok a

Z-ben s Q[ x]-ben. Az (a) esetben a = 18, b = 30, a, b Z. A pszeudokd elso kt sora a bemeno szmok abszolt rtkt szmolja =4

ki. A harmadik sortl az hatodik sorig tart ciklus ngyszer fut le, a klnbzo itercikban szmolt r , c s d rtkeket mutatja a tblzat. A K-E(18,30) algoritmus eredmnyl a 6-ot szolgltatja. A (b) esetben a bemeno paramterek a kimenete a normal(c) 12 x

68 x3 + 52 x2 92 x + 56, b = 12 x3 + 80 x2 84 x + 24 Q[ x].

A

program elso kt sora a polinomok normlalakjt eredmnyezi, majd a while ciklus hromszor fut le. Az algoritmus

= x 2/3 polinom.

algoritmussal szmolhat, melynek elemzst az 2.2-1. gyakorlatra hagyjuk. A 2.2. bra a K-E mukdst mutatja

Z-ben s Q[ x]-ben. Megjegyezzk, hogy Z-ben a

program a while ciklusba mindig nemnegatv szmokkal lp be, a maradk kpzs mindig nemnegatv szmot eredmnyez, gy a 7. sorban a normalizls felesleges. A K-E algoritmus futsi idejnek vizsglata elott annak egy bovtett vltozatval foglalkozunk. B -E(a, b) 1 2 3 4 5 6 7 8 9 10 return (r0 , u0 , v0 ) (r1 , u1 , v1 ) while r1 do q r

(normal(a), 1, 0) (normal(b), 0, 1)0

r0 quo r1 r0 qr1 u (u0 qu1 ) v (v0 qv1 ) (r0 , u0 , v0 ) (r1 , u1 , v1 ) (r1 , u1 , v1 ) (r, u, v) normal(r0 ), u0 /(unit(a) unit(r0 )),

v0 /(unit(b)

unit(r0 ))

Ismert, hogy az R euklideszi gyuruben az a, b mas u, v

R elemekkel kifejezheto lnko(a, b)

szmpr ltezik. Ha ugyanis u0 , v0

R elemek legnagyobb kzs osztja alkal= au + bv alakban. De nem csak egy ilyen megfelelok, akkor u1 = u0 + bt s v1 = v0 at is azok

46minden t

2. Komputeralgebra

R esetn:au1

+ bv1 = a(u0 + bt) + b(v0 at) = au0 + bv0 = lnko(a, b) . R

A K-E algoritmust gy egsztettk ki, hogy eredmnyl ne csak a legnagyobb kzs osztt szolgltassa, hanem az imntieknek megfeleloen egy konkrt u, v szmprt is megadjon. Legyen a, b

R, ahol R euklideszi gyuru a

euklideszi fggvnnyel. A B -

E pszeudokd elso kt sora kezdeti rtkadsainak megfeleloen az r0

= u0 a + v0 b

s

r1

= u1 a + v1 b

(2.3)

egyenletek nyilvn teljeslnek. Megmutatjuk, hogy a (2.3) egyenlosgek a pszeudokd while ciklusnak transzformciira invarinsak. Tegyk fel, hogy a ciklus valamely itercijnak vgrehajtsa elott a (2.3) felttelek teljeslnek. Ekkor a pszeudokd 45. sora szerint r

= r0 qr1 = u0 a + v0 b q(au1 + bv1 ) = a(u0 qu1 ) + b(v0 qv1 ) ,

amibol a 67. sorok miatt r

= a(u0 qu1 ) + b(v0 qv1 ) = au + bv.

A 89. sorok olyan rtkadsokat jelentenek, melyben u0 , v0 felveszi u1 s v1 , majd u1 , v1 felveszi u s v rtkeit, tovbb r0 , r1 felveszi r1 s r rtkt. Ezrt (2.3) egyenlosgei a while ciklus kirtkelse utn is teljeslnek. Mivel a ciklus jabb s jabb vgrehajtsakor

(r1 ) < (r0 ),

gy a 89. sorok rtkadsai sorn keletkezett

{(ri )}

sorozat a termszetes

szmok szigoran monoton cskkeno sorozatt alkotja, ezrt a vezrls elobb utbb kilp a while ciklusbl. A legnagyobb kzs oszt az algoritmus maradkos oszts sorozatnak utols nem nulla maradka, a 89. soroknak megfeleloen r0 .2.3. plda. Vizsgljuk meg a B -E algoritmus maradksorozatt az a( x) b( x) polinomok esetben:

= =

63 x

5

+ 57 x4 59 x3 + 45 x2 8 ,4 3 2

(2.4) (2.5)

77 x + 66 x + 54 x 5 x + 99

r0 r1 r2 r3 r4 r5

= = = = = =

x x

5

+

19 21 6 7 x x3

x3

4

59 63 x

x2

3

+

5 7 5

x x

2

8 63

,

4

54 77

+2

77

9 7 x

, +x 943 441

6185 4851

+

1016 539 x2

x

+

1894 1617

, , ,

771300096 420796475

+

224465568 420796475 x

+

100658427 38254225

125209969836038125 113868312759339264

3541728593586625 101216278008301568

471758016363569992743605121 180322986033315115805436875

.

2.2. Polinomok kzs gykei

47

Az pszeudokd 10. sornak vgrehajtsa elott az u0 , v0 vltozk rtkei:

u0

=

113868312759339264 125209969836038125

x

3

66263905285897833785656224 81964993651506870820653125 x

x

2

v0

1722144452624036901282056661 901614930166575579027184375 113868312759339264 125209969836038125 x4

+

1451757987487069224981678954 901614930166575579027184375 x3

,

=

+

65069381608111838878813536 81964993651506870820653125 x2

178270505434627626751446079 81964993651506870820653125 179818001183413133012445617 81964993651506870820653125

+

6380859223051295426146353 81964993651506870820653125

x

.

A visszatrsi rtkek:

lnko(a, b) u

= =

1, 2580775248128 467729710968369 x3

x

3823697946464 779549518280615

x

2

v

27102209423483 2338648554841845 703847794944 x4

+

7615669511954 779549518280615 3072083769824 x3

,

=

155909903656123

+x2

779549518280615

25249752472633 2338648554841845

301255883677 779549518280615

x

+

25468935587159 2338648554841845

.

Lthatjuk, hogy az egytthatk drasztikus nvekedst mutatnak. Felvetodik a krds: mirt nem normalizlunk a while ciklus minden itercijban? Ez az tlet vezet el a polinomok euklideszi algoritmusa normalizlt vltozathoz. B -E- (a, b) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 return

unit(a) 1 (normal(a), e , 0) 0 e1 unit(b) 1 (r1 , u1 , v1 ) (normal(b), 0, e1 )e0 (r0 , u0 , v0 ) while r1 do q s 0

r0 quo r1 r0 rem r1 e unit( s) r normal( s) u (u0 qu1 )/e v (v0 qv1 )/e (r0 , u0 , v0 ) (r1 , u1 , v1 ) (r1 , u1 , v1 ) (r, u, v) r0 , u0 , v0

48

2. Komputeralgebra

2.4. plda. Nzzk meg a B -E- algoritmus sorn keletkezett maradkso rozatot s az e egytthatsorozatot a korbbi (2.4), (2.5) polinomokra: r0 r1 r2 r3 r4 r5

= = = = = =

x x x x x

5

+ + +

19 21 6 7 x

x3

4

59 63 x

x2

3

+

5 7 5

x x

2

8 63

,

e0 e1

=63 , = 77 , = =6185 4851

4

x

54 772

+

77 x

,7 10373 6185

9

3

9144 6185

+x

5682 6185

+

,

e2 e3 e4 e5

, , , .

2

2338183 8034376

+ ,

369080899 257100032

,

771300096 420796475

+

166651173 5236962760

= =

222685475860375 258204790837504

1,

156579848512133360531 109703115798507270400

A pszeudokd 14. sornak vgrehajtsakor az lnko(a, b) lnko(a, b) u

= r0 , u = u0 , v = v0

vltozk rtkei:

= =

1, 2580775248128 467729710968369 x3

x

3823697946464 779549518280615

x

2

v

27102209423483 2338648554841845 703847794944 x4

+

7615669511954 779549518280615 3072083769824 x3

,

=

155909903656123

+x2

779549518280615

25249752472633 2338648554841845

301255883677 779549518280615

x

+

25468935587159 2338648554841845

.

Q[ x]-ben

az egytthatk nagysgt tekintve az euklideszi algoritmus normalizlt vltoza-

tnak elonye szembetuno, de az egytthatk nvekedst gy sem kerltk el. A B E- algoritmus gpi architektra fggo lershoz, elemzshez beve zetjk az albbi jellst. Legyen

(a) (a) (a)

= = =

+ 1, max{(b), (c)},

log2 |a|/w

Z \ {0}, s (0) = 0 , ha a = b/c Q, b, c Z, lnko(b, c) = 1 ,ha a

max{(b), (a0 ), . . . , (an )}, ha a ai

=0in

ai x

i

/b Q[ x] ,

Z,

b

N+ ,

lnko(b, a0 , . . . , an )

=1,

ahol w a szmtgpes architektra szhossza bitekben. Knnyu meggondolni, hogy ha a, b

Z[ x] s c, d Q, akkor ( c + d ) (a + b) (cd), (c/d) (ab) (c) + (d) + 1 , max{(a), (b)} + 1 , (c) + (d) , (a) + (b) + (min{deg a, deg b} + 1) .

Az albbi tteleket bizonyts nlkl kzljk. 2.1. ttel. Ha a, b

Z s (a) = m n = (b), akkor a K-E s a B -

E algoritmusok O(mn) gpi szban mrt elemi aritmetikai muveletet ignyelnek.

2.2. Polinomok kzs gykei

49= m n = deg(b), akkor a K-E,

2.2. ttel. Ha F test, a, b, F [ x], deg(a) elemi aritmetikai muveletet ignyelnek.

a B -E s a B -E- algoritmusok O(mn) F-beli

Vajon az egytthatk imnt ltott nvekedse pusztn csak a pldavlasztsbl fakad? Vizsgljunk meg a B -E-N algoritmusban egyetlen maradkos osztst. Legyen a

= bq + e r, ahol

a

= =

x

m

+ +

1 c 1 d

m1

ai xi=0 n1

i

Q[ x] , Q[ x] ,

b

x

n

bi xi=0

i

r

Q[ x] fopolinomok, ai , bi Z, e Q, c, d N+ , s tekintsk az n = m 1 esetet. Ekkorq

=

x

+

am1 d

bn1 c

(q)e r

(a) + =a

cd (b) + 1 acd2

,

qb =

, xbcd2 (am1 d bn1 c)bdcd 2

,(2.6)

(e r)

(a) + 2(b) + 3 .gy

Vegyk szre, hogy a (2.6) becsls az r maradk polinom egytthatira is rvnyes, vagyis

(r) (a) + 2(b) + 3.

(a) (b)

esetn maradkos osztsonknt az egytthatk

mrete legfeljebb kb. hromszorosra nohet. Pszeudovletlen polinomokra a becsls lesnek tunik, a ksrletezni vgy Olvasnak ajnljuk a 2-1. feladatot. A legrosszabb esetre kapott becsls azt sejteti, hogy

(rl ) = O(3l max{(a), (b)}),ahol l jelli a B -E-N algoritmus futsi idejt, vagyis lnyegben azt, hogy a while ciklus hnyszor hajtdik vgre. Szerencsre, ez az exponencilis nvekeds nem teljesl az algoritmus minden itercijban, vgeredmnyben pedig az egytthatk nvekedse a bemenet fggvnyben polinomilisan korltos. A ksobbiekben ltni fogjuk, hogy modulris technika alkalmazsval az egytthatk nvekedse teljesen elkerlheto. sszefoglalva, az euklideszi algoritmus segtsgvel az f , g legnagyobb kzs osztjuk nem konstans. Ha ugyanis lnko( f , g)

R[ x] (R test) polinomok

legnagyobb kzs osztjt kiszmtva f -nek s g-nek pontosan akkor van kzs gyke, ha a

= d R[ x] nem konstans,

akkor d gykei f -nek s g-nek is gykei, hiszen d osztja f -nek s g-nek is. Megfordtva, ha f -nek s g-nek van kzs gyke, akkor a legnagyobb kzs osztjuk nem lehet konstans, mert a kzs gyk ennek is gyke.

2.2.2. Primitv euklideszi algoritmusAmennyiben R euklideszi gyuru vagy alaptteles gyuru (amelyben rvnyes a szmelmlet alapttelnek megfelelo llts, miszerint brmely nem nulla s nem egysg elem sorrendtol s egysgszorzktl eltekintve egyrtelmuen bonthat irreducibilis elemek szorzatra), akkor a helyzet bonyolultabb, hiszen R[ x]-ben nem felttlenl ltezik euklideszi algoritmus. Szerencsre, mgis tbb mdszer knlkozik, melyek hasznlhatsgnak kt oka van:

50

2. Komputeralgebra

(1) R[ x] alaptteles gyuru, (2) alaptteles gyuruben kt vagy tbb elem legnagyobb kzs osztja mindig ltezik. Az elso knlkoz mdszer az, hogy a legnagyobb kzs oszt szmtst R hnyadostestben vgezzk el. A p( x)

R[ x] polinomot primitv polinomnak nevezzk, ha nincs

olyan R-beli prm, ami p( x) sszes egytthatjt osztan. Gauss hres lemmja szerint primitv polinomok szorzata is primitv, melynek kvetkezmnye, hogy f , g primitv polinomok esetn pontosan akkor lesz d

= lnko( f , g) R[ x], ha d = lnko( f , g)

H [ x], ahol H jelli R

hnyadostestt. Vagyis az R[ x]-beli legnagyobb kzs oszt szmts visszavezetheto H [ x]belire. Sajnos, ez a megkzelts nem igazn hatkony, mert a H hnyadostestben hasznlt aritmetika lnyegesen kltsgesebb, mint az R-beli. Msodik lehetosgknt egy, az euklideszi algoritmushoz hasonl algoritmus segthet: integritsi tartomny feletti egyhatrozatlan polinomgyuruben n. pszeudo-maradkos osztst lehet de nilni. A (2.1), (2.2) polinomokat hasznlva ha m q, r

n, akkor ltezik olyan

R[ x], hogygnmn+1

f

= gq + r ,

ahol r

= 0 vagy deg r < deg g. A q polinomot az

f s g polinomok pszeudo-hnyadosnak,

az r polinomot pszeudo-maradknak nevezzk. Jellsben q2.5. plda. Legyen

= pquo( f , g), r = prem( f , g).

f ( x) g( x)

= =

12 x

4

68 x3 + 52 x2 92 x + 56 Z[ x] ,

(2.7) (2.8)

12 x3 + 80 x2 84 x + 24 Z[ x] .

Ekkor pquo( f , g)

= 144( x + 1),

prem( f , g)

= 1152(6 x2 19 x + 10).

Msrszt egysgszorztl eltekintve minden f ( x) fel

R[ x] polinom egyrtelmuen rhat

f ( x)

= cont( f ) pp( f )

alakban, ahol cont( f )

R s pp( f )

R[ x] primitv polinom. Ekkor cont( f )-et f sszetevo-

jnek, pp( f )-et az f ( x) polinom primitv rsznek nevezzk. A felrsok egyrtelmusge az egysgek normalizlsval rheto el. Pldul a pozitvat vlasztjuk. Az albbi algoritmus pszeudo-maradkos osztsok sorozatt hajtja vgre. Az algoritmus felhasznlja a pszeudo-maradkot kiszmt prem() fggvnyt, felttelezi az R-beli legnagyobb kzs oszt, valamint az R[ x]-beli polinomok sszetevojnek s primitv rsznek kiszmthatsgt. Bemenete az a, b algoritmus eredmnye a lnko(a, b)

Z-ben az egysgek {1, 1} halmazbl mindig

R[ x] polinomok, R[ x] polinom.

ahol R alaptteles gyuru. Az

2.2. Polinomok kzs gykei

51c 3x4

iterci 1 2 3 108 x2

r 621 x

d

342 x + 108 4140

17 x3 + 13 x2 23 x + 14 3 x3 + 20 x2 21 x + 6 2 6 x 19 x + 10 3x 2

3 x3 + 20 x2 21 x + 6 2 6 x 19 x + 10 3x 20

2.3. bra. A P -E algoritmus mukdsnek bemutatsa az a( x) 56, b( x)

= 12 x4 68 x3 + 52 x2 92 x + = 12 x3 + 80 x2 84 x + 24 Z[ x] bemeno adatok esetn. A program elso kt sora a bemeneti polinomok vltoz rtke lnko(4, 4)

primitv rszt szmolja ki. A harmadik sortl a hatodik sorig tart ciklus hromszor fut le, a klnbzo itercikban szmolt r , c s d rtkeket mutatja a tblzat. A program 7. sorban a P -E(a, b) algoritmus eredmnyl 4

=

4. A

(3 x 2)-t szolgltat.

P -E(a, b) 1 2 3 4 5 6 7 8 9 c d

pp( f ) pp(g)0 c do r

while d

prem(c, d) d d pp(r ) lnko(cont(a), cont(b)) c return

Az algoritmus mukdst a 2.3. bra szemllteti. A P -E algoritmus futsi idejnek nagysgrendje megegyezik az euklideszi algoritmus korbban ltott vltozatainak futsi idejvel. P -E algoritmus azrt nagyon lnyeges, mert az R test feletti tbbvltozs R[ x1 , x2 , . . . xt ] polinomgyuru alaptteles gyuru, gy az algoritmust gy alkalmazzuk, hogy kiszmoljuk a legnagyobb kzs osztt mondjuk R[ x2

. . . , xt ][ x1 ]-ben, majd rekurz-

van az R[ x3 , . . . , xt ], . . . , R[ xt ] alaptteles gyurukben. Vagyis a tbbvltozs polinomgyuruk rekurzv szemllete termszetes mdon vezet a P -E algoritmus rekurzv alkalmazshoz. szrevehetjk, hogy az algoritmus a korbban ltottakhoz hasonlan egytthat nvekedst mutat. Vizsgljuk meg rszletesebben a tatja. 2.3. ttel (LandauMignotte). Legyen a( x) bn , tovbb b( x)

Z[ x]

alaptteles gyurut. A legnagyobb kzs oszt

egytthatinak nagysgra vonatkoz becslst az albbi, bizonyts nlkl kzlt ttel mu-

=

| a( x). Ekkorn

m i=0

ai x , b( x)

i

=

n i=0

bi x

i

Z[ x], am

0

|bi | 2ni=1

bn am

m

aii=0

2

.

522.4. kvetkezmny. Az elozo ttel jellseivel az lnko(a, b) hatja abszolt rtkben kisebb, mint 1m

2. Komputeralgebra

Z[ x] polinom brmely egyttn

2

min{m,n}

lnko(am , bn ) min

|am |

aii=1

2

,

1

|bn |

bii= 1

2

.

Bizonyts. Az a s b polinomok legnagyobb kzs osztja nyilvn osztja a-t s b-t, a foka pedig legfeljebb az a s b polinomok fokainak minimuma. Tovbb a legnagyobb kzs oszt foegytthatja osztja am -nek s bn -nek is, gy lnko(am , bn )-nek is.

2.6. plda. A 2.4. kvetkezmny szerint a (2.4), (2.5) polinomok legnagyobb kzs osztja brmely egytthatjnak abszolt rtke legfeljebb

32/9

3197

=

201, a (2.7), (2.8) polinomok esetben

pedig legfeljebb 32

886

= 952.

2.2.3. A rezultnsAz albbiakban ismertetendo mdszer a legltalnosabb keretek kztt trgyalja az (2.1), (2.2) polinomok kzs gykeire vonatkoz szksges s elgsges feltteleket. Tovbbi elonye, hogy magasabb fok algebrai egyenletrendszerek megoldsra is alkalmazhat. Legyen teht R egy integritsi tartomny s H a hnyadosteste. Tekintsk H -nak azt a legszukebb K bovtst, melyben a (2.1)-beli f ( x) polinom s a (2.2)-beli g( x) polinom is lineris faktorokra bomlik. Jelljk az f ( x) polinom ( K -beli) gykeit g( x) polinom gykeit pedig

1 , 2 , . . . , m -nel, a 1 , 2 , . . . , n -nel. Ksztsk el a kvetkezo szorzatot: = 1 )(1 2 ) (1 n ) (2 1 )(2 2 ) (2 n ) . . . (m 1 )(m 2 ) (m n )m n

res( f , g)

fm gn (1

n

m

=

fm gn

n

m i=1 j=1

(i

j) . i = j ,

Nyilvnval, hogy res( f , g) akkor s csak akkor lesz 0, ha valamilyen i-re s j-re

azaz ha f -nek s g-nek van kzs gyke. Ezt a res( f , g) szorzatot az f s g polinomok rezultnsnak nevezzk. Vegyk szre, hogy a rezultns rtke fgg az f s g polinomok sorrendjtol, azonban a klnbzo sorrendben kpzett rezultnsok legfeljebb csak elojelben trhetnek el egymstl:n m

res(g, f )

= =

gn fmj=1 i=1

m

n

( jm

i )n

(1)

mn

fm gn

n

m i=1 j=1

(i

j ) = (1)mn res( f , g) .

2.2. Polinomok kzs gykei

53

A rezultnsnak ez az alakja a gyakorlatban termszetesen hasznlhatatlan, mivel a gykk ismerett ttelezi fel. Vizsgljuk meg teht a rezultns klnbzo alakjait. Mivel f ( x) g( x) ezrt g(i )

= =

fm ( x gn ( x

1 )( x 2 ) ( x m ) 1 )( x 2 ) ( x n )

( fm (gn

0) 0)

,

,

= =

gn (in

1 )(i 2 ) (i n )(i

gnj=1

j) .

gym n

res( f , g)

= =

fmi= 1 m n

n

gnj=1

(i

j)n

fmi= 1

g(i )

= (1)mn gm nj=1

f ( j )

.

mbr ez az alak sokkal bartsgosabb, mg mindig felttelezi legalbb az egyik polinom gykeinek ismerett. Az albbiakban azt nzzk meg, hogyan lehetne a rezultnst pusztn csak a polinomok egytthati segtsgvel kifejezni. Ez a vizsglat vezet el a rezultns Sylvester-fle alakjhoz. Tegyk fel, hogy a (2.1)-beli f s a (2.2)-beli g polinomoknak van kzs gyke. Ez azt jelenti, hogy van olyan

K szm, amelyre

f () g()

= =

+ fm1 m1 + + f1 + f0 = 0 , n1 gn + gn1 + + g1 + g0 = 0 .fm m n

A kt egyenletet szorozzuk meg rendre az

n1 , n2 , . . . , , 1, illetve az m1 , m2 , . . . , , 1

szmokkal. Ekkor az elso egyenletbol n, a msodik egyenletbol m jabb egyenletet nyernk. Ezt az m + n egyenletet fogjuk gy fel, mint egy m + n ismeretlenre vonatkoz homogn lineris egyenletrendszert, melynek

m+n1 , m+n2 , . . . , , 1 a megoldsa. A megolds nyilvn

nem-trivilis, hiszen 1 is a gykk kztt szerepel. Ismert, hogy az olyan homogn lineris egyenletrendszernek, amely ugyanannyi egyenletbol ll, mint ahny ismeretlent tartalmaz, csak abban az esetben van nemtrivilis megoldsa, ha a rendszer determinnsa zrus. Vagyis arra jutottunk, hogy f -nek s g-nek csak akkor lehet kzs gyke, ha a fm

.. .fm

g0

f0

..n f0

. .. . . ..

D

=

gn

.. .

..

m

(2.9)

.gn

g0

54

2. Komputeralgebra

determinns nulla (a ki nem rt s nem pontozott helyeken mindentt nullk llnak). A kzs gyk ltezsnek teht szksges felttele, hogy az (m + n)-edrendu D determinns 0 legyen. Az albbiakban bebizonytjuk, hogy a D determinns megegyezik az f s g polinomok rezultnsval, amibol az kvetkezik, hogy D alakjnak. 2.5. ttel. A korbbi jellsekkelm

=

0 a kzs gykk ltezsnek elgsges

felttele is. A (2.9) determinnst nevezzk az f s g polinomok rezultnsa Sylvester-fle

D

=

fmi=1

n

g(i )

. = 0-raf

Bizonyts. m-re vonatkoz teljes indukcival dolgozunk. mn 0

=

fm

=

f0 , gy a jobb

oldal f . A bal oldalon D egy n-edrendu determinns, melyn