Aller au contenu principal

Ensembles & relations

Progression

#Ensembles et relations

À quoi ça sert ?

À quoi ça sert: modéliser des collections et des liens (appartenance, ordre, équivalence) de façon rigoureuse. Comment: opérations ensemblistes, relations (réflexive, symétrique, transitive), classes d’équivalence et ordres partiels.

#Opérations ensemblistes

Les opérations fondamentales sur les ensembles incluent :

  • Union (A ∪ B) : Ensemble des éléments appartenant à A ou à B.
  • Intersection (A ∩ B) : Ensemble des éléments appartenant à la fois à A et à B.
  • Différence (A - B) : Ensemble des éléments appartenant à A mais pas à B.
  • Complémentaire (A̅) : Ensemble des éléments n'appartenant pas à A.
  • Produit cartésien (A × B) : Ensemble des paires ordonnées (a, b) où a ∈ A et b ∈ B.

#Fonctions

Une fonction f: A → B associe à chaque élément de l'ensemble A (domaine) un unique élément de l'ensemble B (codomaine).

  • Injection : Chaque élément de B a au plus un antécédent.
  • Surjection : Chaque élément de B a au moins un antécédent.
  • Bijection : Fonction qui est à la fois injective et surjective.

#Relations

Une relation R entre deux ensembles A et B est un sous-ensemble du produit cartésien A × B.

#Relations d'équivalence

Une relation R sur un ensemble A est une relation d'équivalence si elle est :

  1. Réflexive : ∀a ∈ A, aRa
  2. Symétrique : ∀a,b ∈ A, aRb ⇒ bRa
  3. Transitive : ∀a,b,c ∈ A, aRb ∧ bRc ⇒ aRc

Les classes d'équivalence partitionnent l'ensemble A.

#Relations d'ordre

Une relation R sur un ensemble A est une relation d'ordre si elle est :

  1. Réflexive : ∀a ∈ A, aRa
  2. Antisymétrique : ∀a,b ∈ A, aRb ∧ bRa ⇒ a = b
  3. Transitive : ∀a,b,c ∈ A, aRb ∧ bRc ⇒ aRc

Un ordre est total si deux éléments quelconques sont comparables (∀a,b ∈ A, aRb ∨ bRa).

#Atelier interactif : manipuler deux ensembles

Visualisez concrètement les opérations d’union, d’intersection et de différence en activant/désactivant des éléments.

Atelier ensembles & relations

Manipulez des profils d’étudiants: certains suivent l’option IA, d’autres ont choisi la voie stage long. Comparez les intersections et différences pour visualiser les effectifs.

|A| — Option IA

4

Carla, Diego, Aline, Hana

|B| — Stage long

4

Bilal, Gaël, Aline, Hana

|A ∩ B|

2

Aline, Hana

Hors A et B

2

Emma, Fatou

Résultat: Option IA ∪ Stage long

Appartient à Option IA ou Stage long (ou les deux).

6 élément(s)
AlineBilalCarlaDiegoGaëlHana

Aline

L3

A ∩ B

Bilal

L3

B

Carla

L2

A

Diego

L2

A

Emma

L1

Fatou

L1

Gaël

L2

B

Hana

L3

A ∩ B

Astuce: placez des éléments « hors A et B » pour matérialiser le complément de l’union (l’univers moins A ∪ B) et visualiser une partition complète.

#Exercice : Implémentation d'opérations ensemblistes en Python

Implémentez les opérations ensemblistes de base en Python sans utiliser les ensembles intégrés.

#Instructions

  1. Créez une classe Ensemble qui représente un ensemble d'éléments.
  2. Implémentez les méthodes suivantes :
    • union(other) : Retourne l'union de deux ensembles.
    • intersection(other) : Retourne l'intersection de deux ensembles.
    • difference(other) : Retourne la différence de deux ensembles.
    • produit_cartesien(other) : Retourne le produit cartésien de deux ensembles.
  3. Ajoutez une méthode est_egal(other) pour tester l'égalité d'ensembles.

#Exemple de code

pythonpython
1class Ensemble:2    def __init__(self, elements=None):3        self.elements = elements if elements is not None else []4    5    def union(self, other):6        result = Ensemble(self.elements[:])7        for elem in other.elements:8            if elem not in result.elements:9                result.elements.append(elem)10        return result11    12    def intersection(self, other):13        result = Ensemble()14        for elem in self.elements:
Chargement de l’éditeur...