Analizë e algoritmeve Elver H. Bajrami elver.bajrami@uni-pr.edu, elver_bajrami@hotmail.com FSHMN, Departamenti i Matematikës, viti akademik 2021/22, Kapitulli 0 (Kapituj 1 dhe 2 (pjesërisht) nga libri bazë) Analizë e algoritmeve 1 Referencat Web faqet : ◼ http://ebajrami.weebly.com/ Literatura ◼ Clifford A. Shaffer, Data Structures and Algorithm Analysis, Edition 3.2 Analizë e algoritmeve 2 Hyrje në analizën e algoritmeve ◼ ◼ ◼ Kompjuterët e rinj, çdo herë e më te shpejtë. Pse na duhet programe më efeciente ? Ambiciet tona rriten paralel me mundësitë! Çdo algoritëm e ka koston e vetë dhe benefitet e veta Analizë e algoritmeve 3 Hyrje ◼ ◼ ◼ Dizajnimi i programeve kompjuterike ka dy qëllime kryesore: 1. Dizajnimi algoritmeve që të kuptohen lehtë, kodohen dhe të kontrollohen më lehtë për gabime 2. Dizajnimi algoritmeve që bënë aplikacioni të shfrytëzoj resurset e kompjuterit në mënyrë më efecientë Analizë e algoritmeve 4 Hyrje ◼ ◼ ◼ Ne praktikë, është vështire të thuhet se një algoritëm është më i mirë se tjetri në të gjitha rastet! Thuhet se një zgjidhje është efikase nëse e zgjidhë problemin brenda kërkesës dhe kufizimeve të resurseve Kostoja e një zgjidhjeje është sasia e burimeve që zgjidhja konsumon Analizë e algoritmeve 5 Problemet, algoritmet dhe programet ◼ ◼ ◼ ◼ Problemi : detyra që duhet kryhet! Zgjidhja e tij të provohet vetëm atëherë pasi te qartësohet komplet . Problemi mund të shikohet edhe si funksion që lidhe hyrjet (domena) dhe daljet (Rangu) Poashtu, ka disa përjashtime psh, funksioni date në Unix! Analizë e algoritmeve 6 Problemet, algoritmet dhe programet ◼ ◼ ◼ Algoritmi : metoda apo procesi që duhet ta ndjekim për të zgjidhur problemin. Nëse problemi është funksion atëhere algoritmi eshte implementimi i tij! Këtu do të na interesojnë më shumë rastet kur problemi ka më shume se një zgjidhje – krahasimi i tyre Analizë e algoritmeve 7 Problemet, algoritmet dhe programet ◼ 1. 2. 3. 4. 5. Me perkufizim algoritem mund të quhet dicka qe plotëson kushtet në vazhdim: Duhet të jetë korrekt. Është i krijuar nga një seri e hapave konkret. Nuk mund të ketë paqartësi se cili hap do të kryhet me radhë. Duhet të përbëhet nga një numër i kufizuar hapash. Duhet të perfundojë – të jetë i fundëm. Analizë e algoritmeve 8 Problemet, algoritmet dhe programet ◼ ◼ ◼ Programi : Reprezentimi i një algoritmi ne gjuhën e caktuar programuese Programi vs algoritmi Me përkufizim, algoritmi duhet siguroj detajet e mjaftueshme ashtu që të shëndrrohet në program sipas nevojës Analizë e algoritmeve 9 Prapavija matematike e analizes se algoritmeve ◼ ◼ ◼ Bashkësitë dhe relacionet, çanta (bag)multiset. Funksioni faktoriel (n!), disa formula përafruese Permutacionet, bashkësia n elementshe gjithsej n! mundësi renditje, zgjedhja e rastësishme e renditjes, ka gjasë 1/n! ◼ Analizë e algoritmeve 10 Prapavija matematike e analizes se algoritmeve ◼ ◼ ◼ ◼ Variablat boleane, algjebra e predikateve. Funksionet e rrumbullaksimit te vlerës, Floor dhe ceiling (rrumb. Nga poshtë dhe nga larte, psh. Nr. i krahasimeve) Operatori i modulit (mbetjes) (% ne java) Zbatimi i teorisë së gjasës Analizë e algoritmeve 11 Prapavija matematike e analizes se algoritmeve ◼ ◼ ◼ ◼ Logaritmet, nr. Minimal i bitëve te nevojshëm për paraqitja n kodeve te ndryshme. Numri i krahasimeve ne algoritmin e kërkimit binary, log n (baza e nënkuptuar 2) Vetitë e logaritmeve Shumat dhe rekurencat (kapitull në vete!) Teknikat e veretetimit në matematikë Analizë e algoritmeve 12 Hyrje në analizen e algoritmeve ◼ Fundi i kapitullit zero Analizë e algoritmeve 13