Uvodno predavanje - PowerPoint PPT Presentation

About This Presentation
Title:

Uvodno predavanje

Description:

Title: PowerPoint Presentation Author: Mirko Planini Last modified by: Mirko Planini Created Date: 8/14/2000 8:34:24 PM Document presentation format – PowerPoint PPT presentation

Number of Views:116
Avg rating:3.0/5.0
Slides: 65
Provided by: MirkoPl
Category:

less

Transcript and Presenter's Notes

Title: Uvodno predavanje


1
Uvodno predavanje
Apstraktno Razmišljanje o Algoritmima
  • Znaci želite se baviti racunalima u životu?
  • Idemo natrag u osnovnu školu Množenje dva broja
  • Mirko Planinic
  • PMF

Predavanje 1
2
Želite se baviti racunalima?
3
Da li je vaš cilj da postanete obican
programer?
4
Ili veliki voda i mislilac ?
5
Originalno razmišljanje
6
Šef daje zadatak
  • Zadane su današnje cijene svinjetine, žita
  • Zna se koliko cega ide u hotdog.
  • Napravite najjeftiniji hotdog.

Industrija svakodnevno postavlja takva pitanja.
7
Vaš odgovor može biti
  • Hm? Recite mi što da isprogramiram.

Sa sve sofisticiranijim softwareskim
sistemima,potreba za obicnim programerima ce
nestajati.
8
Vaš odgovor može biti i
  • Naucio sam onaj super algoritam koji cu
  • ovdje
    primjeniti.

Uskoro cete sve poznate algoritme moci naci u
bibliotekama.
9
Vaš odgovor može biti
  • Mogu napraviti novi algoritam za vas.

Veliki mislioci ce se uvijek tražiti.
10
Buducnost pripada racunalnom 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
    brzomijenjajucem podrucju rada

11
Sadržaj kolegija
  • Popis algoritama.
  • Naucite ih isprogramirati.
  • Budite sigurni da rade.
  • Primjenite ih.

class InsertionSortAlgorithm extends
SortAlgorithm void sort(int a) throws
Exception for (int i 1 i lt a.length i)
int j i int B ai while
((j gt 0) (aj-1 gt B))
aj aj-1
j-- aj B

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

13
Otklanjanje Bug-ova
14
Istraživanje
  • Programerima je dan zadatak da naprave binarno
    pretraživanje.

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

80 ih je napravilo krivo Sva sreca da nije bilo
za nuklearnu elektranu.
16
Što im je nedostajalo?
17
Što im je nedostajalo?
  • Formalne metode dokazivanja?

18
Što im je nedostajalo?
  • Formalne metode dokazivanja ?

Da, vjerojatno ... Industrija pocinje shvacati da
su formalni dokazi potrebni. Ali i bez formalnih
metoda . ?
19
Što im je nedostajalo?
  • Fundamentalno razumijevanje tehnika stvaranja
    algoritama.
  • Apstraktno razmišljanje.

20
Sadržaj kolegija
  • Notacije, analogije, i apstrakcije
  • za razvijanje,
  • razmišljanje o,
  • i opisivanje algoritama

21
Pitanja se smiju postavljati !
22
Pregled fundamentalnih ideja i tehnika stvaranja
algoritama
Na primjer . . .
23
Pocnimo s matematikom
24
Iterativni algoritmi Invarijantne petlje
ltpreCondgt codeA loop
ltloop-invariantgt exit when ltexit Condgt
codeB codeC ltpostCondgt
Korak po korak
Code
Utrka
25
Rekurzivni algoritmi
?
?
26
Greedy Algoritmi
27
Dynamic Programing Algorithms
28
Redukcija

29
Korisne metode ucenja
30
Read Ahead
  • You are expected to read the lecture notes before
    the lecture.
  • This will facilitate more productive discussion
    during class.

31
Objašnjavanje
  • Morate znati objasniti stvar.
  • Najbolje je da objašnjavate sebi i drugima
    glasno, pa cak i svojem punjenom medvjedu.

32
Razmišljajte (sanjarite)
Dok dan traje ...
  • Fizika nije uvijek linearno
  • razmišljanje.
  • Dopustite da srž materijala ude u vašu
    podsvijest.
  • Isprobajte ideje koje nastaju kao bljeskovi
    inspiracije.

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

34
Pogadanja i protuprimjeri
  • Pogadajte potencijalne algoritme za rješavanje
    problema.
  • Tražite one primjere ulaznih podataka za koje
    algoritam daje krive rezultate.

35
Ponovno podešavanjeNajbolje rješenje dolazi kad
se proces podešavanja algoritma ponavlja
36
Vratimo se u osnovnu školuKako cemo množiti dva
broja ?
Nekoliko primjera Algoritama
37
Kompleksni brojevi
  • Sjecate se kako se množe kompleksni brojevi?
  • (abi)(cdi) ac bd ad bc i
  • Input a,b,c,d Output ac-bd, adbc
  • Ako množenje realnih brojeva košta 1 kn a
    zbrajanje 1 lipu. Koji je najjeftiniji nacin da
    se dobije izlaz (output) pomocu ulaza (inputa)?
  • Možete li izracunati za manje od 4.02 kn?

38
Gaussova metoda za 3.05 kn Input a,b,c,d
Output ac-bd, bcad
  • 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

39
Pitanje
  • Gausov hack štedi jedno od 4 množenja. Zahtjeva
    25 manje posla.
  • Postoji li neki primjer gdje izvodenje 3 množenja
    umjesto 4 daje dramaticne uštede?

40
Odette
Bonzo
41
Kako zbrojiti 2 n-bitna broja ?












42
Kako zbrojiti 2 n-bitna broja ?












43
Kako zbrojiti 2 n-bitna broja ?












44
Kako zbrojiti 2 n-bitna broja ?












45
Kako zbrojiti 2 n-bitna broja ?












46
Kako zbrojiti 2 n-bitna broja ?













47
Kompleksnost vremena obicnog zbrajanja
Na svakom racunalu zbrajanje 3 bita se može
napraviti u konacnom vremenu.
T(n) Vrijeme potrebno za zbrajanje 2 n-bitna
broja ?(n) linearno u vremenu.
48
f ?(n) znaci da se f može staviti u sendvic
izmedu dvije linije
vr i j e m e
broj bitova u brojevima
49
Pitajte pitanja!
  • Rudich www.discretemath.com

50
Možemo li zbrajati brže?
  • PITANJE Postoji li algoritam koji zbraja dva
    n-bitna broja cije vrijeme raste pod-linearno s n
    ?

51
Svaki algoritam za zbrajanje mora procitati
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 znaci da mora biti pogrešan
    jer se suma morala promijeniti.

52
Svaki algoritam za zbrajanje mora biti linearan
s obzirom na velicinu broja. Zbrajanje je
najbolji moguci algoritam (ne može biti
jednostavnije).
53
Kako množiti 2 n-bitne brojeve.

X










54
Aha! Ukupno vrijeme je ograniceno s cn2.
55
Zbrajanje Linearno u vremenuMnoženje Kvadratno
u vremenu
time
of bits in numbers
  • Bez obzira na razliku u konstantama kvadraticna
    krivulja ce dominirati nad linearnom.

56
Super! Pokazali smo da kad velicina brojeva raste
množenje ispada kompliciranije. Matematicki
dokaz uvriježenog mišljenja.
57
Nemojte prerano zakljucivati!Pokazali smo samo
da množenje troši više vremena nego zbrajanje.
Da bismo dokazali da je množenje teži problem
od zbrajanja trebali bismo pokazati da niti jedan
algoritam za množenje ne radi linearno u vremenu.
58
Zbrajanje ?(n) vrijemeMnoženje ?(n2) vrijeme
Postoji li pametan algoritam koji bi množio dva
broja linearno u vremenu?
59
Usprkos godinama istraživanja nitko ga nije
pronašao! Ako riješte taj problem PMF ce vam dati
doktorat !
60
KRAJ
61
T(n)
n

T(n/2)
T(n/2)
62
T(n)
n

63
n
n/2 n/2 n/2


Level i is the sum of 3i copies of n/2i

. . . . . . . . . . . . . . . . . . . . . . . . . .
11111111111111111111111111111111111111111111
0
1
2
n/4 n/4 n/4 n/4 n/4 n/4 n/4 n/4
n/4
i
64
1n
3n/2
9n/4
3i n/2i
3lognn/2logn nlog31
Total ?(nlog3) ?(n1.58..)
65
Dramatic improvement for large n
Not just a 25 savings! ?(n2) vs ?(n1.58..)
66
Multiplication Algorithms
Kindergarten n2n
Grade School n2
Karatsuba n1.58
Fastest Known n logn loglogn
67
Youre cool! Are you free sometime this weekend?
Not interested, Bonzo. I took the initiative and
asked out a guy in my 3101 class.
68
End
  • Restart Introduction
  • Relevant Mathematics
Write a Comment
User Comments (0)
About PowerShow.com