final Flashcards
(52 cards)
Nommes des métaheuristiques pour échapper à un optimum local
métaheuristique à base de trajectoire:
–recherche avec tabou : on se déplace toujours vers le meilleur voisin (même s’il est plus mauvais) mais on interdit le retour à une solution déjà visitée pendant un
certain nombre d’itérations.
–recuit simulé : on choisit un voisin au hasard et on se déplace vers lui même s’il dégrade la qualité de la solution (mais avec une faible probabilité). Au fur et à mesures des itérations, cette probabilité diminue
–recherche à voisinage variable : plusieurs types de voisinages sont utilisés ; lorsqu’on
atteint un minimum local dans un, on passe à un autre voisinage
métaheuristique à base de population: (on a pas une seule solution courante, mais bien plusieurs solutions)
–algorithmes génétiques: on a un bassin de population que l’on croise, modifie, combine, etc
Quels sont les trois types d’algorithmes possibles ?
- exact: solution optimale
- d’approximation : solution que est garantie ‘être au plus à une distance donnée de la meilleure solution (ex à 25%)
heuristiques: solution sans aucune garantie de sa qualité
Quels sont les trois ordres possibles pour parcourir un arbre
en ordre: sud
post-ordre: est
pré-ordre: ouest
Quelle est la différence entre Kruskal et Prim ?
Kruskal : pour faire un arbre couvrant de poid minimum, prend la plus petite arrête possible, peu importe elle est où dans le graphe, mais sans créer de cycle
Prim : pour faire un arbre couvrant de poid minimum, prend la plus petite arrête qui touche à une autre arrete deja dans l’arbre de recouvrement, mais sans créer de cycle
Qu’est-ce qu’un algorithme probabiliste ?
Un algorithme qui utilise le hasard pour faire des choix aléatoire
Nommer des types d’algorithmes probabilistes
et leur differences
termine correct
- numerique probabiliste X
- monte carlo X
- las vegas X
- sherwood X X
Qu’est-ce que la classe de complexité P ?
problèmes de decision quon peut resoudre en un temps polynomial dans la taille de lexemplaire
Qu’est-ce que la classe de complexité NP ?
problèmes de decision dont on peut vérifier une reponse affirmative en un temps polynomial dans la taille de lexemplaire
Qu’est-ce que la classe de complexité NPC ?
probleme qui appartient à NP et qui est aussi difficile que chacune des problemes dans NP
Qu’est-ce que la classe de complexité Pspace ?
probleme de decision quont peut resoudre en utilisant une quantité despace memoire qui est polynomaile dans a taille de l’exemplaire
Qu’est-ce que la classe de complexité logspace ?
probleme de decision quont peut resoudre en utilisant une quantité despace memoire qui est logarithmique dans a taille de l’exemplaire
Vrai ou faux ? P⊂NP P⊂NPC NPC⊂P P⊂Pspace
vrai
faux
faux
vrai
SAT est dans quelle classe de complexité?
et 2SAT ?
et 3SAT ?
NPC
P
NPC
Quels sont les algorithmes d’approximation possibles ? et les décrire
c-absolue. calcule une solution de valeur V dont l’erreur absolue par rapport à la valeur V⋆
optimale est au plus c :
V⋆ − c ≤ V ≤ V⋆ si on maximise
V⋆ ≤ V ≤ V⋆ + c si on minimise
e-relative. calcule une solution de valeur V dont l’erreur relative par rapport à la valeur V⋆ optimale est au plus e :
(1 − e)V⋆ ≤ V ≤ V⋆ si on maximise
V⋆ ≤ V ≤ (1 + e)V⋆ si on minimise
mixte. calcule une solution de valeur V dont l’erreur par rapport à la valeur V⋆ optimale s’exprime à la fois de manière absolue et relative :
(1 − e)V⋆ − c ≤ V ≤ V⋆ si on maximise
V⋆ ≤ V ≤ (1 + e)V⋆ + c si on minimise
Qu’est-ce qu’un schéma d’approximation ?
c’est un algorithme auquel on fournit, en plus de l’exemplaire, l’e désiré pour l’algorithme d’approximation e-relative à résoudre.
On dira que le schéma d’approximation est pleinement polynomial s’il prend un temps dans O(p(n, 1/e))
l’algorithme de Djikstra est-il un algorithme de programmation dynamique, glouton ou probabiliste ?
algorithme glouton
Nommez un algorithme probabiliste du type Sherwood vu en cours. Quel est l’avantage de cet algorithme par rapport à un algorithme déterministe
Tri de Hoare “quicksort” avec choix de pivot uniformément au hasard.
Donne une complexité O(n lg n) espérée peu importe l’exemplaire
pourquoi les algorithmes Sherwood sont-ils nommés ainsi ?
Sherwood est la forêt où vit robin des bois.
Comme robin qui distribuait la richesse des très riches aux plus pauvres, les algorithmes Sherwood redistribuent l’inefficacité de certains exemplaires (pire cas) à tous le monde
Quel algorithme est le meilleur entre Prim et Kruskal?
ca dépend. Si le graphe est épars (peu d’arretes) on choisira kruskal (O(nlogn))
mais si le graphe est dense, on préférera Prim (O(n^2))
Expliquez le patron de conception d’algorithme “vorace”
Algorithme itératif qui bâtit progressivement une solution en ajoutant à
chaque étape un élément parmi un ensemble de candidats, choisi selon un critère
localement optimal. Il ne revient jamais sur ses décisions
Expliquez comment décider, en appliquant un parcours de graphe, si un graphe non orienté contient un cycle
En effectuant une fouille en largeur ou en profondeur, si on atteint un sommet déjà visité alors il y a un cycle.
dans une fep, il y a un cycle s’il y a des arretes arrieres
dans une fel, il y a un cycle s’il y a des arretes latérales
Quelle est la différence entre diviser pour régner et la programmation dynamique ?
Les algorithmes diviser pour régner procèdent de haut en bas (“top down”) alors que les algorithmes de programmation dynamique procèdent de bas en haut (“bottom up”).
Ou encore, les premiers sont utilisés lorsqu’il n’y a pas de chevauchement des sous-exemplaires à traiter alors que les seconds le sont lorsqu’il y a justement chevauchement
Qu’est-ce que le principe d’optimalité ?
La solution optimale d’un exemplaire est la combinaison des solutions optimales de certains de ses sous-exemplaires.
Nommez et expliquez un problème indécidable
Le problème d’arrêt. Si la réponse est “non”, on ne pourra jamais la retourner car notre exécution d’un algorithme potentiel ne s’arrêtera pas.