DM Complexité : 1_3_SAT, VECSUBSETSUM, WEIGHTEDPATH

DM de Complexité

Énoncé

http://younesse.net/Calculabilite/DM_Complexite/

Younesse Kaddar

EX 1

Q1

Prop = \lbrace p \rbrace
𝜓 ≝ p ∨ p ∨ p

est positive pour $\textsf{3_SAT}$ (avec $v(p) = True$), et négative pour $\textsf{UNIQ_SAT}$ (les valuations $p \mapsto True$ et $p \mapsto False$ ne valident pas “un et un seul littéral” dans la clause).

Q2

$\textsf{UNIQ_SAT}$ est dans $\textsf{NP}$

La machine de Turing non déterministe devine une valuation $v : Prop ⟶ Bool$ en temps linéaire, et n’accepte que si un et un seul littéral dans chaque clause est validé par $v$, rejette sinon : cela prend un temps linéaire, donc polynomial.

Algorithme que suit la machine non déterministe :

ValideUniqSAT(v, 𝜓) :
  Si 𝜓 est de la forme :
    C_1 ∧ ⋯ ∧ C_n :
        retourne ValideUniqSAT(v, C_1) ∧ ⋯ ∧ ValideUniqSAT(v, C_n)
    a ∨ b ∨ c :
        Si v(a) ∧ ¬v(b) ∧ ¬v(c)  OU  v(b) ∧ ¬v(a) ∧ ¬v(c)  OU  v(c) ∧ ¬v(b) ∧ ¬v(a) :
            retourne Vrai
        Sinon :
            retourne Faux

Devine une valuation v
Si ValideUniqSAT(v, 𝜓) :
    Accepte
Sinon :
    Rejette

$\textsf{UNIQ_SAT}$ est $\textsf{NP}$-difficile

Il suffit de réduire $\textsf{3_SAT}$ à $\textsf{UNIQ_SAT}$, puisque $\textsf{3_SAT}$ est $\textsf{NP}$-difficile.

Montrons que \textsf{3_SAT} ≼_{\textsf{LOGSPACE}} \textsf{UNIQ_SAT}

Soit $𝜓 ≝ C_1 ∧ ⋯ ∧ Cm$ une instance de $\textsf{3_SAT}$, c’est-à-dire une formule propositionnelle sous forme normale conjonctive, où

  • chaque clause $C_i$ est de la forme $l_{i,1} ∨ l_{i,2} ∨ l_{i,3}$
  • chaque $l_{i,j}$ est de la forme \underbrace{𝜀_{i,j}}_{∈\lbrace +, -\rbrace} p_{i,j}

    • où $p_{i,j}$ est une variable propositionnelle : $p_{i,j} ∈ Prop$

Montrons qu’il existe une fonction calculable $r: \textsf{3_SAT} ⟶ \textsf{UNIQ_SAT}$ telle que :

  • il existe une valuation qui valide $𝜓$ si, et seulement si il existe une valuation qui valide un et un seul littéral dans chaque clause de $r(𝜓)$
  • la réduction $r$ est en $\textsf{LOGSPACE}$

En effet :

À toute clause $C_i ≝ l_{i,1} ∨ l_{i,2} ∨ l_{i,3}$, on associe trois clauses

\underbrace{-l_{i,1} ∨ x_i ∨ y_i}_{≝ \, C_{i,1}} \, ∧ \, \underbrace{y_i ∨ l_{i,2} ∨ z_i}_{≝ \, C_{i,2}} \, ∧ \, \underbrace{z_i ∨ t_i ∨ -l_{i,3}}_{≝ \, C_{i,3}}

où $x_i, y_i, z_i, t_i$ sont de nouvelles variables propositionnelles.

Pour toute valuation $v: Prop ⟶ Bool$, il vient que :

  • Si $v$ valide $C_i$ :

    • Cas 1 : Si $v(l_{i,2})=True$ : on peut choisir

      \begin{cases} v(y_i) = v(z_i) = False \\ v(x_i) = v(l_{i,1}) \\ v(t_i) = v(l_{i,3}) \end{cases}
    • Cas 2 : Sinon si $v(l_{i,1})= v(l_{i,3}) = True$ : on peut choisir

      \begin{cases} v(x_i) = v(l_{i,1}) = True \\ v(y_i) = False \\ v(z_i) = True \\ v(t_i) = v(-l_{i,3}) = False \\ \end{cases}
    • Cas 3 : Sinon si $v(l_{i,1}) = True, v(l_{i,3}) = False$ : on peut choisir

      \begin{cases} v(x_i) = v(l_{i,1}) = True \\ v(y_i) = False \\ v(z_i) = True \\ v(t_i) = v(l_{i,3}) = False \\ \end{cases}
    • Cas 4 : Sinon si $v(l_{i,1}) = False, v(l_{i,3}) = True$ (cas symétrique au précédent) : on peut choisir

      \begin{cases} v(x_i) = v(l_{i,1}) = False \\ v(y_i) = True \\ v(z_i) = False \\ v(t_i) = v(l_{i,3}) = True \\ \end{cases}

      dans tous les cas : on vérifie aisément que $v$ valide un et un seul littéral dans $C_{i,1}, C_{i,2}$ et $C_{i,3}$.

  • Réciproquement, si $v$ valide un et un seul littéral dans $C_{i,1}, C_{i,2}$ et $C_{i,3}$ :

    • Cas 1 : Si $v(l_{i,2})=True$ : alors $v$ valide $C_i$

    • Cas 2 : Sinon : alors nécessairement

      • Sous-Cas 1 : $v(y_i)= True, v(z_i)= False$ : et, par suite, dans $C_{i,1}$ :

        v(-l_{i,1}) = False \, \, (= v(x_i))

        d’où $v(l_{i,1}) = True$, et $v$ valide $C_i$

      • Sous-Cas 2 : $v(y_i)= False, v(z_i)= True$ : de même (par symétrie), on montre que $v(l_{i,3}) = True$, et $v$ valide $C_i$

    dans tous les cas : $v$ valide $C_i$.

On a donc montré que :

$v$ valide $C_i$ si, et seulement si $v$ valide un et un seul littéral dans $C_{i,1}, C_{i,2}$ et $C_{i,3}$

Par suite :

\begin{align*} \text{$v$ valide $𝜓$} \, \, \, \textit{si, et seulement si } \, \,& \text{$v$ valide $C_1$ et $C_2$, $\ldots$, et $C_m$} \\ \textit{si, et seulement si } \, \, & \text{$v$ valide un et un seul littéral dans $C_{1,1}, C_{1,2}$, $C_{1,3}$, $\ldots$, et dans $C_{m,1}, C_{m,2}$, $C_{m,3}$} \\ \textit{si, et seulement si } \, \, & \text{$v$ valide un et un seul littéral dans chaque clause de $\underbrace{\bigwedge\limits_{i=1}^m C_{i,1} ∧ C_{i,2} ∧ C_{i,3}}_{ ≝ \, r(𝜓)}$} \\ \end{align*}

Par ailleurs, la réduction est en $\textsf{LOGSPACE}$ puisqu’on n’ajoute que 4 nouvelles variables propositionnelles par clause, si bien que pour toute clause $C_i$, les trois nouvelles clauses $C_{i,1}, C_{i,2}, C_{i,3}$ peuvent être écrites “à la volée” sur le ruban de sortie, utilisant ainsi un espace logarithmique sur le ruban de travail.

On a donc montré que :

$\textsf{UNIQ_SAT}$ est $\textsf{NP}$-complet

EX 2

Q1

$\textsf{VECSUBSETSUM_unary}$ est $\textsf{NP}$-difficile

Il suffit de réduire $\textsf{UNIQ_SAT}$ à $\textsf{VECSUBSETSUM_unary}$, puisque $\textsf{UNIQ_SAT}$ est $\textsf{NP}$-difficile.

Montrons que $\textsf{UNIQ_SAT} ≼_{\textsf{LOGSPACE}} \textsf{VECSUBSETSUM_unary}$

On utilise les mêmes notations que précédemment.

Soit

𝜓 ≝ C_1 ∧ ⋯ ∧ Cm ≝ \bigwedge\limits_{i=1}^m \bigvee\limits_{j=1}^3 \underbrace{l_{i,j}}_{ \, ≝ \, \underbrace{𝜀_{i,j}}_{∈\lbrace +, -\rbrace} \underbrace{p_{i,j}}_{∈Prop}}

une instance de $\textsf{UNIQ_SAT}$.

Montrons qu’il existe une fonction calculable $r: \textsf{UNIQ_SAT} ⟶ \textsf{VECSUBSETSUM_unary}$ telle que :

  • il existe une valuation qui valide un et un seul littéral dans chaque clause de $𝜓$ si, et seulement si

    r(𝜓) ≝ \left\langle \underbrace{1 ⋯ 1}_{d \text{ fois}} \, , \underbrace{v_1, \ldots, v_r, \, w}_{∈ ℕ^d \text{ donnés en unaire}} \right\rangle

    est tel que

    ∃I⊆⟦1,r⟧; \, \, w = \sum\limits_{i∈I} v_i
  • la réduction $r$ est en $\textsf{LOGSPACE}$

En effet :

Soit $v: Prop ⟶ Bool$ une valuation. On note $p_1, \ldots, p_n$ les variables propositionnelles de $𝜓$.

En s’inspirant de la démonstration du caractère $\textsf{NP}$-difficile de $\textsf{SUBSETSUM}$, on va construire un ensemble de $E ≝ \lbrace v_i \rbrace_{i∈⟦1, 2n⟧}$ de $2n$ vecteurs de $ℕ^{n+m}$ donnés en base $1$ tel que :

$v$ valide un et un seul littéral dans chaque clause de $𝜓$ si, et seulement si ∃I⊆⟦1,2n⟧; \, \, w = \sum\limits_{i∈I} v_i

Pour tout $i∈⟦1,n⟧$ :

  • ∀j∈⟦1, n⟧, \, \, \, v_{2i-1}[j] = v_{2i}[j] = \begin{cases} 1 \text{ si } j=i \\ 0 \text{ sinon} \end{cases}
  • ∀j∈⟦n+1, n+m⟧, \\ \, \, \, v_{2i-1}[j] = \begin{cases} 1 \text{ si } p_i \text{ apparaît dans } C_{j-n}\\ 0 \text{ sinon} \end{cases} \\ \, \, \, v_{2i}[j] = \begin{cases} 1 \text{ si } -p_i \text{ apparaît dans } C_{j-n}\\ 0 \text{ sinon} \end{cases}

Si par exemple $p_i$ apparaît positivement dans $C_k$, négativement dans $C_l$ et $C_r$, la situation est résumée par le tableau suivant :

Coordonnée Correspond à $v_{2i-1}$ $v_{2i}$
$1$ $p_1$ $0$ $0$
$\vdots$ $\vdots$ $\vdots$ $\vdots$
$i-1$ $p_{i-1}$ $0$ $0$
$i$ $p_i$ $1$ $1$
$i+1$ $p_{i+1}$ $0$ $0$
$\vdots$ $\vdots$ $\vdots$ $\vdots$
$n$ $p_{n}$ $0$ $0$
$n+1$ $C_1$ $0$ $0$
$\vdots$ $\vdots$ $\vdots$ $\vdots$
$n+r$ $C_r$ $0$ $1$
$\vdots$ $\vdots$ $\vdots$ $\vdots$
$n+k$ $C_k$ $1$ $0$
$\vdots$ $\vdots$ $\vdots$ $\vdots$
$n+l$ $C_l$ $0$ $1$
$\vdots$ $\vdots$ $\vdots$ $\vdots$
$n+m$ $C_m$ $0$ $0$

On note $w ≝ {}^t(1 ⋯ 1)$ le vecteur de $ℕ^{n+m}$ dont chacune des coordonnées vaut $1$.

Dans la suite, les opérations seront effectuées en base unaire.

  • Si $v$ valide un et un seul littéral dans chaque clause de $𝜓$ :

    Alors en notant $I$ l’ensemble

    I≝ \lbrace (2i-1) \times \mathbf{1}_{v(p_i) = True} + 2i \times \mathbf{1}_{v(p_i) = False}\rbrace_{i∈⟦1,n⟧}

    il vient que :

    w = \sum\limits_{i∈I} v_i

    puisque

    • $∀i∈⟦1,n⟧$ :

      v_{2i-1} ∈ I ⟺ v_{2i} ∉ I

      donc la coordonnée $i$ de $\sum\limits_{l∈I} v_l$ vaut $1$

    • $∀j∈⟦n+1,n+m⟧$ : $v$ valide un et seul littéral dans $C_{j-n} ≝ l_{j-n, 1} ∨ l_{j-n, 2} ∨ l_{j-n, 3}$.

      Sans perte de généralité : si c’est $l_{j-n, 2}$ :

      • Si $l_{j-n, 2}$ est de la forme $+p_k$ (où $p_k∈Prop$) :

        alors, par définition de $I$, $2k-1∈I$, et $v_{2k-1}[j]=1$

      • Si $l_{j-n, 2}$ est de la forme $-p_k$ (où $p_k∈Prop$) :

        alors, par définition de $I$, $2k∈I$, et $v_{2k}[j]=1$

        comme $v$ ne valide aucun autre littéral de $C_{j-n}$, aucun autre vecteur n’a de $1$ sur sa $(j-n)$-ième coordonnée.

        Donc la coordonnée $j$ de $\sum\limits_{l∈I} v_l$ vaut $1$

  • Réciproquement, si $∃I⊆⟦1,2n⟧; \, \, w = \sum\limits_{i∈I} v_i$ :

    Pour tout $i∈⟦1,n⟧$, $I$ contient $2i-1$ ou (exclusif) $2i$

    • car si $I$ contenait les deux, la $i$-ème coordonnée de $w$ vaudrait $11$ (base unaire)

    Pour tout $i∈⟦1,n⟧$, on pose

    \begin{cases} v(p_i) ≝ True \text{ si } 2i−1∈I \\ v(p_i) ≝ False \text{ sinon} \end{cases}

    Pour tout $j∈⟦n+1, n+m⟧$, comme la $j$-ième coordonnée de $w = \sum\limits_{l∈I} v_l$ vaut $1$, il existe un unique vecteur $v_i$ dont la $j$-ième coordonnée vaut $1$, ce implique qu’un et un seul littéral associé à la clause $C_{j-n}$ a pour valuation $True$.

On a donc montré que :

$v$ valide un et un seul littéral dans chaque clause de $𝜓$ si, et seulement si ∃I⊆⟦1,2n⟧; \, \, w = \sum\limits_{i∈I} v_i


Par ailleurs, la réduction peut être effectuée en $\textsf{LOGSPACE}$.

En effet :

Il suffit que la machine de Turing effectuant la réduction procède comme suit :

  • Étape 1 : la machine parcourt $𝜓$ pour compter les nombres $m$ de clauses et $n$ de variables propositionnelles de $𝜓$ : pour chaque nouvelle clause (resp. variable propositionnelle), la machine écrit un $1$ sur le ruban de sortie, en incrémente un compteur (en binaire) de clauses (resp. de variables propositionnelles) sur le ruban de travail.
    • Reconnaître une nouvelle clause est immédiat (puisque chaque clause contient exactement 3 littéraux), mais pour reconnaître une nouvelle variable, la machine la comparera avec tous les littéraux précédents, pour établir si elle est déjà apparue avant ou non.

    À la fin de cette étape, la dimension $d=n+m$ aura été écrite sur le ruban de sortie, et les nombres $n$ et $m$ seront stockés (en binaire) sur le ruban de travail.

  • Étape 2 : la machine fait deux copies des compteurs présents sur le ruban de travail :

    • une copie servira à mémoriser l’indice $i∈⟦1,2n⟧$ du vecteur en cours d’écriture sur le ruban de sortie
    • une autre à mémoriser l’indice $j∈⟦1,n+m⟧$ de la coordonnée du vecteur en cours d’écriture sur le ruban de sortie
    • la version originale servira à réinitialiser le compteur de coordonnée, au vecteur suivant
  • Étape 3 : pour construire chacun des $v_i$, la machine utilise (en les décrémentant) les compteurs précédents pour calculer “à la volée” et écrire sur le ruban de sortie la coordonnée courante du vecteur courant.

On a donc montré que :

$\textsf{VECSUBSETSUM_unary}$ est $\textsf{NP}$-difficile.

Problème

Pour tout chemin $𝜌∈E^+$, on notera $\vert 𝜌 \vert$ la longueur de $𝜌$.

Q1

Soit $𝜌 ≝ e_1 ⋯ e_l ∈E^+$ un chemin de poids $a$ allant de $u = {}^\bullet e_1$ à $v = {e_l} ^\bullet$ et de longueur minimale (un tel chemin existe puisqu’il existe un chemin de poids $a$ allant de $u$ à $v$).

On note $V_𝜌$ l’ensemble des sommets apparaissant dans $𝜌$ :

V_𝜌 ≝ \lbrace x∈V \, \mid \, ∃i∈⟦1, l⟧; x = {e_i}^\bullet \rbrace

On pose

𝜑 ≝ \begin{cases} ⟦1,l⟧ ⟶ ⟦0,a⟧ \times V \\ i \mapsto \left(p(e_1 ⋯ e_i), {e_i}^\bullet\right) \end{cases}

$𝜑$ est bien définie :

En effet :

Il suffit de montrer que :

∀i∈⟦1,l⟧, 0 ≤ p(e_1 ⋯ e_i) ≤ a
  • Pour tout $i∈⟦1,l⟧$, la positivité de $p(e_1 ⋯ e_i)$ est évidente, puisque $p$ est à valeurs dans $ℕ$
  • S’il existait un indice $i∈⟦1,l⟧$ tel que $p(e_1 ⋯ e_i) > a$ : alors on aurait

    p(𝜌) = p(e_1 ⋯ e_i) + \underbrace{p\Big(\underbrace{e_{i+1}⋯e_l}_{= 𝜀 \text{ si } i=l}\Big)}_{≥0} > a

    ce qui est absurde.

$𝜑$ est injective :

Par l’absurde :

Si il existait $i<j∈⟦1,l⟧$ tels que

\left(p(e_1 ⋯ e_i), {e_i}^\bullet\right) = \left(p(e_1 ⋯ e_j), {e_j}^\bullet\right)

alors

p(e_1 ⋯ e_j) = p(e_1 ⋯ e_i) + p(e_i ⋯ e_j)

d’où

p(e_i ⋯ e_j) = p(e_1 ⋯ e_j) - p(e_1 ⋯ e_i) = 0

et comme ${e_i}^\bullet = {e_j}^\bullet$ :

𝜌' ≝ e_1 ⋯ e_i e_{j+1} ⋯ e_l
  • serait de longueur strictement inférieure à celle de $𝜌$
  • resterait de poids $a$ puisque $p(e_i ⋯ e_j)$
  • relierait encore $u$ à $v$, puisque

    • ${e_i}^\bullet = \underbrace{ {e_j}^\bullet = {}^\bullet{e_{j+1}}}_{\text{puisque } 𝜌 \text{ est un chemin}}$
    • $𝜌$ relie $u$ à $v$

c’est absurde, par minimalité de $𝜌$.


Donc, par injectivité de $𝜑$ :

long(𝜌) = l = \vert ⟦1,l⟧ \vert ≤ \vert ⟦0,a⟧ \times V \vert = (a+1)V

On a donc montré que :

S’il existe un chemin de poids $a$ allant de $u$ à $v$ alors il existe en particulier un tel chemin de longueur au plus $(a + 1)|V |$

Q 2


Scolie : Pour tout cycle $c ≝ e_1 ⋯ e_l ∈E^+$, il existe un cycle élémentaire $𝜎$ facteur de $c$.

Démonstration :

Par récurrence sur $\vert c \vert$.

  • Initialisation : Si $\vert c \vert=1$ : le résultat est immédiat.
  • Hérédité : Supposons le résultat acquis pour tout cycle de longueur strictement inférieure.

    • Cas 1 : Si $c$ est élémentaire : alors le résultat est acquis.

    • Cas 2 : Sinon : alors il existe $i<j∈⟦1,l⟧$ tels que ${}^\bullet{e_i} = {}^\bullet{e_j} = {e_{j-1}}^\bullet$, et en appliquant l’hypothèse de récurrence à $e_i ⋯ e_{j-1}$, le résultat est acquis.


Montrons que tout chemin $𝜌∈E^+$ admet une factorisation en cycles, par récurrence sur $\vert 𝜌 \vert$

  • Initialisation : Si $\vert 𝜌 \vert=1$ : le résultat est immédiat.
  • Hérédité : Supposons le résultat acquis pour tout chemin de longueur strictement inférieure.

    • Cas 1 : Si $𝜌$ n’a aucun facteur qui soit un cycle : alors $𝜌 ≝ 𝜌_0$, et le résultat est acquis.

    • Cas 2 : Sinon : alors il existe $i<j∈⟦1,l⟧$ tels que ${}^\bullet{e_i} = {e_{j}}^\bullet$, et :

      • Sous-Cas 1 : soit $𝜌$ est un cycle élémentaire : alors $𝜌 ≝ 𝜀 𝜌^1$, et le résultat est acquis
      • Sous-Cas 2 : soit $𝜌$ contient a pour facteur strict un cycle élémentaire $𝜎$, d’après la scolie :

        𝜌 ≝ 𝜌' 𝜎 𝜌''

        et en appliquant l’hypothèse de récurrence à $𝜌’$ et $𝜌’’$,

        𝜌 ≝ 𝜌'_0 𝜎_{1,1}^{k_1'} 𝜌'_1 ⋯ 𝜎_{1,r'}^{k_{r'}'} 𝜌'_{r'} \, \, 𝜎 \, \, ρ''_0 σ_{2,1}^{k_1''} 𝜌''_1 ⋯ σ_{2,r''}^{k_{r''}''} 𝜌''_{r''}

        et $𝜌$ admet bien une factorisation en cycles.

On a donc montré que :

Tout chemin $𝜌∈E^+$ admet une factorisation en cycles.

3.


NB : on utilisera les notations de l’énoncé pour la factorisation en cycles : quand on posera $𝜌 ≝ 𝜌_0 𝜎_{1}^{k_1} 𝜌_1 ⋯ 𝜎_{r}^{k_{r}} 𝜌_{r} ∈E^+$, il sera sous-entendu que $𝜌_0 𝜎_{1}^{k_1} 𝜌_1 ⋯ 𝜎_{r}^{k_{r}} 𝜌_{r}$ est une factorisation en cycles de $𝜌$, dont l’existence a été démontrée dans la question précédente.


Pour tout chemin $𝜌 ≝ 𝜌_0 𝜎_{1}^{k_1} 𝜌_1 ⋯ 𝜎_{r}^{k_{r}} 𝜌_{r} ∈E^+$, on note $v(𝜌)$ le nombre d’arêtes n’appartenant pas à un cycle élémentaire + le nombre de cycles élémentaires dans toute factorisation en cycles de $𝜌$ :

v(𝜌) ≝ \vert \lbrace e_i ∈ 𝜌 \, \mid \, \text{tout facteur de } 𝜌 \text{ contenant $e_i$ n'est pas un cycle élémentaire} \rbrace \vert + r \\ = \sum_{j=0}^r \vert 𝜌_j \vert + r

NB :

  • on dira abusivement qu’une arête $e_i$ “appartient à” un chemin $𝜌$ si elle est un facteur de $𝜌$
  • “$v$” pour “variant”

Notons que $v(𝜌)$ est bien défini, car

  • on peut partitionner l’ensemble des arêtes appartenant à $𝜌$ en celles qui n’appartiennent à aucun cycle élémentaire et celles qui appartiennent à un cycle élémentaire
  • deux factorisations en cycles d’un même chemin $𝜌$ ne peuvent avoir un nombre différent de cycles élémentaires, car sinon, par égalité des deux factorisations, celle qui en a strictement plus impose à un facteur $𝜌_i$ (n’ayant aucun cycle élémentaire en facteur, par définition) de l’autre de contenir un cycle élémentaire, ce qui est absurde.

Supposons que $G$ admet un chemin $𝜌$ de poids $a$ allant de $s$ à $t$.

Montrons qu’il existe en particulier un tel chemin avec une factorisation en cycles dont les cycles élémentaires ont tous des poids différents.

Par récurrence sur $v(𝜌)$.

  • Initialisation : Si $v(𝜌)=1$ : le résultat est immédiat, puisque $𝜌$ est alors une arête.
  • Hérédité : Supposons le résultat acquis pour tout cycle dont l’image par $v$ est strictement inférieure.

    Par l’absurde : si tout chemin de poids $a$ et allant de $s$ à $t$ admet une factorisation en cycles dont deux cycles élémentaires ont des poids identiques, alors c’est en particulier le cas pour $𝜌 ≝ 𝜌_0 𝜎_{1}^{k_1} 𝜌_1 𝜎_{2}^{k_2} 𝜌_2 ⋯ 𝜎_{r}^{k_{r}} 𝜌_{r} ∈E^+$, et supposons, sans perte de généralité, que

    p(𝜎_1) = p(𝜎_2)

    Alors

    𝜌' ≝ 𝜌_0 𝜎_{1}^{k_1+k_2} 𝜌_1 𝜌_2 ⋯ 𝜎_{r}^{k_{r}} 𝜌_{r}

    est toujours un chemin de poids $a$ allant de $s$ à $t$, mais

    v(𝜌') < v(𝜌)

    car

    • Cas 1 : Si $𝜌_1 𝜌_2$ ne contient aucun cycle :

      alors dans $𝜌’$ : le nombre d’arêtes n’appartenant pas à un cycle élémentaire est toujours le même, mais le nombre de cycles élémentaires a diminué strictement

    • Cas 2 : Sinon :

      alors comme toute factorisation en cycles de $𝜌_1 𝜌_2$ contient au plus un cycle élémentaire (sinon, $𝜌_1$ ou $𝜌_2$ a un cycle en facteur), toute factorisation en cycles de $𝜌_1 𝜌_2$ contient exactement un cycle élémentaire, et, dans $𝜌’$ : le nombre de cycles élémentaires est toujours le même, mais le nombre d’arêtes n’appartenant pas à un cycle élémentaire a diminué strictement (puisque certaines arêtes de $𝜌_1 𝜌_2$ appartiennent maintenant à un cycle élémentaire).

    Donc en appliquant l’hypothèse de récurrence, il existe un chemin de poids $a$ allant de $s$ à $t$ avec une factorisation en cycles dont les cycles élémentaires ont tous des poids différents : c’est absurde.

On a donc montré que :

Si que $G$ admet un chemin $𝜌$ de poids $a$ allant de $s$ à $t$, alors il existe en particulier un tel chemin avec une factorisation en cycles dont les cycles élémentaires ont tous des poids différents.

Q4

Supposons que $G$ a un chemin de poids $a$ reliant $u$ à $v$.

Montrons qu’il existe un tel chemin de longueur bornée par $Q(k, m, P, a)$, où $Q$ est un polynôme à 4 variables.

Commençons par remarquer que les résultats de Q2 et Q3 sont encore valables, puisqu’on n’a pas utilisé, dans leur démonstration, le fait que $p$ soit à valeurs dans $ℕ$.

Pour tout chemin $𝜌 ≝ 𝜌_0 𝜎_{1}^{k_1} 𝜌_1 ⋯ 𝜎_{r}^{k_{r}} 𝜌_{r} ∈E^+$ de poids $a$ reliant $u$ à $v$ dont les cycles élémentaires ont des poids différents (l’existence d’un tel chemin est assurée par Q4) :

\begin{cases} \vert 𝜌 \vert = \sum\limits_{j=0}^r \vert 𝜌_j \vert + \sum\limits_{j=1}^r k_j \vert 𝜎_j \vert \\ a = p(𝜌) = \sum\limits_{j=0}^r p(𝜌_j) + \sum\limits_{j=1}^r k_j p(𝜎_j) \end{cases}

Or, le nombre $r$ de cycles élémentaires $𝜎_i$ est majoré par $2P+1 = \vert ⟦-P, P⟧ \vert$

  • en effet : les poids de $𝜎_i$ sont tous distincts et à valeurs dans $⟦-P, P⟧$ : la fonction $𝜑 : \lbrace 𝜎_i \rbrace_{i∈⟦1,r⟧} ⟶ ⟦-P, P⟧, 𝜎_i \mapsto p(𝜎_i)$ est donc injective, et

    r = \vert ⟦1,r⟧ \vert ≤ 2P+1 = \vert ⟦-P, P⟧ \vert

Donc comme : $∀j∈⟦0,r⟧$

\begin{cases} \vert p_j \vert ≤ n \\ \vert 𝜎_j \vert ≤ n \\ \end{cases}

(les sommets y apparaissant sont distincts, sauf éventuellement le premier et le dernier)

alors :

\vert 𝜌 \vert ≤ (r+1) n + n \sum\limits_{j=1}^r k_j \\ ≤ (2P+2) n + n \sum\limits_{j=1}^r k_j

et

a = \sum\limits_{j=0}^r \underbrace{p(𝜌_j)}_{≥(-P) \times \vert 𝜌 \vert = -nP} + \sum\limits_{j=1}^r k_j p(𝜎_j) \\ ≥ -nP(2P+2) + \sum\limits_{j=1}^r k_j p(𝜎_j)

d’où

\sum\limits_{j=1}^r k_j p(𝜎_j) ≤ a + nP(2P+2)

De plus, comme

a = \sum\limits_{j=0}^r \underbrace{p(𝜌_j)}_{≤pm \times \vert 𝜌 \vert = -nP} + \sum\limits_{j=1}^r k_j p(𝜎_j) \\ ≤ nP(2P+2) + \sum\limits_{j=1}^r k_j

D’où, enfin :

a - nP(2P+2) ≤ \sum\limits_{j=1}^r k_j \underbrace{p(𝜎_j)}_{∈⟦-P,P⟧} ≤ a + nP(2P+2)

il reste à majorer les $k_i$, mais je manque de temps pour le faire.

Q5

Le caractère $\textsf{NP}$-difficile est clair, en réduisant le problème précédent (qui est un cas particulier pour $p$ à valeurs dans $ℕ$) à celui-là.

Pour montrer que $\textsf{WEIGHTEDPATH}$ avec des poids entiers relatifs est dans $\textsf{NP}$, on procède exactement de la même manière que dans le cours, avec le lemme d’Euler, en devinant un vecteur d’occurrences d’arcs dont les composantes bornées par $Q(k, m, P, a)$ (donc de taille polynomiale).

Comme les vérifications faites (pour vérifier les hypothèses du lemme d’Euler et calculer le poids du chemin) n’exigent que

  • d’utiliser des compteurs
  • de stocker des nombres (en binaire)
  • faire des additions avec ces nombres

la réduction s’effectue en $\textsf{LOGSPACE}$.

Leave a comment