ECTS
25 crédits
Composante
ENSEIRB-MATMECA
Code interne
EI9AMFA1
Description
Majeure en algorithmique avancée, mineure en vérification logicielle
Informations complémentaires
Informatique fondamentale
Liste des enseignements
Personnalisation (au choix)
Au choix : 1 parmi 3
Logique et langages
Théorie des graphes avancée
Algorithmique distribuée
Séminaire
Initiation à la recherche
Personnalisation (au choix)
Composante
ENSEIRB-MATMECA
Jeux, synthèse et contrôle
Composante
ENSEIRB-MATMECA
Partie 1:
Introduction à la théorie des jeux pour la vérification et la synthèse. La synthèse de systèmes ouverts ou de contrôleurs part du principe d'un système réactif, qui doit intéragir avec son environnement. Les deux entités - système et environnement - sont vues en tant que 2 joueurs antagonistes. On abordera différents types de jeux : jeux à deux joueurs sur des arènes finies, jeux pour la synthèse de contrôleurs, et jeux distribués.
Partie 2:
Bases théoriques de l'apprentissage par renforcement, un framework de l'intelligence artificielle permettant à des agents d'acquérir des connaissances et de prendre des décisions en interagissant avec leur environnement. Nous explorerons en détail les concepts fondamentaux tels que le problème des bandits manchots, les processus de décision markoviens, les compromis entre exploration et exploitation, le Q-learning, etc. ainsi que des techniques avancées telles que l'approximation de fonction et le Deep Q-learning. À la fin de ce cours, vous aurez entre autres acquis les compétences nécessaires pour comprendre AlphaGo, première IA à surpasser l'humain au jeu de go.
Vérification de logiciels
Composante
ENSEIRB-MATMECA
Ce cours a pour but principal d’introduire des techniques classiques de vérification et de les implémenter dans un vérificateur de programmes (simples). L’outil réalisé au cours du semestre est capable de détecter des violation d’assertions sur des programmes dans un sous-langage du C (uniquement des entiers et pas de pointeurs) sans que l’utilisateur ait à fournir d’autres information que le programme.
Partie 1:
Cadre général du vérificateur (notamment le langage vérifié et sa sémantique), visant à familiariser avec le langage utilisé (Ocaml) et le SMT-solveur utilisé (Z3), et présentation de la technique du Bounded Model Checking à travers deux algorithmes pour le réaliser.
Partie 2:
Introduction à l'interprétation abstraite, qui consiste à regarder des abstractions de l’ensemble des exécutions d’un programme dans un domaine mathématique bien ordonné plus simple. Durant cette partie, plusieurs domaines abstraits simples sont implémentés.
Partie 3:
Présentation de la technique du raffinement d’abstraction guidé par contre-exemple (CEGAR) et quelques bases sur les réseaux de Petri.
Algorithmique appliquée
Composante
ENSEIRB-MATMECA
L'objectif de cet enseignement est de balayer quelques techniques/approches algorithmiques pour résoudre des problèmes de toutes sortes. Analyser ces techniques pour comprendre pourquoi elles marchent, identifier leurs points forts et leurs faiblesses. Car en algorithmique tout est question de compromis: tel algorithme sera efficace pour telles données ou structures de données. Programmer ces approches et les tester sur un problème en grandeur réelle. Le projet représente 75% de la note finale, 25% pour le test écrit.
Logique et langages
Composante
ENSEIRB-MATMECA
Ce cours introduit la logique des modèles finis, tels que les mots, les arbres et les graphes fini, ainsi que des logiques temporelles utilisées en vérification. Nous présenterons également les logiques de description qui servent à représenter de manière formelle des connaissances d’un domaine particulier (e.g. médecine) pour améliorer l’interrogation et le partage d'informations. On s’intéressera au pouvoir d’expression des logiques considérées, ainsi que des problèmes algorithmiques variés (validation de formule sur un modèle, satisfiabilité de formule, inférence logique, etc).
Nous aborderons également l’apprentissage d'automates et de formules LTL à partir d’exemples dans des contextes passifs et actifs. Nous discuterons des algorithmes associés à ces problèmes (bornes supérieures) ainsi que des questions de complexité (bornes inférieures). Si le temps le permet, nous mettrons également en lumière un lien étroit entre la théorie des automates et la complexité des circuits algébriques, et montrerons comment les résultats de l'une peuvent être appliqués à l'autre.
Théorie des graphes avancée
Composante
ENSEIRB-MATMECA
La théorie des graphes est un modèle très général qui permet de représenter des problèmatiques très variées, que ce soit dans les réseaux (de toute nature) mais aussi pour des structures hierarchisées comme les bases de données. La culture générale des problématiques de graphe que nous proposons dans ce cours ainsi que la connaissance des outils efficaces pour ces problématiques sont des atouts pour reconnaître et traiter les problèmes qu'elles modélisent.
Cet enseignement présente des notions avancées de théorie des graphes et familiarise l’étudiant avec certaines techniques de preuve classiques, liées notamment à la coloration de graphes. Quelques problèmes et conjectures classiques sont abordés.
Algorithmique distribuée
Composante
ENSEIRB-MATMECA
Objectifs : introduire l’algorithmique distribuée; présenter les différents modèles et contraintes du calcul distribué ; présenter et analyser quelques algorithmiques classiques du domaine ; concevoir des algorithmes s'exécutant sur des systèmes distribués
Séminaire
Composante
ENSEIRB-MATMECA
Le but de ce cours est de familiariser les étudiants avec les séminaires de recherche, à la fois en tant que spectateur et en temps que présentateur. Les élèves y seront encouragés à assister au séminaires des équipes de recherche du LaBRI et à discuter de leur expérience. Ils devront également préparer deux présentation, une première sur un problème ouvert, puis une seconde sur un article de recherche, qu’il retravailleront en fonction des retours. Ils devront également écouter leurs camarades faire leurs présentation et leur faire des critiques constructives, et poser des questions.
Initiation à la recherche
Composante
ENSEIRB-MATMECA
Objectifs : Lire un article scientifique.
Identifier les ressources connexes à la problématique scientifique ciblée par l'article (réaliser une étude bibliographique).
Rédiger un résumé des contributions apportées par l'article.
Présenter une synthèse de l'article.