22 INDICE<strong>Esercizi</strong>o 16.1-4Non sempre un approccio goloso (greedy) al problema della selezione delle attività genera un insiememassimo <strong>di</strong> attività mutuamente compatibili. Descrivete una istanza per cui l’algoritmo che scegliel’attività <strong>di</strong> durata minima fra quelle che sono compatibili con le attività precedentemente selezionatenon restituisce una soluzione ottima.Fate la stessa cosa per l’algoritmo che sceglie sempre l’attività restante compatibile che si sovrapponeal minor numero <strong>di</strong> attività restanti e per l’algoritmo che sceglie l’attività restante compatibileche il minimo tempo <strong>di</strong> inizio.Soluzione.Durata minima. Consideriamo l’istanza comprendenti gli intervalli [1, 10), [10, 20) e [9, 11). Lasoluzione ottima comprende gli intervalli [1, 10), [10, 20) mentre l’algoritmo restituisce la soluzionecomprendente solo l’intervallo [9, 11).Minima sovrapposizione. Consideriamo l’istanza comprendente gli intervalli[0, 4), [4, 6), [6, 10), [0, 1), [1, 5), [5, 9), [9, 10), [0, 3), [0, 2), [7, 10), [8, 10).L’intervallo con minima sovrapposizione è [4, 6) che impe<strong>di</strong>sce la scelta della soluzione ottimain quanto si interseca con due intervalli.[0, 1), [1, 5), [5, 9), [9, 10)Minimo tempo <strong>di</strong> inizio. Consideriamo l’istanza comprendenti gli intervalli [1, 10), [3, 4) e [4, 5).La soluzione ottima comprende gli intervalli [3, 4), [4, 5) mentre l’algoritmo restituisce la soluzionecomprendente solo l’intervallo [1, 10).Versione: 1.1 del 31 gennaio 2006.
ESERCIZIO 28.2-3 23<strong>Esercizi</strong>o 28.2-3Supponiamo che sappiamo moltiplicare due matrici 3 × 3 effettuando l moltiplicazioni. Che con<strong>di</strong>zionedeve sod<strong>di</strong>sfare l affinché sia possibile utilizzare questo risultato per moltiplicare delle matricin × n in tempo n k per k < log 2 7?Soluzione. Se sappiamo moltiplicare due matrici 3 × 3 usando l moltiplicazioni possiamo ricorsivamentemoltiplicare due matrici n × n usando tempo T (n) = lT (n/3) + Θ(n 2 ). Usando il mastertheorem otteniamo che T (n) = n log 3 l . Pertanto l deve essere tale che log 3 l < log 2 7 e quin<strong>di</strong>l < 3 log 2 7 = 3 2.81 = 21.9134.Versione: 1.1 del 3 <strong>di</strong>cembre 2005.