SlideShare una empresa de Scribd logo
1 de 8
Teorija algoritma
Algoritma
• Jedan od osnovnih zadataka u matematici i računarstvu je rešavanje problema razvojem
odgovarajućih algoritama.
• Sama reč algoritam potiče od imena persijskog matematičara Abu afar Mohamed ibn
Musa al-Horezmija (780-850), odnosno od lošeg prevoda njegovog imena na latinski.
Sama oblast teorije algoritama koja
se još naziva i teorijom izračunljivosti je nastala između 1930. i 1940. godine kao odgovor
na pojavu nekih matematičih paradoksa sa kraja 19. i početka 20. veka. U stvari,
postavilo se pitanje da
li postoji opšti postupak utvrđivanja istinitosti matematičkih iskaza.
• U suštini, teorija algoritama se bavi pitanjem postojanja ili nepostojanja algoritama za
rešavanje pojedinih problema.
Algoritam
• Algoritam je pojam koji se ne definiše, što je slučaj i sa nekim drugim osnovnim
matematičim konceptima poput tačke ili skupa.
• Opisna, neformalna definicija bila bi da je algoritam konačan i precizno definisan
postupak, efektivna procedura, za rešavanje nekog problema. Možemo reći da je prvi
računarski algoritam koji je služio za računanje Bernulijevih brojeva na mašini Čarla
Bebidža, napisala Ejda Bajron i to 1842 godine.
• Iako ta mašina nikad nije proradila, njen algoritam je ostvio trag.
Uslovi da neki postupak bude algoritam
• postupak je moguće opisati konačnim brojem naredbi,
• postoji idealna mašina koja izvržava te naredbe prema unapred utvrđenim pravilima,
• mašina započinje izračunavanje u nekom inicijalnom stanju;
• primenjena na ulazen podatke mašina izvršava naredbe u diskretnim koracima u Kojima
menja svoja stanja,
• izvršavanje svake naredbe se izvodi u konačnom vremenu pri čemu se koristi konačni
memorijski prostor,
• iz jednog stanja izvršavanjem iste naredbe mašina uvek prelazi u isto stanje, odnosno,
izvršavanje je determinističko,
• kada pređe u završno stanje, mašina prestaje sa izvršavanjem.
Osobine algoritma
• Konačnost pošto je svaki algoritam konačan niz instrukcija.
• Diskretnost jer se sve operacije izvršavaju, kao što je već opisano, korak po korak i
svakom možemo pridružiti diskretan vremenski period u kome se taj korak izvršava.
• Determinisanost jer za iste ulazne veličine jednoznačno se dobijaju iste izlazne veličine.
• Elementarnost jer zakon dobijanja izlaznih veličina mora biti jasan i prost.
• Rezultativnost jer za svaki skup ulaznih veličina mora biti definisano šta je rezultat.
• Masovnost jer algoritam treba da važi za najširi skup ulaznih podataka.
Predstavljanje algortima
• Dijagram-blok algoritamska šema, odnosno predstavjanje algortima pomou grafičke
šeme sa jasno definisanim koracima. Postoje linijske i ciklične algoritamske šeme. Pri
tom, linijske alogritamske šeme mogu biti proste i razgranate.
• Pseudo jezici, odnosno, pseudokod. Pseudokod predstavlja među korak izmeu
svakodnevnog jezika i programskog jezika. Korišćenjem pseudokoda umesto da koristimo
stroge strukture programskih jezika, možemo koristiti manje formalni sistem notacija kako
bi izbegli specifična pravila koja važe
za sve naredbe programskog jezika.
• Programski jezici. Svaki programski jezik predstavlja neku formalizaciju algoritama, pa
zato možemo koristiti definiciju pojma program: Program je algoritam zapisan na nekom
programskom jeziku
• Rekurzivne funkcije. Rekurzivna funkcija je ona funkcija koja u svojoj definiciji koristi
samu sebe.
Rekurzija u matematici
• Kako bi pojam rekuzije bio jasniji prestaviemo neke definicije u
matematici koje su rekurzivne:
• Definicija prirodnih brojeva:
1 je prirodni broj.
Ako je n prirodni broj, onda je to i n + 1.
-
• Definicija Fibonačijevog niza:
Prvi član niza je 0
Drugi član niza je 1
Svaki n-ti član niza (n > 2) je suma prethodna dva člana
an = an - 1 + an - 2
Čerčova teza
• Jedan od načina predstavljanja algoritama je pomoću rekurzivnih funkcija. Rekurzivne funkcije
imaju za osobinu da za izračunavanje njenih vrednosti postoji efektivni postupak. Nažalost proces
izračunavanja može da bude dugotrajan, mada je uvek jasan i očigledan. Do rešenja ćemo uvek
doći posle konačno mnogo koraka. Zato, za rekurzivne funkcije kažemo da su izračunljive.
• Obrnuto, veruje se da je svaka izračunljiva funkcija rekurzivna.
Ovo tvrenje naziva se Čerčova teza.
Čerčova teza: Aritmetiqka funkcija je izračunljiva akko je rekurzivna.
• Nažalost ova teza nije dokazana u matematiqkom smislu. U suštini ona tvrdi da za neki problem
postoji algoritam ako se rešavanje problema svodi na izračunavanje vrednosti adekvatne
rekurzivne funkcije. Problem koji se rešava tada se mora formulisati kao aritmetički problem.
Problem van aritmetike mora se preslikati u aritmetički. Da bi se to postiglo prvo se problem mora
predstaviti nekim univerzalnim jezikom, naprimer, kvantifikatorskog računa, a zatim se to preslikava
na jezik aritmetike.
• Rekurzivna funkcija je jedan opšti model algoritma.

Más contenido relacionado

Destacado

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Saba Software
 

Destacado (20)

Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 

Teorija algoritma.pptx

  • 2. Algoritma • Jedan od osnovnih zadataka u matematici i računarstvu je rešavanje problema razvojem odgovarajućih algoritama. • Sama reč algoritam potiče od imena persijskog matematičara Abu afar Mohamed ibn Musa al-Horezmija (780-850), odnosno od lošeg prevoda njegovog imena na latinski. Sama oblast teorije algoritama koja se još naziva i teorijom izračunljivosti je nastala između 1930. i 1940. godine kao odgovor na pojavu nekih matematičih paradoksa sa kraja 19. i početka 20. veka. U stvari, postavilo se pitanje da li postoji opšti postupak utvrđivanja istinitosti matematičkih iskaza. • U suštini, teorija algoritama se bavi pitanjem postojanja ili nepostojanja algoritama za rešavanje pojedinih problema.
  • 3. Algoritam • Algoritam je pojam koji se ne definiše, što je slučaj i sa nekim drugim osnovnim matematičim konceptima poput tačke ili skupa. • Opisna, neformalna definicija bila bi da je algoritam konačan i precizno definisan postupak, efektivna procedura, za rešavanje nekog problema. Možemo reći da je prvi računarski algoritam koji je služio za računanje Bernulijevih brojeva na mašini Čarla Bebidža, napisala Ejda Bajron i to 1842 godine. • Iako ta mašina nikad nije proradila, njen algoritam je ostvio trag.
  • 4. Uslovi da neki postupak bude algoritam • postupak je moguće opisati konačnim brojem naredbi, • postoji idealna mašina koja izvržava te naredbe prema unapred utvrđenim pravilima, • mašina započinje izračunavanje u nekom inicijalnom stanju; • primenjena na ulazen podatke mašina izvršava naredbe u diskretnim koracima u Kojima menja svoja stanja, • izvršavanje svake naredbe se izvodi u konačnom vremenu pri čemu se koristi konačni memorijski prostor, • iz jednog stanja izvršavanjem iste naredbe mašina uvek prelazi u isto stanje, odnosno, izvršavanje je determinističko, • kada pređe u završno stanje, mašina prestaje sa izvršavanjem.
  • 5. Osobine algoritma • Konačnost pošto je svaki algoritam konačan niz instrukcija. • Diskretnost jer se sve operacije izvršavaju, kao što je već opisano, korak po korak i svakom možemo pridružiti diskretan vremenski period u kome se taj korak izvršava. • Determinisanost jer za iste ulazne veličine jednoznačno se dobijaju iste izlazne veličine. • Elementarnost jer zakon dobijanja izlaznih veličina mora biti jasan i prost. • Rezultativnost jer za svaki skup ulaznih veličina mora biti definisano šta je rezultat. • Masovnost jer algoritam treba da važi za najširi skup ulaznih podataka.
  • 6. Predstavljanje algortima • Dijagram-blok algoritamska šema, odnosno predstavjanje algortima pomou grafičke šeme sa jasno definisanim koracima. Postoje linijske i ciklične algoritamske šeme. Pri tom, linijske alogritamske šeme mogu biti proste i razgranate. • Pseudo jezici, odnosno, pseudokod. Pseudokod predstavlja među korak izmeu svakodnevnog jezika i programskog jezika. Korišćenjem pseudokoda umesto da koristimo stroge strukture programskih jezika, možemo koristiti manje formalni sistem notacija kako bi izbegli specifična pravila koja važe za sve naredbe programskog jezika. • Programski jezici. Svaki programski jezik predstavlja neku formalizaciju algoritama, pa zato možemo koristiti definiciju pojma program: Program je algoritam zapisan na nekom programskom jeziku • Rekurzivne funkcije. Rekurzivna funkcija je ona funkcija koja u svojoj definiciji koristi samu sebe.
  • 7. Rekurzija u matematici • Kako bi pojam rekuzije bio jasniji prestaviemo neke definicije u matematici koje su rekurzivne: • Definicija prirodnih brojeva: 1 je prirodni broj. Ako je n prirodni broj, onda je to i n + 1. - • Definicija Fibonačijevog niza: Prvi član niza je 0 Drugi član niza je 1 Svaki n-ti član niza (n > 2) je suma prethodna dva člana an = an - 1 + an - 2
  • 8. Čerčova teza • Jedan od načina predstavljanja algoritama je pomoću rekurzivnih funkcija. Rekurzivne funkcije imaju za osobinu da za izračunavanje njenih vrednosti postoji efektivni postupak. Nažalost proces izračunavanja može da bude dugotrajan, mada je uvek jasan i očigledan. Do rešenja ćemo uvek doći posle konačno mnogo koraka. Zato, za rekurzivne funkcije kažemo da su izračunljive. • Obrnuto, veruje se da je svaka izračunljiva funkcija rekurzivna. Ovo tvrenje naziva se Čerčova teza. Čerčova teza: Aritmetiqka funkcija je izračunljiva akko je rekurzivna. • Nažalost ova teza nije dokazana u matematiqkom smislu. U suštini ona tvrdi da za neki problem postoji algoritam ako se rešavanje problema svodi na izračunavanje vrednosti adekvatne rekurzivne funkcije. Problem koji se rešava tada se mora formulisati kao aritmetički problem. Problem van aritmetike mora se preslikati u aritmetički. Da bi se to postiglo prvo se problem mora predstaviti nekim univerzalnim jezikom, naprimer, kvantifikatorskog računa, a zatim se to preslikava na jezik aritmetike. • Rekurzivna funkcija je jedan opšti model algoritma.