ARTIFICIAL INTELLIGENCE
Dr. Anand M
              Assistant Professor
Department of Data Science and Business Systems
    SRM Institute of Science and Technology
Introduction to Artificial Intelligence
• Artificial Intelligence is an approach to make a computer, a robot,
  or a product to think how smart human think.
• AI is a study of how human brain think, learn, decide and work,
  when it tries to solve problems. And finally this study outputs
  intelligent software systems.
• The aim of AI is to improve computer functions which are related
  to human knowledge, for example, reasoning, learning, and
  problem-solving.
• Artificial Intelligence has grown to be very popular in today’s world. It is the
  simulation of natural intelligence in machines that are programmed to learn
  and mimic the actions of humans. These machines are able to learn with
  experience and perform human-like tasks.
Introduction to Artificial Intelligence
• “The science and engineering of making intelligent machines,
  especially intelligent computer programs”. -John McCarthy-
• Definitions of Artificial Intelligence according to Authors “Stuart
  Russell and Peter Norvig” are vary along two main dimensions.
   • Thought processes and reasoning
   • Behavior
• A human-centered approach must be in part an empirical science,
  involving observations and hypotheses about human behavior.
• A rationalist’s approach involves a combination of mathematics and
  engineering. The various groups have both disparaged and helped
  each other. Let us look at the four approaches in more detail.
Introduction to Artificial Intelligence
Artificial Intelligence Definition
• An intelligent entity created by humans.
• Capable of performing tasks intelligently without being explicitly
  instructed.
• Capable of thinking and acting rationally and humanely.
How do we measure if Artificial Intelligence is
acting like a human?
• Even if we reach that state where an AI can behave as a human does,
  how can we be sure it can continue to behave that way? We can base
  the human-likeness of an AI entity with the:
   •   Turing Test
   •   The Cognitive Modelling Approach
   •   The Law of Thought Approach
   •   The Rational Agent Approach
Acting humanly: The Turing Test approach
• The basis of the Turing Test is that the Artificial Intelligence entity
  should be able to hold a conversation with a human agent. The
  human agent ideally should not able to conclude that they are talking
  to an Artificial Intelligence.
• The Turing Test, proposed by Alan Turing (1950), was designed to
  provide a satisfactory operational definition of intelligence.
• A computer passes the test if a human interrogator, after posing some
  written questions, cannot tell whether the written responses come
  from a person or from a computer.
• This test is used to evaluate a computer acting like humanly.
Acting humanly: The Turing Test approach
Acting humanly: The Turing Test approach
• For current scenarios the computer would need to possess the
  following capabilities:
   • natural language processing to enable it to communicate successfully in
     English
   • knowledge representation to store what it knows or hears;
   • automated reasoning to use the stored information to answer questions and
     to draw new conclusions
   • machine learning to adapt to new circumstances and to detect and the
     patterns.
Acting humanly: The Turing Test approach
• Total Turing Test includes a video signal so that the interrogator can
  test the subject’s perceptual abilities, as well as the opportunity for
  the interrogator to pass physical objects ―through the hatch.
• To pass the total Turing Test, the computer will need
   • computer vision to perceive objects, and
   • Robotics to manipulate objects and move about.
Thinking humanly: The cognitive modeling
approach
• As the name suggests, this approach tries to build an Artificial
  Intelligence model based on Human Cognition. To distil the essence of
  the human mind, there are 3 approaches:
   • Introspection: observing our thoughts, and building a model based on that
   • Psychological Experiments: conducting experiments on humans and
     observing their behavior
   • Brain Imaging: Using MRI to observe how the brain functions in different
     scenarios and replicating that through code.
Thinking rationally: The “laws of thought”
approach
• The Laws of Thought are a large list of logical statements that govern
  the operation of our mind. The same laws can be codified and applied
  to artificial intelligence algorithms.
• The issues with this approach, because solving a problem in principle
  (strictly according to the laws of thought) and solving them in practice
  can be quite different, requiring contextual nuances to apply.
• Also, there are some actions that we take without being 100% certain
  of an outcome that an algorithm might not be able to replicate if
  there are too many parameters.
Thinking rationally: The “laws of thought”
approach
Acting rationally: The rational agent approach
• A rational agent acts to achieve the best possible outcome in its
  present circumstances.
• According to the Laws of Thought approach, an entity must behave
  according to the logical statements. But there are some instances,
  where there is no logical right thing to do, with multiple outcomes
  involving different outcomes and corresponding compromises. The
  rational agent approach tries to make the best possible choice in the
  current circumstances. It means that it’s a much more dynamic and
  adaptable agent.
• Now that we understand how Artificial Intelligence can be designed
  to act like a human, let’s take a look at how these systems are built.
Major Problems Associated with Artificial
Intelligence
• AI is developing with such an incredible speed, sometimes it seems
  magical. There is an opinion among researchers and developers that
  AI could grow so immensely strong that it would be difficult for
  humans to control.
• Humans developed AI systems by introducing into them every
  possible intelligence they could, for which the humans themselves
  now seem threatened.
Job Loss Problem
• Job loss concerns related to Artificial Intelligence has been a subject of
  numerous business cases and academic studies. As per an Oxford Study,
  more than 47% of American jobs will be under threat due to automation by
  the mid-2030s.
• As per the World Economic Forum, Artificial Intelligence automation will
  replace more than 75 million jobs by 2022. Some of the figures are even
  more daunting. As per another Mckinsey report, AI-bases robots could
  replace 30% of the current global workforce.
• However, these issues related to Job loss and wages can be addressed by
  focussing on the following measures.
   • Overhauling the education system and giving more focus on skills like Critical
     Thinking, Creativity, and Innovation as these skills are hard to replicate.
   • Increasing both public and private investment in developing human capital so that
     they are better aligned with industry demand.
Safety Problem
• There has always been much furor about safety issues associated with
  Artificial Intelligence. When experts like Elon Musk, Stephen Hawking,
  Bill Gates among various others express concern related to AI safety
  we should pay heed to its safety issues.
• There have been various instances where Artificial Intelligence has
  gone wrong when Twitter Chabot started spewing abusive and Pro-
  Nazi sentiments and in other instance when Facebook AI bots started
  interacting with each other in a language no one else would
  understand, ultimately leading to the project being shut down.
Safety Problem
• There are grave concerns about Artificial Intelligence doing something
  harmful to humankind. The case in point is autonomous weapons which
  can be programmed to kill other humans.
• There are also imminent concerns with AI forming “Mind of their Own” and
  doesn’t value human life. If such weapons are deployed, it will be very
  difficult to undo its repercussions. The following are the measures that can
  be taken to mitigate these concerns.
   • We need to have strong regulations especially when it comes to creation or
     experimentation of Autonomous weapons
   • Global Co-operation on issues concerning such kind of weapons is needed so as to
     ensure no one gets involved in the rat race
   • Complete transparency in the system where such technologies have experimented is
     essential to ensure its safe usage
Trust Related Problem
• As Artificial Intelligence algorithms become more powerful by the day, it
  also brings several trust-related issues on its ability to make decisions that
  are fair and for the betterment of humankind.
• With AI slowly reaching human-level cognitive abilities the trust issue
  becomes all the more significant. There are several applications where AI
  operates as a black box.
• Example- in High-Frequency trading even the Program developers don’t
  have a good understanding of the basis on which AI executed the trade.
• Some more striking examples include Amazon AI-based algorithm for
  same-day delivery which was inadvertently biased against black
  neighbourhood.
Trust Related Problem
• Following are few of the measures that can be taken to bridge trust-
  related issues in Artificial Intelligence
   • All the major Artificial Intelligence providers need to set up guiding rules and
     principles related to trust and transparency in AI implementation. These
     principles need to be religiously followed by all the stakeholders involved in
     Artificial Intelligence development and usage
   • All the stakeholders should be aware of the bias which inherently comes with
     AI algorithm and should have a robust bias detection mechanism and ways to
     handle it
   • Awareness is another key factor that plays a major role in bridging the trust
     gap. The users should be sensitized about the AI operations, its capabilities
     and even the shortfall that is associated with Artificial Intelligence
Computation Problem
• Artificial Intelligence algorithm involves analyzing the humongous amount of data
  that require an immense amount of computational power. So far the problem
  was dealt with the help of Cloud Computing and Parallel Processing.
• However, as the amount of data increases and more complex deep learning
  algorithm comes in the mainstream, the present-day computational power will
  not be enough to cater to the complex requirement. We will need more storage
  and computational power which can handle crunching exabytes and Zettabytes of
  data.
• Quantum Computing can address the processing speed problem in the medium
  to long terms
• Quantum computing which is based on concepts of Quantum theory might be the
  answer to solving computation power challenges. Quantum computing is 100
  Million times faster than a normal computer we use at home. Although currently,
  it is in the research and experimental stage. As per an estimate by different
  experts, we can see its mainstream implementation in the next 10-15 years.
How Artificial Intelligence (AI) Works?
• Building an AI system is a careful process of reverse-engineering
  human traits and capabilities in a machine, and using its
  computational prowess to surpass what we are capable of.
• To understand How Artificial Intelligence actually works, one needs to
  deep dive into the various sub-domains of Artificial Intelligence and
  understand how those domains could be applied to the various fields
  of the industry.
• You can also take up an artificial intelligence techniques that will help
  you gain a comprehensive understanding.
Artificial intelligence techniques
• Machine Learning : ML teaches a machine how to make inferences and
  decisions based on past experience. It identifies patterns, analyses past
  data to infer the meaning of these data points to reach a possible
  conclusion without having to involve human experience. This automation
  to reach conclusions by evaluating data, saves a human time for businesses
  and helps them make a better decision.
• Deep Learning : Deep Learning is an ML technique. It teaches a machine to
  process inputs through layers in order to classify, infer and predict the
  outcome.
• Neural Networks : Neural Networks work on the similar principles as of
  Human Neural cells. They are a series of algorithms that captures the
  relationship between various underlying variables and processes the data
  as a human brain does.
Artificial intelligence techniques
• Natural Language Processing: NLP is a science of reading, understanding,
  interpreting a language by a machine. Once a machine understands what
  the user intends to communicate, it responds accordingly.
• Computer Vision : Computer vision algorithms tries to understand an
  image by breaking down an image and studying different parts of the
  objects. This helps the machine classify and learn from a set of images, to
  make a better output decision based on previous observations.
• Cognitive Computing : Cognitive computing algorithms try to mimic a
  human brain by analyzing text/speech/images/objects in a manner that a
  human does and tries to give the desired output.
Tic-Tac-Toe Problem
• Tic-tac-toe is a very popular game for two players, X and O, who take
  turns marking the spaces in a 3×3 grid. The player who succeeds in
  placing three of their marks in a vertical, horizontal or diagonal row
  wins the game.
• In order to solve Tic Tac Toe, we need to go deeper than just to think
  about it as a game where two players place X’s and O’s on the board.
  Formally speaking, Tic Tac Toe is a zero-sum and perfect information
  game. It means that each participant’s gain is equal to the other
  participants’ losses and we know everything about the current game
  state.
Mathematical Properties
• From a mathematical point of view the game has two very important
  properties:
• Property 1: The game admits the player that uses this optimal strategy will
  win or draw but it will not lose.
• Property 2: The number of possible different matches is relatively small.
   • At the start, the first player can mark any of the 9 spaces. In the following turn the
     second player can mark one of the remaining 8 spaces and so on. The game
     continues until all the spaces are marked or one of the players win.
   • It is then easy to understand that the total number of different matches is lower
     than:
   • 987....1 = 9! = 362880
• That is a reasonably small number for a computer.
The Algorithm
• From properties 1 and 2 it follows that a practical, and general,
  algorithm to win/draw the game is to use the Alpha Beta search.
• At each turn the algorithm evaluates all the possible consequences of
  each move (possible due to property 2) and chooses the one that will
  ensure a victory or a draw (possible due to property 1).
The Algorithm
• An AI player that chooses each move with the alpha beta search
  algorithm will never lose.
• To make the game more realistic it is nice to introduce a stochastic
  factor so that each time with a predefined probability the AI player
  moves randomly rather than following the alpha beta algorithm.
• This will make the game more realistic as it will make the AI player
  more human and sometimes it will lose.
Defining the Problem as a State Space Search
The state space search representation forms the basis of most of the AI method. Its
  structure corresponds to the structure problem solving in two important ways:
• If allows for a formal definition of a problem as the need to convert some given
  situation into some desired situation using a set of permissible operation.
• It permits us to define the process of solving a particular problem as a combination
  of known techniques and search. The general technique of exploring the space to
  try to find some path from the current state to a good state.
Defining the Problem as a State Space Search
• Search is very important process in the solution of hard problem for which no
  more direct technique are available.
• In order to provide a formal description of a problem it is necessary to do the
  following things:
1. Define a state space that contains all the possible configurations of the relevant objects.
2.   Specify one or more states within that space that describe possible situation from which the
     problem solving process may start. These states are called the initial states.
3.   Specify one or more states that would be acceptable as solution to the problem. These states are
     called goal states.
4.   Specify a set of rules that describe the actions (operators) available.
Production System
• A production system is based on a set of rules about behavior. These
  rules are a basic representation found helpful in expert systems,
  automated planning, and action selection. It also provides some form
  of artificial intelligence.
• Production system or production rule system is a computer program
  typically used to provide some form of artificial intelligence, which
  consists primarily of a set of rules about behavior but it also includes
  the mechanism necessary to follow those rules as the system
  responds to states of the world.
Components of Production System
• Global Database: The global database is the central data structure
  used by the production system in Artificial Intelligence.
• Set of Production Rules: The production rules operate on the global
  database. Each rule usually has a precondition that is either satisfied
  or not by the global database. If the precondition is satisfied, the rule
  is usually be applied. The application of the rule changes the
  database.
• A Control System: The control system then chooses which applicable
  rule should be applied and ceases computation when a termination
  condition on the database is satisfied. If multiple rules are to fire at
  the same time, the control system resolves the conflicts.
Features of Production System in Artificial
Intelligence
• Simplicity: The structure of each sentence in a production system is unique and
  uniform as they use the “IF-THEN” structure. This structure provides simplicity in
  knowledge representation. This feature of the production system improves the
  readability of production rules.
• Modularity: This means the production rule code the knowledge available in
  discrete pieces. Information can be treated as a collection of independent facts
  which may be added or deleted from the system with essentially no deleterious
  side effects.
• Modifiability: This means the facility for modifying rules. It allows the
  development of production rules in a skeletal form first and then it is accurate to
  suit a specific application.
• Knowledge-intensive: The knowledge base of the production system stores pure
  knowledge. This part does not contain any type of control or programming
  information. Each production rule is normally written as an English sentence; the
  problem of semantics is solved by the very structure of the representation.
Control/Search Strategies
• How would you decide which rule to apply while searching for a
  solution for any problem? There are certain requirements for a good
  control strategy that you need to keep in mind, such as:
   • The first requirement for a good control strategy is that it should cause
     motion.
   • The second requirement for a good control strategy is that it should be
     systematic.
   • Finally, it must be efficient in order to find a good answer.
Production System Rules
• Production System rules can be classified as:
   • Deductive Inference Rules
   • Abductive Inference Rules
• You can represent the knowledge in a production system as a set of
  rules along with a control system and database. It can be written as:
   • If(Condition) Then (Condition)
   • The production rules are also known as condition-action, antecedent-
     consequent, pattern-action, situation-response, feedback-result pairs.
Classes of Production System
• Monotonic Production System: It’s a production system in which the application of a rule never
  prevents the later application of another rule, that could have also been applied at the time the
  first rule was selected.
• Partially Commutative Production System: It’s a type of production system in which the
  application of a sequence of rules transforms state X into state Y, then any permutation of those
  rules that is allowable also transforms state x into state Y. Theorem proving falls under the
  monotonic partially communicative system.
• Non-Monotonic Production Systems: These are useful for solving ignorable problems. These
  systems are important from an implementation standpoint because they can be implemented
  without the ability to backtrack to previous states when it is discovered that an incorrect path was
  followed. This production system increases efficiency since it is not necessary to keep track of the
  changes made in the search process.
• Commutative Systems: These are usually useful for problems in which changes occur but can be
  reversed and in which the order of operation is not critical. Production systems that are not
  usually not partially commutative are useful for many problems in which irreversible changes
  occur, such as chemical analysis. When dealing with such systems, the order in which operations
  are performed is very important and hence correct decisions must be made at the first attempt
  itself.
PROBLEM CHARACTERISTICS
• Heuristics cannot be generalized, as they are domain specific. Production
  systems provide ideal techniques for representing such heuristics in the
  form of IF-THEN rules.
• Most problems requiring simulation of intelligence use heuristic search
  extensively. Some heuristics are used to define the control structure that
  guides the search process, as seen in the example described above.
• But heuristics can also been coded in the rules to represent the domain
  knowledge. Since most AI problems make use of knowledge and guided
  search through the knowledge, AI can be described as the study of
  techniques for solving exponentially hard problems in polynomial time by
  exploiting knowledge about problem domain.
PROBLEM CHARACTERISTICS
• To use the heuristic search for problem solving, we suggest analysis of
  the problem for the following considerations:
   • Decomposability of the problem into a set of independent smaller sub
     problems
   • Possibility of undoing solution steps, if they are found to be unwise
   • Predictability of the problem universe
   • Possibility of obtaining an obvious solution to a problem without comparison
     of all other possible solutions
   • Type of the solution: whether it is a state or a path to the goal state
   • Role of knowledge in problem solving
   • Nature of solution process: with or without interacting with the user
PROBLEM CHARACTERISTICS
• The general classes of engineering problems such as
  planning, classification, diagnosis, monitoring and design are
  generally knowledge intensive and use a large amount of
  heuristics. Depending on the type of problem, the knowledge
  representation schemes and control strategies for search are to be
  adopted
PROBLEM CHARACTERISTICS
PROBLEM CHARACTERISTICS
• Suppose we are trying to prove a mathematical theorem: first we proceed
  considering that proving a lemma will be useful. Later we realize that it is not at
  all useful. We start with another one to prove the theorem. Here we simply
  ignore the first method.
• Consider the 8-puzzle problem to solve: we make a wrong move and
  realize that mistake. But here, the control strategy must keep track of all the
  moves, so that we can backtrack to the initial state and start with some new
  move.
• Consider the problem of playing chess. Here, once we make a move we never
  recover from that step. These problems are illustrated in the three important
  classes of problems mentioned below:
   • Ignorable, in which solution steps can be ignored.Eg: Theorem Proving
   • Recoverable, in which solution steps can be undone.Eg: 8-Puzzle
   • Irrecoverable, in which solution steps cannot be undone.Eg: Chess
Issues in the Design of Search Programs
• Each search process can be considered to be a tree traversal. The
  object of the search is to find a path from the initial state to a goal
  state using a tree.
• The number of nodes generated might be huge; and in practice many
  of the nodes would not be needed.
• The secret of a good search routine is to generate only those nodes
  that are likely to be useful, rather than having a precise tree.
• The rules are used to represent the tree implicitly and only to create
  nodes explicitly if they are actually to be of use.
Issues in the Design of Search Programs
• The following issues arise when searching:
   • The tree can be searched forward from the initial node to the goal state or
     backwards from the goal state to the initial state.
   • To select applicable rules, it is critical to have an efficient procedure for
     matching rules against states.
   • How to represent each node of the search process? This is the knowledge
     representation problem or the frame problem. In games, an array suffices; in
     other problems, more complex data structures are needed.
• Finally in terms of data structures, considering the water jug as a
  typical problem do we use a graph or tree? The breadth-first structure
  does take note of all nodes generated but the depth-first one can be
  modified.
Issues in the Design of Search Programs
Issues in the Design of Search Programs
Issues in the Design of Search Programs
Issues in the Design of Search Programs
Problem Reduction Methods
• When a problem can be divided into a set of sub problems, where
  each sub problem can be solved separately and a combination of
  these will be a solution, AND-OR graphs or AND - OR trees are used
  for representing the solution.
• The decomposition of the problem or problem reduction generates
  AND arcs. One AND are may point to any number of successor nodes.
  All these must be solved so that the arc will rise to many arcs,
  indicating several possible solutions. Hence the graph is known as
  AND - OR instead of AND.
Problem Reduction algorithm:
         An AI system is composed of an agent and its
         environment. The agents act in their
Agents   environment. The environment may contain
         other agents.
Agent
               • An agent is anything that can perceive its
                 environment through sensors and acts upon
                 that environment through effectors.
               • A human agent has sensory organs such as
                 eyes, ears, nose, tongue and skin parallel to
What are         the sensors, and other organs such as hands,
Agent and        legs, mouth, for effectors.
               • A robotic agent replaces cameras and
Environment?     infrared range finders for the sensors, and
                 various motors and actuators for effectors.
               • A software agent has encoded bit strings as
                 its programs and actions.
              • Performance Measure of Agent − It is the
                criteria, which determines how successful an
                agent is.
              • Behavior of Agent − It is the ac on that
                agent performs after any given sequence of
                percepts.
Agent         • Percept − It is agent’s perceptual inputs at a
Terminology     given instance.
              • Percept Sequence − It is the history of all
                that an agent has perceived till date.
              • Agent Function − It is a map from the
                precept sequence to an action.
              • Rationality is nothing but status of being
                reasonable, sensible, and having good sense
                of judgment.
Rationality   • Rationality is concerned with expected
                actions and results depending upon what
                the agent has perceived. Performing actions
                with the aim of obtaining useful information
                is an important part of rationality.
                • An ideal rational agent is the one,
                  which is capable of doing expected
                  actions to maximize its
What is Ideal     performance measure, on the
Rational          basis of −
Agent?          • Its percept sequence
                • Its built-in knowledge the agent
                  has.
                 • The performance measures, which
                   determine the degree of success.
Rationality of   • Agent’s Percept Sequence till now.
an agent         • The agent’s prior knowledge about
                   the environment.
depends on       • The actions that the agent can
the following      carry out.
               • Agent’s structure can be viewed as −
The            • Agent = Architecture + Agent Program
Structure of   • Architecture = the machinery that an agent
                 executes on.
Intelligent    • Agent Program = an implementation of an
Agents           agent function.
                • They choose actions only based on the
                  current percept.
Simple Reflex   • They are rational only if a correct decision is
                  made only on the basis of current precept.
Agents
                • Their environment is completely observable.
Condition-Action
Rule − It is a rule
that maps a state
(condition) to an
action
                • They use a model of the world to choose
                  their actions. They maintain an internal
                  state.
                • Model − knowledge about “how the things
Model Based       happen in the world”.
                • Internal State − It is a representa on of
Reflex Agents     unobserved aspects of current state
                  depending on percept history.
                • Updating the state requires the
                  informa on about −
                • How the world evolves.
                • How the agent’s actions affect the world.
Model
Based
Reflex
Agents
             • They choose their actions in order to achieve
               goals. Goal-based approach is more flexible
               than reflex agent since the knowledge
Goal Based     supporting a decision is explicitly modeled,
               thereby allowing for modifications.
Agents       • Goal − It is the descrip on of desirable
               situations.
Goal Based Agents
                • They choose actions based on a preference
                  (utility) for each state.
                • Goals are inadequate when −
Utility Based   • There are conflicting goals, out of which only
                  few can be achieved.
Agents          • Goals have some uncertainty of being
                  achieved and you need to weigh likelihood
                  of success against the importance of a goal.
Utility Based Agents
                • Discrete / Continuous − If there are a limited
                  number of distinct, clearly defined, states of the
                  environment, the environment is discrete (For
                  example, chess); otherwise it is continuous (For
                  example, driving).
Properties of   • Observable / Partially Observable − If it is possible
                  to determine the complete state of the environment
Environment       at each time point from the percepts it is
                  observable; otherwise it is only partially observable.
                • Static / Dynamic − If the environment does not
                  change while an agent is acting, then it is static;
                  otherwise it is dynamic.
                • Single agent / Multiple agents − The environment may contain
                  other agents which may be of the same or different kind as
                  that of the agent.
                • Accessible / Inaccessible − If the agent’s sensory apparatus
                  can have access to the complete state of the environment,
                  then the environment is accessible to that agent.
Properties of   • Deterministic / Non-deterministic − If the next state of the
                  environment is completely determined by the current state
Environment       and the actions of the agent, then the environment is
                  deterministic; otherwise it is non-deterministic.
                • Episodic / Non-episodic − In an episodic environment, each
                  episode consists of the agent perceiving and then acting. The
                  quality of its action depends just on the episode itself.
                  Subsequent episodes do not depend on the actions in the
                  previous episodes. Episodic environments are much simpler
                  because the agent does not need to think ahead.
               • The games such as 3X3 eight-tile, 4X4
                 fifteen-tile, and 5X5 twenty four tile puzzles
                 are single-agent-path-finding challenges.
                 They consist of a matrix of tiles with a blank
                 tile. The player is required to arrange the
Single Agent     tiles by sliding a tile either vertically or
Pathfinding      horizontally into a blank space with the aim
                 of accomplishing some objective.
Problems       • The other examples of single agent
                 pathfinding problems are Travelling
                 Salesman Problem, Rubik’s Cube, and
                 Theorem Proving.