60 likes | 176 Views
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
E N D
UNIVERSITA’ DI MILANO-BICOCCACdL 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 • 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)
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). A = B = C = A*B =
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
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)