• Aucun résultat trouvé

Techniques Algorithmiques et Programmation

N/A
N/A
Protected

Academic year: 2022

Partager "Techniques Algorithmiques et Programmation"

Copied!
6
0
0

Texte intégral

(1)

Cyril Gavoille LaBRI

Laboratoire Bordelais de Recherche en Informatique, Université de Bordeaux

[email protected]

16 août 2020 – 175 pages –

(2)

c b n a

Ce document est publié sousLicence Creative Commons « Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International (CC BY-NC-SA 4.0) ».

Cette licence vous autorise une utilisation libre de ce document pour un usage non com- mercial et à condition d’en conserver la paternité. Toute version modifiée de ce document doit être placée sous la même licence pour pouvoir être diffusée.https://creativecommons.org/licenses/by-nc-sa/4.0/deed.fr

ii

(3)

Objectifs : Introduire, aux travers d’exemple de problèmes simples, diverses ap- proches algorithmiques, les programmer et les tester sur machines. Les approches abor- dées sont :

• Formule close ;

• Exhaustive (Brute-Force) ;

• Récursive ;

• Programmation dynamique ;

• Heuristique ;

• Approximation ;

• Gloutonne (Greedy) ;

• Diviser pour régner (Divide-and-Conquer).

Faute de temps, les approches suivantes ne seront pas abordées :

• Probabiliste ;

• Programmation linéaire ;

• Branchement et élagage (Branch-and-Bound) ;

• Solveur SAT.

Nous programmerons enCavec un tout petit peu d’OpenGL/SDL pour plus de gra- phismes. Les concepts techniques et les objets que l’on croisera seront : les algorithmes, la complexité, les graphes, les distances, les points du plan, ...

Pré-requis : langageC, notions algorithmiques, notions de graphes

Quelques ouvrages de référence :

Programmation efficace

Christoph Dürr et Jill-Jênn Vie Ellipses 2016

The Algorithm Design Manual (2nd edition) Steven S. Skiena

Springer 2008

(4)

iv

Algorithm Design

Robert Kleinberg et Éva Tardos Pearson Education 2006

Introduction à l’algorithmique (2e édition)

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest et Clifford Stein

Dunod 2001

Algorithms (4th edition)

Robert Sedgewick et Kevin Wayne Addison-Wesley 2011

Algorithms JeffErickson

Creative Commons 2019

(5)

1 Introduction 1

1.1 Tchisla . . . 2

1.2 Des problèmes indécidables . . . 5

1.3 Approche exhaustive . . . 9

1.4 Rappels sur la complexité . . . 18

1.4.1 Compter exactement? . . . 20

1.4.2 Pour résumer . . . 24

1.5 Notations asymptotiques . . . 24

1.5.1 Exemples et pièges à éviter . . . 25

1.5.2 Complexité d’un problème . . . 27

1.5.3 Sur l’intérêt des problèmes de décision . . . 28

1.6 Algorithme et logarithme . . . 30

1.6.1 Propriétés importantes . . . 32

1.6.2 Et la fonction lnn? . . . 36

1.6.3 Tchisla et logarithme . . . 37

1.7 Morale . . . 39

Bibliographie . . . 42

2 Partition d’un entier 43 2.1 Le problème . . . 43

2.2 Formule asymptotique . . . 44

2.3 Approche exhaustive . . . 47

2.4 Récurrence . . . 48

2.5 Programmation dynamique . . . 54

2.6 Mémorisation paresseuse . . . 57

(6)

Cliquez ici pour telecharger le PDF complet

Références

Documents relatifs

9 Portugal : La mobilisation de la génération “ stupide mais qui s’en sort ” 11 Espagne : “ Yes We Camp ”, la mobilisation dans les rues et sur le Net 16 Portugal : les

Cette oeuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0

Cette oeuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0

* ​ Ce document est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation.. Commerciale -Partage dans les Mêmes Conditions

Il faut séparer les deux : le plas- tique qui est souple doit aller avec les ordures ménagères et le papier dans la poubelle jaune ou de collecte de papier.. DÉCHETS Une

Ainsi, pour l’entretien avant la séquence, nous avons proposé les catégories suivantes : conceptions du numérique, pertinence d’enseigner la littérature

◉ Tous les fichiers nécessaires pour un module sont contenus dans un package. ◉ Installer un package (via terminal) : npm

« Quand je publie mes livres, j’aime qu’ils soient regardés également avec la même attention que celle qu’on accorderait à une peinture ou une photo ».. Entretien avec