predavanje 1planinic/nast/spa/spa1.pdfuvodno predavanje •znači želite se baviti računalima u...

60
Uvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF Predavanje Predavanje 1 1

Upload: others

Post on 24-Jan-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Uvodno predavanje•Znači želite se baviti računalima u životu?

•Idemo natrag u osnovnu školu: Množenje dva broja

Mirko PlaninićPMF

Predavanje Predavanje 11

Page 2: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Želite se baviti računalima?

Page 3: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Da li je vaš cilj da postaneteobičan programer?

Page 4: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Ili veliki vođa i mislilac ?

Page 5: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Originalno razmišljanje

Page 6: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Šef daje zadatak:

– Zadane su današnje cijene svinjetine, žita …– Zna se koliko čega ide u hotdog.– Napravite najjeftiniji hotdog.

Industrija svakodnevno postavlja takva pitanja.

Page 7: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Vaš odgovor može biti:

• Hm? Recite mi što da isprogramiram.

Sa sve sofisticiranijim softwareskim sistemima,potreba za običnim programerima će nestajati.

Page 8: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Vaš odgovor može biti i:

• Naučio sam onaj super algoritam koji ću ovdje primjeniti.

Uskoro ćete sve poznate algoritme

moći naći u bibliotekama.

Page 9: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Vaš odgovor može biti:

• Mogu napraviti novi algoritam za vas.

Veliki mislioci će se

uvijek tražiti.

Page 10: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Budućnost pripada računalnom znalcu koji posjeduje

– Sadržaj: Najnoviji popis problema i rješenja– Metodu: Principe i tehnike za rješavanje

velikog skupa nepoznatih problema koji se pojavljuju u brzomijenjajućem području rada

Page 11: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Sadržaj kolegija

• Popis algoritama. – Naučite ih isprogramirati.– Budite sigurni da rade.– Primjenite ih. class InsertionSortAlgorithm extends SortAlgorithm

{

void sort(int a[]) throws Exception {

for (int i = 1; i < a.length; i++) {

int j = i;

int B = a[i];

while ((j > 0) && (a[j-1] > B)) {

a[j] = a[j-1];

j--; }

a[j] = B;

}}

Page 12: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Sadržaj Kolegija• Pregled tehnika stvaranja algoritama.• Apstraktno razmišljanje.• Kako razviti nove algoritme za bilo koji

problem koji može iskrsnuti.

Page 13: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Otklanjanje Bug-ova

Page 14: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Istraživanje:

• Programerima je dan zadatak da naprave binarno pretraživanje.

Page 15: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Istraživanje:

• Programerima je dan zadatak da naprave binarno pretraživanje.

80% ih je napravilo krivo

Sva sreća da nije bilo za nuklearnu elektranu.

Page 16: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Što im je nedostajalo?

Page 17: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Što im je nedostajalo?

• Formalne metode dokazivanja?

Page 18: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Što im je nedostajalo?

• Formalne metode dokazivanja ?

Da, vjerojatno ...

Industrija počinje shvaćati da su formalni dokazi

potrebni.

Ali i bez formalnih

metoda …. ?

Page 19: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Što im je nedostajalo?• Fundamentalno razumijevanje tehnika

stvaranja algoritama.• Apstraktno razmišljanje.

Page 20: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Sadržaj kolegija

Notacije, analogije, i apstrakcijeza razvijanje,

razmišljanje o, i opisivanje algoritama

Page 21: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Pitanja se smiju postavljati !

Page 22: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Pregled fundamentalnihideja i tehnika stvaranja

algoritama

Na primjer . . .

Page 23: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Počnimo s matematikom

Veličina ulaza

Vrije

me

Klasificirane Funkcijef(i) = nΘ(n)

Kompleksnost vremenat(n) = Θ(n2)

Jednostavno zbrajanje∑i=1 f(i).

Rekurzivne RelacijeT(n) = a T(n/b) + f(n)

Page 24: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Iterativni algoritmiInvarijantne petlje

<preCond> codeA loop

<loop-invariant>exit when <exit Cond>codeB

codeC<postCond>

i-1 i

ii0 T+1

9 km

5 km

Korak po korakCode Utrka

Page 25: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Rekurzivni algoritmi

?

?

Page 26: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Pohlepni algoritmi

Page 27: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Algoritmi DinamičkogProgramiranja

Page 28: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Redukcija

=

Page 29: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Korisne metode učenja

Page 30: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Čitajte unaprijed

Predavanja možete naći na web - u :www.phy.hr/~planinic/nastava/nastava.htmlTo olakšava diskusiju za vrijeme predavanja.

Page 31: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Objašnjavanje

• Morate znati objasniti stvar.

• Najbolje je da objašnjavate sebi i drugima glasno, pa čak i svojem punjenom medvjedu.

Page 32: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Dok dan traje ...

Razmišljajte (sanjarite)

Fizika nije uvijek linearnorazmišljanje.

Dopustite da sržmaterijala uđe u vašu

podsvijest.Isprobajte ideje koje

nastaju kao bljeskovi inspiracije.

Page 33: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Budite kreativni•Pitajte pitanja. • Zašto je to napravljeno na ovaj način ili drugi ?

Page 34: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Pogađanja i protuprimjeri

• Pogađajte potencijalne algoritme za rješavanje problema.

• Tražite one primjere ulaznih podataka za koje algoritam daje krive rezultate.

Page 35: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Ponovno podešavanje:Najbolje rješenje dolazi kad se proces

podešavanja algoritma ponavlja

Page 36: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Vratimo se u osnovnu školu:Kako ćemo množiti dva broja ?

2 X 2 = 5

Nekoliko primjera AlgoritamaNekoliko primjera Algoritama

Page 37: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Kompleksni brojevi•Sjećate se kako se množe kompleksni brojevi?

•(a+bi)(c+di) = [ac –bd] + [ad + bc] i

•Input: a,b,c,d Output: ac-bd, ad+bc

•Ako množenje realnih brojeva košta 1 kn a zbrajanje 1 lipu. Koji je najjeftiniji način da se dobije izlaz (output) pomoću ulaza (inputa)?

•Možete li izračunati za manje od 4.02 kn?

Page 38: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Gaussova metoda za 3.05 kn :Input: a,b,c,d Output: ac-bd, bc+ad

• X1 = a + b• X2 = c + d• X3 = X1 X2 = ac + ad + bc + bd• X4 = ac• X5 = bd• X6 = X4 – X5 = ac-bd• X7 = X3 – X4 – X5 = bc + ad

Page 39: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Pitanje:•Gausov “hack” štedi jedno od 4 množenja. Zahtjeva 25% manje posla.

•Postoji li neki primjer gdje izvođenje 3 množenja umjesto 4 daje dramatične uštede?

Page 40: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

BonzoOdette

Page 41: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Kako zbrojiti 2 n-bitna broja ?

**

**

**

**

**

**

**

**

**

**

**+

Page 42: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Kako zbrojiti 2 n-bitna broja ?

**

*

* **

**

**

**

**

**

**

**

**

**+

Page 43: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Kako zbrojiti 2 n-bitna broja ?* **

* **

*

**

*

**

**

**

**

**

**

**

**+

Page 44: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Kako zbrojiti 2 n-bitna broja ?* **

* **

*

* **

*

**

*

**

**

**

**

**

**

**+

Page 45: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Kako zbrojiti 2 n-bitna broja ?* **

* **

*

* **

*

* **

*

**

**

*

**

**

**

**

**+

Page 46: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Kako zbrojiti 2 n-bitna broja ?* **

*

* **

*

* **

*

* **

*

* **

*

* **

*

* **

*

* **

*

* **

*

***

*

**

*

+*

*

Page 47: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Kompleksnostvremena običnog zbrajanja

**

*

* **

*

* **

*

* **

*

* **

*

* **

*

* **

*

* **

*

* **

*

* **

*

+*

*

* **

* T(n) = Vrijeme potrebno za zbrajanje 2 n-bitna broja= θ(n) = linearno u vremenu.

Na svakom računalu zbrajanje 3 bita se može napraviti u konačnom vremenu.

Page 48: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

f = θ(n) znači da se f može staviti u sendvič između dvije linije

# broj bitova u brojevima

vr

i

j

e

m

e

Page 49: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Pitajte pitanja!

Rudich www.discretemath.com

Page 50: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Možemo li zbrajati brže?

• PITANJE: Postoji li algoritam koji zbraja dva n-bitna broja čije vrijeme raste pod-linearno s n ?

Page 51: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Svaki algoritam za zbrajanje mora pročitati ulazne bitove

– Pretpostavite da postoji misteriozni algoritam koji ne ispituje ulazne bitove

– Dajte algoritmu par ulaznih brojeva. Mora postojati neka bit lokacija i koju ne moramo ispitivati

– Ako algoritam ne radi na paru brojeva našli smo Bug

– Ako je algoritam ispravan, promijenite bit na položaju i i dajte mu novi par brojeva. Daje isti odgovor kao i prije znači da mora biti pogrešan jer se suma morala promijeniti.

Page 52: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Svaki algoritam za zbrajanje mora biti linearan s obzirom na veličinu broja.

Zbrajanje je najbolji mogući algoritam(ne može biti jednostavnije).

Page 53: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Kako množiti 2 n-bitne brojeve.

X * * * * * * * * * * * * * * * *

* * * * * * * ** * * * * * * *

* * * * * * * ** * * * * * * *

* * * * * * * ** * * * * * * *

* * * * * * * ** * * * * * * *

* * * * * * * * * * * * * * * *

n2

Page 54: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Kako množitiKako množiti 2 n2 n--bitbitnana broja?broja?

X * * * * * * * * * * * * * * * *

* * * * * * * ** * * * * * * *

* * * * * * * ** * * * * * * *

* * * * * * * ** * * * * * * *

* * * * * * * ** * * * * * * *

* * * * * * * * * * * * * * * *

n2

Aha! Ukupno vrijeme je ograničeno s cn2.

Page 55: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Zbrajanje: Linearno u vremenuMnoženje: Kvadratno u vremenuv

r

i

j

e

m

e # bitova u brojevima

•Bez obzira na razliku u konstantama kvadratičnakrivulja će dominirati nad linearnom.

Page 56: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Super! Pokazali smo da kad veličina brojeva raste množenje ispada

kompliciranije.

Matematički dokaz uvriježenog mišljenja.

Page 57: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Nemojte prerano zaključivati!Pokazali smo samo da množenje troši

više vremena nego zbrajanje.

Da bismo dokazali da je množenje težiproblem od zbrajanja trebali bismo pokazati da niti jedan algoritam za

množenje ne radi linearno u vremenu.

Page 58: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Zbrajanje: θ(n) vrijemeMnoženje: θ(n2) vrijeme

Postoji li pametan algoritam koji bi množio dva broja

linearno u vremenu?

Page 59: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

Usprkos godinama istraživanja nitko ga nije pronašao! Ako riješte taj problem

PMF će vam dati doktorat !

Page 60: Predavanje 1planinic/nast/spa/spa1.pdfUvodno predavanje •Znači želite se baviti računalima u životu? •Idemo natrag u osnovnu školu: Množenje dva broja Mirko Planinić PMF

KRAJ