• Non ci sono risultati.

Ricerca Operativa

N/A
N/A
Protected

Academic year: 2021

Condividi "Ricerca Operativa"

Copied!
22
0
0

Testo completo

(1)

Claudio Arbib

Università di L’Aquila

Ricerca Operativa

Layout ottimo di dispositivi elettronici ad altissima scala di integrazione

(2)

Problema

Realizzare una funzione booleana f: {0, 1}n {0, 1}m

tramite una matrice logica programmabile (PLA)

(3)

Esempio

f = x + y

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

000 001 010 011 001 010 011 100 010 011 100 101 011 100 101 110 000 001 010 011 001 010 011 100 010 011 100 101 011 100 101 110 0000

0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

f3 = (x1 x2 y1 ∧ ¬y2)

(¬x1 x2 ∧ ¬y1 y2)

(x1 x2 ∧ ¬y1 y2)

(x1 ∧ ¬x2 y1 y2)

(¬x1 x2 y1 y2)

(x1 x2 y1 y2)

000 001 010 011 001 010 011 100 010 011 100 101 011 100 101 110 000 001 010 011 001 010 011 100 010 011 100 101 011 100 101 110

(4)

Esempio

f3 = (x1 x2 y1 ∧ ¬y2)

(¬x1 x2 ∧ ¬y1 y2)

(x1 x2 ∧ ¬y1 y2)

(x1 ∧ ¬x2 y1 y2)

(¬x1 x2 y1 y2)

(x1 x2 y1 y2)

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

000 001 010 011 001 010 011 100 010 011 100 101 011 100 101 110 000 001 010 011 001 010 011 100 010 011 100 101 011 100 101 110

(5)

Esempio

f3 = (x1 x2 y1 ∧ ¬y2)

(x2 ∧ ¬y1 y2)

(x1 ∧ ¬x2 y1 y2)

(x2 y1 y2)

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

000 001 010 011 001 010 011 100 010 011 100 101 011 100 101 110 000 001 010 011 001 010 011 100 010 011 100 101 011 100 101 110

(6)

Esempio

f3 = (x1 x2 y1 ∧ ¬y2)

(x2 ∧ ¬y1 y2)

(x1 ∧ ¬x2 y1 y2)

(x2 y1 y2)

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

000 001 010 011 001 010 011 100 010 011 100 101 011 100 101 110 000 001 010 011 001 010 011 100 010 011 100 101 011 100 101 110 0000

0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

000 001 010 011 001 010 011 100 010 011 100 101 011 100 101 110 000 001 010 011 001 010 011 100 010 011 100 101 011 100 101 110

f1 = (x1 ∧ ¬y1 ∧ ¬y2)

(¬x1 x2 y1 ∧ ¬y2)

(x1 ∧ ¬y1 y2)

(¬x1 y1 y2)

(7)

Esempio

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

000 001 010 011 001 010 011 100 010 011 100 101 011 100 101 110 000 001 010 011 001 010 011 100 010 011 100 101 011 100 101 110

f1 = (x1 ∧ ¬y1 ∧ ¬y2)

(¬x1 x2 y1 ∧ ¬y2)

(x1 ∧ ¬y1 y2)

(¬x1 y1 y2)

f3 = (x1 x2 y1 ∧ ¬y2)

(x2 ∧ ¬y1 y2)

(x1 ∧ ¬x2 y1 y2)

(x2 y1 y2)

(8)

Esempio

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

000 001 010 011 001 010 011 100 010 011 100 101 011 100 101 110 000 001 010 011 001 010 011 100 010 011 100 101 011 100 101 110

f1 = (x1 ∧ ¬y1)

(¬x1 x2 y1 ∧ ¬y2)

(¬x1 y1 y2)

f3 = (x1 x2 y1 ∧ ¬y2)

(x2 ∧ ¬y1 y2)

(x1 ∧ ¬x2 y1 y2)

(x2 y1 y2)

(9)

Esempio

Piano OR Piano OR Piano AND Piano AND x

y

s

f f1 = (x1 ∧ ¬y1)

(¬x1 x2 y1 ∧ ¬y2)

(¬x1 y1 y2)

f3 = (x1 x2 y1 ∧ ¬y2)

(x2 ∧ ¬y1 y2)

(x1 ∧ ¬x2 y1 y2)

(x2 y1 y2)

(10)

Esempio

x1 y1 x2 y2

f3 f1

s1 s2 s3 s4 s5 s6 s7 f1 = (x1 ∧ ¬y1)

(¬x1 x2 y1 ∧ ¬y2)

(¬x1 y1 y2)

f3 = (x1 x2 y1 ∧ ¬y2)

(x2 ∧ ¬y1 y2)

(x1 ∧ ¬x2 y1 y2)

(x2 y1 y2)

(11)

Esempio

x1 y1 x2 y2

f3 f1

s1 s2 s3 s4 s5 s6 s7

(12)

Esempio

x1 y1 x2 y2

f3 f1

s1 s2 s3 s4 s5 s6 s7

Riduzione dell’area del dispositivo x1 y1 x2 y2

f3

f1 s1 s2 s3 s4 s5 s6 s7

(13)

Segnali (righe) compatibili

Partizionare le colonne in due insiemi C1, C2 in modo da massimizzare il più piccolo tra gli insiemi di righe

A, con solo elementi in C1 A

(14)

Segnali (righe) compatibili

Partizionare le colonne in due insiemi C1, C2 in modo da massimizzare il più piccolo tra gli insiemi di righe

A, con solo elementi in C1 A

B

(15)

Segnali (righe) compatibili

Partizionare le colonne in due insiemi C1, C2 in modo da massimizzare il più piccolo tra gli insiemi di righe

A, con solo elementi in C1 B

A

(16)

Segnali (righe) compatibili

(17)

Segnali (righe) compatibili

(18)

Grafo di compatibilità

1

2

3

4

5

6

7

8

3 5

6

Problema (folding semplice): 7

Dato un grafo G, trovare un sottografo isomorfo a Km,m con m massimo.

1 2 3 4 5 6 7 8

(19)

Riduzione dell’area Riduzione dell’area

Una diversa tecnica di folding

Partizionare le colonne in due insiemi C1, C2 in modo da massimizzare il più piccolo tra gli insiemi di righe

A, con solo elementi in C1

La riga verde e quella bianca sono compatibili, ma la partizione di colonne scelta non consente di sfruttare questo fatto per ridurre

ulteriormente l’area. Un risultato migliore di quello ottenuto mediante folding semplice si può ottenere permutando le colonne e

interrompendo la traccia sulle righe a livelli differenti

(20)

Una diversa tecnica di folding

1 2 3 4 5 6 7 8 9 10 11 12 13 14 12 9 1 7 2 3 13 8 5 4 6 10 11 14

(21)

12 9 1 7 2 3 13 8 5 4 6 10 11 14

Una diversa tecnica di folding

(22)

Riduzione dell’area Riduzione dell’area

12 9 1 7 2 3 13 8 5 4 6 10 11 14

Una diversa tecnica di folding

Siamo riusciti in questo modo a compattare ulteriormente il dispositivo.

In termini di grafo di compatibilità il problema però non è più quello di individuare un sottografo bipartito completo e bilanciato.

Riferimenti

Documenti correlati

allora è sempre possibile costruire una funzione peso c: U → IR in grado di far fallire l’algoritmo greedy nella ricerca di una.. Ottimalità

Esercizi di ottimizzazione combinatoria 2005-2006.

I teoremi dell’alternativa consentono di eludere la necessità di una verifica per ogni x determinando in un altro poliedro (duale di Ax < b) l’esistenza di un y che verifichi

ℑ = famiglia degli insiemi di archi che toccano ogni vertice del grafo G esattamente una volta (matching perfetti) c = funzione che associa a ogni arco del grafo G un costo. pari

Dunque il versore d = (0, 0, 1) costituisce una direzione di miglioramento per il problema P’.. base

vertici e punti estremi.. Poiché

L’operazione di pivot consiste nel combinare linearmente le righe di T in modo da ottenere una colonna unitaria in posizione prestabilita.. Operazione

• Una base è un insieme massimale di colonne di A linearmente indipendenti Teorema: k colonne di A sono linearmente indipendenti se e solo se gli archi corrispondenti non