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.