∀ Matematica discreta

Relazioni binarie: riflessiva, simmetrica, transitiva

Cos'è una relazione binaria e come riconoscere le proprietà riflessiva, simmetrica, antisimmetrica e transitiva con matrici, grafi ed esempi concreti.

Le relazioni descrivono legami tra oggetti: «x è minore di y», «l'utente u appartiene al gruppo g», «la pagina p contiene un collegamento alla pagina q». La matematica discreta le studia in modo astratto, e scopre che poche proprietà bastano a classificarle. Riconoscerle permette di capire subito che tipo di struttura si ha davanti e quali algoritmi si possono usare.

Definizione

Una relazione binaria R da un insieme A a un insieme B è un sottoinsieme del prodotto cartesiano A × B. Se la coppia (a, b) appartiene a R si scrive a R b e si dice che a è in relazione con b. Quando A = B si parla di relazione su A.

Esempio: su A = {1, 2, 3, 4}, la relazione «divide» contiene le coppie (a, b) in cui a divide b:

R = {(1,1), (1,2), (1,3), (1,4), (2,2), (2,4), (3,3), (4,4)}

Tre modi di rappresentarla

  • Elenco di coppie, come sopra.
  • Matrice booleana: una tabella con righe e colonne indicizzate dagli elementi, con 1 dove la coppia è nella relazione.
  • Grafo orientato: un nodo per elemento, una freccia da a verso b per ogni coppia (a, b).

La matrice della relazione «divide» su {1, 2, 3, 4}:

1 2 3 4
1 1 1 1 1
2 0 1 0 1
3 0 0 1 0
4 0 0 0 1

Le proprietà fondamentali

Riflessiva

R è riflessiva se ogni elemento è in relazione con sé stesso: a R a per ogni a. Nella matrice, la diagonale è tutta di 1; nel grafo, ogni nodo ha un cappio. «Divide» è riflessiva, perché ogni numero divide sé stesso. «Minore di» non lo è.

Simmetrica

R è simmetrica se a R b implica b R a. La matrice è uguale alla sua trasposta; nel grafo ogni freccia ha la sua freccia di ritorno. «Essere fratelli» è simmetrica (se si escludono i casi limite), «essere connessi in una rete senza direzione» pure. «Divide» non lo è: 2 divide 4 ma 4 non divide 2.

Antisimmetrica

R è antisimmetrica se a R b e b R a insieme implicano a = b. In altre parole, tra due elementi distinti c'è al più una delle due frecce. «Divide» sugli interi positivi è antisimmetrica, così come «≤».

Attenzione: antisimmetrica non vuol dire «non simmetrica». La relazione di uguaglianza è sia simmetrica sia antisimmetrica. Una relazione può anche non essere né l'una né l'altra.

Transitiva

R è transitiva se a R b e b R c implicano a R c. Nel grafo: ogni volta che c'è un percorso di due frecce, c'è anche la freccia diretta. «Divide» è transitiva, «≤» pure. «Essere amico di» in generale non lo è.

Riassunto su alcuni esempi

Relazione Rifl. Simm. Antisimm. Trans.
= su ℤ sì sì sì sì
≤ su ℤ sì no sì sì
< su ℤ no no sì sì
divide su ℤ⁺ sì no sì sì
stesso resto mod 5 sì sì no sì
differiscono di 1 no sì no no

Verificare le proprietà con il codice

Con la relazione memorizzata come insieme di coppie, i controlli sono traduzioni dirette delle definizioni:

def riflessiva(R, A):
    return all((a, a) in R for a in A)

def simmetrica(R):
    return all((b, a) in R for (a, b) in R)

def transitiva(R):
    return all((a, d) in R
               for (a, b) in R for (c, d) in R if b == c)

Il controllo di transitività esamina tutte le coppie di coppie, quindi su relazioni grandi è costoso; per quelle si usano rappresentazioni a matrice e algoritmi dedicati.

Chiusure

Se una relazione non ha una proprietà, si può aggiungere il minimo numero di coppie necessario a fargliela avere. Il risultato si chiama chiusura.

  • Chiusura riflessiva: si aggiungono tutte le coppie (a, a).
  • Chiusura simmetrica: per ogni (a, b) si aggiunge (b, a).
  • Chiusura transitiva: si aggiungono coppie finché ogni percorso ha la sua scorciatoia.

La chiusura transitiva ha un'interpretazione molto concreta: se R dice «il modulo a importa direttamente il modulo b», la sua chiusura transitiva dice «a dipende, direttamente o indirettamente, da b». Lo stesso vale per «il gruppo g è membro del gruppo h» nei sistemi di gestione dei permessi: calcolare chi eredita cosa significa calcolare una chiusura transitiva. In un'analisi dei permessi è proprio lì che spesso si scoprono accessi che nessuno aveva assegnato esplicitamente. L'algoritmo di Warshall la calcola su una matrice n × n con tre cicli annidati, in tempo proporzionale a n³.

In sintesi

  • Una relazione binaria è un insieme di coppie ordinate, rappresentabile come matrice o grafo orientato.
  • Riflessiva: diagonale piena; simmetrica: matrice uguale alla trasposta.
  • Antisimmetrica non significa non simmetrica: l'uguaglianza è entrambe le cose.
  • Transitiva: ogni percorso di due passi ha la sua scorciatoia diretta.
  • La chiusura transitiva risponde a domande su dipendenze e permessi ereditati.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche