Sei sulla pagina 1di 6

Grafi

- L’handshaking lemma dice ce :


2*|E|= somma(dev(v)) per ogni V e V.
Cioè la somma di tutti i gradi dei vertici di V è uguale al doppio del numero degli spigoli.
- Per Kn deg(v) = n-1 e |E|=n*(n-1)/2
- La lunghezza di un path in un qualunque grafo è al piu’ n-1 con n numero di vertici
- Numero di vertici di grado dispari è pari
- La somma degli spigoli di G e il suo complemento è pari a : n*(n-1)/2
- Walk : successione vertici/spigoli
- Trail : spigoli non si ripetono (vertici si)
- Trail euleriano : passa per ciascuno spigolo di G una e una sola volta
- Circuito : trail chiuso
- Circuito euleriano : trail euleriano in cui estremi coincidono
- Path : trail in cui i vertici non si ripetono
- Path i cui estremi coincidono è un ciclo
- Ciclo che passa per tutti i vertici del grafo è Hamiltoniano
- Somma dei gradi di G e dei gradi del suo complemento è uguale a n-1 (come un grafo connesso)
- Grafo connesso : 1. Ammette circuito euleriano 2. Ogni vertice di G ha grado Pari 3. L’insieme degli
spigoli si può partizionare in circuiti disgiunti (1,2,3 affermazioni equivalenti)
- Se G contiene un vertice di grado dispari allora G non ha un circuito euleriano
- Sia G un grafo connesso – G ammette un trail euleriano aperto se e solo se i vertici di grado dispari
di G sono esattamente 2
- Se G è connesso, il grafo G-e ha al piu’ due componenti connesse (dove e è uno spigolo)
- Se G è aciclico, il Grafo g-e è ancora aciclico e il suo numero di componenti connesse è pari al
numero di componenti connesse di G piu’ 1
- Sia G un grafo connesso e sia v un suo vertice, il grafo G-v ha al piu’ deg(v) componenti connesse
- Condizione necessaria (non sufficiente) perché un grafo sia connesso è che il numero degli spigoli
sia almeno pari al numero dei vertici -1
- Condizione necessaria (non sufficiente) che un grafo sia aciclico è che il numero degli spigoli sia al
piu’ pari al numero dei vertici -1
- Alberi è un grafo aciclico con n vertici e n-1 spigoli. (minimalmente connesso)
- Un grafo aciclico con n vertici e k componenti connesse ha esattamente n-k spigoli
- Sia g un grafo con n vertici.Se G è connesso -> G ha n-1 spigoli. Se G è aciclico -> G ha n-1 spigoli.

Coloring

- Il numero cromatico di un grafo G, è almeno il numero di clique (minimo)


- Una clique in un grafo è un insieme di vertici tutti adiacenti
- Ogni clique di dimensione n non può essere colorata con meno di n colori
- La clique per un grafo viene vista come la clique piu’ grande – quello è il numero minimo di
colorazioni che il grafo può avere
- Un limite superiore per il numero cromatico è :

Dove delta(g) è il numero piu’ grande tra i gradi dei vertici di G.


- I grafi completi Kn hanno numero cromatico n
- I grafi planari sono colorati con massimo 4 colori

Conteggio

- Permutazione: disposizione ordinata di tutti gli elementi dell’insieme


1
- R- permutazione: disposizione ordinata di r elementi di X. P(n,r)= n!*(n-r)!
- Dato Kn contrare i diversi path da s a t con r spigoli : P(n-2, r-1).
- Una combinazione è un sottoinsieme non ordinato di n elementi
- C(n,r) = bin(n,r)
- P(n,r)=C(n,r)*r!
- Kn ha C(n,2) spigoli
- N regali da distribuire tra k bambini e ogni bambino deve ricevere un numero ni di regali :
N!/(n1!*n2!..)
- N monete tra k bambini –
ogni bambino deve ricevere almeno una moneta :
C(n-1, k-1) modi diversi
caso generale, in cui non c’è vincolo
C(n+k-1, k-1)
- Coefficiente binomiale : bin(n,k) : i modi di selezionare k oggetti tra n
- Dato un insieme A, con |A| numero di componenti di A, il numero dei suoi sottinsiemi e 2^|n|.
- Per calcolare un sottoinsieme di A con numero di componenti (es : 11) che contiene numeri dispari
(solo numeri dispari) prima dobbiamo togliere tutti i numeri pari, quindi viene : A=(1,3,5,7,9,11) = 6
. Quindi viene 2^6
- Quante stringhe di 9-bit (0,1) hanno esattamente peso 5, ovvero 5 (1) e iniziano con 101?
C(6,3) – cioè i sottoinsiemi di 3 elementi tra 6
- Quante stringhe a 10 bit contengono 6 o più 1? Sono tutte le combinazioni (10,n) con n che va da 6
a 10
- Quanti sottoinsiemi di {0,1,...,9} hanno cardinalità 6 o più?
C(10,6)+C(10,7)+C(10,8)+C(10,9)+C(10,10)

Programmazione lineare (teoria+ rilassamento)

- Data una soluzione ammissibile x* per il


primale e una soluzione ammissibile y*
per il duale allora:
ctx*<=Bty*
- Sia x* una soluzione ammissibile per il
primale e y* una soluzione ammissibile
per il duale. Se c⊤x∗ = b⊤y∗, allora x∗
una soluzione ottima per primale e y∗
una ottima per duale.
- Se il primale è illimitato, allora il duale è inammissibile
- Se il duale è illimitato, allora il primale è inammissibile
- Se il primale ammette una soluzione ottima x*, allora il duale ammete una soluzione ottima y* e
c⊤x∗ = b⊤y∗. (teorema dualità forte)
- Il rilassamento lineare di un problema di PLI è il problmea di PL ottenuto da PLI omettendo la
richiesta che le variabili siano intere
- Il valore ottimo del problema PLI non può essere superiore a quello del suo rilassamento lineare
- Se una sol. ottima di (PL) è intera allora è anche una sol. ottima del (PLI).
- L’insieme ammissibile di (PLI) `e incluso nell’insieme ammissibile di (PL) ma non vale il viceversa
- Una sol ottima di PL può non essere ottima di PLI (deve essere intera)

2
Tabella per costruire duale in genere:

Modelli di programmazione lineare:

3
Formulazione lineare:

Problema di localizzazione(matrici) Problema programmazione turni lavoro :

Problemi :

- Set packing (max matching)

- Set covering
- Set Partitioning
- Vertex Color

- Il primo vincolo vuol dire che al vertice i non può


essere assegnato un colore k maggiore del suo numero di vertice (bisogna prendere sempre il
minimo colore disponibile)

Scheduling :
Nei problemi di scheduling si rende necessaria la necessità di non sovrapporre il processamento di due
attività (i e j). Per modellare questa disgiunzione abbiamo bisogno di introdurre una variabile binaria xij
4
cui diamo la seguente interpretazione: xij = 1 se i precede j (e xij = 0 se j precede i). Coerenti con questa
interpretazione, scriviamo quindi anche la coppia di vincoli:

1. tj ≥ ti + pi − M(1 − xij)
2. ti ≥ tj + pj – Mxij

Se M `e una costante (calcolabile off-line in funzione dei dati) i vincoli e sono lineari. Inoltre, se il valore di
M `e sufficientemente grande (ad esempio, M = Pn i=1 pi), per xij = 1, viene attivato il primo vincolo nella
forma tj ≥ ti +pi mentre il secondo vincolo viene reso inattivo poich`e soddisfatto per ogni valore di ti e tj.
Viceversa, quando xij = 0, viene attivato il vincolo due nella forma ti ≥ tj + pj (e quindi il processamento di j
precede quello di i) mentre il vincolo 1 viene disattivato.

Nell’esercizio di scheduling si vuole minimizzare il tempo di lavoro.

Min T
Allora T dovr`a essere un istante successivo a quello in cui termina ciascuna attivita. Questo si traduce nei
vincoli

T ≥ ti + pi, ∀i = 1,...,n; (n sono le attività)

Esempio numerico :

5
Problema trasporti :

Problema macchine/lavori produzione: