• Non ci sono risultati.

Tempo di calcolo

N/A
N/A
Protected

Academic year: 2022

Condividi "Tempo di calcolo"

Copied!
20
0
0

Testo completo

(1)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Tempo di calcolo

Introduzione alla complessità computazionale concreta

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Quale algoritmo è più veloce?

Ci interessa rispondere:

• per capire quanto tempo ci vuole per eseguire un programma che lo implementa

• per stimare la grandezza massima

dell’ingresso di un’esecuzione ragionevole

• per confrontare l’efficienza di più algoritmi che risolvono lo stesso problema

• per sapere quale parte del codice sarà eseguita più volte ...

Altre misure oltre il tempo

• VSD]LR = quanta memoria occorre per eseguire l’algoritmo

• KDUGZDUH = numero di processori, numero

dei componenti (porte) di un circuito, ecc...

(2)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Il tempo di calcolo è una funzione

Programma

ingresso/istanza uscita/risposta

Quanto tempo impiega?

dipende dall’ ingresso

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Definizione del tempo

Calcoliamo:

• il numero dei secondi (dipendente dalla macchina)

• il numero delle operazioni elementari, ciascuna con un proprio coefficiente

• il numero delle volte che una specifica operazione viene eseguita

Sotto certe condizioni queste misure differiscono di un fattore

costante!

Esempio: minimo in un vettore

costo volte



(, , ) 1 1

Pre:  vettore di dimensione > Post: ritorna il minimo in [ ..]

 

[ ] 2 1



+ 1    3  1

 [ ] <     4

 

[ ] 5







 

6 1



!

 

"#$%%&('*)+



%,.-



-/

0

-

0

 

(3)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Esempio: minimo in un vettore

Posto  = + 1, vale a dire il numero degli elementi tra i quali cerchiamo il minimo, si ha

1

243

5

5

5

5

5

5

5

5

2 5525525255

5 55252255

5

2

6

7

+

=

+

− + + + +

=

+

− +

− + + +

=

+

− +

− + + +

) (

) (

) 1 ( ) 1 ( )

, (

6 5 4 2 1 5 4 3

6 5 5 4 4 3 2 1

6 5 4 3 2 1

con 8 e 9 costanti.

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

La dimensione dell’ ingresso

Nel caso di

:<;=>;?A@

(

B

,

C

,

D

) ciò che conta è il numero degli elementi in

B

[

C

..

D

], non il loro valore

In generale la dimensione dell’ ingresso è una

misura della sua rappresentazione

(a meno di una costante)

| .E = dimensione di

= num. bit per rappresentare GF log2( + 1) 

| [0.. −1] | = dimensione di [0.. −1]

=  , dove = num. bit del generico el. di []

Quale ingresso di dimensione Q?

Supponiamo di voler esprimere

H

in funzione della dimensione dell’ istanza, invece che dell’ istanza stessa:

|I| = |J | non implica K (I ) = K(J )

Come definire K sulla dimensione?

(4)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Quale ingresso di dimensione Q?

Supponiamo di voler esprimere

H

in funzione della dimensione dell’ istanza, invece che dell’ istanza stessa:

Distinguiamo allora i casi

caso migliore: I t.c. K migliore(|I|) = K(I)

}

|

| : ) ( min{

)

migliore

( Q 7 [ [ Q

7 = =



(, , ): quando il minimo è[ ]

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Quale ingresso di dimensione Q?

Supponiamo di voler esprimere

H

in funzione della dimensione dell’ istanza, invece che dell’ istanza stessa:

Distinguiamo allora i casi

caso peggiore: I t.c. K peggiore(|I |) = K(I)

}

|

| : ) ( max{

)

peggiore

( Q 7 [ [ Q

7 = =



(, , ): quando [ ..] è ordinato in senso decrescente

Quale ingresso di dimensione Q?

istanze in input 5 ms

3 ms

1 ms

A B C D E F G

tempo nel caso peggiore

tempo nel caso migliore

In questo grafico non vi è alcun ordine sulle istanze

(5)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Quale ingresso di dimensione Q?

Come potremmo definire un caso

“tipico”, o medio?

“medio” vuol dire

“valore atteso di una variabile casuale”

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Il caso medio

L = spazio campione

s ∈L evento elementare

A ⊆ S evento 0

1

Pr

Pr distribuzione di probabilitàse

= M

NPO

Q )Pr()

Pr(

1 ) Pr(

)

Pr( =

=

R

SUT

V

Il caso medio

WW

X

variabile casuale

=

=

=

=

= Y

Z

[

\

Z ]

^

]

_

`

]

^

_

) ( ,

) Pr(

} ) ( : Pr{

} Pr{

S = spazio campione

distr. prob. quando X valeI

(6)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Il caso medio

Ogni variabile casuale X su L definisce un nuovo spazio

} Pr{

) Pr(

}, , ) ( : { )

( 6 [ ; V [ V 6 [ ; [

; = = ∈ = =

i cui eventi elementari sono i valori di a .

=

) (

} Pr{

b

c

d

[

; Valore attesodi [

a rispetto a Pr

evento “a (e) = f” verosimiglianza dell’ evento

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Il caso medio

Per definire gmedia(h) poniamo:

1. i = insieme delle istanze di dimensione h 2. a (e) = g (e) dove |e| = h

3. una distribuzione di probabilità Pr su a (i )

= =

= j

k l

m

n

l

m

o

m

|

|

mediaPr ( ) ( )Pr{ ( )}

Concetti e formule un po’

complicati: e poi come si stabilisce quale sia una distribuzione realistica?

Il caso medio

Se a (i ) ha cardinalità finita p e Pr è uniforme:

) ( ogni per 1 }

Pr{ s r q

t

s

r ∈==

= = =

= u

v

u

v w

x

y

y

w

x

z

x

|

|

|

|

media( ) ( )1 1 ( )

allora il valore atteso diventa una “ semplice” media:

(7)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Tempo degli algoritmi ricorsivi

costo volte

{|}~|€

(, ‚ , ƒ) „1 1

Pre:  vettore di dimensione > ‚ƒ Post: ritorna il minimo in [‚..ƒ]

|…‚ = ƒ‡†ˆ‰} „2 1

Š

‰†‹ Š} [‚] „3 1

‰Œ/‰

p{A|}~|€ (, ‚+1, ƒ) „4+ g(h −1) 1

|… [‚] < pކˆ‰ } „5 1

Š

‰†‹ Š} [‚] „6 1

‰Œ/‰

Š

‰†‹ Š} p „

7 1

h = ƒ‚ + 1

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Tempo degli algoritmi ricorsivi

Considerando il caso peggiore quando h > 1:





‘ ’’’’’’

‘



‘

+

=

+ + + + +

= ) 1 (

} , max{

) 1 ( )

( 1 2 4 5 6 7

Quindi una definizione implicita di g (h) è



>

+

= =

1 se ) 1 (

1 ) se

( • “ ” “

“

–

“

•

dove „ = „1+ „2+ „3.

Tempo degli algoritmi ricorsivi

Per ottenere una forma esplicita svolgiamo:

) ( ) 1 ( ) 1 (

0 per ) (

2 ) 2 ( )

2 (

) 1 ( ) (

—

˜

—š™

—

™

› ™œœ—œ™

› —™

›

—

—

™

› —™

›

™

›

− +

=

− +

=

<

≤ +

=

+

= + +

= +

=

žž

che ha la stessa forma della funzione tempo di {|}|Ÿ .

(8)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Tempo degli algoritmi ricorsivi

Quante sono le mosse necessarie per spostare con l’ algoritmo

¡.¢} š|

una torre di h dischi?

£¥¤¦¨§©

(ª«¬­®¯°®, ±®ª°²¯³´²«/¯®, ³µª²²«: Torre)

©·

la torre che si trova sopra ª«¬­®¯°® è vuota ¸¹º¦ sposta il disco in ª«¬­®¯°® su ±®ª°²¯³/´²«¯® » (1) = 1

º½¼¾º

Hanoi (Sopra(ª«¬­¨®¯°®), ³µ/ª²²«, ±®ª°²¯³/´²«/¯®) » (¯ − 1) sposta il disco in ª«¬­®¯°® su ±®ª°²¯³/´²«¯® 1 Hanoi (³µ/ª²²«, Sopra(±®ª°²¯³´²«¯®), ª«¬­¨®¯°®) » (¯ − 1)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Tempo degli algoritmi ricorsivi

>

+

= =

1 se 1 ) 1 ( 2

1 se ) 1

( À ¿ ¿

¿

¿

ÀSvolgendo

Á

Â

Â

Á

à Á

Ã

Á

ÃÁ

Ã

Á

à ÄÅ Å

Ä <+

=

+ +

= + +

= +

=

=2 per 0

) ( 2

1 2 ) 2 ( 4 1 ) 1 ) 2 ( 2 ( 2

1 ) 1 ( 2 ) (

1 0

Æ

si ottiene

Quando Ç = È – 1, usando la formula per la serie geometrica

1

1 1

0

= +

Ì=Ê ÉËÊÌ ÉÉ otteniamo ()=21+

=022=

ÍÎ=102Î=22Í11=2Í1

ÍÎ Î

Í

Ï

Ð

Il metodo di “ iterazione”

Per risolvere:



>

+ +

= Ò Ó ÒÑ

ÔÕ

Ò

Ö

ר

Ñ

Ò

Ù

Ò

Ø

se ) ( )) ( (

) se

(

(con Ú (È ) < È ) si itera la definizione su È > Û:

Ü=

+ + + +

=

+ +

= Ý

Þ

ß/à

Ý

Þ

á

ß/à

Þ

á

á

âã

â Ý

Þ

ß/à

Þ

á

âã

Þ

ã

) ( ) )) ( ( ))) ( ( ( (

) ( )) ( ( ) (

cercando di individuare una forma

) , ( ) , , ( )) ( ( ) ,

(ì ä ë ê [] ç é è ç ä æ å ä

í î

+ +

Se se È > Û e Ç è il min. t.c. Ú [ï](È ) ≤Û, allora, ) , ( ) , , ( ) , ( )

(ó ø ÷ ð ö õ ô ó ð ò ñ ð

ù ++⋅=

Ú

[ï](È ) = Ú (… Ú (È )…) Ç volte

(9)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Come confrontare funzioni

• Sappiamo che il tempo di calcolo non è un numero ma una funzione

• Per confrontare il tempo di calcolo di due algoritmi dobbiamo confrontare tra loro funzioni

Come è possibile confrontare tra loro oggetti

infiniti?

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Come confrontare funzioni

100 200 300 400 500 600 700 1000

2000 3000 4000 5000 6000 7000

Ú (ú ) = 7ú

û (ú) = ú2 / 75

Ú (ú ) < û (ú) quando ú > 525

Trascuriamo un numero finito di casi

20 40 60 80 100

5000 10000 15000 20000

Sempre che quelli non siano

proprio i più frequenti!

Possiamo allora trascurare un numero

finito di casi

(10)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Le costanti non contano (veramente?)

ü dimensione massima di un problema trattabile col computer

ý

1usando un algoritmo che impiega tempo þ (È ) = 2ÿ:









+

+

=

=

=

10

1000 log

2 1000 2 1000 2

2

2

Costruiamo un computer  2

1000 volte più veloce

Quanto vale  ′ se

? 1000 2 2 = 

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Le costanti non contano (veramente?)

20 40 60 80 100

5000 10000 15000 20000



(

ÿ

) = 100

ÿ



(

ÿ

) = 2

ÿ

2

L’ algoritmo A è migliore dell’ algoritmo B per  > 50;

• Rimpiazzare B con A è meglio che raddoppiare la velocità del computer:

0 ) 2 1000 (

) 1000 ( ) 2 100 (

) 100

( = =

Le costanti non contano perché

Quando la complessità è più che polinomiale, moltiplicando per una costante la dimensione massima di un problema trattabile praticamente non cambia

Anche se la complessità è polinomiale, la

“ velocità” di crescita di una funzione non dipende dalla scelta della costante

La stima esatta delle costanti è impossibile in

pratica (diversità delle architetture, efficienza dei

compilatori, astrazione circa il tempo impiegato da

istruzioni di diverso tipo) e conviene astrarne in

teoria

(11)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Ordini di grandezza: 2-grande

0

( )

 ( )

) ( ) ( . ,

0 )) ( ( )

( 0 0 























 ≤>∀>∃⇔∈

P. Bachmann 1892

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Confronto asintotico tra funzioni

¬  ⇔ ∃. ¬() ≤() dove ∃. P() ⇔ ∀  . P().

Oss. ∀. P() ⇔ ¬ ∃. ¬ P()

. P() ⇔ ¬ ∀. ¬ P()





  ⇔ ∀. () ≤()

dove ∀. P() ⇔ ∃  . P().



La relazione ≤ è un preordine

  non è tricotomica, essendovi funzioni inconfrontabili:

() = 1 se  pari

0 se  dispari () = 0 se  pari 1 se  dispari

  non è un ordine parziale, non essendo antisimmetrica:

    ⇔ ∃  . () = ()

In generale  ≠ 0.

La relazione   è soltanto un preordine (riflessiva e transitiva). Infatti:

(12)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Le costanti non contano

Per ogni  ,  , e per ogni costante  > 0

 ( ) ∈ ( ( )) ⇔ ( ) ∈ ( ( ))

Per ogni



,



, e per ogni costante



> 0



(



) ∈



(



(



)) ⇔



(



) ∈



(



(



))

⇒) se q.o. ( ) ≤ ⋅ ( ) allora ⋅ è la costante cercata.

⇐) esistono > 0 e 0tali che ( ) ≤ ⋅ ( ), per ogni 0

posto ! = / (esiste perché ≠ 0), abbiamo ! > 0 e

( ) ≤ ⋅ ( ) = ! ( )

per ogni 0" # (1) include l’ insieme delle funzioni costanti

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Ordini di grandezza: 2-grande

3 Q

2

+ 7 Q + 8 ∈ 2(Q

2

)

) ( ) ( .

, Q

0

Q Q

0

I Q FJ Q

F ∀ ≥ ≤

$&%

(')

(()) ∈* (%()))

( (')

? 3 Q

2

+ 7 Q + 8 ≤ c· Q

2

Ordini di grandezza: 2-grande

3 Q

2

+ 7 Q + 8 ∈ 2(Q

2

)

) ( ) ( .

, Q

0

Q Q

0

I Q FJ Q

F ∀ ≥ ≤

$&%

(')

(()) ∈* (%()))

( (')

4 ? 3 Q

2

+ 7 Q + 8 ≤ 4· Q

2

(13)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Ordini di grandezza: 2-grande

3 Q

2

+ 7 Q + 8 ∈ 2(Q

2

)

) ( ) ( .

, Q

0

Q Q

0

I Q FJ Q

F ∀ ≥ ≤

$&%

(')

(()) ∈* (%()))

( (')

4 3·1

2

+ 7·1 + 8 ≤ 4·1

2

1

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Ordini di grandezza: 2-grande

3 Q

2

+ 7 Q + 8 ∈ 2(Q

2

)

) ( ) ( .

, Q

0

Q Q

0

I Q FJ Q

F ∀ ≥ ≤

$&%

(')

(()) ∈* (%()))

( (')

4 3·9

2

+ 7·9 + 8 ≤ 4·9

2

9 314 324

Ordini di grandezza: 2-grande

3 Q

2

+ 7 Q + 8 ∈ 2(Q

2

)

) ( ) ( .

, Q

0

Q Q

0

I Q FJ Q

F ∀ ≥ ≤

$&%

(')

(()) ∈* (%()))

( (')

4 3·8

2

+ 7·8 + 8 ≤ 4·8

2

8 3·8

2

+ (7+1)·8

(14)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Ordini di grandezza: 2-grande

2

2

7 8 4

3

8 Q Q Q

Q ≥ ⇒ + + ≤

2 2

2

3

4 8

7

+ + ≤ ++ =+ La tesi equivale a

Dividendo per ,: -

-

≤ + 8

7

Ma 1

8 8

8⇒8≤ =

.

. e quindi /

/

= +

≤ +8 7 1 8 7

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Ordini di grandezza: 2-grande

Se S(Q) è un polinomio di grado N allora S(Q) ∈ 2(Q

0

)

Se S(Q) è un polinomio di grado N allora S(Q) ∈ 2(Q

0

)

1

1

2 2

1

2 2

1

2 2

2 3

4

5

3

5

5 3

3

5

3

6 )1()(

0 0

0

+

=

=

=

=

=

dove 7 = max{798: 0 ≤:;}.

I termini di grado inferiore si possono ignorare

Ordini di grandezza: 2-grande

Se S(Q) è un polinomio di grado K > N e coeff. dir. positivo, allora S(Q) ∉ 2(Q

0

) Se S(Q) è un polinomio di grado K > N e coeff. dir. positivo, allora S(Q) ∉ 2(Q

0

)

Tutto ciò che conta in un polinomio è il grado

P.a. se < (=) ∈> (=@?), allora se 7 è il coeff. direttore di < , q.o.

0 qualche per )

( ≤ >

D B ACB A

E B FF G

H

I

J

H

I

J

I@J

HKJ L

M

L

M

L

M =≤⇔≤⇔≤ //

ma

da cui una contraddizione quando , > N .

(15)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Ordini di grandezza: 2-grande

Riassumendo:

se

O

<

P

allora

Q

(

RTS

) ⊆

Q

(

RTU

) ma

Q

(

RTU

) ⊄

Q

(

RTS

)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Inclusioni

> (1) ⊆> (log , )

> (1) ⊆> (log , ) log , è sup. illimitata, mentre

V (,) ∈> (1) ⇒ ∃W,9XV (, ) ≤W

> (log , ) ⊆> (, )

> (log , ) ⊆> (, )

log ,,, = 2log Y ≤ 2Y perché, < 2Y per ogni , ,

> (, ) ⊆> (, log ,)

> (, ) ⊆> (, log ,)

, > 2 ⇒ log , > 1 ⇒, log ,[Z\,

Inclusioni 2(Q

]

) ⊂ 2(2

^

) 2(Q

]

) ⊂ 2(2

^

)

) ( ), ( ) 0

( )

lim ( _ ` a a ` _

b

a b

_

c ∉∈⇒=

per ogniW > 0, 0 ≤V (, )/d (, ) < W q.o., quindiV (, ) < Wd (, ) q.o.,

(16)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Inclusioni 2(Q

]

) ⊂ 2(2

^

) 2(Q

]

) ⊂ 2(2

^

)

) ( ), ( ) 0

( )

lim ( _ ` a a ` _

b

a b

_

c ∉∈⇒=

contraddizione

q.o.

) (

) ( q.o. 1

) ( ) ( . 0 )

( f ee

g

h

e

hg

e

f

h

g

i

f ≤⇒≤>∃⇒∈

P.a.

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Inclusioni 2(Q

]

) ⊂ 2(2

^

) 2(Q

]

) ⊂ 2(2

^

)

) ( ), ( ) 0

( )

lim a (bb _ ` a a ` _

_

c ∉∈⇒=

2 0 lim jk =

j l

Le funzioni esponenziali crescono più velocemente delle polinomiali

Classificazione delle funzioni

C os tan te Lo ga ritm ica Po li lo ga ritm ica Po lin om ial e E sp on en tzi ale Po li. E sp D op p. E sp

(log n)5 n5 25n 5 log n

5 2n5 225n

⊆ ⊆ ⊆ ⊆ ⊆

(17)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

n log n n n n log n n2 n2

2 1 1,41 2 2 4 8

4 2 2 4 8 16 64

8 3 2,83 8 24 64 512

16 4 4 16 64 256 4.096

32 5 5,66 32 160 1.024 32.768

64 6 8 64 384 4.096 262.144

128 7 11,31 128 896 16.384 2.097.152 256 8 16 256 2.048 65.536 16.777.216 512 9 22,63 512 4.608 262.144 134.217.728 1.024 10 32 1.024 10.240 1.048.576 1.073.741.824

2n

4 16 256 65.536 4.294.967.296

1,84 x 1019 3,40 x 1038 1,15 x 1077 1,34 x 10154 1,79 x 10308 n3

Funzioni ordinate per velocità di crescita

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Algebra di 2-grande

Spesso leggiamo eguaglianze del tipo ) 4 (

1 ), 2 (

1m 2+m =n m 2 m 2=n m 2

Prese alla lettera conducono ad assurdità: 2 2 4 1 2 1o +o = o

p(q) = r (s (q )) si interpreta come un’ equazione “ a senso unico” , con cui rimpiazziamo una funzione con il suo

ordine di grandezza

Algebra di 2-grande

Definiamo:

p (q ) + r (s (q)) = {t : ∃s ′∈r (s (q )) . ∀q . t (q ) ≤p (q ) + s ′(q )}

p (q ) ⋅r (s (q )) = {t : ∃s ′∈r (s (q )) . ∀q . t (q ) ≤p (q ) ⋅s ′(q )}

Allora ne segue:

p (q ) + r (s (q )) = r (p (q) + s (q ))

p (q ) ⋅r (s (q)) = r (p (q ) ⋅s (q )).

Similmente definiamo

r (p (q )) + r (s (q )) =

{t : ∃p ′∈r (p (q )) ∃s ′∈r (s (q ))

q . t(q ) ≤p ′(q ) + s ′(q )}, ed r (p (q )) ⋅r (s (q )) analogamente.

(18)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Algebra di 2-grande

Ne deriva:

p (q ) = r (p (q))

ur (p (q)) = r (p (q )) u costante

r (p (q )) + r (s (q )) = r (p (q) + s (q ))

r (p (q )) + r (p (q)) = r (p (q ))

psr (p (q )) + r (s (q )) = r (s (q ))

r (p (q )) ⋅r (s (q)) = r (p (q ) ⋅s (q )) Perciò ad esempio:

r (1) + r (1) = r (2) = r (1) ma

qr (1) = r (q ) (q è una variabile!)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Una semplice applicazione

v[wxyz{|~}C|€‚xzxƒ

(Matrice A, int „) // Post. costruisce la matrice identità di ordine „

…†y~‡

:= 1 x† „  †

…†y

j := 1 x† „ † A[‡,ˆ] := 0;

…†

y~‡:= 1 x† „  †

A[‡,‡] := 1;

T1(„) ≤‰1= Š (1) T2(„) = „ ⋅ T1(„) = „ Š (1) = Š („) T3(„) = „ ⋅ T2(„) = „ Š („) = Š („2) T4(„) ≤‰2= Š (1)

T5(„) = „ ⋅ T4(„) = „ Š (1) = Š („)

T(„) = T3(„) + T5(„) = Š („2) + Š („) = Š („2 + „) = Š („2)

‹KŒ

‹~

‹KŽ



‹T

‹~‘

Il metodo di sostituzione

• Si indovina la soluzione

• Si verifica induttivamente che la soluzione sia tale.

T(q ) = 2T(q /2) + q Soluzione: T(q ) ≤u q log q

T(q) ≤ 2 (u (q /2) log (q/2)) + q ip. ind.

= u q log (q/2) + q

= u q log qu q log 2 + q

’ u q log qu q + q

u q log q (se u ≥ 1)

(19)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Il metodo di sostituzione

Quanto vale u ?

Se T(1) = 1, allora T(1) ≤u 1 log 1 = 0 non può valere!

Ma T(2) ≤u 2 log 2, T(3) ≤u 3 log 3, valgono per u ≥ 2.

Tanto basta: il confine superiore cercato è asintotico.

Attenzione: indovinando T(q ) = ≤u q si può “ dimostrare” la tesi T(q ) = r (q):

T(q ) ≤ 2(u q /2) + q ip. ind.

= u q + q

= r (q ) Errore!!!

dovevamo provare “ (q ) < uq per una data u

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

2-grande ed R-piccolo

Se p (q) = r (s (q )) e st , allora p (q ) = r (t (q )): quanto “ buono”

è questo confine superiore?

”–•˜—™ p

(q ) = š(s (q )) sse ∀u > 0 ∀q. 0 ≤p (q ) < u s (q).

Se p (q) = š(s (q)) allora p è un infinitesimo di s , quindi s non è un confine superiore “ stretto” di p.

Osserviamo infatti che, se s è positiva non nulla:

) 0 (

) )) (

( ( )

( =

lim

=

›

œ ›



›

œ

ž

›

 Ÿ

Ω e Θ

”–•˜—™

Supposto che s sia asintoticamente non negativa:

p (q ) = Ω(s (q )) sse∃u ∈ R+\{0} ∃q 0∈ N ∀qq 0.

us (q ) ≤p (q ).

p (q ) = Θ(s (q)) sse∃u1 

u

2∈ R+\{0} ∃q 0∈ N ∀qq0.

u

1s (q ) ≤p (q ) ≤u2s (q ).

¡¢•˜£¥¤‚™

p (q ) = Θ(s (q )) ⇔p (q) = r (s (q )) ∧p (q ) = Ω(s (q)).

(20)

Ugo de’ Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 3

Notazione asintotica

¦(§) ∈Š (¨(§)) ⇔ ∃‰ª© 0 ∀§«@¦ (§) ≤‰K¨(§)

¦(§) ∈ Ω(¨(§)) ⇔ ∃‰ª© 0 ∀§«‚‰K¨(§) ≤¦ (§)

¦(§) ∈ Θ(¨(§)) ⇔ ∃‰1,‰2© 0 ∀§«‚‰1¨(§)¦ (§) ≤‰2¨(§)

¬

­&®

¬(¯) = ° (®(¯))

­&®

¬ ¬

(¯) = Ω(®(¯))

­

1

®

­

2

®

¬

¬(¯) = Θ(®(¯))

Riferimenti

Documenti correlati

La successione alla quale sarebbe chiamata la persona della quale è stata dichiarata la morte presunta.. La successione ed il ritorno del

Organizzazione, Entrate e Controlli anche con l’ausilio di mezzi elettronici e potranno essere comunicati ai soggetti istituzionali nei soli casi previsti dalle

o a) titolare di incarico a tempo indeterminato che svolga, in via esclusiva, nell’ambito zonale in cui è pubblicato l’incarico, attività ambulatoriale nella specialità o

h) di aver – di non aver (1) riportato condanne penali e non essere destinatario di provvedimenti che riguardano l’applicazione di misure di prevenzione, di

per il tramite dell’UOC GESTIONE AMMINISTRATIVA DELLE ATTIVITA' CONVENZIONATE OGGETTO: Istanza per l’inserimento nella graduatoria aziendale anno 2021 di medici

00 del 04/12/2020 Al Rappresentante legale dell’ASP TRAPANI per il tramite dell'UOC GESTIONE AMMINISTRATIVA ATTIVITA’ CONVENZIONATE UOS Applicazioni contrattuali e gestione

Visto l’avviso di mobilità intra-aziendale di CA pubblicato sul sito dell’ASP TRAPANI chiede di partecipare alla convocazione di mobilità intra-aziendale di CA. Dichiara

Manifestazione di interesse per l’invito a successiva procedura negoziata, mediante cottimo fiduciario per servizi in economia, ex articolo 125, comma 11, del