You are on page 1of 4

Artificial intelligence (AI) is both the intelligence of machines and the branch of computer

science which aims to create it. Artificial Intelligence is a combination of cognitive science,
linguistics, ontology, physiology, psychology, philosophy, operations research, economics,
control theory, neuroscience, computer science, probability, optimization and logic. AI is a
very large subject-matter. It consists of many different fields, from machine vision to expert
systems.

The aim of all the fields is the creation of machines that can "think". Researches hope that AI
machines will be capable of reasoning, knowledge, learning, communication, planning,
perception and the ability to move and manipulate objects.

What's it all about?


Artificial Intelligence (AI) is the science and engineering of creating intelligent machines and
computer programs. It is related to similar tasks of using computers to understand human
intelligence but AI does not only have to confine itself to methods that are biologically
observable. The interest in AI has commonly increased since years and some classical sub-
disciplines like robotics, language processing, or natural computing have produced reliable
solutions.

Intelligence is prediction
Intelligence is the ability to predict what comes next, even when faced with incomplete knowledge. Intelligence is doing the right thing at the right
time - sufficiently right to improve a being's chances of survival.

Artificial Intelligence, therefore, should be software that predicts. Software that can do the right thing - sufficiently right to be valuable for a business
or an individual. Artificial Intelligence has reached the stage of sufficiency.

A machine can understand natural language, respond and act such as to be genuinely useful. It doesn't have to possess human-level intelligence. It
doesn't have to fool you that it's human, even though, surprisingly often, it can. It just has to do a good job - a better job, that is, than countless
imperfect websites, telephone systems and even complete, staffed call centres.

Any modern computer can cope with support or telesales 'scripts' with millions of times the complexity of your average human, and can have any
amount of information or knowledge 'at its fingertips'. The missing element, until now, has been understanding.

There are, frankly, too many examples of conversational agents that do not say the right thing often enough. They don't understand, spotting just a few
key words in what is said. That's not enough.

Our software predicts what comes next, at every stage in a process. It 'thinks of' the trillions of possible sentences that you might say, and knows
exactly which one came closest. So it 'understands' you. It knows every part of what you said, and can act on that understanding. It uses context to
resolve ambiguity. Our AI can show sufficient intelligence.

Our AI concentrates currently on natural language processing and on emotional states, yet its universal principles can be applied to any sensory or data
inputs.

http://www.existor.com
A brief history of artificial intelligence

When computers were first built, their speed of numerical computations convinced most people
that the following fallacy was true:

• Computers have more computational power than the human brain

Now, computers are millions of times faster than they were fifty years ago. Still, I would argue
that for many tasks, this statement is still a fallacy.

Human brains seem to be far "faster" than computers for a wide variety of tasks; for example:

• Recognizing human faces in photographs


• Driving a car using computer vision
• Some types of associative memory recall

Still, greater computational speed does make some so-called AI systems seem smarter. Very good
examples of this are computer games that use search techniques. I have been interested in writing
computer chess and Go programs for a long time (I wrote the BASIC chess program on the demo
cassette tape for the Apple II computer, and I wrote and marketed a commercial Go program,
Honninbo Warrior, also for the Apple II).

This short "book" covers the very rudiments of AI search techniques: we initially cover depth
first and then breadth first search of networks. We will discuss how to add heuristics to the
breadth first search.

A network is defined as a set of nodes and a set of bi-directional linksconnecting these nodes.

Unless you are not at all curious, you have already tried running the two example Java applets
that appeared to the right of the table of contents of this book. Each applet has a network of nine
nodes, with several links (e.g., connecting node 0 to node 1, 2 to 3, 2 to 4, etc.). Each Java applet
tries to find a path from the starting node to the goal node. In the two sample applets, you can
change the starting node and the goal node by using the Java AWT (abstract window toolkit)
choice controls.

The development of search techniques was considered to be one of the early successes of AI
research.

There are many techniques of AI programming that are not covered here (e.g., expert systems,
neural networks, planning, etc.). Also, the material on search in this "book" is very rudimentary,
and is written for home hobbiest-programmers.
Why search algorithms are not AI

Search algorithms are a technique, but, in my opinion, do not represent AI at all. However,
search algorithms are useful for building some types of AI systems. For example, search is an
important part in computer programs for game playing (like chess and Go) and planning systems.

Planning systems usually involve the automatic generation and evaluation of plans to accomplish
specific goals. It a very simple form, one might (or might not) call our two sample Java applets
simple planning systems (to answer questions like "what route will take me from node 0 to node
9?"). However, real AI planning systems involve more complex tasks such as planning routes for
robots to take through real (physical) environment, etc.

So, we will consider search to be a tool, or technique, that can be used in AI planning systems,
computer games, et.

One idea that came out of early AI research was the notion of separating domain independent
code from domain dependent data. Probably the best example of this technique is so-called
"expert systems". There are many good domain independent "engines" like OPS5, CLIPS, and
Jess that are completely independent of any knowledge for solving specific problems. Instead,
these "engines" use data in the for of "if/then" rules to solve problems. As an example (from
my Java AI book) we might want to write an expert system to diagnose medical problems
associated with skin diving and scuba diving. Here we would develop a large set of domain
specific (i.e., specific to solving the problem of diving medical problems) rules. An example rule
might be (translated to "English"):

If there are two puncture marks and the surrounding area


is red, then there is a strong probability of an octopus bite.

If there are two puncture marks and the surrounding area


is not red, then there is a weak probability of an octopus bite.

Most people consider so-called "expert systems" to be AI. Another example of AI is natural
language processing. There are many aspects to automatically processing (with computer
software) natural language text. Most systems start by calculating parts of speech for input text.
For example (from my free Open Source NLPServer will calculate parts of speech for any input
sentence (or at least try to!). The NLPserver outputs results in either plain text, HTML, or XML.
For example:

Output type: TEXT


Part of speech query: the dog ran down the street

art, the;
noun, dog;
verb, ran;
adj, down;
art, the;
noun, street;
Other types of AI research involve the use of artificial neural networks, genetic algorithms, and
genetic programming.

How we can use search algorithms in AI systems

In Chapter 2, we indicated that search techniques are a powerful tool for building some types of
AI systems. Here are two example applications of search techniques:

• Scheduling deliveries - You own a local flower shop, with two delivery
drivers. You receive about 50 orders a day, and you want to minimize the cost
(in time and fuel) for making these deliveries. You decide to write a program
that accepts as input a list of street addresses, and prints out a suggested
route. Your program contains a network (like the two example applets on the
table of contents page) representing the major streets in your small town.
The "links" in the network represent streets, and the "nodes" represent
intersections. "Links" might also include average travel speed.

• Computer game - you are writing a computer game that involves a


"dungeon" made up of caves (the "nodes" in a network) and tunnels (the
"links" in a network). You want "AI" characters to be able to move in
reasonable paths, so you use a simple search (like the breadth first example
applet) to calculate paths for the "AI" characters to move along. You have a
general game engine that moves the "AI" characters a specified distance
along a path each "game turn".

There are many other possible uses for the search, but I think that one of these examples would
be a good way for you to apply what you learn in this "book".

You might also like