Uno strano rettangolo ...
Si consideri una partizione I1, I2, ..., In di un rettangolo R (vedi figura).
Supponiamo che per ogni k=1,2,...,n Ik abbia almeno uno dei lati di lunghezza intera.
Mostrare che almeno uno dei lati del rettangolo R ha lunghezza intera.
_____________________________________________________________________
Il problema può essere affrontato efficacemente ricorrendo all'algebra di Boole.
Associamo a ciascun rettangolo IK due variabili booleane aK (altezza) e bK (base) così
definite:
aK = 1 se l'altezza di IK ha lunghezza intera (e aK = 0 in caso contrario)
bK = 1 se la base di IK ha lunghezza intera ( e bK = 0 in caso contrario)
Introduciamo poi le funzioni Booleane A e B delle 2n variabili aK e bK così definite:
A = 1 se l'altezza di R ha lunghezza intera (e A = 0 in caso contrario)
B = 1 se la base di R ha lunghezza intera (e B = 0 in caso contrario)
Ipotizziamo inoltre per il momento che non almeno uno, ma uno solo dei lati del
rettangolo IK abbia lunghezza intera, e che quindi le due variabili aK e bK siano legate
dalla relazione booleana
(1)
bK = NOT aK
Affinché la base del rettangolo R abbia lunghezza intera (cioè sia B = 1) è sufficiente
che nella partizione esista almeno una catena di rettangoli componenti adiacenti con
base di lunghezza intera che partendo da uno dei lati verticali di R raggiunga il lato
opposto.
Similmente affinché l'altezza del rettangolo R abbia lunghezza intera (cioè sia A = 1) è
sufficiente che nella partizione esista almeno una catena di rettangoli componenti
adiacenti con altezza di lunghezza intera che partendo da uno dei lati orizzontali di R
raggiunga il lato opposto.
Le condizioni di cui sopra sono analoghe a quelle sufficienti perché tra i due estremi di
una rete di contatti (che possono essere o aperti o chiusi) vi sia o meno continuità.
Le espressioni booleane di A e B possono quindi essere scritte associando idealmente
alla partizione di R opportune reti di contatti.
Ad esempio alla partizione di R di fig. 1 corrispondono le reti di contatti di Fig. 2. e le
funzioni A e B indicate:
I1
I2
I3
I4
I5
Fig. 1 - Partizione presa ad esempio
B
A
Fig. 2 - Reti di contatti associate
(2)
A = ((a1 AND (a3 OR a4)) OR a2) AND a5
(3)
B = ((b1 OR (b3 AND b4)) AND b2) OR b5
Osserviamo che le due funzioni hanno la stessa struttura. Si passa dalla (2) alla (3)
§ scambiando tra di loro gli operatori AND e OR.
§ sostituendo alla variabile aK la variabile bK che, per l'ipotesi (1), è il suo
complemento
Ma dall'algebra booleana sappiamo che queste sono proprio le regole per costruire il
complemento di una funzione data. E' allora
(4)
A = NOT B
e quindi una delle due espressioni A e B vale 1, cioè uno dei lati di R ha lunghezza
intera.
Possiamo ora rimuovere la limitazione espressa dalla (1).
Supponiamo che il rettangolo IK della partizione abbia tutti e due i lati di lunghezza
intera, cioè sia
(5)
aK = bK = 1
Ricordiamo che sostituendo in una funzione booleana F una variabile con la costante
booleana 1 si ottiene una funzione A 1 che soddisfa alla relazione (booleana)
(6)
F1 ≥ F
che significa che la F 1 "contiene", o "copre" la F. In altre parole è F 1= 1 per tutte le
combinazioni delle variabili per cui è F = 1 più per altre combinazioni per cui F = 0.
Nel caso preso ad esempio supponiamo che sia a3 = b3 =1. Le funzioni A e B si
semplificano nelle funzioni (che non sono più una il complemento dell'altra)
(7)
A1= (a1 OR a2 ) AND a5 ≥ A
(8)
B 1= (b1 OR b4) AND b2 OR b5 ≥ B
almeno una delle quali vale 1, cioè almeno uno dei due lati di R ha lunghezza intera.
c.d.d.