Dept.
Colloquiua
CS 470 Artificial
Intelligence, Instructor: Jeffrey
Horn
COURSE ANNOUNCEMENTS (Wednesday, April 27, 2016)
What's
REALLY New:
- Final Project added.
See below.
Not
so New (Older Announcements):
- Quiz 2 will be in class this Thursday.
See below.
- Quiz One will be in class this Thursday.
See below.
- Welcome to class!
- This is where old announcements will go, so that you
won't miss any news!
Administrativa
LECTURE
NOTES
ASSIGNMENTS
- Assignment
1: Introduction to State Space Search (FWGC and Uninformed
Search)
- Assigned: Thursday, January 14, 2016
- Due: TBA
- Code for A1 is
here (cabbage.scm
has the Scheme code and plt-301-bin-i386-win32.exe installs the
older version of Dr. Scheme that has been confirmed to work with the
source code in cabbage.scm. )
- TASKS:
- Graph the entire State Space for the FWGC problem, as defined in
class.
- Each vertex represents a unique state. Label
each vertex with the state descriptor using Scheme syntax.
- Use directed edges (i.e, single-head arrows as arcs) between
states, labeling each edge to indicate the type of move (i.e.,
"F" for farmer only, "W" for farmer and wolf, "G" for farmer and
goat, etc.)
- Draw all states, including "illegal" states that violate one
or more contraints of the problem, above. Draw an
"X" through all illegal states.
- DO draw all edges going INTO illegal states. DO
NOT draw edges FROM illegal states.
- Indicate the original problem by circling the initial and
goal states and highlighting the path from initial to goal
(i.e., "(w w w w)" to "(e e e e)" ).
- Answer the following questions:
- What is the longest plan that you can generate using the
FWGC Scheme code provided in class? Give me the length of
the plan, the plan itself, and the problem (i.e., pair of
initial and goal states).
- What can you say about the symmetry of the state space for
FWGC?
- Give another problem (i.e., pair of initial and goal states)
in the FWGC state space that yields a plan of at least length
four. (Give me the problem and a plan that solves
it!)
-
-
Assignment 2: Introduction to Heuristic Search (Blocks World and
Informed Search)
- Assigned: Tuesday, Jan. 26, 2016
- Due: TBA
- Submission: Hardcopy or email is fine. Just write it up
CLEARLY! And use the notation introduced below.
- Code for A2 (emailed) (block.scm. )
- TASKS: ( For all of the tasks below, assume the single goal
state G =
" ( (A) (B C) (D) ) " )
- Design your own heuristic for OUR Blocks World (the one in
Scheme; see link above)
- Your heuristic should be a function from blocks world
states to a scalar value (actually, non-negative
integers).
- Use the notation "h*(s)", where s is
a state of the blocks world.
- The cost of
a path or plan should
be measured as the number of move operations
(function calls) in the plan.
- Your h*(s) should
be an estimate of the cost of minimal
cost path
(plan) to get from s to
the goal state G.
- Your h*(s) should
be admissible,
which means it should be an underestimate of
the actual cost
- Your h*(s) should
be as informed as
you can make it! (Well, that is your challenge.)
- Be as specific and precise as possible in describing
your function. Feel free to use natural language,
mathematical notation, and computer code (pseudocode or real
code) to make clear what your function computes. I will
try to implement some of the heuristics (in Scheme!) for
class on Wednesday (or perhaps the following Monday) so that
we can test and compare each other's functions!
- Evaluate your heuristic on the following states (i.e., give
me h*(s1 ),
h*(s2 ), and h*(s3 )
):
- s1 =
( ( A B C D) ( ) ( ) )
- s2 =
( (A) (B) (C D) )
- s3 =
( (B C) ( ) (D A) )
-
Assignment 3: Neural Networks
- Task 1: Backprop with 2 hidden
layer units
- Here is that example I promised of the kind of image that I
want from each of you. This kind of learned concept is similar
to the examples we were making in class.
- BTW, if you look at the source code for the paint method you
will see how the concept is displayed: we simply paint each
pixel in the displayed instance space by running that coordinate
through the trained NN as an example to be classified. If the
NN outputs "1" then we color the pixel green, otherwise red.
Note that this is fast because our NN is tiny. If we had
trained a million-neuron network we might have to wait a long
time to classify the entire instance space in the 300x300 pixel
displayed area! (Of course when we scale up the NN we would
want to use faster software (i.e., NOT Java!) and/or hardware
(like GPUs).)
- Task 2: Backprop with 3 hidden layer
units
- Task 3:
- Train our BackProp network (here)
on PARITY (odd or even). You may choose the bit
string length L to use. You may only use half of the
2^L instances for training. Send me your training
set (two files). Your grade will be proportionate to
the score achieved on the test set that I USE on the BackProp
network that I TRAIN on YOUR training files!
-
Assignment 4: Genetic
Algorithms for Optimization
- Goal: Become familiar with the GA and its
application and behavior through optimization of a known, hard, and
open problem (NYC Tunnels)
- Tasks:
- Use the GA code in the folder "NYCtunnelsGA".
Run it on the NYC Tunnels problem with the following 10 random
seeds:
- 000xy, 111xy, 222xy, 333xy, 444xy, 555xy,
666xy, 777xy, 888xy, 999xy
- where "xy" is your individual two digit
number in the class (obtain from me).
- Experiment with the GA parameters until you
get "good" performance using maximum
1,000,000 cost (that
is, total number of fitness function evaluations, which you may
upper bound as #gens * #popsize, unless you want to add the code
to cache your function evaluations; that would give you more
evolution!). This means that you find the $38.79 million
solution on at least one of your random seeds, and you find the
second best known solution ($39.062 million on at least half of
your random seeds).
- Send me a text message or file with a list of
the GA parameters that you used to complete Task 2 above,
sufficient for me to REPRODUCE your results.
- Show me a plot of convergence for one of the
runs. You may print this or send me a screenshot, etc. Label
your plot (i.e., parameters, including random seed). I want to
see plots of on-line WORST, BEST, and AVERAGE fitnesses over
time. See example.
FINAL PROJECT
click here
Quizes
-
Quiz 1: State Space Graphs
-
Thursday, Feb. 4, 2016 in class.
Open notes (including copies of the practice Q1 below!)
-
Practice quiz
here, solution
here.
-
Quiz 2:
Stimulus-Response AI
-
Thursday, Feb. 11, 2016 in class. Open
notes.
-
Sample Quiz 2 (from 2012 course) is
here.