Essays
Topics
Writing Tool
Machine Learning AI
ChatGPT
US History
Presidents of the United States
Joseph Robinette Biden
Donald Trump
Barack Obama
US States
States Ranked by Size & Population
States Ranked by Date
IPL
>
Medicine
>
tp12-solution-tableau.pdf
Tp12-solution-tableau
.pdf
School
Université de Montréal
*
*We aren't endorsed by this school
Course
IFT 2125
Subject
Medicine
Date
Dec 16, 2024
Pages
10
Uploaded by JudgeElement12891
Backtracking
>
Recherche
de
solutions
comme
un
graphe
implicite
or
:
·
chaque
noerd
contient
une
sol
partielle
de
notre
probleme
et
·
chaque
arte
est
una
fagon
d'itendre
la
solution
->
Graphe
implicite
est
un
graphe
avec
un
description
de
tout
le
graphe
(6
=
(v
.
#)
mais
n'est
pas
garde
completement
en
memoire
(ou
explore
·
graphe
est
toujours
on
arbre
·
racine
contient
sol
partielle
nulle
>
Depth
-
First
Search
awec
parcour
prefixe
sur
on
graphe
implicite
:
exi
un
sac dos
0/1
w
=
5
j
Wi
vi
I
G
Y
w
=
W-xivi
E
2
3
.
14
5
xie
50
,
13
3
1
.
90
If
O
X
,
=
1
/
X
,
=
0
3
X2
=
1
n
=
x2
=
8
O
x
=
/w
=
5
xz
=
0
①
O
-
t
X
lo
s
s
w
=
0
,
14
Y
↓
=
W
=
3
p
=
0
w
o
=
(
=
3
=
0
8
O
O
·
w
' =
1
,
10
>
W
=
1
,
86
O
V
=
14
V
=
Y
V
=
5
v
=
10v
=
0
Branch-And-Bound
(Separation
et
Evaluation)
·
permet
de
require
le
nb
de
sommets
a
explorer
borne
·
garde
la
valeur
de
la
meilleure
solution
atteignable
en
memoirs
>
suprieur
·
Si
la
borne
montre
que
les
solutions
qui
decoulent
sont
non
optimales
,
on
nexplore
pas
le
noed
plus
loin
.
Minimisation
1
A
chaque
nouveau
sommet
explore
,
on
value
une
borne
inferieure
sur
la
valeur
de
toute
la
solution
complete
qui
pourrait
decouler
de
la
solution
courante
(partie
de sol
)
.
al
Si
la
borne
inf
.
est
suprieur
a
la
borne
sup
.
actuelle
,
inutile
d'explorer
le
reste
de
cette
solution
.
SiMaximisation
-
>
inverse
borne
int.
et
sup.
Plusieurs
structure
de
donnes
possible
:
·
BFS
:
FIFO
queue
=>
si
on
a
une
sol
.
initiale
·
DFS
:
LIFO
quere
or
un
stack
=>
bon
si
il
rig
a
·
Best-First
Search
:
priority
queue
,
voir
*
pas
de
bonne
heuristique
Problems
d'assignation
(d'affectation
(
>
affecter
n
agents
an
taches
,
chaque
agent
a
exactement
ore
tache
>
affecter
agent
i
a
une
tache
j
corte
Cij
.
-
>
trouver
affectation
pour
minimiser
la
somme
des
couts
Q
I
Decrire
un
graphe
de
retour
en-arrive
(backtracking)
pour
ce
probleme
.
:
-
>
Une
solution
partielle
est
une
assignation
d'un
sous-ensemble
des
agents
a
un
sous-ensemble
de
taches
.
(sol
.
partielle
est
un
sommet)
:
-
>
On
peut
tendre
cette
solution
en
affectant
un
des
agents
libres
a
une
destacles
disponibles
.
>
On
obtient
une
sol
complete
lorsque
fous
les
agents
et
les
tacles
sont
assigns
>
La
vacine
est
la
solution
nulle
.
Q2
Comment
obtenir
une
borne
superieure
initiale
?
Cheuristique
,
pour
;
as
assignation
alatoire
donne
la
borne
sup
·
initiale
.
require
le
probleme)
on
va
pas
6)
Encore
mieux
,
on
peut
rouler
un
algorithme
worace
affectant
3
considerer
fort
ce
qui
depasse
tour
a
tour
chaque
agent
a
one
tacle
dispo
.
au
cost minimal
cetto
bone
3
Comment
obtenir
un
borne
interieure
pour
foute
solution
complete
qui
(
Ce
quan
calcule
(
-
a
chaque
sommet
.
k
peut
tre
atteinte
a
partir
d'une
sol
partielle
donne
?
on
compared
la
borre
suprieure
&
:
>
La
valeur
de
la
solution
courante
donne
une
borne
info
sur
la
solution
atteignable
,
car
apris
il
fact
ajouter
des
norvelles
assignations
-
>
obtient
une
meilleure
borre
en
ajoutant
a
cette
valeur
la
somme
des
minima
destches
dispo
pour
chaque
agent
libre
,
ou
la
somme
des
minima
des
agents
libres
pour
chage
tacks
.
(on
calcula
l'heuristique
la
plus
petite
possible
,
ce
rest
pas
necessairement
une
solution
(
Q4
MQ
comment
resoudre
le
probleme
de
suc
a
dos
a
types
d'objets
X
:
EI
de
valeur
Viet
de
poids
wi
,
in
pour
une
capacit
maximale
W
avec
Branch-and-Bound
-
>
maximiser
la
valeur
=
calcular
borre
suprieur
de
la
solution
complete
a
chaque
noerd
.
=>
si
la
borne
sup
de
la
solution
actuelle
est
plus
grande
,
on
riexplore
pas
plus
loin
.
1)
Ordonner
les
elements
de
tello
sorte
que
Vi
;
Vi
/wil
Vi
Cratio
~
dicroissant)
2)
On
considere
des
sol.
partielles
.
Si
x
,
...,
X
sont
fixes
f
xiwi
W
-
9
.
objets
de
la
sol
partielle
actuelle
alors
on
peut
remarquerque
la
valeur
qui
peut
tre
obtenue
en
ajoitant
des
borne
suprieur
elements
de
type
KI
,
...,
n
ne
pet
pas
depasser
K
xivi
+
(w-
xini)
Vinat
(
*
)
borne
superieure
i
=
1
--
-
--
valeur
jusqua
borne
sur
la
valeur
quon
Orter
du
la
borne
functionna
n
si
present
peut
af
compose
3
poids
restant
x
le
XiEI
prochain
object
avec
le
meilleur
ratio
3)
Considere
un
arbre
(avec
la
vacine
comme
solution
nulls)
.
A
chaque
niveau
i
de
larbre
,
on
fixe
une
valeur
pour
Xi
.
Chaque
sommet
est
une
sol
partielle
(i
,
...,
x)
ou
on
identifie
la
valeur
maximala
(
*
)
.
·
On
explore
les
prochains
sommets
en
considerant
selement
ceux
qui
satisfont
la
contrainte
de
poids
.
·
Lorsquon
a
plusieurs
choix
,
on
considere
d'abord
la
valeur
la
plus
prometteuse
(I
plus
grance)
.
·
Lorsquare
solution
complete
est
obtenue
,
on
enlive
tous
les
sommets
are
one
valeur
maximale
qui
est
interieur
cette
solution
.
·
On
rpete
jusqu'a
ce
quil
y
ait
plus
de
sommets
a
explorer
.
·
La
solution
optimale
est
celle
du
sommet
de
niveau
n
qui
n'a
pas
t
coup
.
·
On
pet
utiliser
DFS
,
car
on
veut
atteindre
une
solution
rapidement
,
sans
heuristique
.
Q5
Utiliser
l'algo
precedent
sur
ce
probleme
de
sacia-dos
:
DFS
i
=
I
,
=
7
Vi
=
9
,
=
=1
,
20
w
=
10
K
i
=
2
Wa
=
4
Vz
=
5
r
=
y
=
1
,
25
wi
=
W
-
Exin
i
i
=
3 wz
=
3
V3
=
3
r
=
1
ri
=
vi
it
91
.
2
,
34
i
=
4
Wy
=
2
Vy
=
1
r
=
t
initialement
b
=
a
maximiser
00
12
A
#
w
=
W
<
W
0
(contrainted
O
-10
X
,
=
Or
x
,
=
↓
X
w
=
3
G
B
O
Ob
=
9
+
wrz
=
12
,
75
X
=
0
↓
in
r
↓
-
w
=
↓
X2
=
&
=
2
=
0
2
=
1
C
X
⑤
④
w
=
d
OW'
=
3
O
W
=
10
b
=
10
+
w've
b
=
q
+
wr
=
9
+
3
=
12
biwis
WIG
↓
↓
=
10
*
b
=
5
+
6
=
12
*
Xz
=
0
xz
=
1
=
Il
w
=
0
Ow
=
3
O
F
D
b
=
9
+
w'vy
b
=
12
+
wry
=
12
+
0
=
12
-
=
10
,
3
↓
Xy
=
C
E
ONE
o
⊥
Une
solution
optimale
est
<X
,
=1
,
2
=
0
,
3
=
1
,
Xp
=
03
arec
valeur
de
12
Allez dire merci à Robin!
merci-rob.in
Problem
du
Voyageur
de
commerce
>
faire
la
tourne
de
n
villes
sans
repasser
2
fois
par
la
mme
tout
en
minimisent
la
longueur
du
cycle
parcouru
,
>
etant
donne
une
matrice
(dijijan
des
distances
entre
les
villes
,
determiner
la
valeur
de
la
tourne
optimale
.
=>
peut
tre
represent
comme
un
graphe
complet
non-orient
a n
sommets
>
Si
on
a
des
distances
metriques
(euclidienes)
,
on
a
donc
one
matrice
dont
les
distances
respectent
linegalite
du
triangle
:
Fab
, c
El
,
...,
n3
,
daccab
+
do
Q6
Decrire
un
graphe
de
retour-en-arrire
pour
ce
probleme
>
sous-ensemble
de
villes
(sol
.
partielle)
2
Q
Frois-Rivires-
O
↑
·
O
-
>
ajoute
une
ville
pas
visite
a
la
fin
de
aX
po
-
15
chemin
-
Drummond
Montreal
-
-
>
sol
.
complete
si
on
a
permutation
ch
O
60
G
toutes
les
villes
Q7
Comment
obtenir
une
borne
suprieure
initiale
?
a)
permutation
alatoire
b)
prendre
un
algorithme
vorace
qui
parcourt
le
graphe
en
allant
vers
le
voisin
le
plus
proche
du
sommet
courant
.
From
To
:
2
3
4
5
6
Ici
:
0
+
++
0
+
0
I
3
10
117
25
O
I
G
12
9
26
3
+
8
+
4
+
5
+
15
+
25
=
60
2
&
9
4
20
5
15
3
·
Ob
O
Cependant
,
cette
approche
peut
chover
5
⑤
18
5
6
25
6
O
Y
si
le
graphe
n'est
pas
complet
et
on
trouvera
une
solution
catastrophique
.
(Problem
13.
4)
c)
Pour
la
version
metrique
,
une
borre
suprieure
est
obtenue
en
prenant
le
double
de
la
longueur
d'un
ACM
pour
le
graphe
(voir
B
&
B
,
13
.
2
.
1
p
479)
·
On
peut
voir
le
probleme
comme
le
probleme
de
recherche
du
cycle
hamiltonien
le
plus
court
,
disons
de
longueur
h
,
arec
n
sommets
·
Si
on
enleve
une
arte
de
se
cycle
,
on
obtient
un
chemin
hamiltonien
de
longueur
au
plus
h
,
avec
-1
sommets
,
si
la
distance
est
non-negative
·
Remarque
qu'un
chemin
hamiltonien
est
aussi
un
ACM
pour
le
graphe
G
,
de
longueur
m
(6)
selon
la
matrice
de
distances
etdonc
,
hm
(6)
·
(borne
inferiert
·
Si
on
fait
une
tourne
en
parcourt
prefixe
en
annotant
sous-chage
noeud
-
&
I
S
une
tourne
to
ordre
de
traversage
Oa
/
&
to
=
[1
,
2
,
1
,
5
,
3
,
5
,
4
,
6
,
4
,
5
,
13
E
/
I
len
(to)
=
2m(G)
,
4
O
-
O
.
6
O
&
·
Avec
un
algorithme
qui
entive
les
noeuds
dupliques
dans
la
tourne
,
on
pat
require
la
distance
totale
de
la
tourne
en
ne
faisant
pas
un
22
visite
du
sommet
1
.
①
t
,
=
2 1
,
6
,
5
,
3
,
5
,
4
,
6
,
4
,
5
,
13
-
>
les
autres
termes
s'annulent
+
len(o)
len(t)
=
dist
(2
.
1)
+
dist
(1
,
5)
dist
(2
,
5)
,
0
car
euclidiene
=>>
len(ti)
Ren
(to
linegalit
du
triangle
⑤
+2
=
[ 1
,
2
,
5
,
3
,
4
,
6
,
4
,
5
,
13
=>
len(ta)
=
len(t)
·
=
El
,
2
,
5
,
3
,
4
,
6
.
13
=
len(t)
len(to)
=
2
m(G)
·
Puisque
la
longueur
h
d'un
cycle
hamiltonien
est
or
moins
m(6)
:
len(t)
=
2m(6)
>
2h
·
La
longueur
de
la
tourne
trouve
par
cette
algo
n'est
pas
plus
grand
que
le
double
de
la
longueur
de
la
tourne
optimale
(h)
(car
le
cycle
passe
une
sele
fois
exactement
por
chaque
sommet
et
reviews
ou
debut
·
On
remarque
que
t
rest
que
le
parcours
prefixe
de
la
liste
de
noeud
d'un
ACM
.
=
Il
suffit
de
rouler
Prim
or
Kruskal
((n)
et
de
parcouvir
en
prordre
(O(n)
.
·
Theuristique
approx
.
prend
O(n)
,
mais
functionne
&
graphe
complet
awec
distances
evidiennes
et
donne
une
solution
garanti
d'etre
a
moins
de
&
fois
la
longueur
de
l'optimale
,
eliminant
beaucoup
de
cas.
-
>
Algorithne
de
Christofides
peut
aussi
tre
utilise
pour
obtenir
une
borne
superieure
encore
meilleure
,
a
moins
de
fois
la
longueur
de
loptimal
.
Q8
Comment
obtenir
one
borne
inferieure
pour
toute
la
solution
complete
qui
-
peut-tre
atteinte
a
partir
d'une
sol
,
partielle
donne
?
Peut-on
faire
mieux
pour
la
version
metrique
?
-
>
valeur
du
chemin
courant
donne
une
borne
inferieure
sur
toute
sol
.
atteignable
.
>
Si
il
reste
x
nb
de
villes
a
relier
,
toute
solution
atteignable
demande
d'ajouter
x
+
1
arte
supplementaires
pour
le
chemin
actual
.
-
>
meilleare
borne
=
prendre
les
x
+
1
artes
moins
conteuses
parmi
celle
qui
ne
sont
pas
incidente
a
une
ville
dija
choisie
.
-
>
Version
evalidienne
,
on
peut
prendre
en
compte
qu'il
ne
peut
pas
y
avoir
de
croisement
dans
la
solution
optimale
parmi
les
chemins
.
Si
ga
arrive
,
on
peut
casser
exploration
du
sommet
(borne
inferiore
de
+
00l
00
O
%
ko
↓
v
X