Applications of AI
AI has been dominant in various fields such as
Gaming: AI plays crucial role in
strategic games such as chess, poker, tic-tac-toe, etc., where machine can
think of large number of possible positions based on heuristic
knowledge.
Natural Language Processing: It is
possible to interact with the computer that understands natural language
spoken by humans.
Expert Systems: There are some
applications which integrate machine, software, and special information to
impart reasoning and advising. They provide explanation and advice to the
users.
Vision Systems: These systems
understand, interpret, and comprehend visual input on the computer. For
example,
A spying aero plane takes
photographs, which are used to figure out spatial information or map of
the areas.
Doctors use clinical expert
system to diagnose the patient.
Police use computer software that can recognize the face of criminal with
the stored portrait made by forensic artist.
Speech Recognition: Some
intelligent systems are capable of hearing and comprehending the language
in terms of sentences and their meanings while a human talks to it. It can
handle different accents, slang words, noise in the background, change in
human’s noise due to cold, etc.
Handwriting Recognition: The
handwriting recognition software reads the text written on paper by a pen
or on screen by a stylus. It can recognize the shapes of the letters and
convert it into editable text.
Intelligent Robots: Robots are able
to perform the tasks given by a human. They have sensors to detect
physical data from the real world such as light, heat, temperature,
movement, sound, bump, and pressure. They have efficient processors,
multiple sensors and huge memory, to exhibit intelligence.
In addition, they are capable of learning from their mistakes and
they can adapt to the new environment.
HISTORY OF AI
1950: Claude Shannon, “the father of information theory,” published
“Programming a Computer for Playing Chess,” which was the first article to
discuss the development of a chess-playing computer program.
1950: Alan Turing published “Computing Machinery and Intelligence,” which
proposed the idea of The Imitation Game – a question that considered if
machines can think. This proposal later became The Turing Test, which measured machine (artificial) intelligence. Turing’s development
tested a machine’s ability to think as a human would. The Turing Test
became an important component in the philosophy of artificial
intelligence, which discusses intelligence, consciousness, and ability in
machines.
1952: Arthur Samuel, a computer scientist, developed a checkers-playing
computer program – the first to independently learn how to play a
game.
1955: John McCarthy and a team of men created a proposal for a workshop on
“artificial intelligence.” In 1956 when the workshop took place, the
official birth of the word was attributed to McCarthy.
1955: Allen Newell (researcher), Herbert Simon (economist), and Cliff
Shaw (programmer) co-authored Logic Theorist, the first artificial
intelligence computer program.
1958: McCarthy developed Lisp, the most popular and still favored
programming language for artificial intelligence research.
1959: Samuel coined the term “machine learning” when speaking about
programming a computer to play a game of chess better than the human who
wrote its program.
AI in the 1960s
Innovation in the field of artificial intelligence grew rapidly through
the 1960s. The creation of new programming languages, robots and
automatons, research studies, and films that depicted artificially
intelligent beings increased in popularity. This heavily highlighted the
importance of AI in the second half of the 20th century.
1961: Unimate an industrial robot invented by George Devol in the
1950s, became the first to work on a General Motors assembly line in New
Jersey. Its responsibilities included transporting die castings from the
assembly line and welding the parts on to cars – a task deemed dangerous
for humans.
1961: James Slagle, computer scientist and professor, developed SAINT
(Symbolic Automatic INTegrator), a heuristic problem-solving program whose
focus was symbolic integration in freshman calculus.
1964: Daniel Bobrow, computer scientist, created STUDENT, an early AI
program written in Lisp that solved algebra word problems. STUDENT is
cited as an early milestone of AI natural language processing.
1965: Joseph Weizenbaum, computer scientist and professor, developed ELIZA an
internet program that could functionally converse in English
with a person. Weizenbaum’s goal was to demonstrate how communication
between an artificially intelligent mind versus a human mind was
“superficial,” but discovered many people attributed anthropomorphic
characteristics to ELIZA.
1966: Shakey the Robot, developed by Charles Rosen with the help of 11
others, was the first general-purpose mobile robot, also known as the
“first electronic person.”
1968: The sci-fi film 2001: A Space Odyssey, directed by Stanley
Kubrick, is released. It features HAL (Heuristically programmed
ALgorithmic computer), a sentient computer. HAL controls the spacecraft’s
systems and interacts with the ship’s crew, conversing with them as if HAL
were human until a malfunction changes HAL’s interactions in a negative
manner.
1968: Terry Winograd, professor of computer science, created SHRDLU, an
early natural language computer program.
AI in the 1970s:
Like the 1960s, the 1970s gave way to accelerated advancements,
particularly focusing on robots and automatons. However, artificial
intelligence in the 1970s faced challenges, such as reduced government
support for AI research.
1970: WABOT-1, the first anthropomorphic robot, was built in Japan at
Waseda University. Its features included moveable limbs, ability to see,
and ability to converse.
1973: James Lighthill, applied mathematician, reported the state of
artificial intelligence research to the British Science Council, stating:
“in no part of the field have discoveries made so far produced the major
impact that was then promised,” which led to significantly reduced support
in AI research via the British government.
1977: Director George Lucas’ film Star Wars is released.
The film features C-3PO, a humanoid robot who is designed as a protocol
droid and is “fluent in more than seven million forms of communication.”
As a companion to C-3PO, the film also features R2-D2 – a small, astromech
droid who is incapable of human speech (the inverse of C-3PO); instead,
R2-D2 communicates with electronic beeps. Its functions include small
repairs and co-piloting starfighters.
1979: The Stanford Cart, a remote controlled, tv-equipped mobile robot
was created by then- mechanical engineering grad student James L. Adams in
1961. In 1979, a “slider,” or mechanical swivel that moved the TV camera
from side-to-side, was added by Hans Moravec, then-PhD student. The cart
successfully crossed a chair-filled room without human interference in
approximately five hours, making it one of the earliest examples of an
autonomous vehicle.
AI in the 1980s
The rapid growth of artificial intelligence continued through the 1980s.
Despite advancements and excitement behind AI, caution surrounded an
inevitable “AI Winter,” a period of reduced funding and interest in
artificial intelligence.
1980: WABOT-2 was built at Waseda University. This inception of the WABOT
allowed the humanoid to communicate with people as well as read musical
scores and play music on an electronic organ.
1981: The Japanese Ministry of International Trade and Industry allocated
$850 million to the Fifth Generation Computer project, whose goal was to
develop computers that could converse, translate languages, interpret
pictures, and express humanlike reasoning.
1984: The film Electric Dreams, directed by Steve
Barron, is released. The plot revolves around a love triangle between a
man, woman, and a sentient personal computer called “Edgar.”
984: At the Association for the Advancement of Artificial Intelligence
(AAAI), Roger Schank (AI theorist) and Marvin Minsky (cognitive scientist)
warn of the AI winter, the first instance where interest and funding for
artificial intelligence research would decrease. Their warning came true
within three years’ time.
1986: Mercedes-Benz built and released a driverless van equipped with
cameras and sensors under the direction of Ernst Dickmanns. It was able to
drive up to 55 mph on a road with no other obstacles nor human
drivers.
1988: Computer scientist and philosopher Judea Pearl published “Probabilistic
Reasoning in Intelligent Systems.” Pearl is also credited with inventing
Bayesian networks, a “probabilistic graphical model” that represents sets
of variables and their dependencies via directed acyclic graph (DAG).
AI in the 1990s
The end of the millennium was on the horizon, but this anticipation only
helped artificial intelligence in its continued stages of growth.
1995: Computer scientist Richard Wallace developed the chatbot A.L.I.C.E
(Artificial Linguistic Internet Computer Entity), inspired by Weizenbaum's
ELIZA. What differentiated A.L.I.C.E. from ELIZA was the addition of
natural language sample data collection.
1997: Computer scientists Sepp Hochreiter and Jürgen Schmidhuber
developed Long Short-Term Memory (LSTM), a type of a recurrent neural
network (RNN) architecture used for handwriting and speech
recognition.
1997: Deep Blue, a chess-playing computer developed by IBM
became the first system to win a chess game and match against a reigning
world champion.
1998: Dave Hampton and Caleb Chung invented Furby, the first “pet” toy
robot for children.
1999: In line with Furby, Sony introduced AIBO (Artificial Intelligence
RoBOt), a $2,000 robotic pet dog crafted to “learn” by interacting with
its environment, owners, and other AIBOs. Its features included the
ability to understand and respond to 100+ voice commands and communicate
with its human owner.
AI from 2000-2010
The new millennium was underway – and after the fears of Y2K died down –
AI continued trending upward. As expected, more artificially intelligent
beings were created as well as creative media (film, specifically) about
the concept of artificial intelligence and where it might be headed.
2000: The Y2K problem, also known as the year 2000 problem, was a class of
computer bugs related to the formatting and storage of electronic calendar
data beginning on 01/01/2000. Given that all internet software and
programs had been created in the 1900s, some systems would have trouble
adapting to the new year format of 2000 (and beyond). Previously, these
automated systems only had to change the final two digits of the year;
now, all four digits had to be switched over – a challenge for technology
and those who used it.
2000: Professor Cynthia Breazeal developed Kismet, a robot that could
recognize and simulate emotions with its face. It was structured like a
human face with eyes, lips, eyelids, and eyebrows.
2000: Honda releases ASIMO, an artificially intelligent humanoid
robot.
2001: Sci-fi film A.I. Artificial Intelligence, directed by
Steven Spielberg, is released. The movie is set in a futuristic, dystopian
society and follows David, an advanced humanoid child that is programmed
with anthropomorphic feelings, including the ability to love.
2002: i-Robot released Roomba, an autonomous robot vacuum that cleans
while avoiding obstacles.
2004: NASA's robotic exploration rovers Spirit and opportunity to navigate Mars’ surface without human intervention.
2004: Sci-fi film I, Robot, directed by Alex Proyas, is
released. Set in the year 2035, humanoid robots serve humankind while one
individual is vehemently anti-robot, given the outcome of a personal
tragedy (determined by a robot.)
2006: Oren Etzioni (computer science professor), Michele Banko, and
Michael Cafarella (computer scientists), coined the term “machine
reading,” defining it as unsupervised autonomous understanding of
text.
2007: Computer science professor Fei Fei Li and colleagues assembled ImageNet,
a database of annotated images whose purpose is to aid in object
recognition software research.
2009: Google secretly developed a driverless car. By 2014, it passed
Nevada’s self-driving test.
AI 2010 to present day
The current decade has been immensely important for AI innovation. From
2010 onward, artificial intelligence has become embedded in our day-to-day
existence. We use smartphones that have voice assistants and computers
that have “intelligence” functions most of us take for granted. AI is no
longer a pipe dream and hasn’t been for some time.
2010: ImageNet launched the ImageNet Large Scale Visual Recognition
Challenge (ILSVRC), their annual AI object recognition competition.
2010: Microsoft launched Kinect for Xbox 360, the first gaming device
that tracked human body movement using a 3D camera and infrared
detection.
2011: Watson, a natural language question answering computer created by
IBM, defeated two former Jeopardy! champions, Ken
Jennings and Brad Rutter, in a televised game.
2011: Apple released Siri, a virtual assistant on Apple iOS operating
systems. Siri uses a natural-language user interface to infer, observe,
answer, and recommend things to its human user. It adapts to voice
commands and projects an “individualized experience” per user.
2012: Jeff Dean and Andrew Ng (Google researchers) trained a large neural
network of 16,000 processors to recognize images of cats (despite giving
no background information) by showing it 10 million unlabeled images from
YouTube videos.
2013: A research team from Carnegie Mellon University released Never
Ending Image Learner (NEIL), a semantic machine learning system that could
compare and analyze image relationships.
2014: Microsoft released Cortana, their version of a virtual assistant
similar to Siri on iOS.
2014: Amazon created Amazon Alexa, a home assistant that developed into
smart speakers that function as personal assistants.
2015: Elon Musk, Stephen Hawking, and Steve Wozniak among 3,000 others
signed an open letter banning the development and use of autonomous
weapons (for purposes of war.)
2015-2017: Google Deep Mind’s Alpha Go, a computer program that plays the
board game Go, defeated various (human) champions.
2016: A Humanoid robot named Sophia is created by Hanson Robotics. She is known as the first “robot
citizen.” What distinguishes Sophia from previous humanoids is her
likeness to an actual human being, with her ability to see (Image
recognisation), make facial expressions, and communicate through AI.
2016: Google released Google Home, a smart speaker that uses AI to act as
a “personal assistant” to help users remember tasks, create appointments,
and search for information by voice.
2017: The Facebook Artificial Intelligence Research lab trained two
“dialog agents” (chatbots) to communicate with each other in order to
learn how to negotiate. However, as the chatbots conversed, they diverged
from human language (programmed in English) and invented their own
language to communicate with one another – exhibiting artificial
intelligence to a great degree.
2018: Alibaba (Chinese tech group) language processing AI outscored human
intellect at a Stanford reading and comprehension test. The Alibaba
language processing scored “82.44 against 82.30 on a set of 100,000
questions” – a narrow defeat, but a defeat nonetheless.
2018: Google developed BERT, the first “bidirectional, unsupervised
language representation that can be used on a variety of natural language
tasks using transfer learning.”
2018: Samsung introduced Bixby, a virtual assistant. Bixby’s functions
include Voice, where the user can speak to and ask questions,
recommendations, and suggestions; Vision, where Bixby’s
“seeing” ability is built into the camera app and can see what the user
sees (i.e. object identification, search, purchase, translation, landmark
recognition); and Home, where Bixby uses app-based information
to help utilize and interact with the user (e.g. weather and fitness
applications.)
What to expect for AI in 2019 and beyond?
Artificial intelligence advancements are occurring at an unprecedented
rate. That being said, we can expect that the trends from the past decade
will continue swinging upward in the coming year. A few things to keep our
eyes on in 2019 include:
Chatbots+ virtual assistants: Strengthened chatbot and
virtual assistant automation for heightened user experience
Natural Language Processing(NLP): Increased NLP abilities for
artificially intelligent apps, including (and especially for) chatbots and
virtual assistants.
Machine Learning and Automated Machine Learning: ML will shift toward Auto ML algorithms to allow developers and
programmers to solve problems without creating specific models
Autonomous vehicles: Despite some bad press surrounding various faulty self-driving vehicles,
it’s safe to assume there will be a stronger push to automate the process
of driving product from point A to point B to 1. Save on the cost of human
labor, 2. Optimize the process of purchase-shipment-arrival to consumer
via self-driving vehicles that – in essence – won’t get tired behind the
wheel
Our goal? Keeping pace with advancements in AI
In order to keep up with the world of tech, we have to keep pace with
innovations in artificial intelligence. From humanoid robots like Sophia
to home speaker assistants like Alexa, AI is advancing at an accelerated
rate. Someday, humans will have artificially intelligent companions beyond
toys like AIBO or Furby; someday, AI and humankind might coexist in a
fashion where humans and humanoids are indistinguishable from one
another.
Artificial Intelligence is an umbrella that contains other realms like image processing,
cognitive science, neural networks.
The word Artificial Intelligence comprises of two words “Artificial” and
“Intelligence”. Artificial refers to something which is made by human or
non natural thing and Intelligence means ability to understand or think.
There is a misconception that Artificial Intelligence is a system, but it
is not a system .AI is implemented in the system.
Definition: AI, one definition can be “It is the study of how to train the computers so that computers can
do things which at present human can do better. Therefore It is a intelligence where we want to add all the
capabilities to machine that human contain.
Task Domains of Artificial Intelligence:
Intelligent 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 the sensors, and other organs such as hands, legs, mouth,
for Effectors.
· A robotic agent replaces cameras and 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.
Agent Terminology
· Performance Measure of Agent − It is the criteria, which determines how successful an agent
is.
· Behaviour of Agent − It is the action that agent performs after any given sequence
of percepts.
· Percept −
It is agent’s perceptual inputs at a given instance.
· Percept Sequence − It is the history of all an agent has perceived till
date.
Fig: Agent and Environment
Rationality:
Rationality is the status of being reasonable, sensible, and
having good sense of judgment.
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.
Rationality of an agent depends on the following −
·
The performance measures, which determine the degree of
success.
·
Agent’s Percept Sequence till now.
·
The agent’s prior knowledge about the environment.
·
The actions that the agent can carry out.
·
Specifying the task environment:
·
PEAS(Performance, Environment, Actuators, And Sensors)
Types of Intelligent Agents:
The Structure of Intelligent Agents
Agent’s structure can be viewed as
-
Agent = Architecture + Agent Program
-
Architecture = the machinery that an agent executes on.
-
Agent Program = an implementation of an agent function.
Simple Reflex Agents
The simplest kind of agent is the simple SIMPLE REFLEX reflex
agent.
These agents select actions on the basis of the current percept,
ignoring the rest of the percept history.
FIG: Simple Reflex Agent
Simple reflex agents have the admirable property of being simple, but
they turn out to be
of limited intelligence.
-
They choose actions only based on the current percept.
-
They are rational only if a correct decision is made only on the
basis of current precept.
-
Their environment is completely observable.
Condition-Action Rule − It is a rule that maps a state (condition) to an action.
function SIMPLE-REFLEX-AGENT (percept ) returns an
action
persistent: rules, a set of condition–action rules
state←INTERPRET-INPUT(percept )
rule←RULE-MATCH(state, rules)
action ←rule.ACTION
return action.
A simple reflex agent. It acts according to a rule whose condition matches
the current state, as defined by the percept.
Model Based Reflex Agents
They use a model of the world to choose their actions. They maintain
an internal state.
Model − knowledge about “how the things happen in the world”.
Internal State − It is a representation of unobserved aspects of current state
depending on percept history.
Fig: A model-based reflex agent. It keeps track of the current state
of the world,
using an internal model. It then chooses an action in the same way as
the reflex agent.
Updating the state requires the information about −
-
How the world evolves.
-
How the agent’s actions affect the world.
Goal Based Agents
They choose their actions in order to achieve goals. Goal-based
approach is more flexible than reflex agent since the knowledge
supporting a decision is explicitly modeled, thereby allowing for
modifications.
Sometimes goal-based action selection is straightforward—for example,
when goal satisfaction
results immediately from a single action. Sometimes it will be more
tricky—for
example, when the agent has to consider long sequences of twists and
turns in order to find a
way to achieve the goal.
goal-based action selection is straightforward,
Goal − It is the description of desirable situations.
Goal − It is the description of desirable situations.
Utility Based Agents
Goals alone are not enough to generate high-quality behavior in most
environments.
They choose actions based on a preference (utility) for each
state.
Goals are inadequate when −
· There are conflicting goals, out of which only
few can be achieved.
· Goals have some uncertainty of being achieved
and one can need to weigh likelihood of success against the importance
of a goal.
A model-based, utility-based agent. It uses a model of the world,
along with
a utility function that measures its preferences among states of the
world. Then it chooses the
action that leads to the best expected utility, where expected
utility is computed by averaging
over all possible outcome states, weighted by the probability of the
outcome.
Learning Agents:
A learning agent can be divided into four conceptual
components
The most important distinction is between LEARNING ELEMENT the
learning element, which is responsible for making improvements, and
the performance element, which is responsible for selecting external
actions. The performance element is what we have previously considered
to be the entire agent: it takes in percepts and decides on actions.
The design of the learning element depends very much on the design of
the performance
element. The critic tells the learning element how well the agent is doing
with respect to a fixed
performance standard. The critic is necessary because the percepts
themselves provide no
indication of the agent’s success.
The Nature of Environments
Some programs operate in the entirely artificial environment confined to keyboard input, database, computer file systems and
character output on a screen.
In contrast, some software agents (software robots or soft bots)
exist in rich, unlimited soft bots domains. The simulator has
a very detailed, complex environment. The software agent
needs to choose from a long array of actions in real time. A soft bot
designed to scan the online preferences of the customer and show
interesting items to the customer works in
the real as well as
an artificial environment.
The most famous artificial environment is
the Turing Test environment, in which one real and other
artificial agents are tested on equal ground. This is a very
challenging environment as it is highly difficult for a software agent
to perform as well as a human.
Turing Test
The success of an intelligent behavior of a system can be measured
with Turing Test.
Two persons and a machine to be evaluated participate in the test. Out of the two persons, one plays the role of the tester. Each of them sits in different rooms. The tester is unaware of who is machine and who is a human. He interrogates the questions by typing and sending them to both intelligence, to which he receives typed responses.
This test aims at fooling the tester. If the tester fails to
determine machine’s response from the human response, then the machine
is said to be intelligent.
Properties of Environment
The environment has multi fold properties −
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).
Observable / Partially Observable − If it is possible to determine the complete state of the
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.
Deterministic / Non-deterministic − If the next state of the environment is completely determined
by the current state 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.
Problem Space and Search:
A problem can be defined formally by Five components:
1.The initial state
2. Formulating problems
3.Actions
4. Transition Models
5. Goal State
function SIMPLE-PROBLEM-SOLVING-AGENT(percept ) returns
an action
persistent: seq, an action sequence, initially empty
state, some description of the current world state
goal , a goal, initially null
problem, a problem formulation
state←UPDATE-STATE(state, percept )
if seq is empty then
goal ←FORMULATE-GOAL(state)
problem ←FORMULATE-PROBLEM (state, goal )
seq ←SEARCH(problem)
if seq = failure then return a null action
action ←FIRST(seq)
seq ←REST(seq)
return action
A simple problem-solving agent. It first formulates a goal and a
problem,
searches for a sequence of actions that would solve the problem, and
then executes the actions
one at a time. When this is complete, it formulates another goal and
starts over.
Measuring problem-solving performance:
We can evaluate an algorithm’s performance in four ways:
Completeness: Is the algorithm guaranteed to find a solution when there is
one?
Optimality : The strategy to find the optimal solution
Time complexity: How long does it take to find a solution?
Space complexity: How much memory is needed to perform the search?
The Factors that need to be defined for formulation of a
problem.
Initial State : The state in which the agent starts or initial condition of
the agent.
States : All states that are reachable from initial state by any
sequence of actions or all possible states that the agent can take.
This is also referred to as State space.
Actions : All possible actions that the agent can execute.
Specifically, it provides the list of actions, that an agent can
perform in a particular state. This is also referred to as Action
space.
Transition Model : This property describes the results of each action taken in a
particular state.
Goal Test : A way to check, whether a state is the goal.
Path Cost : A function that assigns a numeric cost to a path w.r.t. performance
measure.
Types of Search : There are two types of searches
1.Uninformed Search , 2. Informed Search.
Uninformed/Blind Search:
The uninformed search does not contain any domain knowledge such as
closeness, the location of the goal. It operates in a brute-force way as
it only includes information about how to traverse the tree and how to
identify leaf and goal nodes. Uninformed search applies a way in which
search tree is searched without any information about the search space
like initial state operators and test for the goal, so it is also called
blind search. It examines each node of the tree until it achieves
the goal node.
It can be divided into five main types:
-
Breadth-first search
-
Uniform cost search
-
Depth-first search
-
Iterative deepening depth-first search
Bidirectional Search
Informed Search
Informed search algorithms use domain knowledge. In an informed search,
problem information is available which can guide the search. Informed
search strategies can find a solution more efficiently than an
uninformed search strategy. Informed search is also called a Heuristic
search.
A heuristic is a way which might not always be guaranteed for best
solutions but guaranteed to find a good solution in reasonable time.
Informed search can solve much complex problem which could not be
solved in another way.
An example of informed search algorithms is a traveling salesman
problem.
-
Greedy Search
-
A* Search
1. Breadth-first Search:
-
Breadth-first search is the most common search strategy for
traversing a tree or graph. This algorithm searches breadth wise in a
tree or graph, so it is called breadth-first search.
-
BFS algorithm starts searching from the root node of the tree and
expands all successor nodes at the current level before moving to
nodes of next level.
-
The breadth-first search algorithm is an example of a general-graph
search algorithm.
-
Breadth-first search implemented using FIFO queue data structure.
Advantages:
-
BFS will provide a solution if any solution exists.
-
If there are more than one solutions for a given problem, then BFS
will provide the minimal solution which requires the least number of
steps.
Disadvantages:
-
It requires lots of memory since each level of the tree must be saved
into memory to expand the next level.
-
BFS needs lots of time if the solution is far away from the root
node.
Example:
In the below tree structure, we have shown the traversing of the tree
using BFS algorithm from the root node S to goal node K. BFS search
algorithm traverse in layers, so it will follow the path which is shown by
the dotted arrow, and the traversed path will be:
S---> A--->B---->C--->D---->G--->H--->E---->F---->I---->K
Depth-first Search
o
Depth-first search isa recursive algorithm for traversing a tree or
graph data structure.
o
It is called the depth-first search because it starts from the root
node and follows each path to its greatest depth node before
moving to the next path.
o
DFS uses a stack data structure for its implementation.
o
The process of the DFS algorithm is similar to the BFS algorithm.
Advantage:
-
DFS requires very less memory as it only needs to store a stack of
the nodes on the path from root node to the current node.
-
It takes less time to reach to the goal node than BFS algorithm (if
it traverses in the right path).
Disadvantage:
-
There is the possibility that many states keep re-occurring, and
there is no guarantee of finding the solution.
-
DFS algorithm goes for deep down searching and sometime it may go to
the infinite loop.
Example:
In the below search tree, we have shown the flow of depth-first search,
and it will follow the order as:
Root node--->Left node ----> right node.
It will start searching from root node S, and traverse A, then B, then
D and E, after traversing E, it will backtrack the tree as E has no
other successor and still goal node is not found. After backtracking it
will traverse node C and then G, and here it will terminate as it found
goal node.
Completeness: DFS search algorithm is complete within finite state space as it
will expand every node within a limited search tree.
Time Complexity: Time complexity of DFS will be equivalent to the node traversed
by the algorithm. It is given by:
T(n)= 1+ n2+ n3 +...…+ nm=O(nm)
Where, m= maximum depth of any node and this can be much larger than
d (Shallowest solution depth)
Space Complexity: DFS algorithm needs to store only single path from the root node,
hence space complexity of DFS is equivalent to the size of the fringe
set, which is O(bm).
Optimal: DFS search algorithm is non-optimal, as it may generate a large
number of steps or high cost to reach to the goal node.
Informed Search Algorithms
The informed search algorithm is more useful for large search space.
Informed search algorithm uses the idea of heuristic, so it is also
called Heuristic search.
Heuristics function: Heuristic is a function which is used in Informed Search, and it
finds the most promising path. It takes the current state of the agent
as its input and produces the estimation of how close agent is from the
goal. The heuristic method, however, might not always give the best
solution, but it guaranteed to find a good solution in reasonable time.
Heuristic function estimates how close a state is to the goal. It is
represented by h(n), and it calculates the cost of an optimal path
between the pair of states. The value of the heuristic function is
always positive.
h(n) <= h*(n)
Here h(n) is heuristic cost, and h*(n) is the estimated cost. Hence
heuristic cost should be less than or equal to the estimated
cost.
Pure Heuristic Search:
Pure heuristic search is the simplest form of heuristic search
algorithms. It expands nodes based on their heuristic value h(n). It
maintains two lists, OPEN and CLOSED list. In the CLOSED list, it places
those nodes which have already expanded and in the OPEN list, it places
nodes which have yet not been expanded.On each iteration, each node n
with the lowest heuristic value is expanded and generates all its
successors and n is placed to the closed list. The algorithm continues
unit a goal state is found.
In the informed search we will discuss two main algorithms which are
given below:
-
Best First Search Algorithm(Greedy search)
-
A* Search Algorithm
Best-first Search Algorithm (Greedy Search):
Greedy best-first search algorithm always selects the path which
appears best at that moment. It is the combination of depth-first search
and breadth-first search algorithms. It uses the heuristic function and
search. Best-first search allows us to take the advantages of both
algorithms. With the help of best-first search, at each step, we can
choose the most promising node. In the best first search algorithm, we
expand the node which is closest to the goal node and the closest cost
is estimated by heuristic function, i.e.
f(n)= g(n).
Were, h(n)= estimated cost from node n to the goal.
The greedy best first algorithm is implemented by the priority
queue.
Best first search algorithm:
-
Step 1: Place the starting node into the OPEN list.
-
Step 2: If the OPEN list is empty, Stop and return failure.
-
Step 3: Remove the node n, from the OPEN list which has the lowest
value of h(n), and places it in the CLOSED list.
-
Step 4: Expand the node n, and generate the successors of node n.
-
Step 5: Check each successor of node n, and find whether any node is a
goal node or not. If any successor node is goal node, then return
success and terminate the search, else proceed to Step 6.
-
Step 6: For each successor node, algorithm checks for evaluation
function f(n), and then check if the node has been in either OPEN or
CLOSED list. If the node has not been in both list, then add it to the
OPEN list.
-
Step 7: Return to Step 2.
Advantages:
-
Best first search can switch between BFS and DFS by gaining the
advantages of both the algorithms.
-
This algorithm is more efficient than BFS and DFS algorithms.
Disadvantages:
-
It can behave as an unguided depth-first search in the worst case
scenario.
-
It can get stuck in a loop as DFS.
-
This algorithm is not optimal.
Example: Consider the below search problem, and we will traverse it
using greedy best-first search. At each iteration, each node is expanded
using evaluation function f(n)=h(n) , which is given in the below
table.
Expand the nodes of S and put in the CLOSED list
Initialization: Open [A, B], Closed [S]
Iteration 1: Open [A], Closed [S, B]
Hence the final solution path will be: S----> B----->F----> G
Time Complexity: The worst case time complexity of Greedy best first search is
O(bm).
Space Complexity: The worst case space complexity of Greedy best first search is
O(bm). Where, m is the maximum depth of the search space.
Complete: Greedy best-first search is also incomplete, even if the given
state space is finite.
Optimal: Greedy best first search algorithm is not optimal.
A* Search Algorithm:
A* search is the most commonly known form of best-first search. It uses
heuristic function h(n), and cost to reach the node n from the start
state g(n).
It has combined features of UCS and greedy best-first search, by which
it solve the problem efficiently. A* search algorithm finds the shortest
path through the search space using the heuristic function. This search
algorithm expands less search tree and provides optimal result faster.
A* algorithm is similar to UCS except that it uses g(n)+h(n) instead of
g(n).
In A* search algorithm, we use search heuristic as well as the cost to
reach the node. Hence we can combine both costs as following, and this
sum is called as a fitness number.
Algorithm of A* search:
Step1: Place the starting node in the OPEN list.
Step 2: Check if the OPEN list is empty or not, if the list is empty then
return failure and stops.
Step 3: Select the node from the OPEN list which has the smallest value
of evaluation function (g+h), if node n is goal node then return success
and stop, otherwise
Step 4: Expand node n and generate all of its successors, and put n into
the closed list. For each successor n', check whether n' is already in
the OPEN or CLOSED list, if not then compute evaluation function for n'
and place into Open list.
Step 5: Else if node n' is already in OPEN and CLOSED, then it should be
attached to the back pointer which reflects the lowest g(n') value.
Step 6: Return to Step 2.
Advantages:
-
A* search algorithm is the best algorithm than other search
algorithms.
-
A* search algorithm is optimal and complete.
-
This algorithm can solve very complex problems.
Disadvantages:
-
It does not always produce the shortest path as it mostly based on
heuristics and approximation.
-
A* search algorithm has some complexity issues.
-
The main drawback of A* is memory requirement as it keeps all
generated nodes in the memory, so it is not practical for various
large-scale problems.
-
Initialization: {(S, 5)}
Iteration1: {(S--> A, 4), (S-->G, 10)}
Iteration2: {(S--> A-->C, 4), (S--> A-->B, 7), (S-->G, 10)}
Iteration3: {(S--> A-->C--->G, 6), (S--> A-->C--->D, 11), (S--> A-->B, 7), (S-->G, 10)}
-
Iteration 4 will give the final result, as S--->A--->C--->G it provides the optimal path with cost 6.
Points to remember:
-
A* algorithm returns the path which occurred first, and it does
not search for all remaining paths.
-
The efficiency of A* algorithm depends on the quality of
heuristic.
-
A* algorithm expands all nodes which satisfy the condition
f(n)<="" li="">
Complete: A* algorithm is complete as long as:
-
Branching factor is finite.
-
Cost at every action is fixed.
Optimal: A* search algorithm is optimal if it follows below two conditions:
-
Admissible: the first condition requires for optimality is that h(n)
should be an admissible heuristic for A* tree search. An
admissible heuristic is optimistic in nature.
-
Consistency: Second required condition is consistency for only A*
graph-search.
If the heuristic function is admissible, then A* tree search will always find the least cost path.
Time Complexity: The time complexity of A* search algorithm depends on heuristic function, and the number of nodes expanded is exponential to the depth of solution d. So the time complexity is O(b^d), where b is the branching factor.
Space Complexity: The space complexity of A* search algorithm is O(b^d)
Means-Ends Analysis in Artificial Intelligence
-
Means-Ends Analysis is problem-solving techniques used in
Artificial intelligence for limiting search in AI programs.
-
It is a mixture of Backward and forward search technique.
How means-ends analysis Works:
The means-ends analysis process can be applied recursively for a problem. It is a strategy to control search in problem-solving. Following are the main Steps which describes the working of MEA technique for solving a problem.
a. First, evaluate the difference between Initial State and final State.
-
Select the various operators which can be applied for each
difference.
-
Apply the operator at each difference, which reduces the
difference between the current state and goal state.
Operator Sub goaling
In the MEA process, we detect the differences between the current state and goal state. Once these differences occur, then we can apply an operator to reduce the differences. So we create the sub problem of the current state, in which operator can be applied, such type of backward chaining in which operators are selected, and then sub goals are set up to establish the preconditions of the operator is called Operator Subgoaling.
Algorithm for Means-Ends Analysis:
Let's we take Current state as CURRENT and Goal State as GOAL, then following are the steps for the MEA algorithm.
-
Step 1: Compare CURRENT to GOAL, if there are no differences
between both then return Success and Exit.
-
Step 2: Else, select the most significant difference and reduce it
by doing the following steps until the success or failure
occurs.
a. Select a new operator O which is applicable for the current difference, and if there is no such operator, then signal failure.
-
A* algorithm returns the path which occurred first, and it does
not search for all remaining paths.
-
b. Attempt to apply operator O to CURRENT. Make a description of two states
- O-Start, a state in which O?s preconditions are satisfied.
- O-Result, the state that would result if O were applied In O-start.
-
c. If(First-Part <------ MEA (CURRENT, O-START)And(LAST-Part <----- MEA (O-Result, GOAL), are successful, then signal Success and return the result of combining FIRST-PART, O, and LAST-PART
-
Example of Mean-Ends Analysis:
Let's take an example where we know the initial state and goal state as given below. In this problem, we need to get the goal state by finding differences between the initial state and goal state and applying operators.

















Comments
Post a Comment