#!/usr/bin/env python
# coding: utf-8
# # Textbook Authors
#
# [Stuart Russell](http://www.cs.berkeley.edu/~russell/) and [Peter Norvig](http://norvig.com/)
#
# Where do and have they worked? What are their main interests?
# # What is Artificial Intelligence?
#
# * Thinking
# * like a human
# * rationally---optimally, or the best possible
# * Acting
# * like a human
# * rationally
# # Thinking Like a Human
#
# How do humans think?
#
# **Cognitive Science** is relatively new field that is trying to answer
# this question.
#
# * [Wikipedia entry for Cognitive Science](http://en.wikipedia.org/wiki/Cognitive_science)
# * [Stanford Encyclopedia of Philosophy entry for Cognitive Science](http://plato.stanford.edu/entries/cognitive-science/)
# * [Stanford Encyclopedia of Philosophy entry for Embodied Cognition](http://plato.stanford.edu/entries/embodied-cognition/)
# # Acting Like a Human
#
# In the study of "intelligence", many aspects are missed if studied in
# isolation of human or robot bodies.
#
# A true "artificial intelligence" must be capable of interacting with
# its world.
#
# **Turing Test**: a computer is intelligent if a human interrogator,
# after posing some written questions, cannot tell whether the written
# responses come from a person or from a computer.
#
# [xkcd version](http://xkcd.com/329/) and [another one](http://xkcd.com/632/) (thanks Brock Wilcox)
# # Thinking Rationally
#
# **Rationality**: doing the right thing, given what is known.
#
# Logical reasoning systems.
#
# Problems:
# * hard to write informal knowledge as logical statements
# * solving most logical reasoning problems currently takes too much time or memory.
# # Acting Rationally
#
# **Agent**: computer programs that
# * operate autonomously
# * perceive their environment
# * persist over long time periods
# * adapt to change
# * create and pursue goals
#
# **Rational agent**: an agent that acts to achieve the best outcome, or best average outcome if the agent has incomplete knowledge
#
# Russell and Norvig take the view of rational agents in describing data
# structures and algorithms.
# # History
#
# [Wikipedia entry](http://en.wikipedia.org/wiki/History_of_artificial_intelligence#Dartmouth_Conference_1956:_the_birth_of_AI)
# # Early
#
#
# # Recent
#
#
#
# # Intelligent Agents
#
# An **agent** "perceives its **environment** through **sensors** and
# acts upon that environment through **actuators**."
#
#
#
# An agent's choice of action can depend on the entire history of
# percepts observed previously, but not on anything it has not
# perceived.
# # Rationality
#
# But, which action to choose? A **rational** agent is one that does
# the "right thing", which depends on the **performance measure**.
#
# The performance measure should be designed to reflect what one
# actually wants in the environment, rather than how one suspects the
# agent should behave. Define it in terms of effects of actions on the
# environment, rather than in terms of the agent's program.
#
# Rational behavior is not perfect, because an agent cannot know
# everything about the environment, including past, present, and
# future. We focus on maximizing **expected** performance, given what
# we know about probabilities of things happening in the environment.
# # Nature of Environments
#
# Specify the task environment (PEAS):
# * P: performance measure
# * E: environment
# * A: agent's actuators
# * S: agent's sensors
#
#
# | Agent Types | Performance Measure | Environment | Actuators | Sensors |
# | --- | --- | --- | --- | --- |
# | medical diagnosis system | healthy patient, reduced costs | patient, hospital, staff | display of questions, tests, diagnoses, treatments, referrals |
# | satellite image analysis system | correct image categorization | downlink from orbiting satellite | display of scene categorization | color pixel arrays |
# | part-picking robot | percentage of parts in correct bins | conveyor belt with parts; bins | jointed arm and hand | camera, joint angle sensors |
# | refinery controller | purity, yield, safety | refinery, operators | valves, pumps, heaters, displays | temperature, pressure, chemical sensors |
# | interactive English tutor | student's score on test | set of students, testing agency | display of exercies, suggestions, corrections | keyboard entry |
#
#
# | Task Environment | Observable | Agents | Deterministic | Episodic | Static | Discrete |
# | --- | --- | --- | --- | --- | --- | --- |
# | crossword puzzle | fully | single | deterministic | sequential | static | discrete |
# | chess with clock | fully | multi | deterministic | sequential | semi | discrete |
# | poker | partially | multi | stochastic | sequential | static | discrete |
# | backgammon | fully | multi | stochastic | sequential | static | discrete |
# | taxi driving | partially | multi | stochastic | sequential | dynamic | continuous |
# | medical diagnosis | partially | single | stochastic | sequential | dynamic | continuous |
# | image analysis | fully | single | deterministic | episodic | semi | continuous |
# | part-picking robot | partially | single | stochastic | episodic | dynamic | continuous |
# | refinery controller | partially | single | stochastic | sequential | dynamic | continuous |
# | interactive English tutor | partially | multi | stochastic | sequential | dynamic | discrete |
# # Structure of Agents
#
# Reflex agents
#
# Model-based reflex agents
#
# Goal-based agents
#
# Utility-based agents
#
# Using **learning** to modify each of the above.