Háskóli Íslands, vorönn 2018 Kennari: Hjálmtýr Hafsteinsson TÖL 403G Greining reiknirita Nemandi: Unnur Bjarnadóttir

Verkefni 1

Í þessu verkefni verður farið yfir æviágrip þriggja merkilegra manna, Anatoly Karatsuba, Andrei Toom og Stephen Cook. Allir þrír voru og eru stærðfræðingar sem lögðu mikið af mörkum til samfélagsins, hver á sinn hátt. Einnig verður fjallað um reiknirit Karatsuba og reikniritið Toom-3 og útskýrt með dæmum hvernig þau virka.

Anatoly Karatsuba

Anatoly Karatsuba var rússneskur og sovéskur stærðfræðingur. Hann fæddist þann 31. janúar árið 1937 í Grosní í Téténíu, sem þá var hluti af Sovétríkjunum, og lést þann 28. september 2008 í Moskvu í Rússlandi, 71 árs að aldri. Hann var giftur Diana Vasilyevna Senchenko, stærðfræðingi, og saman áttu þau eina dóttur, Ekaterina Anatolyevna Karatsuba, en hún er einnig stærðfræðingur. Karatsuba var mikill íþróttamaður allt sitt líf og stundaði frjálsar íþróttir á sínum yngri árum. Seinna á lífsleiðinni fékk hann áhuga á hellarannsóknum og fjallgöngum. Hann kleif fjölmörg fjöll, þar á meðal 11 tinda sem eru í yfir 7000 metra hæð. Karatsuba var einnig unnandi klassískrar tónlistar og sótti reglulega tónleika sem haldnir voru í tónlistarskóla í Moskvu. Uppáhaldsskáldin hans voru Johann Sebastian Bach og Antonio Vivaldi. Karatsuba var ennþá í barnaskóla í Grosní þegar hann fór að sýna óvenjulega hæfileika í stærðfræði. Hann gat þá leyst verkefni sem eru venjulega lögð fyrir menntaskólanemendur. Hann lagði stund á nám í ríkisháskólanum í Moskvu og útskrifaðist þaðan með gráðu í stærðfræði árið 1959. Hann varði doktorsritgerð sína, „Method of trigonometric sums and the theorems on the mean value“, við sama háskóla árið 1966. Uppfrá því var hans aðalvinnustaður hins vegar Steklov Institute of Mathematics þar sem hann gengdi mörgum stöðum. Hann var svo ráðinn deildarforseti yfir talnafræðideild árið 1983, starfi sem hann gegndi þar til hann lést. Karatsuba skrifaði yfir 160 fræðigreinar og kennslubækur, vann til tvennra verðlauna fyrir störf sín og var útnefndur „Meritorious Science Worker of “ árið 1999. Hann hafði einnig umsjón með 15 doktorsnemum yfir ævina, þar á meðal Sergei Woronin, Gennadii Arkhipov og Vladimir Chubarikov. Karatsuba er helst þekktur fyrir að hafa fundið upp Karatsuba-reikniritið árið 1960, þegar hann var aðeins 23 ára gamall, en reikniritið gerir það kleift að margfalda tvær n-stafa

1 Háskóli Íslands, vorönn 2018 Kennari: Hjálmtýr Hafsteinsson TÖL 403G Greining reiknirita Nemandi: Unnur Bjarnadóttir

log 3 1,585 tölur á mesta lagi n 2 tíma sem er u.þ.b. n . Áður hafði venjulegur margföldunartími verið n2. Til að setja það í samhengi þá þarf Karatsuba-reikniritið 310 eða 59.049 eins stafa margfaldanir til að margfalda tvær 1024 stafa tölur, á meðan venjulegt reiknirit þarf (210)2 eða 1.048.576 eins stafa margfaldanir. Karatsuba var staddur á málstofu sem stærðfræðingurinn Andrej Kolmogorov hafði skipulagt. Meðal umræðuefna var að ekki væri til reiknirit sem gæti margfaldað tvær tölur á styttri tíma en n2. Karatsuba fór heim einn daginn og uppgötvaði reikniritið og sagði frá því. Kolmogorov tók það reiknirit, þó með nafni Karatsuba, og hélt fyrirlestra um það út um allan heim og gaf það út árið 1962, án þess að Karatsuba vissi af því. Hann komst ekki að því fyrr en honum voru send endurprent af fræðigreininni sem Kolmogorov hafði skrifað. Í dag er reiknirit Karatsuba að finna í flestum tölvum, bæði í hugbúnaðinum og í vélbúnaðinum og sagði franski stærðfræðingurinn og heimspekingurinn Jean-Paul Delahaye að reiknirit Karatsuba væri einar nytsamlegastu niðurstöður sem nokkurntíman hefðu verið gerðar í stærðfræði. Venjuleg heiltölumargföldun tekur eins og áður sagði n2 grunnaðgerðir, þannig að ef t.d. tvær 4-stafa tölur eru margfaldaðar, þá tekur það 16 margfaldanir. Fyrir neðan er dæmi um margföldun á tölunum 1234 og 5678. Í hverju skrefi er sýnt með rauðu hvaða tölur eru margfaldaðar saman. Í fyrsta skrefi er t.d. 8 margfaldað með 4, svo 3, svo 2 og síðast með 1, sem eru fjórar aðgerðir fyrir fyrstu töluna í tölunni 5678. Í næstu skrefum má svo sjá að fyrir hvert skref eru framkvæmdar fjórar margfaldanir í viðbót, sem gerir 16 í heildina, eða 42.

Til er önnur leið til að margfalda tvær n-stafa tölur, svokallað deila og drottna reiknirit sem gengur út á það að skipta hvorri tölu í tvo hluta. Það er gert með því að deila hvorri tölu í 10n/2, sem verður fyrri hlutinn, og svo afganginn, sem verður seinni hlutinn. Formúlan fyrir þessa aðferð er:

2 Háskóli Íslands, vorönn 2018 Kennari: Hjálmtýr Hafsteinsson TÖL 403G Greining reiknirita Nemandi: Unnur Bjarnadóttir

(10� + �)(10� + �) = 10�� + 10(�� + ��) + ��

þar sem m er n/2, a er fyrri hlutinn af tölunni, b er afgangurinn af henni, c er fyrri hlutinn af seinni tölunni og d er afgangurinn af henni. Reikniritið verður þá:

Ef tölurnar 1234 og 5678 væru notaðar, þá væri if-setningunni sleppt, því n er 4. Svo væri m = 2, a = 12, b = 34, c = 56 og d = 78. Í línum 8-11 eru e, f, g og h fundin með endurkvæmum köllum og lengdunum m. Þegar búið er að finna gildi fyrir e til h þá eru þau sett inn í formúluna í skilagildinu og því skilað. Keyrslutími þessa reiknirits er einnig n2 og eins og sést í línum 8-11 þá eru þar 4 endurkvæmar margfaldanir á tölum serm eru n/2 stórar. Aðferðin sem Karatsuba fann upp árið 1960 felur í sér örlitla breytingu á reikniritinu:

3 Háskóli Íslands, vorönn 2018 Kennari: Hjálmtýr Hafsteinsson TÖL 403G Greining reiknirita Nemandi: Unnur Bjarnadóttir

Hér sést að það er búið að fjarlægja h úr reikniritinu og fækka þar með endurkvæmu köllunum úr 4 í 3. Einnig er kallað á MULTIPLY með a – b og c – d í línu 10 í stað (b, c). Þetta er vegna þess að Karatsuba fann út að hægt er að reikna stuðulinn bc + ad með ac og bd:

�� + �� − (� − �)(� − �) = �� + ��

Því allt styttist út nema bc og ad. Með þessu fækkar margföldunum í reikniritinu úr 4 í 3 en samlagningunum fjölgar þó úr 3 í 6. Vegna þessara breytinga er keyrslutími reikniritsins n1,585 í stað fyrir n2 áður. Tími grunnaðgerðanna er í hlutfalli við n og skipta því ekki máli þegar n verður stórt. Af þeirri ástæðu er reiknirit Karatsuba hraðvirkast þegar viðföngin eru 320-640 bita löng.

Andrei Toom

Rússneski stærðfræðingurinn Andrei Leonovich Toom fæddist í Taskent, höfuðborg Úsbekistan, sem þá var hluti af Sovétríkjunum, þann 12. apríl árið 1942 og er því 75 ára gamall. Þegar hann var aðeins tveggja ára flutti fjölskylda hans til Moskvu og bjó Toom þar til ársins 1989. Faðir hans, Leon Toom, vann sem túlkur og samdi ljóð í frítíma sínum og móðir hans myndskreytti barnabækur. Þau voru bæði mjög upptekin og varð það til þess að Toom eyddi miklum tíma með ömmu sinni, en það er einnig ástæðan fyrir því að hann var búinn að læra mikið áður en hann byrjaði í skóla, því hún kenndi honum. Á meðan hann var enn í barnaskóla vann hann til sinna fyrstu stærðfræðiverðlauna í keppni sem var skipulögð af háskólanum í Moskvu. Hann útskrifaðist með mastersgráðu í stærðfræði frá Lomonsov State University árið 1968 og árið 1973 hlaut hann doktorstitil frá sömu deild. Samhliða námi og fram til ársins 1989 gegndi hann stöðu rannsóknarvísindamanns við deild efnafræði og efnalíffræði. Eftir það flakkaði hann á milli landa og borga og gegndi fjölmörgum stöðum við háskóla í Róm, New Jersey, Boston, Texas og Sao Paulo. Frá árinu 1999 og þar til hann settist í helgan stein árið 2012 starfaði Toom sem prófessor í tölfræðideild Federal University of Pernambuco í Brasilíu. Hans helstu áhugasvið eru reiknirit og flækjustig þeirra, stærðfræði- kennsla og slembin ferli og notkun þeirra (e. Algorithms and complexity, mathematical education, random processes and their applications). Áhugi Toom á stærðfræðikennslu

4 Háskóli Íslands, vorönn 2018 Kennari: Hjálmtýr Hafsteinsson TÖL 403G Greining reiknirita Nemandi: Unnur Bjarnadóttir vaknaði snemma, því stærðfræðikeppnin sem hann tók þátt í í barnaskóla hafði mikil áhrif á hann. Strax og hann hóf nám í Lomonsov skipulagði hann svipaða keppni fyrir grunnskólabörn. Á meðan hann stundaði framhaldsnám bauð hann sig einnig oft fram sem sjálfboðaliði við hin ýmsu kennsluverkefni og með hans eigin orðum þá „leið ekki eitt einasta ár þar sem ég lagði ekki mitt af mörkum til stærðfræðikennslu.“ Hann gerði þá uppgötvun á meðan hann bjó ennþá í Rússlandi að besta umhverfið til að læra væri í afslöppuðu umhverfi þar sem ekki mikil áhersla er lögð á einkunnir. Bæði börnin hans lærðu betur undir þeim kringumstæðum heldur en í venjulegri kennslu. Þar sem Toom vann í sovéska Rússlandi var honum ekki leyft að heimsækja háskóla í öðrum löndum. Hann varð þó fyrir því láni að fá einu sinni að fara til Rómar og ákvað hann þá að snúa ekki til baka til Rússlands, heldur nýta tækifærið og taka boði sem hann hafði fengið frá Rutgers-háskóla í Bandaríkjunum. Það var þó galli á gjöf Njarðar því stuttu seinna liðu Sovétríkin undir lok og þá tóku vísindamenn að streyma til Bandaríkjanna frá Austur-Evrópu. Það varð þess valdandi að erfitt reyndist að fá vinnu. Þar sem Toom hafði áhuga á kennslu sótti hann einnig um kennarastöður en hann var mjög undrandi á skólakerfinu, þar sem oft lítil sem engin áhersla var lögð á stærðfræði, stundum aðeins á svokallaða viðskiptastærð- fræði. Einnig fannst honum skrýtið að ef ekki var hægt að útskýra hugtök með dæmum úr raunveruleikanum, hinu dagsdaglega lífi, þá var ekki talið nauðsynlegt að kenna þau og oft voru ráðnir kennarar sem voru óhæfir í starfið vegna þess að þeir kunnu ekki fagið sem þeir áttu að kenna á meðan aðrir sem voru meira en hæfir í starfið (e. overqualified) var vísað frá. Hann var svo undrandi á hversu mikill munur var á stærðfræðikennslu í Rússlandi og Banda- ríkjunum að hann skrifaði nokkrar fræðigreinar um það og hefur oft verið beðinn um að halda fyrirlestra um sama efni. Þann tíma sem Toom gegndi stöðu prófessors í Brasilíu var hann leiðbeinandi fjögurra doktorsverkefna, sex mastersverkefna og fimm bakkalárverkefna. Útgefin verk hans eru yfir 130 talsins, á þremur tungumálum, en vegna langrar dvalar sinnar í Brasilíu talar hann reiprennandi portúgölsku, ásamt rússnesku og ensku. Árið 1962 var Toom kynntur fyrir reikniriti Karatsuba af leiðbeinanda sínum Oleg Borisovich Lupanov. Lupanov hvatti Toom til að reyna að bæta reikniritið og tók það Toom aðeins einn dag að fá hugmyndina að réttu lausninni. Hann eyddi svo tveimur vikum í að skrifa fræðigrein um uppgötvunina og kallast hún Toom-Cook aðferðin í dag. Hún er yfirgripsmeiri

5 Háskóli Íslands, vorönn 2018 Kennari: Hjálmtýr Hafsteinsson TÖL 403G Greining reiknirita Nemandi: Unnur Bjarnadóttir en aðferð Karatsuba að því leiti að hægt er að velja hversu oft tölunum er skipt upp. T.d. er hægt að nota Toom-3 sem skiptir tölunum í þrjá hluta, en Toom-2 er sambærileg Karatsuba. Toom-3 er hraðvirkara en Karatsuba þar sem það fækkar margföldunum úr níu í fimm. Heildartímaflækja þess er því O(nlog35) þar sem 3 stendur fyrir skiptingarnar og 5 fyrir margfaldanirnar og verður O(n1,465), samanborið við Karatsuba sem tekur O(n1,585). Toom-3 er hins vegar ekki mjög hraðvirkt fyrir litlar tölur og er ekki hraðvirkasta reikniritið fyrir mjög stórar tölur. Það er því best að nota það fyrir millistórar tölur. Dæmi um notkun reikniritsins fyrir tölurnar 123456789 og 987654321 má sjá hér fyrir neðan. Byrjað er á því að skipta báðum tölunum í þrjá hluta: 123 456 789 og 987 654 321 og skrifa þær sem margliður: �(�) = 123� + 456� + 789 �(�) = 987� + 654� + 321

Við skrifum: p(x)q(x) = r(x) eða:

(123� + 456� + 789)( 987� + 654� + 321) = �� + �� + �� + dx + e = r(x)

Við viljum svo finna a, b, c, d og e. Síðan er x-gildinu skipt út fyrir fimm önnur gildi, t.d. 0, 1, -1, 2 og -2 sem verða þessar fimm margfaldanir:

6 Háskóli Íslands, vorönn 2018 Kennari: Hjálmtýr Hafsteinsson TÖL 403G Greining reiknirita Nemandi: Unnur Bjarnadóttir

Þá erum við komin með fjórar jöfnur og e:

16� + 8� + 4� + 2� + � = 12230361 16� − 8� + 4� − 2� + � = 1092609 � + � + � + � + � = 2684016 � − � + � − � + � = 298224 � = 253269

Þetta er svo hægt að leysa og fá út: a = 121401 b = 530514 c = 1116450 d = 662382 e = 253269 Þar sem við erum með Toom-3 þá getum við lagt þessar tölur saman með því að setja x = 103 í jöfnunni sem við vorum með áðan:

�� + �� + �� + dx + e

Sem verður því:

þar sem efsta talan er e, næsta er d o.s.frv.

7 Háskóli Íslands, vorönn 2018 Kennari: Hjálmtýr Hafsteinsson TÖL 403G Greining reiknirita Nemandi: Unnur Bjarnadóttir

Stephen Cook

Stephen Arthur Cook fæddist þann 14. desember árið 1939 í New York og er því 78 ára gamall. Cook er giftur og á tvo syni. Hans helsta áhugamál er siglingar sem hann deilir með syni sínum. Hann kynntist konunni sinni meira að segja í siglingaklúbbnum í Berkeley þar sem hún var ritari. Faðir Cook hlaut doktorsgráðu í efnafræði frá háskólanum í Michigan þaðan sem móðir hans útskrifaðist einnig með mastersgráður í ensku og sögu. Þegar Cook valdi háskóla lá það í augum uppi að sami háskóli yrði fyrir valinu. Hann byrjaði að læra verkfræði, en þegar stærðfræðikennari að nafni Nicholas Kazarinoff tók eftir því hversu vel Cook stóð sig í einum áfanga hvatti hann Cook til að skrá sig í áfanga af þriðja ári, þó hann væri sjálfur á öðru ári. Það vakti áhuga Cook á stærðfræði og endaði hann á því að skipta um aðalgrein og útskrifaðist hann tveimur og hálfu ári seinna með bakkalárgráðu í stærðfræði. Eftir það færði hann sig yfir í Harvard þaðan sem hann útskrifaðist bæði með mastersgráðu og doktorsgráðu í stærðfræði árin 1962 og 1966. Doktorsritgerð hans var um flækjustig margfaldana (e. complexity of multiplication) og bar titilinn „On the Minimum Computation Time of Functions“. Strax eftir útskrift var honum boðin staða aðstoðarprófessors við stærðfræðideild Berkeley-háskóla og sinnti hann því starfi í fjögur ár. Cook hafði tekið forritunaráfanga í Michigan og heillaðist einnig af tölvunarfræði. Hann hallaðist meira og meira í þá átt þangað til hann skipti algjörlega yfir í tölvunarfræði í kringum árið 1972 eftir að hafa starfað í háskólanum í Toronto í tvö ár. Hann fékk stöðu prófessors árið 1975, en þess má geta að Cook kennir enn þann dag í dag við háskólann, 78 ára gamall. Hann hefur á löngum ferli verið leiðbeinandi 34 doktorsnema og unnið til fjölmargra verðlauna, þar á meðal ACM Turing-verðlaunanna árið 1982. Árið 2012 hlaut hann Gerhard Herzberg Canada Gold Medal for Science and Engineering og árið 2013 hæstu heiðursorðu Ontario, Order of Ontario. Cook er talinn einn forfeðra flækjustigs reiknanleika (e. computational complexity theory) og framlag hans til þeirrar greinar skiluðu honum einmitt Turing-verðlaununum. Hann sannaði t.d. tilveru NP-fullkominna verkefna með því að sýna fram á að SAT-vandamálið (e. Boolean satisfiability problem) er NP-fullkomið. Kennisetningin er þekkt í dag undir heitinu Cook-Levin þar sem Leonid Levin, sem bjó í Sovét- ríkjunum, sannaði sama hlut óháð Cook. Tenging Cook við Toom-Cook reikniritið er að í doktorsritgerð sinni endurbætti hann reiknirit Toom.

8 Háskóli Íslands, vorönn 2018 Kennari: Hjálmtýr Hafsteinsson TÖL 403G Greining reiknirita Nemandi: Unnur Bjarnadóttir

Heimildir

• https://en.wikipedia.org/wiki/Anatoly_Karatsuba • https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%80%D0%B0%D1%86%D1%83% D0%B1%D0%B0,_%D0%90%D0%BD%D0%B0%D1%82%D0%BE%D0%BB%D0%B8%D0 %B9_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%B 8%D1%87 • https://de.wikipedia.org/wiki/Anatoli_Alexejewitsch_Karazuba • https://bg.wikipedia.org/wiki/%D0%90%D0%BD%D0%B0%D1%82%D0%BE%D0%BB %D0%B8%D0%B9_%D0%9A%D0%B0%D1%80%D0%B0%D1%86%D1%83%D0%B1%D 0%B0 • http://www.mi.ras.ru/~karatsuba/index_e.html#2 • https://en.wikipedia.org/wiki/Karatsuba_algorithm • https://pt.wikipedia.org/wiki/Anatolii_Alexeievitch_Karatsuba • https://en.wikipedia.org/wiki/Andrei_Toom • http://www.toomandre.com/myself/CV.pdf • www.toomandre.com/myself/Pa-longp.doc • http://toomandre.com/my-articles/engeduc/ARUSSIAN.PDF • http://cs.indstate.edu/~syedugani/ToomCook.pdf • https://en.wikipedia.org/wiki/Stephen_Cook • http://www.cs.toronto.edu/~sacook/ • https://conservancy.umn.edu/bitstream/handle/11299/107226/oh350sc.pdf?seque nce=1&isAllowed=y • https://translate.google.com/ • http://jeffe.cs.illinois.edu/teaching/algorithms/

9