Branch and Bound Flashcards
(115 cards)
Quelle structure de données utilise BFS ?
Une file (queue) FIFO
Quelle est la complexité de BFS avec une liste d’adjacence ?
Θ(n + a), où n = sommets, a = arêtes
Quel parcours est utilisé pour l’ordre topologique ?
DFS (profondeur)
À quoi servent les couleurs blanc, gris et noir dans DFS ?
Blanc = non découvert, Gris = découvert, Noir = visité
Quelles composantes l’algorithme DFS (parcours en profondeur) permet-il de détecter ?
Cycles, composantes fortement connexes, ordre topologique
Quelle est l’idée du Branch and Bound ?
Explorer l’arbre des solutions possibles, tout en coupant (élaguant) les branches non prometteuses,
c’est-à-dire celles qui ne peuvent pas mener à une meilleure solution que celle déjà trouvée.
En gros l’idée c’est de brancher pour explorer et de borner pour éliminer intelligemment les solutions non optimales
Vrai ou Faux : Le Branch and Bound est plus efficace que le backtracking
Vrai
Vrai ou Faux : Branch and Bound ne retourne jamais en arrière
Faux
À quoi sert une borne supérieure dans un problème de maximisation ?
Une borne supérieure dans un problème de maximisation est une estimation du meilleur score qu’on pourrait espérer obtenir en explorant une branche donnée de l’arbre de recherche.
Exemple de problème typique ?
Problème d’assignation ou sac à dos
Que signifie ‘élaguer une branche’ ?
Ne pas explorer une solution car elle est sous-optimale
Quelle structure de données est souvent utilisée dans l’algorithme Branch and Bound ?
Une file de priorité (priority queue) -> Pourquoi?
Pour explorer les branches les plus prometteuses en premier, selon leur borne (inférieure ou supérieure)
Quel est le lien entre Branch and Bound et DFS (parcours en profondeur)?
Branch and Bound explore en profondeur avec coupures intelligentes. Or B&B peut aussi utiliser BFS (parcours en largeur) ou best-first mais DFS avec élagage est la stratégie classique.
Comment calcule-t-on une borne inférieure ?
En estimant la meilleure solution possible à partir d’un nœud
Vrai ou Faux : On explore toujours toute l’arborescence
Faux
Pourquoi utiliser Branch and Bound ?
L’idée principale est de réduire le nombre de solutions explorées inutilement
que fait-on si la borne est pire que la solution actuelle ?
On ne continue pas (élagage)
Comment choisir l’enfant à explorer en priorité ?
Celui avec la meilleure borne
Branch and Bound est-il adapté aux problèmes NP-complets ?
Oui, en particulier pour ceux d’optimisation
Vrai ou Faux : Le problème du sac à dos peut être résolu par Branch and Bound
Vrai
Quel type de problème permet de calculer une borne facilement ?
Problème linéaire ou combinatoire
À quoi sert la borne inférieure dans un problème de minimisation ?
Éliminer les branches avec coût trop élevé
Comment éviter les doublons dans le sac à dos ?
Ne visiter qu’un sous-ensemble bien ordonné
Branch and Bound fonctionne-t-il en largeur ?
Possible, mais profondeur prioritaire est plus courant