Practical Artificial Intelligence Machine Learning, Bots, and Agent Solutions Using C# — Arnaldo Pérez Castaño Practical Artificial Intelligence Machine Learning, Bots, and Agent Solutions Using C# Arnaldo Pérez Castaño Practical Artificial Intelligence Arnaldo Pérez Castaño Havana, Cuba ISBN-13 (pbk): 978-1-4842-3356-6 ISBN-13 (electronic): 978-1-4842-3357-3 https://doi.org/10.1007/978-1-4842-3357-3 Library of Congress Control Number: 2018943123 Copyright © 2018 by Arnaldo Pérez Castaño This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Managing Director, Apress Media LLC: Welmoed Spahr Acquisitions Editor: Natalie Pao Development Editor: James Markham Coordinating Editor: Jessica Vakili Cover designed by eStudioCalamar Cover image designed by Freepik (www.freepik.com) Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, email [email protected], or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please email [email protected], or visit http://www.apress.com/ rights-permissions. Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales web page at http://www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the book’s product page, located at www.apress.com/9781484233566. For more detailed information, please visit http://www.apress.com/source-code. Printed on acid-free paper To ML, thanks for the theater and the lovely moments To my mother, my father, my brother, my grandma, and my entire family, thanks for your immense support Table of Contents About the Author �������������������������������������������������������������������������������xiii About the Technical Reviewer ������������������������������������������������������������xv Acknowledgments ����������������������������������������������������������������������������xvii Introduction ���������������������������������������������������������������������������������������xix Chapter 1: Logic & AI ����������������������������������������������������������������������������1 What Is Logic? �������������������������������������������������������������������������������������������������������2 Propositional Logic ������������������������������������������������������������������������������������������������3 Logical Connectives ����������������������������������������������������������������������������������������������6 Negation ����������������������������������������������������������������������������������������������������������7 Conjunction ������������������������������������������������������������������������������������������������������8 Disjunction �������������������������������������������������������������������������������������������������������9 Implication �����������������������������������������������������������������������������������������������������10 Equivalence ���������������������������������������������������������������������������������������������������11 Laws of Propositional Logic ��������������������������������������������������������������������������������12 Normal Forms �����������������������������������������������������������������������������������������������������16 Logic Circuits ������������������������������������������������������������������������������������������������������17 Practical Problem: Using Inheritance and C# Operators to Evaluate Logic Formulas ���������������������������������������������������������������������������������������������������21 Practical Problem: Representing Logic Formulas as Binary Decision Trees �����������������������������������������������������������������������������������������������������26 Practical Problem: Transforming a Formula into Negation Normal Form (NNF) ���������������������������������������������������������������������������������������������31 v TTaabbllee ooff CCoonnTTeennTTss Practical Problem: Transforming a Formula into Conjunctive Normal Form (CNF) ���������������������������������������������������������������������������������������������36 Summary�������������������������������������������������������������������������������������������������������������40 Chapter 2: Automated Theorem Proving & First-Order Logic �������������41 Automated Theorem Proving �������������������������������������������������������������������������������42 Practical Problem: Clauses and CNFs Classes in C# �������������������������������������������45 DPLL Algorithm ���������������������������������������������������������������������������������������������������55 Practical Problem: Modeling the Pigeonhole Principle in Propositional Logic ����������������������������������������������������������������������������������������������67 Practical Problem: Finding Whether a Propositional Logic Formula is SAT �������������68 First-Order Logic �������������������������������������������������������������������������������������������������75 Predicates in C# ��������������������������������������������������������������������������������������������80 Practical Problem: Cleaning Robot ����������������������������������������������������������������������82 Summary�������������������������������������������������������������������������������������������������������������89 Chapter 3: Agents �������������������������������������������������������������������������������91 What’s an Agent? ������������������������������������������������������������������������������������������������92 Agent Properties �������������������������������������������������������������������������������������������������95 Types of Environments ����������������������������������������������������������������������������������������99 Agents with State ����������������������������������������������������������������������������������������������102 Practical Problem: Modeling the Cleaning Robot as an Agent and Adding State to It ����������������������������������������������������������������������������������������103 Agent Architectures �������������������������������������������������������������������������������������������113 Reactive Architectures: Subsumption Architecture �������������������������������������114 Deliberative Architectures: BDI Architecture ������������������������������������������������119 Hybrid Architectures ������������������������������������������������������������������������������������127 Touring Machines ����������������������������������������������������������������������������������������131 InteRRaP ������������������������������������������������������������������������������������������������������133 Summary�����������������������������������������������������������������������������������������������������������135 vi TTaabbllee ooff CCoonnTTeennTTss Chapter 4: Mars Rover ����������������������������������������������������������������������137 What’s a Mars Rover? ���������������������������������������������������������������������������������������138 Mars Rover Architecture �����������������������������������������������������������������������������������140 Mars Rover Code �����������������������������������������������������������������������������������������������143 Mars Rover Visual Application ���������������������������������������������������������������������������176 Summary�����������������������������������������������������������������������������������������������������������192 Chapter 5: Multi-Agent Systems �������������������������������������������������������193 What’s a Multi-Agent System? ��������������������������������������������������������������������������194 Multi-Agent Organization ����������������������������������������������������������������������������������197 Communication �������������������������������������������������������������������������������������������������199 Speech Act Theory ���������������������������������������������������������������������������������������201 Agent Communication Languages (ACL) �����������������������������������������������������204 Coordination & Cooperation ������������������������������������������������������������������������������211 Negotiation Using Contract Net �������������������������������������������������������������������215 Social Norms & Societies ����������������������������������������������������������������������������218 Summary�����������������������������������������������������������������������������������������������������������220 Chapter 6: Communication in a Multi-Agent System Using WCF ������221 Services ������������������������������������������������������������������������������������������������������������222 Contracts �����������������������������������������������������������������������������������������������������������224 Bindings ������������������������������������������������������������������������������������������������������������227 Endpoints ����������������������������������������������������������������������������������������������������������229 Publisher/Subscriber Pattern ����������������������������������������������������������������������������230 Practical Problem: Communicating Among Multiple Agents Using WCF �����������231 Summary�����������������������������������������������������������������������������������������������������������248 vii TTaabbllee ooff CCoonnTTeennTTss Chapter 7: Cleaning Agents: A Multi-Agent System Problem �����������249 Program Structure ��������������������������������������������������������������������������������������������250 Cleaning Task ����������������������������������������������������������������������������������������������������251 Cleaning Agent Platform �����������������������������������������������������������������������������������254 Contract Net ������������������������������������������������������������������������������������������������������256 FIPA-ACL �����������������������������������������������������������������������������������������������������������262 MAS Cleaning Agent ������������������������������������������������������������������������������������������267 GUI ���������������������������������������������������������������������������������������������������������������������280 Running the Application ������������������������������������������������������������������������������������283 Summary�����������������������������������������������������������������������������������������������������������288 Chapter 8: Simulation �����������������������������������������������������������������������289 What Is Simulation? ������������������������������������������������������������������������������������������290 Discrete-Event Simulation ��������������������������������������������������������������������������������292 Probabilistic Distributions ���������������������������������������������������������������������������������294 Practical Problem: Airport Simulation ���������������������������������������������������������������297 Summary�����������������������������������������������������������������������������������������������������������313 Chapter 9: Support Vector Machines ������������������������������������������������315 What Is a Support Vector Machine (SVM)? ��������������������������������������������������������318 Practical Problem: Linear SVM in C# �����������������������������������������������������������������328 Imperfect Separation ����������������������������������������������������������������������������������������343 Non-linearly Separable Case: Kernel Trick ��������������������������������������������������������345 Sequential Minimal Optimization Algorithm (SMO) �������������������������������������������348 Practical Problem: SMO Implementation ����������������������������������������������������������356 Summary�����������������������������������������������������������������������������������������������������������365 viii TTaabbllee ooff CCoonnTTeennTTss Chapter 10: Decision Trees ���������������������������������������������������������������367 What Is a Decision Tree? �����������������������������������������������������������������������������������368 Generating a Decision Tree: ID3 Algorithm ��������������������������������������������������������372 Entropy and Information Gain ����������������������������������������������������������������������375 Practical Problem: Implementing the ID3 Algorithm ������������������������������������377 C4�5 Algorithm ���������������������������������������������������������������������������������������������393 Practical Problem: Implementing the C4�5 Algorithm ����������������������������������399 Summary�����������������������������������������������������������������������������������������������������������410 Chapter 11: Neural Networks �����������������������������������������������������������411 What Is a Neural Network? �������������������������������������������������������������������������������412 Perceptron: Singular NN ������������������������������������������������������������������������������������415 Practical Problem: Implementing the Perceptron NN ����������������������������������420 Adaline & Gradient Descent Search �������������������������������������������������������������427 Stochastic Approximation ����������������������������������������������������������������������������431 Practical Problem: Implementing Adaline NN ����������������������������������������������432 Multi-layer Networks �����������������������������������������������������������������������������������435 Backpropagation Algorithm �������������������������������������������������������������������������440 Practical Problem: Implementing Backpropagation & Solving the XOR Problem �����������������������������������������������������������������������������446 Summary�����������������������������������������������������������������������������������������������������������459 Chapter 12: Handwritten Digit Recognition ��������������������������������������461 What Is Handwritten Digit Recognition? �����������������������������������������������������������462 Training Data Set �����������������������������������������������������������������������������������������������464 Multi-layer NN for HDR ��������������������������������������������������������������������������������������464 ix TTaabbllee ooff CCoonnTTeennTTss Implementation �������������������������������������������������������������������������������������������������467 Testing���������������������������������������������������������������������������������������������������������������476 Summary�����������������������������������������������������������������������������������������������������������478 Chapter 13: Clustering & Multi- objective Clustering ������������������������479 What Is Clustering? �������������������������������������������������������������������������������������������480 Hierarchical Clustering ��������������������������������������������������������������������������������������484 Partitional Clustering ����������������������������������������������������������������������������������������486 Practical Problem: K-Means Algorithm �������������������������������������������������������������490 Multi-objective Clustering ���������������������������������������������������������������������������������499 Pareto Frontier Builder ��������������������������������������������������������������������������������������501 Summary�����������������������������������������������������������������������������������������������������������507 Chapter 14: Heuristics & Metaheuristics ������������������������������������������509 What Is a Heuristic? ������������������������������������������������������������������������������������������510 Hill Climbing ������������������������������������������������������������������������������������������������������512 Practical Problem: Implementing Hill Climbing �������������������������������������������������515 P-Metaheuristics: Genetic Algorithms ���������������������������������������������������������������522 Practical Problem: Implementing a Genetic Algorithm for the Traveling Salesman Problem �����������������������������������������������������������������526 S-Metaheuristics: Tabu Search �������������������������������������������������������������������������538 Summary�����������������������������������������������������������������������������������������������������������548 Chapter 15: Game Programming ������������������������������������������������������549 What Is a Video Game? �������������������������������������������������������������������������������������551 Searching in Games ������������������������������������������������������������������������������������������553 Uninformed Search �������������������������������������������������������������������������������������������556 Practical Problem: Implementing BFS, DFS, DLS, and IDS ��������������������������������560 x
Description: