POHLEPNI ALGORITMI Pohlepni algoritmi predstavljaju algoritamsku strategiju kod
- Slides: 62
POHLEPNI ALGORITMI
Pohlepni algoritmi predstavljaju algoritamsku strategiju kod koje se problem rešava deo po deo, pri čemu se uvek bira naredni deo koji nudi najočigledniju neposrednu korist Ovakva strategija u mnogim slučajevima ne daje dobre rezultate, kao što ne bi dala ni u šahu, gde moramo dobro isplanirati više poteza unapred, i gde bi planiranje samo narednog poteza vrlo brzo dovelo do poraza. Međutim, postoje i slučajevi gde ovakva pohlepna strategija daje rezultate, i u daljem radu baićemo se takvim slučajevima.
Minimalna razapinjuća stabla Pretpostavimo da nam je dat zadatak da umrežimo kolekciju računara povezujući izabrane parove tih računara. Ovaj zadatak može se prevesti u problem teorije grafova, gde su čvorovi raču -nari, neusmerene grane su potencijalne veze između njih, i cilj je da izaberemo dovoljno tih grana da čvorovi budu povezani. Međutim, to nije sve. Svaka veza takođe ima svoje troškove održavanja, koje predstavljamo kao težine grana (naš graf je neusmeren i težinski). Pitanje je: Koja je najjeftinija moguća mreža? Ono što odmah možemo uočiti je da optimalan skup grana ne može sadržati ciklus, jer uklanjanjem grane sa tog ciklusa možemo redukovati cenu bez da poremetimo povezanost.
Minimalna razapinjuća stabla • Da li je ovo jedino optimalno rešenje?
Pohlepni pristup •
Primer •
Svojstvo sečenja– Cut property •
Svojstvo sečenja– Cut property •
Svojstvo sečenja– Cut property •
Primer
Kruskalov algoritam •
Kruskalov algoritam •
Kruskal's minimum spanning tree algorithm •
Struktura podataka za disjunktne skupove Jedan od načina da se predstavi skup je usmereno stablo (Slika 5. 5). Čvorovi stabla su elementi skupa, aranžirani bez nekog posebnog redosleda, i svaki od njih ima roditeljski pokazivač koji nas vodi prema korenu stabla. Element u korenu je zgodan za predstavnika skupa. On se razlikuje od ostalih elemenata po tome što mu roditeljski pokazivač predstavlja petlju.
Unija po rangu •
Unija po rangu •
Procedura union
Primer – unija po rangu
Primer – unija po rangu
Unija po rangu •
Primer – Kruskalov algoritam
Primer – Kruskalov algoritam
Primer – Kruskalov algoritam
Primer – Kruskalov algoritam
Primer – Kruskalov algoritam
Kompresija puteva •
Primer – kompresija puteva
Kompresija puteva •
Primov algoritam •
Primov algoritam •
Primov algoritam •
Primov algoritam
Primer 1 – Primov algoritam
Primer 2 – Primov algoritam
Primer 2 – Primov algoritam
Primer 2 – Primov algoritam
Primer 2 – Primov algoritam
Primer 2 – Primov algoritam
Primer 2 – Primov algoritam
Primer 2 – Primov algoritam
Digitalni audio je dobijen preradom, tzv. digitalizacijom realnog zvuka, ali tako da naše uši teško da mogu da primete razliku u kvalitetu. Realni zvuk je analogna fizička veličina – parametri zvuka se neprekidno menjaju od jednog do drugog vremenskog trenutka. Digitalizacijom zvuka se ne beleže parametri zvuka u svakom trenutku vremena, već samo u pojedinim diskretnim trenucima vremena. U svakoj sekundi se uzima nekoliko hiljada trenutaka, i beleži se vrednost parametara zvuka u svakom od njih. Drugim rečima, uzimamo nekoliko hiljada uzoraka zvuka u svakoj sekundi, zbog čega se to naziva uzorkovanje ili samplovanje (engl. sample – uzorak). uzorak Broj tih trenutaka u sekundi (broj uzoraka) nazivamo frekvencija uzorkovanja Frekvencija uzorkovanja se meri u hercima (Hz), odnosno kilohercima (KHz).
Digitalni audio Osim od frekvencije uzorkovanja, kvalitet zvuka kod digitalnog audia zavisi i od rezolucije odnosno veličine uzoraka, kao i od izbora stereo ili mono audia. Rezolucija ili veličina uzoraka je broj bitova koji koristimo za opisivanje parametara zvuka svakog od uzoraka. Naravno, bolji kvalitet daju veće frekvencije uzorkovanja i veće rezolucije, i stereo zvuk je bolji od mono zvuka. Povećanjem frekvencije i rezolucije, i izborom stereo zvuka, dobija se bolji kvalitet zvuka, ali se povećava i veličina fajlova gde se čuva digitalizovani audio. Međutim, povećanjem frekvencije i rezolucije preko izvesnih granica ljudsko uvo ne bi bilo u stanju da primeti poboljšanje kvaliteta zvuka. CD audio, na primer, ima frekvenciju uzorkovanja od 44. 1 k. Hz (44, 100 uzoraka po sekundi) i rezoluciju od 16 bitova, i koristi se stereo.
Digitalni audio
Hafmanovo kodiranje •
Hafmanovo kodiranje •
Hafmanovo kodiranje •
Hafmanovo kodiranje Dekodiranje je jedinstveno: niz bitova se dekodira tako što se polazi od korena, čitajući niz bitova s leva udesno i krećući se naniže u stablu, i, kad god se dođe do lista, na izlaz se šalje odgovarajući simbol, i automatski se vraća na koren stabla. Ovo je prosta i isplativa shema koja u našem primeru (sa kodovima iz Fig. 5. 10) veličinu binarnog niza smanjuje na 213 megabita, što je poboljšanje od 17%.
Hafmanovo kodiranje •
Hafmanovo kodiranje •
Hafmanovo kodiranje •
Hafmanova procedura
Hornove formule •
Klauzule •
Hornove formule Dve vrste klauzula vode nas u dva različita pravca. Implikacije nam kažu da neke promenljive podesimo da budu tačne, dok nam negativne klauzule kažu da ih podesimo da budu netačne. Naša strategija za rešavanje Hornovih formula je sledeća: Najpre stavljamo da su sve promenljive netačne. Potom podešavamo neke od njih da budu tačne, jednu po jednu, ali samo ako moramo jer bi u suprotnom bila narušena implikacija. Kada završimo tu fazu i sve implikacije budu zadovoljene, tek onda se okrećemo negativnim klauzulama i proveravamo da li su sve one zadovoljene.
Algoritam – Hornove formule Ulaz: Hornova formula Izlaz: zadovoljavajuće dodeljivanje, ako takvo postoji postavimo sve promenljive da budu netačne sve dok postoji implikacija koja nije zadovoljena: postavimo promenljivu na desnoj strani implikacije da bude tačna ako su sve čiste negativne klauzule zadovoljene: vraćamo dodeljivanje u suprotnom: vraćamo ‘‘formula nije zadovoljiva’’
Primer – Hornove formule
Korektnost algoritma Ako algoritam vraća dodeljivanje, onda ono zadovoljava i implikacije i negativne klauzule Hornove formule, pa to zaista jeste zadovoljavajuće dodeljivanje. Prema tome, ostaje samo da se uverimo da ako algoritam ustanovi da nema zadovoljavajućih dodeljivanja, tada ih zaista nema. To je zato što važi sledeće: Ako je algoritam neke promenljive postavio da budu tačne, tada one moraju biti tačne u bilo kom zadovoljavajućem pridruživanju. Dakle, ako dodeljivanje istinitosnih vrednosti koje smo dobili nakon while petlje ne zadovoljava negativne klauzule, tada uopšte nema zadovoljavajućih dodeljivanja. Hornove formule su u srži Prologa (“� programming by logic”� ), jezika u kome programiramo specifikovanjem željenih svojstava izlaza , koristeći proste logičke izraze. Pokretač Prolog interpretatora je naš napred opisani pohlepni algoritam. Algoritam se može implementirati u vremenu linearnom u odnosu na dužinu formule.
Pokrivanje skupa Tačke u Fig. 5. 11 predstavljaju kolekciju gradova okruga koji je u ranoj fazi planiranja i odlučivanja gde da se uvedu škole. Postoje samo dva ograničenja: svaka škola treba da bude u gradu, i ni do jedne od njih ne treba putovati duže od 30 milja. Postavlja se pitanje: Koji je minimalni potreban broj škola? Ovo je tipični problem pokrivanja skupova (set covering problem). problem
Pokrivanje skupa •
Pokrivanje skupa •
Pokrivanje skupa Prema tome, pohlepna strategija će obezbediti da što daje Pogodnija granica može se dobiti iz sledeće nejednakosti koja se jasno vidi iz sledeće slike:
Pokrivanje skupa •
- Skaitymo strategijų kortelės
- Skaitymo strategijų kortelės
- 4 bitowy kod graya
- Algoritmi notevoli
- Iterazione enumerativa
- Teoria degli algoritmi
- Algoritmo dfs
- Sazarotais algoritms
- Teorema de master
- Ciklicni algoritmi zadaci i resenja
- Algoritmi zadaci
- Machine learning algoritmi
- Primeri algoritama iz svakodnevnog zivota
- Sortare metoda bulelor
- Introduzione agli algoritmi e strutture dati
- Ricerca binaria c++
- Algoritmi clasa 5 exemple
- Determinisanost
- Algoritmi approssimati
- Težinski graf
- Algoritmi rubikova kocka
- Algoritmi zadaci
- Machine learning algoritmi
- Algoritmi elementari
- 10 algoritmi
- Algoritmi notevoli
- Algoritmi i programiranje
- Algoritmi ne informatik
- Pienin yhteinen monikerta
- Linijska struktura zadaci
- Algoritmi i programiranje
- Dijagram toka primjeri
- Algoritmi informatika
- Teorija algoritama
- Algoritmo dfs
- Analisi degli algoritmi
- Algoritmi genetici
- Linijski algoritam
- Ultima cifra a unui numar
- Metoda cfop
- Limbajul pseudocod
- Webnstudy
- Znanje.org c++
- Rimsko osvajanje italije
- Drzewo huffmana
- Kod caa spanm
- Prüfer kód
- Tjeranje kobile
- Kod os 27000
- Yüzdeler
- Mateusz laskowski
- Bináris kód megfejtése
- Binarni kodovi
- Kod akaun aset
- T.gaji (tahun sms) maksud
- Binarny kod prevod
- Mavi kod numarası
- Sistem organa za disanje kod coveka
- Naslednička izjava kod notara
- Kod genetyczny bezprzecinkowy
- Wykorzystanie komputerów
- Vodafone flotta csomag
- Disgnozija