#### Overview of this book

Artificial Intelligence with Python, Second Edition is an updated and expanded version of the bestselling guide to artificial intelligence using the latest version of Python 3.x. Not only does it provide you an introduction to artificial intelligence, this new edition goes further by giving you the tools you need to explore the amazing world of intelligent apps and create your own applications. This edition also includes seven new chapters on more advanced concepts of Artificial Intelligence, including fundamental use cases of AI; machine learning data pipelines; feature selection and feature engineering; AI on the cloud; the basics of chatbots; RNNs and DL models; and AI and Big Data. Finally, this new edition explores various real-world scenarios and teaches you how to apply relevant AI algorithms to a wide swath of problems, starting with the most basic AI concepts and progressively building from there to solve more difficult challenges so that by the end, you will have gained a solid understanding of, and when best to use, these many artificial intelligence techniques.
Preface
Introduction to Artificial Intelligence
Free Chapter
Fundamental Use Cases for Artificial Intelligence
Machine Learning Pipelines
Feature Selection and Feature Engineering
Classification and Regression Using Supervised Learning
Predictive Analytics with Ensemble Learning
Detecting Patterns with Unsupervised Learning
Building Recommender Systems
Logic Programming
Heuristic Search Techniques
Genetic Algorithms and Genetic Programming
Artificial Intelligence on the Cloud
Building Games with Artificial Intelligence
Building a Speech Recognizer
Chatbots
Sequential Data and Time Series Analysis
Deep Learning with Convolutional Neural Networks
Recurrent Neural Networks and Other Deep Learning Models
Creating Intelligent Agents with Reinforcement Learning
Artificial Intelligence and Big Data
Other Books You May Enjoy
Index

# Matching mathematical expressions

We encounter mathematical operations all the time. Logic programming is an efficient way of comparing expressions and finding out unknown values. Let's see how to do that.

Create a new Python file and import the following packages:

``````from logpy import run, var, fact
import logpy.assoccomm as la
``````

Define a couple of mathematical operations:

``````# Define mathematical operations
mul = 'multiplication'
``````

Both addition and multiplication are commutative operations (meaning the operands can be flipped without changing the result). Let's specify that:

``````# Declare that these operations are commutative
# using the facts system
fact(la.commutative, mul)
``````# Define some variables