12.8 Modelli PLI per le varianti pesate¶
Parte 2 · Formulazioni dei problemi e loro proprietà · Capitolo 12 · Capitolo 12: Problemi di clique · Dispensa, volume 2 (PDF) · Slide · Esercizi: Problemi di clique
I problemi di questa sezione sono i problemi della clique massima pesata sui vertici (VWMCP) e pesata sugli spigoli (EWMCP), definiti nel Capitolo 5 «Problemi di clique», Sezione 5.5, con le loro istanze di riferimento.
12.8.1 Il problema della clique massima pesata sui vertici¶
-
Dato un grafo semplice \(G=(V,E)\) e un vettore dei pesi dei vertici \(\vet w\in\Z_{\ge 1}^n\), usiamo le \(n\) variabili binarie \(\eqref{mcpF:var}\) della formulazione sugli spigoli:
\[ 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. \]
Con queste variabili, un modello di programmazione lineare intera (PLI) per il problema della clique massima pesata sui vertici (VWMCP) è il seguente:
Questo modello PLI si chiama modello \(\mathrm{ILP}^{\mathrm{VW}}_{\mathrm{MCP}}\).
-
Descrizione della funzione obiettivo e dei vincoli del modello \(\mathrm{ILP}^{\mathrm{VW}}_{\mathrm{MCP}}\):
-
la funzione obiettivo lineare \(\eqref{mcpF:obj-vw}\) massimizza il peso totale \(w(K)\) della clique selezionata;
-
i vincoli \(\eqref{mcpF:nonedge-vw}\) garantiscono che due vertici non adiacenti non siano selezionati entrambi (\(|\overline{E}|=\binom{n}{2}-m\) vincoli lineari);
-
infine, i vincoli \(\eqref{mcpF:bin-vw}\) definiscono le variabili del modello PLI.
-
-
Cambia solo la funzione obiettivo: le soluzioni ammissibili sono le clique di \(G\), come nel modello \(\mathrm{ILP}_{\mathrm{MCP}}\), e con \(w_v=1\) per ogni vertice i due modelli coincidono. Anche qui sono valide le disuguaglianze di clique di \(\overline{G}\).
Esempio 12.13: Modello \(\mathrm{ILP}^{\mathrm{VW}}_{\mathrm{MCP}}\)
Consideriamo il grafo \(G\) con \(8\) vertici su una circonferenza, in cui ogni vertice è adiacente a tutti gli altri tranne quello opposto: \(G\) ha \(24\) spigoli, e \(\overline{G}\) ha i \(4\) spigoli \(\{1,5\},\{2,6\},\{3,7\},\{4,8\}\). I pesi dei vertici sono:
È l'istanza del VWMCP del Capitolo 5 «Problemi di clique». Il modello \(\mathrm{ILP}^{\mathrm{VW}}_{\mathrm{MCP}}\) ha \(8\) variabili binarie e un vincolo per ciascuno dei \(4\) spigoli di \(\overline{G}\):
Una soluzione ottima \(\tilde{\vet x}(\mathrm{ILP}^{\mathrm{VW}}_{\mathrm{MCP}})\) è:
Il valore ottimo \(z(\mathrm{ILP}^{\mathrm{VW}}_{\mathrm{MCP}})\) è \(8+9+6+9=32\), come indicato nel Capitolo 5 «Problemi di clique». La soluzione ottima associata è la clique \(\tilde K=\{2,3,5,8\}\), ed è l'unica soluzione ottima: ogni vincolo tiene il vertice più pesante della sua coppia.
12.8.2 Il problema della clique massima pesata sugli spigoli¶
-
Dato un grafo semplice \(G=(V,E)\) e un vettore dei pesi degli spigoli \(\vet r\in\Z_{\ge 1}^m\), il peso di uno spigolo si raccoglie solo se entrambi i suoi estremi sono selezionati: il prodotto \(x_u\,x_v\) non è lineare. Introduciamo le \(n\) variabili binarie \(\eqref{mcpF:var}\) e le seguenti \(m\) variabili binarie:
\[\begin{equation*} \label{mcpF:var-ew} y_{uv}=\begin{cases}1&\text{se gli estremi di $\{u,v\}$ sono entrambi nella clique}\\[1.5ex]0&\text{altrimenti}\end{cases} \qquad\forall\{u,v\}\in E. \tag{12.17} \end{equation*}\]
Con queste variabili, un modello di programmazione lineare intera (PLI) per il problema della clique massima pesata sugli spigoli (EWMCP) è il seguente:
Questo modello PLI si chiama modello \(\mathrm{ILP}^{\mathrm{EW}}_{\mathrm{MCP}}\).
-
Descrizione della funzione obiettivo e dei vincoli del modello \(\mathrm{ILP}^{\mathrm{EW}}_{\mathrm{MCP}}\):
-
la funzione obiettivo lineare \(\eqref{mcpF:obj-ew}\) massimizza il peso totale \(r(K)\) degli spigoli con entrambi gli estremi nella clique selezionata;
-
i vincoli \(\eqref{mcpF:yu-ew}\) e \(\eqref{mcpF:yv-ew}\) permettono \(y_{uv}=1\) solo se entrambi gli estremi sono selezionati (\(2m\) vincoli lineari);
-
i vincoli \(\eqref{mcpF:nonedge-ew}\) garantiscono che i vertici selezionati formino una clique (\(\binom{n}{2}-m\) vincoli lineari);
-
infine, i vincoli \(\eqref{mcpF:binx-ew}\) e \(\eqref{mcpF:biny-ew}\) definiscono le variabili del modello PLI.
-
-
I vincoli \(\eqref{mcpF:yu-ew}\) e \(\eqref{mcpF:yv-ew}\) modellano l'implicazione \(y_{uv}=1 \Rightarrow x_u=x_v=1\). L'implicazione inversa \(x_u=x_v=1 \Rightarrow y_{uv}=1\), cioè \(y_{uv}\ge x_u+x_v-1\), non serve: poiché \(r_{uv}>0\), in ogni soluzione ottima \(y_{uv}\) prende il valore massimo consentito, \(\min\{x_u,x_v\}\).
Esempio 12.14: Modello \(\mathrm{ILP}^{\mathrm{EW}}_{\mathrm{MCP}}\)
Consideriamo il grafo \(G\) dell'Esempio 12.13, con i pesi degli spigoli dell'istanza dell'EWMCP del Capitolo 5 «Problemi di clique»; sono i coefficienti della funzione obiettivo qui sotto. Il modello \(\mathrm{ILP}^{\mathrm{EW}}_{\mathrm{MCP}}\) ha \(8+24=32\) variabili binarie, \(48\) vincoli \(y_{uv}\le x_u\), \(y_{uv}\le x_v\) e \(4\) vincoli sui non-spigoli:
Una soluzione ottima \((\tilde{\vet x},\tilde{\vet y})(\mathrm{ILP}^{\mathrm{EW}}_{\mathrm{MCP}})\) è:
Il valore ottimo \(z(\mathrm{ILP}^{\mathrm{EW}}_{\mathrm{MCP}})\) è \(6+9+4+7+3+8=37\), come indicato nel Capitolo 5 «Problemi di clique». La soluzione ottima associata è la clique \(\tilde K=\{2,5,7,8\}\), ed è l'unica soluzione ottima.
12.9 Errori tipici¶
Attenzione
-
Scrivere i vincoli sugli spigoli di \(G\). La formulazione sugli spigoli del MCP ha un vincolo per ogni non-spigolo di \(G\); sugli spigoli di \(G\) gli stessi vincoli descrivono gli insiemi stabili di \(G\).
-
Fidarsi del bound LP della formulazione sugli spigoli. Il punto \(x_v=\frac{1}{2}\) è sempre ammissibile, quindi \(z(\mathrm{LP}_{\mathrm{MCP}})\ge n/2\) anche quando \(\omega(G)=2\).
-
Dimenticare i bound \(x_v\le 1\) nella formulazione sugli spigoli. Un vertice adiacente a tutti gli altri non compare in nessun vincolo, e \(\mathrm{LP}\text{-}0_{\mathrm{MCP}}\) diventa illimitato. Nella formulazione a clique i bound sono implicati.
-
Credere che le disuguaglianze di clique chiudano ogni gap. Su \(C_5\) coincidono con i vincoli sui non-spigoli, e serve la disuguaglianza di ciclo dispari.
-
Usare clique non massimali di \(\overline{G}\). Le loro disuguaglianze sono valide ma dominate: le clique massimali danno i vincoli più forti di questa famiglia.
-
Confondere i grafi del MCP e del MSSP. Il modello \(\mathrm{ILP}_{\mathrm{MSSP}}\) ha un vincolo per ogni spigolo di \(G\), il modello \(\mathrm{ILP}_{\mathrm{MCP}}\) uno per ogni spigolo di \(\overline{G}\).
-
Scrivere \(y_{uv}=x_u\,x_v\) nel modello pesato sugli spigoli. Il prodotto non è lineare: i vincoli \(y_{uv}\le x_u\) e \(y_{uv}\le x_v\) lo sostituiscono, e i pesi positivi rendono \(y_{uv}=1\) ogni volta che entrambi gli estremi sono selezionati.
12.10 In sintesi¶
In sintesi
-
La formulazione sugli spigoli \(\mathrm{ILP}_{\mathrm{MCP}}\) ha una variabile binaria per vertice e un vincolo \(x_u+x_v\le 1\) per spigolo di \(\overline{G}\): è la formulazione sugli spigoli del MSSP su \(\overline{G}\).
-
Il suo rilassamento lineare è debole: \(x_v=\frac{1}{2}\) è ammissibile e \(z(\mathrm{LP}_{\mathrm{MCP}})\ge n/2\).
-
Le disuguaglianze di clique \(\sum_{v\in Q}x_v\le 1\), per le clique massimali \(Q\) di \(\overline{G}\), danno una formulazione più forte con \(\omega(G)\le z(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}})\le z(\mathrm{LP}_{\mathrm{MCP}})\).
-
Il duale di \(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}}\) è il rilassamento lineare di una formulazione di colorazione, quindi \(\omega(G)\le z(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}})\le\chi(G)\).
-
Il modello \(\mathrm{ILP}_{\mathrm{MSSP}}\) ha un vincolo \(x_u+x_v\le 1\) per spigolo di \(G\); con le clique massimali di \(G\) diventa la formulazione a clique. Sull'Esempio 12.1 il valore ottimo è \(\alpha(G)=3\).
-
Il modello pesato sui vertici cambia solo la funzione obiettivo; il modello pesato sugli spigoli aggiunge una variabile \(y_{uv}\) per spigolo, con \(y_{uv}\le x_u\) e \(y_{uv}\le x_v\). Sulle istanze del Capitolo 5 «Problemi di clique» i loro valori ottimi sono \(32\) e \(37\).
Cruscotto (massimizzazione). Bound su \(\omega(G)\) calcolati in questo capitolo:
| istanza | \(z(\mathrm{LP}_{\mathrm{MCP}})\) | \(z(\mathrm{LP}^{\mathrm{CL}}_{\mathrm{MCP}})\) | \(\omega(G)\) |
|---|---|---|---|
| Esempio 12.1 (ciclo con una corda) | \(\frac{7}{2}\) | \(3\) | \(3\) |
| \(C_5\) | \(\frac{5}{2}\) | \(\frac{5}{2}\) | \(2\) (disuguaglianza di ciclo dispari) |
Esercizi su questo capitolo: Problemi di clique