UNIVERSITA’ DI MILANO-BICOCCA CdL IN INFORMATICA

6
UNIVERSITA’ DI MILANO-BICOCCA CdL IN INFORMATICA Corso di Algoritmi e Ricerca Operativa Prof. Giancarlo Mauri LEZIONE 2

description

UNIVERSITA’ DI MILANO-BICOCCA CdL IN INFORMATICA. Corso di Algoritmi e Ricerca Operativa Prof. Giancarlo Mauri LEZIONE 2. Numeri di Fibonacci. Obiettivo dare un modello matematico della crescita di una popolazione di conigli Assunzioni: Si parte (tempo 0) con una coppia di conigli neonati - PowerPoint PPT Presentation

Transcript of UNIVERSITA’ DI MILANO-BICOCCA CdL IN INFORMATICA

Page 1: UNIVERSITA’ DI MILANO-BICOCCA CdL IN INFORMATICA

UNIVERSITA’ DI MILANO-BICOCCACdL IN INFORMATICA

Corso di

Algoritmi e Ricerca Operativa

Prof. Giancarlo Mauri

LEZIONE 2

Page 2: UNIVERSITA’ DI MILANO-BICOCCA CdL IN INFORMATICA

Numeri di Fibonacci

Obiettivo dare un modello matematico della crescita di una

popolazione di conigli

Assunzioni: Si parte (tempo 0) con una coppia di conigli neonati Ogni coppia genera una nuova coppia ad ogni unità di

tempo, a partire dalla seconda unità dopo la nascita I conigli non muoiono mai

NUMERO DI COPPIE AL TEMPO n ?

Modello matematico:F(n) := se (n=0) o (n=1), allora 1

altrimenti F(n-1)+F(n-2)

Page 3: UNIVERSITA’ DI MILANO-BICOCCA CdL IN INFORMATICA
Page 4: UNIVERSITA’ DI MILANO-BICOCCA CdL IN INFORMATICA

Prodotto di matrici n*n

ALGORITMO IMMEDIATO: O(n3) somme/prodotti di reali

ALGORITMO DI STRASSEN (1969) Per n = 1: 1 prodotto e 0 somme di reali. Per n = 2: 7 moltiplicazioni e 18 addizioni (sarebbero 8 e 4 con

l’algoritmo immediato).

a11 a12

a21 a22

b11 b12

b21 b22

A = B =

C = A*B =c11 c12

c21 c22

Page 5: UNIVERSITA’ DI MILANO-BICOCCA CdL IN INFORMATICA

L’algoritmo di Strassen

P1=(a11+a22)(b11+b22)

P2=(a21+a22)b11

P3=a11(b12-b22)

P4=a22(b21-b11)

P5=(a11+a12)b22

P6=(a21-a11)(b11+b12)

P7=(a12-a22)(b21+b22)

c11=P1+P4-P5+P7

c12=P3+P5

c21=P2+P4

c22=P1+P3-P2+P6

Page 6: UNIVERSITA’ DI MILANO-BICOCCA CdL IN INFORMATICA

L’algoritmo di Strassen

Per n = 2k+1 : riducibile a 7 moltiplicazioni e 18 somme di matrici di ordine 2k.

Numero di prodotti: P(1) = 1 P(2k+1) = 7*P(2k)

Numero di somme: S(1) = 0 S(2k+1) = 7*S(2k) + 18*22k

La soluzione: P(n) = S(n) = O(nlog7) = O(n2,81)