12.2 Un modello PLI per il problema della clique massima: la formulazione sugli spigoli¶
Parte 2 · Formulazioni dei problemi e loro proprietà · Capitolo 12 · Capitolo 12: Problemi di clique · Dispensa, volume 2 (PDF) · Slide · Esercizi: Problemi di clique
Il problema di questa sezione è il problema della clique massima (MCP), definito nel Capitolo 5 «Problemi di clique», Sezione 5.2.
-
Dato un grafo semplice \(G=(V,E)\), con \(V=\{1,2,\dots,n\}\) e \(m\) spigoli, indichiamo con
\[ \overline{E} = \big\{\, \{u,v\} : u,v \in V,~ u \neq v,~ \{u,v\} \notin E \,\big\} \]l'insieme dei non-spigoli di \(G\), cioè gli spigoli del grafo complementare \(\overline{G}=(V,\overline{E})\).
-
Introduciamo le seguenti \(n\) variabili binarie:
\[\begin{equation*} \label{mcpF:var} x_v=\begin{cases}1&\text{se il vertice $v$ è selezionato nella clique}\\[1.5ex]0&\text{altrimenti}\end{cases} \qquad\forall v\in V. \tag{12.1} \end{equation*}\]
Con queste variabili, un modello di programmazione lineare intera (PLI) per il problema della clique massima (MCP) è il seguente:
Questo modello PLI si chiama modello \(\mathrm{ILP}_{\mathrm{MCP}}\), o formulazione sugli spigoli.
-
Descrizione della funzione obiettivo e dei vincoli del modello \(\mathrm{ILP}_{\mathrm{MCP}}\):
-
la funzione obiettivo lineare \(\eqref{mcpF:obj}\) massimizza la cardinalità della clique selezionata;
-
i vincoli \(\eqref{mcpF:nonedge}\) garantiscono che due vertici non adiacenti non siano selezionati entrambi (\(|\overline{E}|=\binom{n}{2}-m\) vincoli lineari, uno per ogni spigolo di \(\overline{G}\));
-
infine, i vincoli \(\eqref{mcpF:bin}\) definiscono le variabili del modello PLI.
-
-
Per ogni non-spigolo \(\{u,v\}\), il vincolo \(x_u+x_v\le1\) impone \(x_u=1\Rightarrow x_v=0\). Il viceversa è falso: \(x_u=x_v=0\) è ammissibile.
-
Letto su \(\overline{G}\), lo stesso modello è la formulazione sugli spigoli del MSSP: di ogni spigolo di \(\overline{G}\) si seleziona al più un estremo.
Esempio 12.1: Istanza del MCP
Consideriamo il grafo \(G\) con \(7\) vertici formato dal ciclo \(1,2,\dots,7,1\) e dalla corda \(\{1,3\}\) (l'istanza di riferimento del Capitolo 5 «Problemi di clique»), e il suo complementare \(\overline{G}\):
\(G\) ha \(m=8\) spigoli, e \(\overline{G}\) ha i \(\binom{7}{2}-8=13\) non-spigoli di \(G\):
Chiamiamo questa istanza del MCP Esempio 12.1.
Esempio 12.2: Modello \(\mathrm{ILP}_{\mathrm{MCP}}\)
Il modello \(\mathrm{ILP}_{\mathrm{MCP}}\) per l'istanza del MCP dell'Esempio 12.1 ha \(7\) variabili binarie e un vincolo per ciascuno dei \(13\) spigoli di \(\overline{G}\):
Una soluzione ottima \(\tilde{\vet x}(\mathrm{ILP}_{\mathrm{MCP}})\) è:
Il valore ottimo \(z(\mathrm{ILP}_{\mathrm{MCP}})\) è \(3=\omega(G)\). La soluzione ottima associata del MCP è la clique \(\tilde K=\{1,2,3\}\), ed è l'unica soluzione ottima.
12.3 Un primo rilassamento lineare¶
Per ottenere un rilassamento lineare (LP) del modello \(\mathrm{ILP}_{\mathrm{MCP}}\), rilassiamo i vincoli \(\eqref{mcpF:bin}\) in vincoli di non negatività. Il modello PL ottenuto è il seguente:
Questo modello PL si chiama modello \(\mathrm{LP}\text{-}0_{\mathrm{MCP}}\).
- Gli upper bound \(x_v\le1\) non sono implicati in \(\mathrm{LP}\text{-}0_{\mathrm{MCP}}\): se un vertice è adiacente a tutti gli altri, non compare in nessun vincolo \(\eqref{mcpF:nonedge-LP0}\), e \(\mathrm{LP}\text{-}0_{\mathrm{MCP}}\) è illimitato. Nell'Esempio 12.1 ogni vertice ha un non-spigolo, e \(\mathrm{LP}\text{-}0_{\mathrm{MCP}}\) ha una soluzione ottima.
Esempio 12.3: Modello \(\mathrm{LP}\text{-}0_{\mathrm{MCP}}\)
Il modello \(\mathrm{LP}\text{-}0_{\mathrm{MCP}}\) per l'istanza del MCP dell'Esempio 12.1 è:
Una soluzione ottima \(\tilde{\vet x}(\mathrm{LP}\text{-}0_{\mathrm{MCP}})\) è:
Il valore ottimo \(z(\mathrm{LP}\text{-}0_{\mathrm{MCP}})\) è \(\frac{7}{2}\). Di conseguenza, abbiamo l'upper bound:
Con una variabile duale non negativa \(\pi_{uv}\) per ogni vincolo \(\eqref{mcpF:nonedge-LP0}\), il modello duale del modello \(\mathrm{LP}\text{-}0_{\mathrm{MCP}}\) è:
Questo modello PL si chiama modello \(D(\mathrm{LP}\text{-}0_{\mathrm{MCP}})\).
- I vincoli \(\eqref{mcpF:cov-DLP0}\) chiedono che ogni vertice sia coperto da un peso totale almeno pari a uno sugli spigoli di \(\overline{G}\) incidenti in esso: il modello \(D(\mathrm{LP}\text{-}0_{\mathrm{MCP}})\) è una copertura frazionaria dei vertici con spigoli di \(\overline{G}\).
Esempio 12.4: Modello \(D(\mathrm{LP}\text{-}0_{\mathrm{MCP}})\)
Il modello duale \(D(\mathrm{LP}\text{-}0_{\mathrm{MCP}})\) per l'istanza del MCP dell'Esempio 12.1 ha una variabile per ogni spigolo di \(\overline{G}\) e un vincolo per ogni vertice:
Una soluzione ottima \(\tilde{\vet\pi}(D(\mathrm{LP}\text{-}0_{\mathrm{MCP}}))\) dà valore \(\frac{1}{2}\) ai \(7\) spigoli del ciclo \(1,4,7,2,5,3,6,1\) di \(\overline{G}\):
Ogni vertice sta su due spigoli del ciclo e riceve \(\frac{1}{2}+\frac{1}{2}=1\). Il valore ottimo \(z(D(\mathrm{LP}\text{-}0_{\mathrm{MCP}}))\) è \(\frac{7}{2}\).
12.4 Un secondo rilassamento lineare¶
Per ottenere un rilassamento lineare del modello \(\mathrm{ILP}_{\mathrm{MCP}}\), rilassiamo i vincoli \(\eqref{mcpF:bin}\) nei bound \(0\le x_v\le 1\). Il modello PL ottenuto è il seguente:
Questo modello PL si chiama modello \(\mathrm{LP}_{\mathrm{MCP}}\).
Esempio 12.5: Modello \(\mathrm{LP}_{\mathrm{MCP}}\)
Il modello \(\mathrm{LP}_{\mathrm{MCP}}\) per l'istanza del MCP dell'Esempio 12.1 è:
Una soluzione ottima \(\tilde{\vet x}(\mathrm{LP}_{\mathrm{MCP}})\) è:
Il valore ottimo \(z(\mathrm{LP}_{\mathrm{MCP}})\) è \(\frac{7}{2}\). Di conseguenza, abbiamo l'upper bound:
Con una variabile duale non negativa \(\pi_{uv}\) per ogni vincolo \(\eqref{mcpF:nonedge-LP}\) e una variabile duale non negativa \(\lambda_v\) per ogni vincolo \(\eqref{mcpF:ub}\), il modello duale del modello \(\mathrm{LP}_{\mathrm{MCP}}\) è:
Questo modello PL si chiama modello \(D(\mathrm{LP}_{\mathrm{MCP}})\).
Esempio 12.6: Modello \(D(\mathrm{LP}_{\mathrm{MCP}})\)
Il modello duale \(D(\mathrm{LP}_{\mathrm{MCP}})\) per l'istanza del MCP dell'Esempio 12.1 è:
Una soluzione ottima \((\tilde{\vet\pi},\tilde{\vet\lambda})(D(\mathrm{LP}_{\mathrm{MCP}}))\) è la soluzione dell'Esempio 12.4 con \(\tilde\lambda_v=0\) per ogni \(v\in V\):
Il valore ottimo \(z(D(\mathrm{LP}_{\mathrm{MCP}}))\) è \(\frac{7}{2}\).
Proposizione 12.1: Il bound LP può essere arbitrariamente debole
Per ogni grafo \(G\) con \(n\) vertici, \(z(\mathrm{LP}_{\mathrm{MCP}})\ge n/2\). Di conseguenza, il rapporto \(z(\mathrm{LP}_{\mathrm{MCP}})/z(\mathrm{ILP}_{\mathrm{MCP}})\) non è limitato al variare dei grafi.
Dimostrazione
Poniamo \(x_v=\frac{1}{2}\) per ogni vertice. Ogni vincolo \(\eqref{mcpF:nonedge-LP}\) diventa \(\frac{1}{2}+\frac{1}{2}=1\), e i bound \(\eqref{mcpF:ub}\) e \(\eqref{mcpF:nonneg-LP}\) sono soddisfatti: è una soluzione ammissibile di \(\mathrm{LP}_{\mathrm{MCP}}\) di valore \(n/2\). I grafi senza triangoli e con almeno uno spigolo hanno \(\omega(G)=2\) per ogni \(n\), e per essi il rapporto è almeno \(n/4\). □
-
I dati sono interi e il valore ottimo del PLI è intero, quindi anche \(\lfloor z(\mathrm{LP}_{\mathrm{MCP}})\rfloor\) è un bound duale. Sull'Esempio 12.1 dà \(\lfloor\frac{7}{2}\rfloor=3=\omega(G)\) per caso; su un grafo senza triangoli dà \(\lfloor n/2\rfloor\), contro \(\omega(G)=2\).
-
Sul ciclo con \(5\) vertici \(C_5\), dove \(\omega(C_5)=2\), il punto \(x_v=\frac{1}{2}\) dà \(z(\mathrm{LP}_{\mathrm{MCP}})=\frac{5}{2}\).
12.5 Disuguaglianze di clique: una formulazione più forte¶
Proposizione 12.2: disuguaglianze di clique
Sia \(Q\subseteq V\) una clique di \(\overline{G}\), cioè un insieme stabile di \(G\). Allora
è una disuguaglianza valida per \(\mathrm{ILP}_{\mathrm{MCP}}\).
Dimostrazione
Una clique di \(G\) e un insieme stabile \(Q\) di \(G\) hanno al più un vertice in comune: due vertici comuni sarebbero insieme adiacenti e non adiacenti. Quindi ogni soluzione ammissibile di \(\mathrm{ILP}_{\mathrm{MCP}}\) seleziona al più un vertice di \(Q\). □
-
Le disuguaglianze \(\eqref{mcpF:cliqueineq}\) si chiamano disuguaglianze di clique, dalla clique \(Q\) di \(\overline{G}\); lette su \(G\), sono disuguaglianze di insieme stabile. I vincoli sui non-spigoli sono il caso \(|Q|=2\).
-
Se \(Q\subseteq Q'\), la disuguaglianza di \(Q'\) implica quella di \(Q\), perché tutte le variabili sono non negative. Basta scrivere le disuguaglianze delle clique massimali di \(\overline{G}\), la cui famiglia indichiamo con \(\mathcal{Q}\).
Con le variabili \(\eqref{mcpF:var}\), un secondo modello PLI per il problema della clique massima (MCP) è il seguente:
Questo modello PLI si chiama modello \(\mathrm{ILP}^{\mathrm{CL}}_{\mathrm{MCP}}\), o formulazione a clique.
-
Descrizione della funzione obiettivo e dei vincoli del modello \(\mathrm{ILP}^{\mathrm{CL}}_{\mathrm{MCP}}\):
-
la funzione obiettivo lineare \(\eqref{mcpF:obj-CL}\) massimizza la cardinalità della clique selezionata;
-
i vincoli \(\eqref{mcpF:cl}\) garantiscono che di ogni clique massimale di \(\overline{G}\) sia selezionato al più un vertice (\(|\mathcal{Q}|\) vincoli lineari);
-
infine, i vincoli \(\eqref{mcpF:bin-CL}\) definiscono le variabili del modello PLI.
-
-
Ogni spigolo di \(\overline{G}\) sta in una clique massimale, quindi ogni vincolo \(\eqref{mcpF:nonedge}\) è implicato da un vincolo \(\eqref{mcpF:cl}\): i due modelli hanno le stesse soluzioni ammissibili.
-
La famiglia \(\mathcal{Q}\) può essere molto grande: Moon e Moser (1965) hanno mostrato grafi con \(3^{n/3}\) clique massimali. In pratica le disuguaglianze si aggiungono solo quando sono violate, come nel Capitolo 4 «Disuguaglianze valide» del modulo Programmazione lineare intera.
Esempio 12.7: Modello \(\mathrm{ILP}^{\mathrm{CL}}_{\mathrm{MCP}}\)
Le clique massimali di \(\overline{G}\) nell'Esempio 12.1 sono i \(5\) triangoli e i \(2\) spigoli
e danno \(7\) vincoli invece di \(13\). Il modello \(\mathrm{ILP}^{\mathrm{CL}}_{\mathrm{MCP}}\) per questa istanza del MCP è:
Una soluzione ottima \(\tilde{\vet x}(\mathrm{ILP}^{\mathrm{CL}}_{\mathrm{MCP}})\) è:
Il valore ottimo \(z(\mathrm{ILP}^{\mathrm{CL}}_{\mathrm{MCP}})\) è \(3=\omega(G)\).
Per ottenere un rilassamento lineare del modello \(\mathrm{ILP}^{\mathrm{CL}}_{\mathrm{MCP}}\), rilassiamo i vincoli \(\eqref{mcpF:bin-CL}\) in vincoli di non negatività. Il modello PL ottenuto è il seguente:
Questo modello PL si chiama modello \(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}}\).
-
Ogni vertice sta in qualche clique massimale di \(\overline{G}\), quindi i vincoli \(\eqref{mcpF:cl-LP}\) implicano \(x_v\le 1\): i bound \(\eqref{mcpF:ub}\) non servono.
-
Ogni vincolo \(\eqref{mcpF:nonedge-LP}\) è implicato da un vincolo \(\eqref{mcpF:cl-LP}\). Quindi la regione ammissibile di \(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}}\) è contenuta in quella di \(\mathrm{LP}_{\mathrm{MCP}}\), e
\[ \omega(G) \;\le\; z(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}}) \;\le\; z(\mathrm{LP}_{\mathrm{MCP}}). \]
Esempio 12.8: Modello \(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}}\)
Il modello \(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}}\) per l'istanza del MCP dell'Esempio 12.1 è:
Il punto \(\bar x_v=\frac{1}{2}\) non è più ammissibile: \(\bar x_1+\bar x_4+\bar x_6=\frac{3}{2}>1\). Sommando i tre vincoli di \(\{1,4,6\}\), \(\{2,5,7\}\) e \(\{3,5,7\}\) otteniamo
Una soluzione ottima \(\tilde{\vet x}(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}})\) è:
Il valore ottimo \(z(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}})\) è \(3=\omega(G)\): il bound LP scende da \(\frac{7}{2}\) a \(3\) e chiude il gap.
-
Le disuguaglianze di clique non chiudono sempre il gap. Su \(C_5\) il complementare è ancora un ciclo con \(5\) vertici, le cui clique massimali sono i suoi spigoli: le due formulazioni coincidono e \(z(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}})= \frac{5}{2}>2=\omega(C_5)\).
-
Se \(C\) è un ciclo di \(\overline{G}\) con un numero dispari di vertici e senza corde, allora \(\sum_{v\in C}x_v\le(|C|-1)/2\) è una disuguaglianza valida (una disuguaglianza di ciclo dispari): un insieme stabile di \(\overline{G}\) prende al più \((|C|-1)/2\) vertici di \(C\). Per \(C_5\) si scrive \(x_1+\dots+x_5\le 2\) e chiude il gap.
12.6 La relazione con la colorazione dei vertici¶
-
In una colorazione di \(G\) i vertici di una clique hanno colori a due a due diversi, quindi (Capitolo 4 «Problemi di colorazione»)
\[ \omega(G)\le\chi(G). \]Qui collochiamo il bound LP della formulazione a clique fra i due numeri.
-
Le clique massimali di \(\overline{G}\) sono gli insiemi stabili massimali di \(G\), e una classe di colore è un insieme stabile. Introduciamo le seguenti \(|\mathcal{Q}|\) variabili binarie:
\[\begin{equation*} \label{mcpF:var-col} y_Q=\begin{cases}1&\text{se l'insieme stabile $Q$ è una classe di colore}\\[1.5ex]0&\text{altrimenti}\end{cases} \qquad\forall Q\in\mathcal{Q}. \tag{12.10} \end{equation*}\]
Con queste variabili, un modello PLI per il problema della colorazione dei vertici (VCP) è il seguente:
Questo modello PLI si chiama modello \(\mathrm{ILP}^{\mathrm{ST}}_{\mathrm{VCP}}\), o formulazione a insiemi stabili del VCP.
-
Descrizione della funzione obiettivo e dei vincoli del modello \(\mathrm{ILP}^{\mathrm{ST}}_{\mathrm{VCP}}\):
-
la funzione obiettivo lineare \(\eqref{mcpF:obj-col}\) minimizza il numero di classi di colore;
-
i vincoli \(\eqref{mcpF:cov-col}\) garantiscono che ogni vertice appartenga ad almeno un insieme stabile scelto (\(n\) vincoli lineari);
-
infine, i vincoli \(\eqref{mcpF:bin-col}\) definiscono le variabili del modello PLI.
-
-
Il suo valore ottimo è \(\chi(G)\): un vertice coperto da due insiemi scelti si tiene in uno solo dei due, e ogni sottoinsieme di un insieme stabile è stabile, quindi gli insiemi scelti danno una colorazione con lo stesso numero di colori.
Con una variabile duale non negativa \(\pi_Q\) per ogni vincolo \(\eqref{mcpF:cl-LP}\), il modello duale del modello \(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}}\) è:
Questo modello PL si chiama modello \(D(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}})\).
Proposizione 12.3: bound di clique dalla dualità LP
Il modello duale \(D(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}})\) è il rilassamento lineare del modello \(\mathrm{ILP}^{\mathrm{ST}}_{\mathrm{VCP}}\), con le variabili \(\pi_Q\) al posto di \(y_Q\). Quindi
Dimostrazione
Rilassando i vincoli \(\eqref{mcpF:bin-col}\) in \(y_Q\ge 0\) si ottiene esattamente il modello (12.12), con \(y_Q\) al posto di \(\pi_Q\). Per la dualità forte \(z(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}})=z(D(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}}))\). La prima disuguaglianza vale perché \(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}}\) è un rilassamento del MCP. La seconda vale perché \(D(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}})\) è un rilassamento del modello \(\mathrm{ILP}^{\mathrm{ST}}_{\mathrm{VCP}}\), un problema di minimo con valore ottimo \(\chi(G)\). □
- Il valore comune \(z(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}})\) si chiama numero cromatico frazionario di \(G\). La formulazione a clique del MCP e la formulazione a insiemi stabili del VCP sono due facce dello stesso problema LP.
Esempio 12.9: Modello \(D(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}})\)
Il modello duale \(D(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}})\) per l'istanza del MCP dell'Esempio 12.1 ha una variabile per ogni insieme stabile massimale di \(G\) (\(\pi_{146}\) per \(Q=\{1,4,6\}\), e così via):
Una soluzione ottima \(\tilde{\vet\pi}(D(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}}))\) dà valore \(1\) ai moltiplicatori usati nell'Esempio 12.8:
Il valore ottimo \(z(D(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}}))\) è \(3\).
Esempio 12.10: la catena \(\omega\le z(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}})\le\chi\)
-
Sull'Esempio 12.1, il modello \(\mathrm{ILP}^{\mathrm{ST}}_{\mathrm{VCP}}\) è:
\[ \begin{array}{rrrrrrrrcl} {\min} & {y_{146}} & {+\,y_{246}} & {+\,y_{247}} & {+\,y_{257}} & {+\,y_{357}} & {+\,y_{15}} & {+\,y_{36}} \\[1ex] \text{soggetto a} & {y_{146}} & & & & & {+\,y_{15}} & & {\ge} & {1} \\ & & {y_{246}} & {+\,y_{247}} & {+\,y_{257}} & & & & {\ge} & {1} \\ & & & & & {y_{357}} & & {+\,y_{36}} & {\ge} & {1} \\ & {y_{146}} & {+\,y_{246}} & {+\,y_{247}} & & & & & {\ge} & {1} \\ & & & & {y_{257}} & {+\,y_{357}} & {+\,y_{15}} & & {\ge} & {1} \\ & {y_{146}} & {+\,y_{246}} & & & & & {+\,y_{36}} & {\ge} & {1} \\ & & & {y_{247}} & {+\,y_{257}} & {+\,y_{357}} & & & {\ge} & {1} \\[1ex] & {y_{146}}, & {y_{246}}, & {y_{247}}, & {y_{257}}, & {y_{357}}, & {y_{15}}, & {y_{36}} & {\in} & {\{0,1\}} \end{array} \]Il punto intero \(\tilde y_{146}=\tilde y_{257}=\tilde y_{357}=1\), con tutte le altre variabili pari a \(0\), è la soluzione dell'Esempio 12.9: è una colorazione con \(3\) colori, le classi \(\{1,4,6\}\), \(\{2,5,7\}\) e \(\{3\}\). Quindi \(\chi(G)=3\), e la catena diventa \(3\le 3\le 3\).
-
Su \(C_5\), con vertici \(1,\dots,5\), gli insiemi stabili massimali sono i \(5\) non-spigoli. Ponendo \(\pi_Q=\frac{1}{2}\) su ciascuno di essi ogni vertice riceve in totale \(1\), quindi il duale ha valore \(\frac{5}{2}\), come il primale. La catena diventa
\[ \omega(C_5)=2 \;<\; z(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}})=\frac{5}{2} \;<\; \chi(C_5)=3 . \]
12.7 Insiemi stabili sul grafo complementare¶
Il problema di questa sezione è il problema dell'insieme stabile massimo (MSSP), definito nel Capitolo 5 «Problemi di clique», Sezione 5.2.
-
Dato un grafo semplice \(G=(V,E)\), con \(V=\{1,2,\dots,n\}\) e \(m\) spigoli, introduciamo le seguenti \(n\) variabili binarie:
\[\begin{equation*} \label{mcpF:var-mssp} x_v=\begin{cases}1&\text{se il vertice $v$ è selezionato nell'insieme stabile}\\[1.5ex]0&\text{altrimenti}\end{cases} \qquad\forall v\in V. \tag{12.13} \end{equation*}\]
Con queste variabili, un modello di programmazione lineare intera (PLI) per il problema dell'insieme stabile massimo (MSSP) è il seguente:
Questo modello PLI si chiama modello \(\mathrm{ILP}_{\mathrm{MSSP}}\), o formulazione sugli spigoli del MSSP.
-
Descrizione della funzione obiettivo e dei vincoli del modello \(\mathrm{ILP}_{\mathrm{MSSP}}\):
-
la funzione obiettivo lineare \(\eqref{mcpF:obj-mssp}\) massimizza la cardinalità dell'insieme stabile selezionato;
-
i vincoli \(\eqref{mcpF:edge-mssp}\) garantiscono che due vertici adiacenti non siano selezionati entrambi (\(m\) vincoli lineari, uno per ogni spigolo di \(G\));
-
infine, i vincoli \(\eqref{mcpF:bin-mssp}\) definiscono le variabili del modello PLI.
-
-
Il modello \(\mathrm{ILP}_{\mathrm{MSSP}}\) su \(G\) è il modello \(\mathrm{ILP}_{\mathrm{MCP}}\) su \(\overline{G}\): i non-spigoli di \(\overline{G}\) sono gli spigoli di \(G\). È l'identità \(\alpha(G)=\omega(\overline{G})\) scritta come modello.
Esempio 12.11: Modello \(\mathrm{ILP}_{\mathrm{MSSP}}\)
Consideriamo il grafo \(G\) dell'Esempio 12.1, il ciclo \(1,2,\dots,7,1\) con la corda \(\{1,3\}\), e cerchiamo un insieme stabile massimo di \(G\). Il modello \(\mathrm{ILP}_{\mathrm{MSSP}}\) ha \(7\) variabili binarie e un vincolo per ciascuno degli \(8\) spigoli di \(G\):
Una soluzione ottima \(\tilde{\vet x}(\mathrm{ILP}_{\mathrm{MSSP}})\) è:
Il valore ottimo \(z(\mathrm{ILP}_{\mathrm{MSSP}})\) è \(3=\alpha(G)\). La soluzione ottima non è unica: gli insiemi stabili massimi di \(G\) sono \(\{1,4,6\}\), \(\{2,4,6\}\), \(\{2,4,7\}\), \(\{2,5,7\}\) e \(\{3,5,7\}\), i cinque triangoli di \(\overline{G}\).
- Un insieme stabile e una clique di \(G\) hanno al più un vertice in comune, quindi per ogni clique \(K\) di \(G\) la disuguaglianza di clique \(\sum_{v\in K}x_v\le 1\) è valida, e implica i vincoli \(\eqref{mcpF:edge-mssp}\) degli spigoli di \(K\). Come per il MCP, basta scrivere le disuguaglianze della famiglia \(\mathcal{K}\) delle clique massimali di \(G\).
Con le variabili \(\eqref{mcpF:var-mssp}\), un secondo modello PLI per il problema dell'insieme stabile massimo (MSSP) è il seguente:
Questo modello PLI si chiama modello \(\mathrm{ILP}^{\mathrm{CL}}_{\mathrm{MSSP}}\), o formulazione a clique del MSSP.
-
Descrizione della funzione obiettivo e dei vincoli del modello \(\mathrm{ILP}^{\mathrm{CL}}_{\mathrm{MSSP}}\):
-
la funzione obiettivo lineare \(\eqref{mcpF:obj-mssp-cl}\) massimizza la cardinalità dell'insieme stabile selezionato;
-
i vincoli \(\eqref{mcpF:cl-mssp}\) garantiscono che di ogni clique massimale di \(G\) sia selezionato al più un vertice (\(|\mathcal{K}|\) vincoli lineari);
-
infine, i vincoli \(\eqref{mcpF:bin-mssp-cl}\) definiscono le variabili del modello PLI.
-
-
Il modello \(\mathrm{ILP}^{\mathrm{CL}}_{\mathrm{MSSP}}\) su \(G\) è il modello \(\mathrm{ILP}^{\mathrm{CL}}_{\mathrm{MCP}}\) su \(\overline{G}\), e il suo rilassamento lineare è forte almeno quanto quello del modello \(\mathrm{ILP}_{\mathrm{MSSP}}\).
Esempio 12.12: Modello \(\mathrm{ILP}^{\mathrm{CL}}_{\mathrm{MSSP}}\)
Le clique massimali del grafo \(G\) dell'Esempio 12.1 sono il triangolo \(\{1,2,3\}\) e i cinque spigoli \(\{3,4\},\{4,5\},\{5,6\},\{6,7\},\{1,7\}\). Il modello \(\mathrm{ILP}^{\mathrm{CL}}_{\mathrm{MSSP}}\) sostituisce i tre vincoli del triangolo con un solo vincolo, e ha \(6\) vincoli:
La soluzione ottima \(\tilde x_1=\tilde x_4=\tilde x_6=1\) dell'Esempio 12.11 è ottima anche qui, con valore \(z(\mathrm{ILP}^{\mathrm{CL}}_{\mathrm{MSSP}})=3\). I rilassamenti lineari sono diversi (Gurobi): la formulazione sugli spigoli, con \(0\le x_v\le 1\), ha valore ottimo \(\frac{7}{2}\) in \(x_v=\frac{1}{2}\), mentre la formulazione a clique ha valore ottimo \(3\), raggiunto da \(x_2=x_5=x_7=1\).