Page 33 - Demo
P. 33
Nxënësi/ja:2.1 Përzgjedhja e algoritmeve (I)Duke iu referuar njohurive të marra në klasën e 11-të, rikujtojmë se një algoritëm është rruga e zgjidhjes së një problemi, hartuar si një bashkësi komandash të përcaktuara shumë mirë dhe të renditura (fig. 2). Është shumë e rëndësishme të theksojmë se asnjë prej komandave nuk duhet të jetë e paqartë. Shembulli i një komande jo të qartë do të ishte “Pjesëto shumën”, ndërkohë që nuk është përcaktuar me cilën vlerë do të pjesëtohet shuma. Gjithashtu, rendi sipas së cilit do të ekzekutohen komandat, garanton ose jo saktësinë e rezultatit apo edhe vetë ekzekutimin pa gabime të algoritmit. Si shembull mund të marrim problemin e gjetjes së dy rrënjëve të një ekuacioni të gradës së dytë. Nëse llogaritja e x1 apo x2 do të kryhej para llogaritjes së dallorit, vlera e dallorit do të rezultonte e panjohur, gjë që do të pengonte rrjedhën normale të algoritmit për sigurimin e rezultatit.Ekziston një fushë studimi, e quajtur analiza e algoritmeve, e cila merret me krahasimin e algoritmeve bazuar në disa karakteristika bazë që matin performancën e tyre. Supozojmë se për një problem të dhënë kemi dy algoritme (rrugëzgjidhje) të mundshme që na japin rezultatin e saktë. Shtrohet pyetja si mund të përcaktojmë se cili prej tyre është më i miri?Pa dyshim që nuk mund ta dimë këtë pa pasur mundësi të matim parametra, si p.sh. koha që nevojitet për ekzekutimin e plotë të algoritmit, numri i rreshtave komandë etj. Pikërisht, dy nga tiparet karakterizuese, më shpesh të përdorura, për të krahasuar rendimentin e algoritmeve janë efikasiteti në kohë dhe efikasiteti në hapësirë. Një algoritëm efikas në hapësirë përdor sasinë më të vogël të mundshme në kujtesën e kompjuterit për të kryer detyrën. Ndërsa një algoritëm efikas në kohë përdor kohën minimale të mundshme për realizimin e detyrës.Kompleksiteti në kohë përcakton se me çfarë shkalle rritet koha e ekzekutimit të programit me rritjen e sasisë së informacionit hyrës, të cilin programi duhet ta përpunojë. Më konkretisht, disa raste të kompleksitetit në kohë që mund të përmendim, janë kompleksiteti konstant, linear, eksponencial etj. Kompleksiteti konstant do të thotë se pavarësisht madhësisë së të dhënave në hyrje, programi mbaron për të njëjtën kohë. Me dyfishimin e të dhënave në mëson disa kushte që duhen për zgjedhjen e algoritmeve.Matematikania angleze Ada Lovelace, bija e shkrimtarit Lord Bajron, mund të konsiderohet nëna e programimit kompjuterik, sikurse Charles Babbage, mentori i saj, konsiderohet ati i kompjuterit. Ajo ka qenë programuesja e parë që shkroi rreshta kodi. Lovelace kishte vizionin që kjo makinë mund të ishte shumë më tepër se një makinë e thjeshtë llogaritëse. Në fakt, i takon Charles Babbage-it të mbajë titullin e shkruesit të kodit të parë kompjuterik në formën e shënimeve, kod të cilin, me disa ndryshime, Ada e vuri në zbatim. 100 vite më vonë, kur Alan Turing bëri pyetjen e famshme “a mundet që makinat të mendojnë?”, ai nuk citoi Babbage-in, por kundërshtimin e Lovelace-it. Ajo ishte shprehur që jo, ndërsa Turing-u besonte që makina mund të mendojë. Krahasoni pikëpamjet dhe algoritmat e shkruar prej Charles Babbage-it, Ada Lovelace-it dhe Alan Turing-ut dhe njihni rëndësinë që kanë këto 3 figura në historinë moderne të programeve kompjuterike. Mund t’i referoheni faqes www.factmyth.com dhe fjalimit të Profesor Raymond Flood në Youtube mbi Ada Lovelace.Aktivitet:Fig. 1Fig. 2Hyrje Algoritëm Dalje31

