← Retour aux flashcardsQuick Flashcards

Cours M2E - Concepts clés

Apprenez les notions essentielles d'algorithmes, de récursivité, de complexité et de graphes avec des explications claires et des exemples concrets.

26 cartes~9 min
Cours M2E - Concepts clés — Qwi
1 / 26

Toutes les flashcards de ce jeu

1Qu’est‑ce qu’un algorithme selon la définition informelle ?
Réponse

Une procédure de calcul bien définie transformant une entrée en une sortie

Il prend une ou plusieurs valeurs en entrée et renvoie une ou plusieurs valeurs en sortie.
2En informatique, une itération est la {{répétition}} d’un bloc d’instructions.
Réponse

répétition

3Toute fonction récursive peut être remplacée par une itération équivalente.
Réponse

Vrai

Cependant, la version itérative peut être plus complexe à écrire.
4Différence principale entre l’algorithme itératif et récursif pour la factorielle ?
Réponse

Itératif → boucle for | Récursif → appel de fonction

L’itératif utilise une boucle contrôlée, le récursif s’appelle lui‑même jusqu’à n=0.
5Quel invariant prouve la correction de l’algorithme de multiplication ?
Réponse

Après i tours, y = x^i

Cet invariant montre que chaque itération multiplie y par x, accumulant la puissance.
6La complexité en temps de l’algorithme de multiplication est O(n).
Réponse

Vrai

Il y a n itérations, chacune effectuant un nombre constant d’opérations.
7Dans la fonction d’Ackermann, si m = 0 alors le résultat est {{n + 1}}.
Réponse

n + 1

8Quelles sont les trois étapes de la méthode diviser‑pour‑régner ?
Réponse

Diviser, Régner, Combiner

Diviser découpe le problème, Régner résout les sous‑problèmes, Combiner assemble les solutions.
9La recherche dichotomique a une complexité de {{O(log n)}}.
Réponse

O(log n)

10La recherche dichotomique fonctionne sur un tableau non trié.
Réponse

Faux

Elle nécessite que le tableau soit préalablement trié en ordre croissant.
11Comment définit‑on formellement un graphe G ?
Réponse

G = (X, A) avec X sommets et A arcs

A est un sous‑ensemble du produit cartésien X×X représentant les connexions.
12Différence entre graphe orienté et non orienté ?
Réponse

Orienté → arcs directionnels | Non orienté → arêtes bidirectionnelles

Dans un graphe orienté chaque arc a une origine et une extrémité, alors que dans un graphe non orienté les arêtes sont sans direction.
13Qu’est‑ce que le degré d’un sommet dans un graphe ?
Réponse

Nombre d’arcs incident à ce sommet

Il compte à la fois les arcs entrants et sortants pour les graphes orientés.
14Dans un graphe non orienté, le degré d’un sommet est le nombre de ses voisins.
Réponse

Vrai

Les voisins sont les sommets directement connectés par une arête.
15Différence entre un graphe complet Kn et un graphe biparti complet Ka,b ?
Réponse

Kn → chaque paire connectée | Ka,b → chaque sommet de V1 connecté à tous de V2

Dans Kn chaque sommet est adjacent à tous les autres, alors que Ka,b ne relie que les deux parties.
16Comment la matrice d’adjacence M représente‑t‑elle un graphe orienté ?
Réponse

Mij = 1 si (xi, xj) ∈ A, sinon 0

Chaque ligne i et colonne j indique la présence d’un arc de xi vers xj.
17La matrice d’adjacence d’un graphe non orienté est toujours symétrique.
Réponse

Vrai

Car chaque arête [x,y] implique à la fois (x,y) et (y,x).
18Quelle est la différence d’usage mémoire entre matrice d’adjacence et liste d’adjacence ?
Réponse

Matrice → θ(n²) | Liste → θ(n + m)

La matrice consomme O(n²) même si peu d’arcs, la liste ne stocke que les arcs existants.
19Qu’est‑ce qu’un chemin dans un graphe orienté ?
Réponse

Suite d’arcs où l’extrémité de chaque arc est l’origine du suivant

Le chemin commence à or(μ) et se termine à ext(μ), sa longueur est le nombre d’arcs.
20Un circuit est un chemin dont l’origine diffère de l’extrémité.
Réponse

Faux

Un circuit a même origine et même extrémité.
21Qu’est‑ce qu’une réduction many‑one entre deux problèmes A et B ?
Réponse

Une fonction totale récursive f telle que x∈A ⇔ f(x)∈B

Elle transforme chaque instance de A en une instance de B de façon computable.
22Le problème de l’arrêt est décidable.
Réponse

Faux

Il a été prouvé qu’aucun algorithme ne peut décider pour tous les programmes s’ils s’arrêtent.
23Différence entre h(p,x) et h(p,x,t) ?
Réponse

h(p,x) non calculable | h(p,x,t) calculable

Avec le paramètre temps t, on peut vérifier la terminaison dans un délai fini.
24Quel est le principe du théorème de Rice ?
Réponse

Toute propriété non triviale sur le comportement d’une fonction calculable est indécidable

Si deux programmes calculent la même fonction, la propriété leur donne la même valeur.
25Tout ensemble semi‑décidable est décidable.
Réponse

Faux

Un ensemble semi‑décidable peut être récursivement énumérable sans être décidable.
26Quel type d’ensemble est toujours décidable ?
Réponse

Tout ensemble fini

On peut simplement tester l’appartenance en comparant avec les éléments listés.

Introduction aux concepts fondamentaux

Ce cours présente les notions clés de l'algorithmique, de la récursivité, de la complexité et des graphes. Chaque section s’appuie sur des définitions précises et des exemples illustratifs pour faciliter la compréhension.

Algorithmes et itérations

Définition informelle d’un algorithme

Une procédure de calcul bien définie transformant une entrée en une sortie. Il prend une ou plusieurs valeurs en entrée et renvoie une ou plusieurs valeurs en sortie.

Itération

En informatique, une itération est la répétition d’un bloc d’instructions.

Conversion récursivité ↔ itération

  • Toute fonction récursive peut être remplacée par une itération équivalente. La version itérative peut toutefois être plus complexe à écrire.
  • Exemple : la factorielle.
    • Itératif → boucle for
    • Récursif → appel de fonction

Invariant de multiplication

Après i tours, y = x^i. Cet invariant montre que chaque itération multiplie y par x, accumulant la puissance.

Complexité temporelle de la multiplication

La complexité en temps de l’algorithme de multiplication est O(n) : il y a n itérations, chacune effectuant un nombre constant d’opérations.

Recherche dichotomique

  • Complexité : O(log n).
  • Fonctionne uniquement sur un tableau préalablement trié en ordre croissant (fausse affirmation : « fonctionne sur un tableau non trié »).

Fonctions particulières

Fonction d’Ackermann

Cas de base : si m = 0 alors le résultat est n + 1.

Méthode diviser‑pour‑régner

Les trois étapes sont : Diviser, Régner, Combiner. « Diviser » découpe le problème, « Régner » résout les sous‑problèmes, « Combiner » assemble les solutions.

Graphes

Définition formelle

Un graphe G = (X, A) avec X l’ensemble des sommets et A l’ensemble des arcs, sous‑ensemble du produit cartésien X×X.

Types de graphes

  • Orienté → arcs directionnels.
  • Non orienté → arêtes bidirectionnelles.

Degré d’un sommet

Nombre d’arcs incident à ce sommet. Pour les graphes orientés, il compte les arcs entrants et sortants. Dans un graphe non orienté, le degré correspond au nombre de voisins (affirmation vraie).

Graphes complets et bipartis

  • Kn : chaque paire de sommets est connectée.
  • Ka,b : chaque sommet de la partie V1 est connecté à tous les sommets de la partie V2.

Matrices d’adjacence

Pour un graphe orienté, Mij = 1 si (xi, xj) ∈ A, sinon 0. Chaque ligne i et colonne j indique la présence d’un arc de xi vers xj.

Dans un graphe non orienté, la matrice d’adjacence est toujours symétrique, car chaque arête [x,y] implique à la fois (x,y) et (y,x).

Usage mémoire

Comparaison entre représentation matricielle et liste d’adjacence :

StructureComplexité mémoire
Matriceθ(n²)
Listeθ(n + m)

Chemins et circuits

Un chemin dans un graphe orienté est une suite d’arcs où l’extrémité de chaque arc est l’origine du suivant. La longueur du chemin est le nombre d’arcs.

Un circuit n’est pas un chemin dont l’origine diffère de l’extrémité ; au contraire, un circuit a la même origine et la même extrémité (affirmation fausse).

Théorie de la calculabilité

Réduction many‑one

Une fonction totale récursive f telle que x ∈ A ⇔ f(x) ∈ B. Elle transforme chaque instance de A en une instance de B de façon computable.

Problème de l’arrêt

Le problème de l’arrêt est indécidable (affirmation fausse). Aucun algorithme ne peut décider pour tous les programmes s’ils s’arrêtent.

Fonctions h(p,x) et h(p,x,t)

  • h(p,x) n’est pas calculable.
  • h(p,x,t) est calculable grâce au paramètre temps t, qui permet de vérifier la terminaison dans un délai fini.

Théorème de Rice

Toute propriété non triviale sur le comportement d’une fonction calculable est indécidable. Si deux programmes calculent la même fonction, la propriété leur donne la même valeur.

Ensembles semi‑décidables et décidables

  • Tout ensemble semi‑décidable n’est pas forcément décidable (affirmation fausse). Il peut être récursivement énumérable sans être décidable.
  • Tout ensemble fini est toujours décidable : on peut tester l’appartenance en comparant avec les éléments listés.

Conclusion

Ce cours couvre les bases essentielles de l’algorithmique, de la complexité, des structures de graphes et des notions de calculabilité. La maîtrise de ces concepts permet d’aborder des problèmes plus avancés en informatique théorique et appliquée.