Algoritmi Vladimir Filipović vladaf@matf.bg.ac.rs.

Slides:



Advertisements
Сличне презентације
[napisati ime inovacije]
Advertisements

ARITMETIČKO LOGIČKA JEDINICA
Konto, kontni okvir, kontni plan
Građevinski fakultet u Beogradu, školska 2018/19 godina
Data mining Izdvajanje informacije iz skupa podataka i transformacija u jasnu strukturu za buduće korišćenje Data Mining koristi/prati isti opšti pristup.
Програмски језик Parallaxis
Olivera Hrnjaković, Marko Tot, Aleksandar Kupusinac, Rade Doroslovački
Изборни предмети -докторске студије-
Uvod u programiranje - matematika – XII predavanje Moduli. OOP
и фази на решавање на задача
Јелена Бошковић, проф. Рачунарства и информатике
Dinamika konstrukcija i zemljotresno inženjerstvo
Dinamika konstrukcija i zemljotresno inženjerstvo
Nastavna cjelina: 2. BASIC
Uvod u funkcije Kolegij: Programski jezik C++ Ak. god. 2018/19
ISPITIVANJE KVALITETA SOFTVERSKI GENERISANIH SEGMENATA U OBLASTI VREMENSKE SLOŽENOSTI ALGORITAMA ZA AUTOMATIZOVANO SASTAVLJANJE ISPITA     Đorđe Pešić,
Појам птице (Шта су птице?)
ANALITIČKA METODA ZA KINEMATIČKU ANALIZU – METODA KOMPLEKSNOG BROJA
Tipovi, operatori i izrazi
POREĐENJE KARAKTERISTIKA KOLABORACIJE
Programiranje - Naredbe za kontrolu toka programa – 4. dio
СТРУКТУРА ДРУШТВА.
O računalima.
POLINOMI :-) III℠, X Силвија Мијатовић.
ПРИКАЗ ИЗБОРНОГ ПРЕДМЕТА: ЕЛЕМЕНТИ ТЕОРИЈЕ АЛГОРИТАМА
Uvod u programiranje - matematika – VI predavanje Petlje. FOR. WHILE
Konačni automati i regularni izrazi
5 NAREDBE.
Електрична сила Кулонов закон.
Katedra za elektroniku
PC Istorija računara.
Uvod u programiranje - matematika – VIII predavanje
КОМУНИКАЦИЈА И КУЛТУРА
Marko Čupić, prof. glazbene kulture OŠ Dr. fra Karlo Balić, Šestanovac
Сабирање и одузимње преко 1000
Тренажер Таблица множења
Сазнавање у настави Видови сазнања:
Uvod u programiranje - matematika – XII predavanje
Logički sklopovi Zadaci.
PROJEKTOVANJE RAZGRANATE ALGORITAMSKE STRUKTURE
Uvod u programiranje - matematika – V predavanje
Избор у звање научни сарадник кандидат: Никола Веселиновић
Специјализована ИТ одељења
- мерења у хидротехници – Тема: Калибрација сонди за притисак
Multimedija.
Projektovanje namenskih računarskih struktura u obradi signala
Programski jezik C++ - Vježbe - 3. dio
Mihailo Micev Prof. dr Vladan Vujičić Doc. dr Martin Ćalasan
NetLogo – novo okruženje za podučavanje informatike
Јелена Бошковић, проф. Рачунарства и информатике
Multimedijalni sistemi
Предавања 2 мр Наташа Папић-Благојевић
Пресек два троугла у равни
Структура програма у Паскалу
Logičko projektovanje računarskih sistema 2
Logičko projektovanje računarskih sistema 2
Primena matričnog računa
Процесорска поља Организација процесорских поља
Prof. dr Vlado Simeunović OSNOVE RAČUNARSKE TEHNIKE vlado
МЕЂУНАРОДНИ ДАН ПИСМЕНОСТИ
Principi programiranja
Principi programiranja
V SAVJETOVANJE CRNOGORSKOG KOMITETA CIGRE
Rešavanje problema pomoću računara
Informatika II-programiranje
Definicija i osobine digitalnih biblioteka
РЕПУБЛИЧКИ ПЕДАГОШКИ ЗАВОД
Mehanika Šifra predmeta Status predmeta Semestar Broj ECTS Fond časova
ВИСОКА ПОСЛОВНА ШКОЛА СТРУКОВНИХ СТУДИЈА ВАЉЕВО
Синтакса програмских језика и опис синтаксе
Транскрипт презентације:

Algoritmi Vladimir Filipović vladaf@matf.bg.ac.rs

Pojam Algoritma Uloga algoritama Postoji posebna grana matematike: Teorija algoritama Uloga algoritama Forma izlaganja naučnih rezultata Uputstvo za rešavanje već proučenih problema Sredstvo za ekonomisanje umnim radom Sredstvo pri automatizaciji rešavanja zadataka (pisanja programa) Sredstvo za izučavanje novih problema Sredstvo za opis složenih procesa Sredstvo za zasnivanje matematike

Definicija algoritma Algoritam je konačan skup strogo formulisanih pravila za rešavanje neke klase zadataka. Ili: Algoritam je konačan skup pravila o tome kakva dejstva i kojem poretku treba izvršiti da bi se rešio svaki zadatak iz klase zadataka istog tipa. Ovako iskazane definicije nazivaju se intuitivne (opisne, deskriptivne) definicije. Pored opisnih definicija postoje i formalne (matematičke, stroge) definicije algoritma.

Nastanak i razvoj pojma algoritam Algoritmi u antičkom periodu Al Horezmi Oformljenje terima algoritama Lajbnicova univerzalna mašina Algoritmi u 19. i 20. veku Problem nepostojanja precizne definicije algoritma Preciziranje pojma algoritam i nastanak matematičkih definicija 1936. godine.

Matematičke definicije pojma algoritam Postoji veći broj matematičkih definicija pojma algoritam. 1936. Gedel (Gödel K.), Erban, Klini(Kleene S.C.): Rekurzivne funkcije; 1936. Čerč (Church A.): -račun; 1936. Gedel (Gödel K.), Klin (Kleene S.C ): -rekurzivne funkcije; 1936. Tjuring (Turing A.): Tjuringova mašina; 1943. Post (Post E.): Postova mašina; 1951. Markov (Markov A.): Normalni algoritmi; 1963. Šeferdson( Shepherdson J.R.) , Stardžis (Sturgis H.F.): Mašine sa neograničenim registrima (URM). Dokazno je da su sve pobrojane matematičke definicije pojma algoritam međusobno ekvivalentne.

Teza Čerča (Church A.) To je hipoteza koju je Čerč postavio 1936. godine, a koja uspostavlja odnos između intuitivnih i matematičkih definicija pojma algoritam. Ona je najpre izrečena u obliku: Klasa rekurzivnih funkcija je ekvivalentna sa klasom izračunljivih funkcija. (tj. matematička definicija pojma algoritam pomoću rekurzivnih funkcija je ekvivalentna intuitivnom shvatanju pojma algoritam). Kako su sve matematičke definicije pojma algoritam ekvivalentne međusobno, ona se uopštava i izriče u obliku: Definicija algoritma u intuitivnom smislu ekvivalentna je sa nekom matematičkom definicijom algoritma. Zašto je ovo hipoteza, a ne teorema? Šta su argumenti koji idu i prilog Tezi Čerča?

Algoritamski nerešivi problemi Sa preciziranjem pojma algoritam (uvođenjem matematičkih definicija), dokazano je da postoje algoritamski nerešivi problemi. Algoritamski nerešiv problem se ne može rešiti pomoću računara. Primeri algoritamski nerešivih problema: 1. Problem prepoznavanja izvodljivosti u matematičkoj logici. 2. Problem ekvivalentnosti reči u proizvoljnom asocijativnom računu. 3. Deseti Hilbertov problem. 4. Problem prepoznavanja primenljivosti za Tjuringove mašine. 5. Problem jednakosti elementarnih funkcija realne promenljive. ….

Problem jednakosti funkcija elementarne promenljive Definicija: 1. x je term. 2.  je term. 3. Ako su u i v termovi, tada su takodje termovi: (u+v), (u-v), (u*v), (u/v), sin(u) i |u|. 4. Term se može formirati samo na osnovu 1,2, i 3. Problem: Ako se izaberu dva proizvoljna terma, ispitati da li predstavljaju istu funkciju realne promenljive.

Algoritamski rešivi problemi Algoritamski nerešivi problemi Za problem kažemo da je algoritamski rešiv ako se za njega može opisati algoritam na pogodan način. Postoji razni načini zapisa (opisa) algoritama: pomoću govornog jezika; algoritamskom šemom (blok-dijagramom); pseudo kodom; pomoću programskog jezika; ……

Način zapisa algoritma Primer 1: Opisati algoritam za računanje vrednosti funkcije: I način: 1. Učitati i zapamtiti a i b. Preći na korak 2. 2. Od a oduzeti b, smestiti u f i preći na korak 3. 3. Ako je f<0, preći na korak 5, u suprotnom, na korak 4. 4. Od f oduzeti b smestiti u f i preći na korak 5. 5. Prikazati (saopštiti) f i preći na korak 6. 6. Zaustaviti postupak.

II način: III način: 1. UČITATI: a, b; 2. a-b  f; 3. AKO f >=0, TADA f - b f; 4. ŠTAMPATI: f; 5. STOP. IV način: static double fun (double a, double b) { double f; f= a-b; if (f>=0) f - = b; System.out.println(f); return f; } P a, b f:= a - b f<0 f := f - b f K da ne

Primer2: Opisati algoritam za nalaženje NZD(m,n). Algoritamska šema: Primer2: Opisati algoritam za nalaženje NZD(m,n). Pseudo kod: UČITATI: m, n; SVE DOK JE m<>n URADITI: AKO JE m>n TADA m:=m-n, INAČE n:=n-m; ŠTAMPATI: m; STOP. P m, n m>n n:=n - m m K da m=n m:=m-n

Svojstva algoritama Algoritmi imaju niz svojstva. To su: Računarski fakultet Uvod u programiranje Svojstva algoritama Algoritmi imaju niz svojstva. To su: Determinisanost Elementarnost Diskretnost Rezultativnost Masovnost Usmerenost Konstruktivnost

Zadaci za vežbanje: 1. Opisati algoritam (bar na 3 načina) za izračunavanje vrednosti datog polinoma: Pn(x)= anxn+…+a1x+a0. 2. Opisati algoritam (bar na 2 načina) za nalaženje maksimalnog elementa datog niza. 3. Opisati algoritam za proveru da li je broj prost. 4. Opisati algoritam za množenje dve date matrice Amxn i Bnxk.