Contenu Introduction à Python

Slides:



Advertisements
Présentations similaires
Algorithmes et structures de données avancés
Advertisements

Pour le chemin le plus court pour tous les couples
Recherches locales et méta-heuristiques
Génération de routes optimales Sujets Introduction TSP Colonies de fourmis (voir autre présentation Informs Healhcare) PIF6004 Sujets Spéciaux en informatique.
Problème de voyageur de commerce
CINI – Li115 1 Semaine 9 Algorithmes de tri ● Introduction ● Tri à bulle ● - principe ● - algorithme ● - efficacité ● Tri par sélection ● - principe, algorithme,
Courbes d'Interpolation Interpolation de Lagrange, et Interpolation B-spline.
CINI – Li115 1 Semaine 3 Boucles (suite), tirages aléatoires, bibliothèque graphique ● Imbrication d'instructions if et for ● Boucles for imbriquées ●
bgp always-compare-med
Outils de Recherche Opérationnelle en Génie MTH 8414A
Suites ordonnées ou mettre de l’ordre
Module de gestion des tournées de livraison
Analyse, Classification,Indexation des Données ACID
Les Instructions Itératives (Les Boucles)
Coloration de graphe, backtracking, branch and bound
Traitement de données 2.
Information, Calcul, Communication
5 – PARALLELISME , ORDONNANCEMENT
Algorithmique Avancée et Complexité Chap2:Complexité et Optimalité
Techniques d’Optimisation Chapitre 2: Problème de flôt
Algorithmiques Abdelbasset KABOU
IFT 615 – Intelligence artificielle Recherche heuristique
Présentation multimédia avec open office
Pr ZEGOUR Djamel Eddine
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
MTH 6414A Exemple de recherche avec taboux
Plans d’experiences : plans de melanges
LES PRINCIPES DE LA THERMODYNAMIQUE
République Algérienne Démocratique et Populaire Ministère de l'Enseignement Supérieur et de la Recherche Scientifique Université Saad.
Concepts avancés en mathématiques et informatique appliquées
Traitement de données 2.
GRAPHISME PAR ORDINATEUR
Construire un GANTT.
INTELLIGENCE ARTIFICIELLE
INTELLIGENCE ARTIFICIELLE
Chapitre 6: Réduction de dimensionnalité paramétrique
L ES I NSTRUCTIONS I TÉRATIVES (L ES B OUCLES ) Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira,
Sujets Spéciaux en informatique II
Cours N°9: Algorithmiques Les Tableaux 1
Cyber-Sphinx Séance 2.
La méthode du simplexe. 1) Algorithme du simplexe  Cet algorithme permet de déterminer la solution optimale, si elle existe, d’un problème de programmation.
LES GRAPHES. Introduction L'introduction d'éléments de la théorie des graphes dans l'enseignement de spécialité de la classe terminale de la série ES.
Branch-and-price algorithms for the solution of the multi-trip vehicle routing problem with time windows (MTVRPTW) 1.
IFT 615 – Intelligence artificielle Recherche heuristique locale
ACP Analyse en Composantes Principales
Pierre Dumouchel 20 juillet 2009
Calculs des incertitudes Lundi 30 Avril 2018 Master de Management de la Qualité, de la Sécurité et de l’Environnement.
Royaume de Maroc Université Hassan Premier Settat Faculté des Sciences et Techniques de Settat LA CLASSIFICATION K-MEANS SOUS R /MATLAB Master :Automatique.
OPTIMISATION 1ère année ingénieurs
Généralités sur les fonctions
Arbres de décision.
Variable Neighborhood Descent (VND) Réalisée par Nadia Sassi Eya baghdedi AU
Le code de Huffman: est une méthode de compression statistique de données qui permet de réduire la longueur du codage d'un alphabet. Le code de Huffman.
Reconnaissance de formes: lettres/chiffres
Information, Calcul, Communication
Moteurs de recherches Data mining Nizar Jegham.
CSI 3505 Algorithmes Voraces
RABAH M ed Ali 2018/2019
INTELLIGENCE ARTIFICIELLE
INTELLIGENCE ARTIFICIELLE
Introduction à Python.
Programmation Scratch
INTELLIGENCE ARTIFICIELLE
Lecture/Écriture de fichiers (I/O)
Encadrée par: - Mr. Abdallah ALAOUI AMINI Réalisée par : -ERAOUI Oumaima -DEKKAR Amal - ES-SAHLY Samira -Houari Mohammed PROGRAMMATION MULTIOBJECTIFS.
INTELLIGENCE ARTIFICIELLE
INTELLIGENCE ARTIFICIELLE
Structure de données Les listes.
LES GRAPHES. Introduction L'introduction d'éléments de la théorie des graphes dans l'enseignement de spécialité de la classe terminale de la série ES.
La programmation dynamique
Transcription de la présentation:

Introduction à Python Algorithmes de recherche locale (chemin le plus court)

Contenu Introduction à Python Algorithme de recherche locale (Recuit simulé) Application du recuit simulé au TSP LECTURES: Chapitres 4-5 Russell & Norvig, Artificial Intelligence: A Modern Approach LECTURES: Python For Everyone, C. Horstmann et R.D. Necaise Notes de cours (site ftp UQTR)

Introduction à Python Définitions de variables et constantes Fonctions mathématiques

Introduction à Python Importation de modules (packages) Énoncés conditionnels

Introduction à Python Énoncés répétitifs (boucles) Définition de fonctions

Introduction à Python Opérateurs (listes partielles) et précédence Chaînes de caractères

Introduction à Python Listes (lists)

Introduction à Python Tables I/O

Introduction à Python Ensembles (sets) et dictionnaires (dictionaries)

Introduction à Python Fichiers

Introduction à Python Définitions de classes

Introduction à Python Héritage

Algorithmes de recherche locale (Recuit simulé) Recherche locale: Algorithme Recuit Simulé Une recherche locale conserve que certains nœuds visités (de l’arbres des solutions possibles) en mémoire. La recherche locale (recuit simulé) conserve juste un nœud (le nœud courant) et l’améliore itérativement jusqu’à converger à une solution. Une fonction objectif doit être optimisée (maximiser ou minimiser). Pour l’approche par recuit simulé, elle permet de trouver le prochain nœud à visiter.

Algorithmes de recherche locale (Recuit simulé) Recherche locale: Algorithme Recuit Simulé Une recherche locale ne garantie pas de solution optimale mais permet de trouver une solution acceptable rapidement

Algorithmes de recherche locale (Recuit simulé) Recherche locale: Algorithme Recuit Simulé Pour expliquer le recuit simulé nous référons au concept de pente de descente (gradient descent) et en observant comment une balle de ping-pong peut se loger dans la plus grande crevace d’une surface cahoteuse. Si on laisse rouler la balle, elle pourrait se loger dans un minimum local. Si nous brassons Ia surface, la balle sortira de ce minimum local. Le recuit simulé commence en appliquant un brassage d’assez forte intensité (haute température) et en reduisant cette intensité (diminution de la température)

Algorithmes de recherche locale (Recuit simulé) Recherche locale: Algorithme Recuit Simulé

Algorithmes de recherche locale (Recuit simulé) Recherche locale: Algorithme Recuit Simulé L’algorithme Simulated annealing minimise le risque de resté pris dans un minimun/maximum local. CEPENDANT, il est possible selon la forme de la fonction objectif (f(n)) que les successeurs générés par l’algorithme oscillent en pouvant revenir à des nœuds déjà visités. En enregistrant les nœuds visités comme dans l’approche A* nous pourrions éviter la situation précédente. MAIS, avec des espaces d’états volumineux il devient difficile de conserver tous ces états. L’algorithme de recherche tabou permet de conserver les k derniers nœuds générés, ce qui permet de réduire l’incidence des possibles oscillations.

Algorithmes de recherche locale (Recuit simulé) Recherche locale: Algorithme Recuit Simulé L’algorithme Simulated annealing minimise le risque de resté pris dans un minimun/maximum local. L’algorithme de recherche locale en faisceau (Local Beam) permet de conserver les k différents nœuds générés, ce qui permet aussi de réduire l’incidence des possibles oscillations. L’algorithme commence en sélectionnant aléatoirement k nœuds, ensuite, les successeurs de ces nœuds sont générés, les k meilleurs nœuds successeurs sont ensuite sélectionnés et sont à leur tour étendus. La variante stochastique de la recherche locale en faisceau choisie k successeurs aléatoirement, avec la probabilité de choisir un successeur donné étant une fonction croissante de sa valeur f(n) (fitness).

Application du recuit simulé au TSP Traveling Saleman Problem (TSP) (chemin le plus court)

Application du recuit simulé au TSP Étant donné n nœuds dans un graphe (des « villes ») et des arcs annotés par les distances séparant chaque noeud, trouver un chemin de longueur totale minimale qui passe exactement une fois par chaque point et revienne au point de départ. Formellement, une instance est un graphe complet  G=(V,A,c) avec V un ensemble de sommets,  A un ensemble d'arêtes (arcs) et c une fonction de coût sur les arcs. Le problème est de trouver le plus court cycle hamiltonien dans le graphe G. Un cycle hamiltonien étant un chemin dans le graphe passant par chaque nœud une seule fois et qui se termine au point de départ

Application du recuit simulé au TSP Cycle hamiltonien Cycle hamiltonien de longueur minimale

Application du recuit simulé au TSP Traveling Salesman Problem: Implémentation du TSP (version Recuit simulé) (Voir EX-TSP-Recuit-Simule-Py)

Application du recuit simulé au TSP Traveling Salesman Problem: Implémentation du TSP (version Recuit simulé) (Voir EX-TSP-Recuit-Simule-Py) Exemples d’exécution

Application du recuit simulé au TSP Traveling Salesman Problem: Implémentation du TSP (version Recuit simulé) (Voir EX-TSP-Recuit-Simule-Py) Importation des librairies requises (ex: numpy et matplotlib) Générer une liste de villes “cities”, chacune avec une coordonnée (x, y) dans un intervalle [0, 100[, choisie aléatoirement. La méthode range(100) retourne une liste [0,1,2,...,100[ La méthode random.sample( ,2) permet de choisir un ensemble (set) de dimension 2 de cette liste. La sélection des coordonnées est répétée 15 fois, formant ainsi une liste de coordonnées de 15 villes  (cities).

Application du recuit simulé au TSP Traveling Salesman Problem: Implémentation du TSP (version Recuit simulé) (Voir EX-TSP-Recuit-Simule-Py) Une tournée “Tour” est une liste de 15 indices (dans la liste cities) représentant l’ordre de visite des villes. Sachant que nous devons avoir un circuit fermé avec la dernière ville visitée se connectant automatiquement à la première. La méthode numpy.logspace(0,5,num=100000) génère une liste 100,000 nombres dans l’intervalle [1, 10^5] dont le logarithme produit alors des nombres uniformément espacés. La température variera alors exponentiellement. Pour que la température soit élevée au début, nous devons inverser la liste, l’énoncé  [::-1] permet de faire cette inversion.

Application du recuit simulé au TSP Traveling Salesman Problem: Implémentation du TSP (version Recuit simulé) (Voir EX-TSP-Recuit-Simule-Py) Permet de générer une nouvelle route en permutant 2 villes choisies aléatoirement. Choix de 2 nombres i, j parmis les 15 villes possibles par l’appel à la méthode random.sample( ,2)  classés en ordre croissant par la méthode  sorted( ). La nouvelle tournée est générée en: Copier les villes de la liste tour (old tour) de la position 0 à i-1 (tour[:i]) dans la liste newTour Ajouter la ville à la position j de la liste tour dans la liste newTour (tour[j:j+1]) Copier les villes de la liste tour (old tour) de la position i+1 à j-1 (tour[i+1:j]) dans la liste newTour Ajouter la ville à la position i de la liste tour dans la liste newTour (tour[i:i+1]) Copier les villes de la liste tour (old tour) de la position j+1 jusqu’à la fin (tour[j+1:]) dans la liste newTour

Application du recuit simulé au TSP Traveling Salesman Problem: Implémentation du TSP (version Recuit simulé) (Voir EX-TSP-Recuit-Simule-Py)  Les distances sont seulement calculées entre les 2 villes allant vers la iième et la jième ville et les villes suivants la iième et la jième ville, les autres distances restant les mêmes

Application du recuit simulé au TSP Traveling Salesman Problem: Implémentation du TSP (version Recuit simulé) (Voir EX-TSP-Recuit-Simule-Py)  Si la condition de l’énoncé if est vrai, nous faisons une mise à jour de la tournée avec newTour La somme des distances entre les villes correspond à l’énergie d’un système que nous devons minimiser Le facteur de Gibbs   est l’ exponentiel de la variation (négative) de l’énergie sur la température Ce qui représente la probabilité de transition vers un nouvel état à partir d’un ancien état Si le facteur de Gibbs est > 1 alors la nouvelle énergie est plus basse, nous sélectionnons le newTour.

Application du recuit simulé au TSP Traveling Salesman Problem: Implémentation du TSP (version Recuit simulé) (Voir EX-TSP-Recuit-Simule-Py)  Sinon, même si le newTour est moins bon, nous pourrions le prendre quand même selon la valeur d’une probabilité, permettant d’éviter de rester pris dans un minimum local Alors si avec r  [0,1] généré par la méthode random.random()  Permet l’affichage du chemin le plus court généré

Application du recuit simulé au TSP Traveling Salesman Problem: Implémentation du TSP (version Recuit simulé) (Voir EX-TSP-Recuit-Simule-Py) Exemple d’exécution