
La Programmation Orienté Objets
5 livres et 6 critiques, dernière mise à jour le 7 décembre 2016 , note moyenne : 4.3



Apprendre la Programmation Orientée Objet avec le langage C#
Résumé de l'éditeur
Ce livre s'adresse aux étudiants et aux développeurs ayant déjà une première expérience de la programmation structurée et qui sont désireux de passer à la Programmation Orientée Objet (POO) avec le langage C#, pour développer des applications .NET.
Après un historique de la POO et du langage C#, l'auteur explique pourquoi ce type de programmation est devenu incontournable pour développer dans les environnements graphiques événementiels. Les notions d'objet, de classe, et de référence sont présentées aux lecteurs puis les fondements de la POO que sont l'encapsulation, l'héritage, le polymorphisme et l'abstraction. Les différentes étapes d'un développement objet avec les principes de modélisation UML sont exposées.
L'auteur présente ensuite le framework .NET, son intérêt, sa richesse et son environnement de développement avec Microsoft Visual Studio 2015 Community. Le lecteur découvre comment C# reproduit les principes de la POO avec des explications simples, des exemples concrets et des exercices corrigés à télécharger sur le site www.editions-eni.fr. Il découvre également les types de base du développement .NET et leur utilisation, les nouveautés du C# 6 et comment exploiter Visual Studio 2015 pour simplifier saisie des programmes et mise au point. Les programmes d'essais sont de type console ou graphique, basés sur l'utilisation des Windows Forms pour illustrer les communications entre objets. Quand ils sont pertinents, des parallèles sont menés avec les langages de programmation objet C++ et Java. La communication entre mondes managé et non managé est abordée ainsi que la conception de tests de régression en forme objets. Enfin, l'aspect programmation multithread permettant l'exécution simultanée de plusieurs flux d'instructions et la programmation asynchrone terminent l'ouvrage.
À la fin de ce livre, le lecteur disposera de bases solides pour appréhender les puissantes bibliothèques du .NET et réaliser des programmes objet modulaires, fiables et extensibles.
Édition : ENI - 410 pages, 2e édition, 9 mars 2016
ISBN10 : 2409000339 - ISBN13 : 9782409000331
- Introduction à la POO
- La conception orientée objet
- Introduction au framework .NET et à VS
- Les types du C#
- Création de classes
- Héritage et polymorphisme
- Communication entre objets
- Le multithreading
- P-Invoke
- Les tests
L’auteur balaye ici l’intégralité des concepts de ce type de programmation, de la conception pour arriver jusqu’à l’implémentation, et apporte un soin particulier à en illustrer les plus abstraits. En effet, il est appréciable de découvrir (ou de redécouvrir) la programmation orientée objet sous l’éclairage contemporain du C# et de Visual Studio. Egalement, le chapitre sur le multithreading ancre d’autant plus cet enseignement dans une réalité actuelle, celle des plateformes multi-cœurs/processeurs. L’objectif de ce manuel est clair : de l’information concrète et exploitable sur des outils actuels.
On notera que ce livre contient des exercices et de nombreux conseils relatifs à l’utilisation de Visual Studio (probablement l’IDE de choix pour le développement en C#) qui peuvent s’avérer utiles aux étudiants comme aux professionnels souhaitant revoir certaines connaissances. En conclusion, il s’agit d’un ouvrage complet qui reprend l’intégralité des éléments théoriques caractérisant la programmation orientée objet et qui les illustre d’une manière très concrète dans un langage de programmation actuel, le C#. J’ai trouvé cet ouvrage à la fois exhaustif et pragmatique, ce qui en fait, à mon humble avis, un livre à obligatoirement posséder.

Ce livre s'adresse aux étudiants et aux développeurs ayant déjà une première expérience de la programmation structurée et qui sont désireux de passer à la Programmation Orientée Objet (POO) avec le langage C#, pour développer des applications .NET.
Après un historique de la POO et du langage C#, l'auteur explique pourquoi ce type de programmation est devenu incontournable pour développer dans les environnements graphiques événementiels. Les notions d'objet, de classe, et de référence sont présentées aux lecteurs puis les fondements de la POO que sont l'encapsulation, l'héritage, le polymorphisme et l'abstraction. Les différentes étapes d'un développement objet avec les principes de modélisation UML sont exposées.
L'auteur présente ensuite le framework .NET, son intérêt, sa richesse et son environnement de développement avec Microsoft Visual Studio 2015 Community. Le lecteur découvre comment C# reproduit les principes de la POO avec des explications simples, des exemples concrets et des exercices corrigés à télécharger sur le site www.editions-eni.fr. Il découvre également les types de base du développement .NET et leur utilisation, les nouveautés du C# 6 et comment exploiter Visual Studio 2015 pour simplifier saisie des programmes et mise au point. Les programmes d'essais sont de type console ou graphique, basés sur l'utilisation des Windows Forms pour illustrer les communications entre objets. Quand ils sont pertinents, des parallèles sont menés avec les langages de programmation objet C++ et Java. La communication entre mondes managé et non managé est abordée ainsi que la conception de tests de régression en forme objets. Enfin, l'aspect programmation multithread permettant l'exécution simultanée de plusieurs flux d'instructions et la programmation asynchrone terminent l'ouvrage.
À la fin de ce livre, le lecteur disposera de bases solides pour appréhender les puissantes bibliothèques du .NET et réaliser des programmes objet modulaires, fiables et extensibles.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?

ADO.NET 3.5 Cookbook
Résumé de l'éditeur
Organized to help you find the topic and specific recipe you need quickly and easily, this book is more than just a handy compilation of cut-and-paste C# code. ADO.NET 3.5 Cookbook also offers clear explanations of how and why each code solution works, and warns you of potential pitfalls so you can learn to adapt the book's problem-solving techniques to different situations.
Ideal for ADO.NET programmers at all levels, from the relatively inexperienced to the most sophisticated, this new edition covers the significant 3.5 upgrade, including new programming tools such as LINQ. ADO.NET 3.5 Cookbook offers a painless way for those of you who prefer to learn by doing when it comes to expanding your skills and productivity.
Édition : O'Reilly UK - 980 pages, 2e édition, 1er mars 2008
ISBN10 : 0596101406 - ISBN13 : 9780596101404
- Connecting to Data
- Working with Disconnected Data Objects
- Querying and Retrieving Data
- Searching and Analyzing Data
- Adding and Modifying Data
- Copying and Transferring Data
- Maintaining Database Integrity
- Programmatically Working with Data in .NET Windows and Web Forms User Interfaces
- Working with XML Data
- Optimizing .NET Data Access
- Enumerating and Maintaining Database Objects
- SQL Server CLR Integration
- What's New in ADO.NET Since Version 1.0
Le code complet de chaque solution est disponible ainsi que les copies écrans des sorties console. Les exemples de code sont tous en C# mais leurs équivalents en VB.NET sont disponibles sur le site de l'éditeur (après enregistrement de sa copie du livre). Des explications détaillées permettent de comprendre chaque morceau de code donné en solution. Le livre se focalise principalement sur SQL server mais pas mal d'exemples sont aussi disponibles sur les interactions avec des bases Oracle, Access et même des fichiers Excel.
Cependant, le titre est trompeur car il y a en fait peu de contenu spécifique au Framework 3.5. Pour ceux qui veulent un livre sur Linq to SQL, passez votre chemin ! Ici nous parlons de SqlCommand, de DataReader, de DataSet. D'ailleurs, en parlant de DataSet ce livre en fait une utilisation un peu trop courante à mon goût. Le chapitre 8 par exemple est dédié à la liaison entre données et composants d'interface graphique. Je n'ai cependant pas trouvé ce chapitre très intéressant étant donné que tout passe par l'utilisation de DataSets directement remplis dans la couche de l'interface graphique. Ceux qui comme moi aiment utiliser des objets métiers et séparer leur code en différentes couches risquent de sauter ce chapitre.
Au final il s'agit d'un bon livre sur les entrailles d'ADO.NET. Les débutants comme les développeurs confirmés y trouveront sans nul doute de quoi améliorer leurs connaissances.

Organized to help you find the topic and specific recipe you need quickly and easily, this book is more than just a handy compilation of cut-and-paste C# code. ADO.NET 3.5 Cookbook also offers clear explanations of how and why each code solution works, and warns you of potential pitfalls so you can learn to adapt the book's problem-solving techniques to different situations.
Ideal for ADO.NET programmers at all levels, from the relatively inexperienced to the most sophisticated, this new edition covers the significant 3.5 upgrade, including new programming tools such as LINQ. ADO.NET 3.5 Cookbook offers a painless way for those of you who prefer to learn by doing when it comes to expanding your skills and productivity.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?

Conception et Programmation orientées objet
Résumé de l'éditeur
Partant d'une analyse des écueils souvent rencontrés dans les projets de développement, Bertrand Meyer définit une liste de critères de qualité logicielle et en déduit un ensemble de règles et de principes qui conduisent naturellement aux grands concepts objet.
Théorie du typage, gestion de la mémoire, techniques d'héritage, programmation concurrente, objets distribués, persistance et bases de données objet, analyse et conception, réutilisabilité... : tous les aspects du processus de développement logiciel et des technologies objet sont expliqués et discutés dans leurs moindres détails, dans un style brillant, souvent drôle et provocateur.
Une lecture dont on sort intellectuellement subjugué, et techniquement mieux armé pour répondre à ses défis professionnels.
Ce livre s'adresse à tous les architectes logiciel, ingénieurs méthode et programmeurs impliqués dans des projets de développement logiciel et souhaitant approfondir leur compréhension des technologies objet, ainsi qu'aux étudiants en informatique (niveau 2e cycle ou écoles d'ingénieur).
Édition : Eyrolles - 1224 pages, 1re édition, 1er juillet 2000
ISBN10 : 2212091117 - ISBN13 : 9782212091113
L'auteur nous fait découvrir tous les principes de la programmation orientée objet, des concepts les plus simples aux plus compliqués.
L'auteur nous permet, en plus, de découvrir le langage qu'il a inventé: le langage Eiffel.
Bref, ce livre constitue la référence en matière de POO, même si sa lecture nécessite tout de même d'avoir quelques notions dans ce domaine.
Un conseil: Achetez-le !

Partant d'une analyse des écueils souvent rencontrés dans les projets de développement, Bertrand Meyer définit une liste de critères de qualité logicielle et en déduit un ensemble de règles et de principes qui conduisent naturellement aux grands concepts objet.
Théorie du typage, gestion de la mémoire, techniques d'héritage, programmation concurrente, objets distribués, persistance et bases de données objet, analyse et conception, réutilisabilité... : tous les aspects du processus de développement logiciel et des technologies objet sont expliqués et discutés dans leurs moindres détails, dans un style brillant, souvent drôle et provocateur.
Une lecture dont on sort intellectuellement subjugué, et techniquement mieux armé pour répondre à ses défis professionnels.
Ce livre s'adresse à tous les architectes logiciel, ingénieurs méthode et programmeurs impliqués dans des projets de développement logiciel et souhaitant approfondir leur compréhension des technologies objet, ainsi qu'aux étudiants en informatique (niveau 2e cycle ou écoles d'ingénieur).
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?

C # - Développez avec Visual Studio 2008 (Broché)
Résumé de l'éditeur
Après une description de l'environnement de développement (Visual Studio 2008), le lecteur découvrira les bases de la programmation orientée objet avec C#.
Il évoluera de façon progressive vers sa mise en uvre avec le développement d'applications Windows Form.
Les nombreux exemples et les conseils sur l'utilisation des outils de débogage lui fourniront une aide précieuse pendant la réalisation d'une application.
Un chapitre consacré à l'accès aux bases de données à l'aide de ADO.NET 2.0 et de SQL permettra d'évoluer vers le développement d'applications client-serveur.
Les puissantes fonctionnalités de LINQ sont présentées et détaillées pour faciliter l'accès et la manipulation des données.
L'utilisation du langage XML est également présenté permettant ainsi de faciliter l'échange d'informations avec d'autres applications.
Les utilisateurs des versions précédentes découvriront les nouveautés et améliorations de cette version 2008 leur permettant de développer encore plus rapidement et facilement des applications pour le framework .NET 3.5 et pour Windows Vista.
La distribution d'une application est présentée avec l'utilisation de Windows Installer et de la technologie Click Once.
Les exemples cités dans le livre sont en téléchargement sur le site de l'éditeur.
Édition : ENI - 482 pages, , 9 juin 2008
ISBN10 : 2746042614 - ISBN13 : 9782746042612
- Présentation de la plate-forme .NET
- Présentation de Visual Studio
- Organisation d'une application
- Bases du langage
- Programmation objet
- Gestion des erreurs et débogage du code
- Applications Windows
- Accès aux bases de données
- Présentation de LINQ
- Utilisation de XML
- Déploiement d'applications et de composants
La description commence par les éléments de base du langage : variables, constantes énumérations, opérateurs, structure, procédures et fonctions et enfin assemblies namespace et attributs.
Cette description tient sur un chapitre soit à peu près 50 pages, c'est donc une description concentrée mais précise, convenant très bien à des lecteurs pratiquants un langage comme le C ou le C++, pour les autres il faudra s'attarder un peu plus longtemps sur ces pages et faire des essais.
Le chapitre 5 est consacré à la programmation objet.
Environ de la même taille que le chapitre précédent ( ~50 pages) il expose les éléments de syntaxe sur les classes et leurs utilisations, l'héritage ,les interfaces, les délégués, les types génériques et les collections de données.
Encore une fois sans expérience préalable sur la programmation objet de premier niveau c'est-à-dire une utilisation basique des éléments exposés dans un autre langage comme le c++ le lecteur risque d'être un peu égaré, car ce contenu se veut pratique.
L'auteur enchaine ensuite sur un court chapitre sur la gestion des erreurs et le débogage du code ( 24 pages), le contenu est synthétique mais très bien illustré.
C'est à partir du chapitre 7 que le développement des applications Windows est abordé.
C'est le plus gros chapitre de ce livre (112 pages), l'auteur passe en revue les différents types d'application, les fenêtres, la gestion des événements claviers et souris, les boîtes de dialogues et enfin les contrôles Windows disponibles.
Chaque élément est brièvement décrit et illustré par des images et mis en action avec une portion de code réduite à l'utilisation du contrôle.
Le chapitre 8 concerne l'accès aux bases de données (24 pages), il est construit comme les autres chapitres pour délivrer une information brève et concise.
Le chapitre 9 est une présentation de Linq (32 pages), très bien expliqué dans la partie liens avec des objets, un peut court sur la partie LINQ vers SQL en ce qui concerne les outils pour le mappage d'objet relationnel.
Le chapitre 10 concerne l'utilisation de XML (13 pages), les opérations basiques à partir de DOM et XPATH sont décrites, mais c'est très bref .
Enfin le chapitre 11 est consacré au déploiement d'applications et de composants ( 26 pages).
L'auteur décrit l'utilisation de Windows Installer et ClickOnce.
C'est bien expliqué avec des images illustrant chaque étape de la mise en ouvre.
Conclusion :
Un livre clair et facile à lire, de nombreuses illustrations émaillent les différents chapitres.
Les exemples donnés sont très simples et sont disponibles sur le site de l'éditeur au format .txt sans projets directement utilisables, dommage.
Bien que le livre soit conseillé pour développeurs débutants, je pense que la cible est plus à propos sur des développeurs ayant une petite expérience de .net ou graphique autre dans un langage proche, idéalement le C++.
Ce livre devenant alors un moyen très rapide d'appréhender C# pour développer des applications Windows.
Le chapitre 6 lui, consacré essentiellement au débogage et à la gestion d'erreur, présente en majeure partie les nouveautés de Visual C# 2008 sur ces questions. Cette partie est très intéressante car on y apprend à se servir de ces nouveautés pour faire un code efficace et ce rapidement.
Le chapitre 7 parle des applications qui sont propres à Windows (gestion des contrôles, clavier/souris, boîte de dialogue,...). Ce chapitre est bien pratique car il montre bien comment utiliser ces applications, même si on ne les avait jamais utilisées auparavant, pour les incorporer dans vos codes simplement.
Les chapitres 8 et 9 sont consacrés à la gestion d'une BDD avec ADO.NET et LINQ. Le chapitre sur ADO.NET est assez complet, même s'il ne nous montre que les bases et deux ou trois petites choses en plus. Par contre le chapitre qui traite de LINQ - seulement une petite dizaine de pages - malgré qu'il soit bien expliqué est trop court car j'ai trouvé vraiment intéressant son utilisation et suis resté un peu sur ma faim.
Le chapitre 10, quant à lui, nous parle de l'utilisation de XML. On y voit comment est fait un document XML et diverses utilisations possibles pour la communication et l'échange avec d'autres applications. Ce chapitre est encore une fois un peu maigre avec même pas 10 pages.
Pour le dernier chapitre, on apprend à se servir de Windows Installer et de ClickOnce pour pouvoir créer des exécutables afin de mettre à la disposition des utilisateurs vos applications ou encore pour permettre aux utilisateurs d'installer vos applications à partir d'un emplacement précis. Ce chapitre est vraiment bien décrit et explique bien chaque étape de l'utilisation de ces deux outils.
Conclusion: Très bon livre pour apprendre ou maîtriser le C# - les codes y sont vraiment bien expliqués - simple à comprendre autant pour un débutant que pour un utilisateur confirmé. Seule lacune, la pauvreté du chapitre sur LINQ qui pourrait être un peu plus développé. Pour le chapitre sur XML, malgré sa maigreur, tout y est bien expliqué pour l'utilisation que l'on en fait dans ce livre .

Après une description de l'environnement de développement (Visual Studio 2008), le lecteur découvrira les bases de la programmation orientée objet avec C#.
Il évoluera de façon progressive vers sa mise en uvre avec le développement d'applications Windows Form.
Les nombreux exemples et les conseils sur l'utilisation des outils de débogage lui fourniront une aide précieuse pendant la réalisation d'une application.
Un chapitre consacré à l'accès aux bases de données à l'aide de ADO.NET 2.0 et de SQL permettra d'évoluer vers le développement d'applications client-serveur.
Les puissantes fonctionnalités de LINQ sont présentées et détaillées pour faciliter l'accès et la manipulation des données.
L'utilisation du langage XML est également présenté permettant ainsi de faciliter l'échange d'informations avec d'autres applications.
Les utilisateurs des versions précédentes découvriront les nouveautés et améliorations de cette version 2008 leur permettant de développer encore plus rapidement et facilement des applications pour le framework .NET 3.5 et pour Windows Vista.
La distribution d'une application est présentée avec l'utilisation de Windows Installer et de la technologie Click Once.
Les exemples cités dans le livre sont en téléchargement sur le site de l'éditeur.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?




L'Intelligence Artificielle pour les développeurs
Concepts et implémentations en C#
Résumé de l'éditeur
Édition : ENI - 484 pages, 1re édition, 1er décembre 2014
ISBN10 : 2746092158 - ISBN13 : 9782746092150
1. Structure du chapitre
2. Définir l’intelligence
3. L’intelligence du vivant
4. L’intelligence artificielle
5. Domaines d’application
6. Synthèse
Systèmes experts
1. Présentation du chapitre
2. Exemple : un système expert en polygones
2.1 Triangles
2.2 Quadrilatères
2.3 Autres polygones
3. Contenu d'un système expert
3.1 Base de règles
3.2 Base de faits
3.3 Moteur d'inférences
3.4 Interface utilisateur
4. Types d'inférences
4.1 Chaînage avant
4.1.1 Principe
4.1.2 Application à un exemple
4.2 Chaînage arrière
4.2.1 Principe
4.2.2 Application à un exemple
4.3 Chaînage mixte
5. Étapes de construction d'un système
5.1 Extraction des connaissances
5.2 Création du moteur d'inférences
5.3 Écriture des règles
5.4 Création de l'interface utilisateur
6. Performance et améliorations
6.1 Critères de performance
6.2 Amélioration des performances par l'écriture des règles
6.3 Importance de la représentation du problème
7. Domaines d’application
7.1 Aide au diagnostic
7.2 Estimation de risques
7.3 Planification et logistique
7.4 Transfert de compétences et connaissances
7.5 Autres applications
8. Création d’un système expert en C#
8.1 Détermination des besoins
8.2 Implémentation des faits
8.3 Base de faits
8.4 Règles et base de règles
8.5 Interface
8.6 Moteur d'inférences
8.7 Saisie des règles et utilisation
9. Utilisation de Prolog
9.1 Présentation du langage
9.2 Syntaxe du langage
9.2.1 Généralités
9.2.2 Prédicats
9.2.3 Poser des questions
9.2.4 Écriture des règles
9.2.5 Autres prédicats utiles
9.3 Codage du problème des formes géométriques
9.4 Codage du problème des huit reines
9.4.1 Intérêt du chaînage arrière
9.4.2 Étude du problème
9.4.3 Règles à appliquer
9.4.4 Règles de conflits entre reines
9.4.5 But du programme
9.4.6 Exemples d'utilisation
10. Ajout d’incertitudes et de probabilités
10.1 Apport des incertitudes
10.2 Faits incertains
10.3 Règles incertaines
11. Synthèse
Logique floue
1. Présentation du chapitre
2. Incertitude et imprécision
2.1 Incertitude et probabilités
2.2 Imprécision et subjectivité
2.3 Nécessité de traiter l'imprécision
3. Ensembles flous et degrés d’appartenance
3.1 Logique booléenne et logique floue
3.2 Fonctions d'appartenance
3.3 Caractéristiques d'une fonction d'appartenance
3.4 Valeurs et variables linguistiques
4. Opérateurs sur les ensembles flous
4.1 Opérateurs booléens
4.2 Opérateurs flous
4.2.1 Négation
4.2.2 Union et intersection
5. Création de règles
5.1 Règles en logique booléenne
5.2 Règles floues
6. Fuzzification et défuzzification
6.1 Valeur de vérité
6.2 Fuzzification et application des règles
6.3 Défuzzification
7. Exemples d’applications
7.1 Premières utilisations
7.2 Dans les produits électroniques
7.3 En automobile
7.4 Autres domaines
8. Implémentation d’un moteur de logique floue
8.1 Le cœur du code : les ensembles flous
8.1.1 Point2D : un point d'une fonction d'appartenance
8.1.2 FuzzySet : un ensemble flou
8.1.3 Opérateurs de comparaison et de multiplication
8.1.4 Opérateurs ensemblistes
8.1.5 Calcul du barycentre
8.2 Ensembles flous particuliers
8.3 Variables et valeurs linguistiques
8.3.1 LinguisticValue : valeur linguistique
8.3.2 LinguisticVariable : variable linguistique
8.4 Règles floues
8.4.1 FuzzyExpression : expression floue
8.4.2 FuzzyValue : valeur floue
8.4.3 FuzzyRule : règle floue
8.5 Système de contrôle flou
8.6 Synthèse du code créé
9. Implémentation d’un cas pratique
10. Synthèse
Recherche de chemins
1. Présentation du chapitre
2. Chemins et graphes
2.1 Définition et concepts
2.2 Représentations
2.2.1 Représentation graphique
2.2.2 Matrice d’adjacence
2.3 Coût d'un chemin et matrice des longueurs
3. Exemple en cartographie
4. Algorithmes naïfs de recherche de chemins
4.1 Parcours en profondeur
4.1.1 Principe et pseudo-code
4.1.2 Application à la carte
4.2 Parcours en largeur
4.2.1 Principe et pseudo-code
4.2.2 Application à la carte
5. Algorithmes "intelligents"
5.1 Algorithme de Bellman-Ford
5.1.1 Principe et pseudo-code
5.1.2 Application à la carte
5.2 Algorithme de Dijkstra
5.2.1 Principe et pseudo-code
5.2.2 Application à la carte
5.3 Algorithme A*
5.3.1 Principe et pseudo-code
5.3.2 Application à la carte
6. Implémentations
6.1 Nœuds, arcs et graphes
6.1.1 Implémentation des nœuds
6.1.2 Classe représentant les arcs
6.1.3 Interface des graphes
6.2 Fin du programme générique
6.2.1 IHM
6.2.2 Algorithme générique
6.3 Codage des différents algorithmes
6.3.1 Recherche en profondeur
6.3.2 Recherche en largeur
6.3.3 Algorithme de Bellman-Ford
6.3.4 Algorithme de Dijkstra
6.3.5 Algorithme A*
6.4 Application à la carte
6.4.1 Tile et Tiletype
6.4.2 Implémentation de la carte
6.4.3 Programme principal
6.5 Comparaison des performances
7. Domaines d’application
8. Synthèse
Algorithmes génétiques
1. Présentation du chapitre
2. Évolution biologique
2.1 Le concept d'évolution
2.2 Les causes des mutations
2.3 Le support de cette information : les facteurs
2.4 Des facteurs au code génétique
2.5 Le « cycle de la vie »
3. Évolution artificielle
3.1 Principes
3.2 Vue d'ensemble du cycle
3.2.1 Phases d'initialisation et de terminaison
3.2.2 Phase de sélection
3.2.3 Phase de reproduction avec mutations
3.2.4 Phase de survie
3.3 Convergence
4. Exemple du robinet
4.1 Présentation du problème
4.2 Initialisation de l'algorithme
4.3 Évaluation des individus
4.4 Reproduction avec mutations
4.5 Survie
4.6 Suite du processus
5. Choix des représentations
5.1 Population et individus
5.2 Gènes
5.3 Cas d'un algorithme de résolution de labyrinthe
6. Évaluation, sélection et survie
6.1 Choix de la fonction d’évaluation
6.2 Opérateurs de sélection
6.3 Opérateurs de survie
7. Reproduction : crossover et mutation
7.1 Crossover
7.2 Mutation
8. Domaines d’application
9. Implémentation d'un algorithme génétique
9.1 Implémentation générique d'un algorithme
9.1.1 Spécifications
9.1.2 Paramètres
9.1.3 Individus et gènes
9.1.4 IHM
9.1.5 Processus évolutionnaire
9.2 Utilisation pour le voyageur de commerce
9.2.1 Présentation du problème
9.2.2 Environnement
9.2.3 Gènes
9.2.4 Individus
9.2.5 Programme principal
9.2.6 Résultats
9.3 Utilisation pour la résolution d'un labyrinthe
9.3.1 Présentation du problème
9.3.2 Environnement
9.3.3 Gènes
9.3.4 Individus
9.3.5 Programme principal
9.3.6 Résultats
10. Coévolution
11. Synthèse
Métaheuristiques d'optimisation
1. Présentation du chapitre
2. Optimisation et minimums
2.1 Exemples
2.2 Le problème du sac à dos
2.3 Formulation des problèmes
2.4 Résolution mathématique
2.5 Recherche exhaustive
2.6 Métaheuristiques
3. Algorithmes gloutons
4. Descente de gradient
5. Recherche tabou
6. Recuit simulé
7. Optimisation par essaims particulaires
8. Méta-optimisation
9. Domaines d’application
10. Implémentation
10.1 Classes génériques
10.2 Implémentation des différents algorithmes
10.2.1 Algorithme glouton
10.2.2 Descente de gradient
10.2.3 Recherche tabou
10.2.4 Recuit simulé
10.2.5 Optimisation par essaims particulaires
10.3 Résolution du problème du sac à dos
10.3.1 Implémentation du problème
10.3.2 Algorithme glouton
10.3.3 Descente de gradient
10.3.4 Recherche tabou
10.3.5 Recuit simulé
10.3.6 Optimisation par essaims particulaires
10.3.7 Programme principal
10.4 Résultats obtenus
11. Synthèse
Systèmes multi-agents
1. Présentation du chapitre
2. Origine biologique
2.1 Les abeilles et la danse
2.2 Les termites et le génie civil
2.3 Les fourmis et l'optimisation de chemins
2.4 Intelligence sociale
3. Systèmes multi-agents
3.1 L'environnement
3.2 Les objets
3.3 Les agents
4. Classification des agents
4.1 Perception du monde
4.2 Prise des décisions
4.3 Coopération et communication
4.4 Capacités de l'agent
5. Principaux algorithmes
5.1 Algorithmes de meutes
5.2 Optimisation par colonie de fourmis
5.3 Systèmes immunitaires artificiels
5.4 Automates cellulaires
6. Domaines d’application
6.1 Simulation de foules
6.2 Planification
6.3 Phénomènes complexes
7. Implémentation
7.1 Banc de poissons
7.1.1 Les objets du monde et les zones à éviter
7.1.2 Les agents-poissons
7.1.3 L'océan
7.1.4 L'application graphique
7.1.5 Résultats obtenus
7.2 Tri sélectif
7.2.1 Les déchets
7.2.2 Les agents nettoyeurs
7.2.3 L'environnement
7.2.4 L'application graphique
7.2.5 Résultats obtenus
7.3 Le jeu de la vie
7.3.1 La grille
7.3.2 L'application graphique
7.3.3 Résultats obtenus
8. Synthèse
Réseaux de neurones
1. Présentation du chapitre
2. Origine biologique
3. Le neurone formel
3.1 Fonctionnement général
3.2 Fonctions d'agrégation
3.3 Fonctions d'activation
3.3.1 Fonction "heavyside"
3.3.2 Fonction sigmoïde
3.3.3 Fonction gaussienne
3.4 Poids et apprentissage
4. Perceptron
4.1 Structure
4.2 Condition de linéarité
5. Réseaux feed-forward
6. Apprentissage
6.1 Apprentissage non supervisé
6.2 Apprentissage par renforcement
6.3 Apprentissage supervisé
6.3.1 Principe général
6.3.2 Descente de gradient
6.3.3 Algorithme de Widrow-Hoff
6.3.4 Rétropropagation
6.4 Surapprentissage et généralisation
6.4.1 Reconnaître le surapprentissage
6.4.2 Création de sous-ensembles de données
7. Autres réseaux
7.1 Réseaux de neurones récurrents
7.2 Cartes de Kohonen
7.3 Réseaux de Hopfield
8. Domaines d'application
8.1 Reconnaissance de patterns
8.2 Estimation de fonctions
8.3 Création de comportements
9. Implémentation d'un MLP
9.1 Points et ensembles de points
9.2 Neurone
9.3 Réseau de neurones
9.4 IHM
9.5 Système complet
9.6 Programme principal
9.7 Applications
9.7.1 Application au XOR
9.7.2 Application à Abalone
9.7.3 Améliorations possibles
10. Synthèse du chapitre
Bibliographie
1. Bibliographie
Sitographie
1. Pourquoi une sitographie ?
2. Systèmes experts
3. Logique floue
4. Algorithmes génétiques
5. Recherche de chemins
6. Métaheuristiques
7. Systèmes multi-agents
8. Réseaux de neurones
Annexe
1. Installation de SWI-Prolog
2. Utilisation de SWI-Prolog
Index
Autant le dire tout de suite, c'est une bonne chose de s'être déjà intéressé à l'I.A. auparavant, car malgré des rappels théoriques importants, les concepts abordés sont assez compliqués à appréhender. Malgré tout, l'auteur prend quand même son temps pour y revenir, ce qui est fort appréciable. À noter un très gros avantage de ce livre par rapport à d'autres : il n'y a quasiment pas de math et de formules imbitables ce qui le rend abordable à quelqu'un qui n'a pas fait six ans de FAC …
Cependant, on reste quand même sur une introduction avancée, tant le domaine est vaste.
Le livre est agréable à lire et les exemples de code plutôt bien expliqués. Vous pouvez y aller.

[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Voir aussi :

