1 | due: Sun 22nd January. | A reading assignment. | |
2 | due: Sun 5th February. | A fairly simple program in Python. | |
3 | due: Sat 25th February. | A basic parser for a subset of English. | |
4 | due: Sat 25th March. | N Queens in two different ways. | |
5 | due: Sat 15th April. | Prolog family relationships, here's the diagram. | |
6 | due: Mon 17th April. | A special research project. | |
7 | due: Wed 10th May. | Create and train a single layer neural network. | |
Thursday 11th May is the absolute drop-dead deadline for everything. | |||
Read the Important Rules link above before submitting. |
Quick introductions. Some first thoughts on Artificial Intelligence. | ||||||
(Not deep learning or computer vision), (edges, borrowed from a google search) An overview of what is to come. A lot of it is just clever searching: where we got with the farmer. Outlined Python notes. | ||||||
Finishing the farmer problem. Thinking about the extent to which that program embodies intelligence. A word about the second assignment, and a few more useful python bits. | ||||||
Python has a basic debugger. The rest of strings and lists and tuples and sets and queues, quickly. Today's little examples. httpread.py, lispy.py, lispy2.py, llist0.py, llist.py, match.py, primes.py, qsort.py, revlist.py, tree0.py, tree1.py, tree2.py, treeen.py. sample .csv file. | ||||||
Lisp-like things: being able to incorporate active code in data structures. A bit about the problems of natural language processing. | ||||||
Grammar rules, BNF. Basic parsing techniques. An example grammar and parse trees, and firstfollow.py (incomplete). | ||||||
Finishing the basic parsing technique. A big grammar in a slightly different format. Intelligent Agents. | ||||||
Back to the vacuum cleaner for a moment. Searching. fourstart.py: Starting the sqrt, floor, factorial puzzle - a recursive depth first search. Depth-first with recursion runs into stack size limit. Making our own stack lets it get further but still isn't good enough. | ||||||
four.py: Replacing the queue with a stack gives a breadth first search. More details of classes and functions (up to lambdas). A screen capture of today's python demos. | ||||||
Finish off functions. Some reinforcement: farmer.py farmers.py, farmerq.py. Iterative deepening: plain old recursion, and the result. Eight queens: chessboard, queensexplbt.py (corrected). | ||||||
Short review of methods for the assignment,
(the provided basis),
(a sample grammar). Recursion giving backtracking for the eight queens problem. fifteen.py, eight.py, three.py, Best-first search, requires a score and a min-heap or priority queue. | ||||||
Priority queues and heuristics. eightheap.py (reduce randomisation), eightheap2.py, eightheapc.py, eightheapc2.py. Search Trees. A few more language features: iterables, yield, iterators, special assignments, eval, exec, exceptions, already done classes?. | ||||||
Aside: why += on a tuple seems to work. Review backtracking and best first. | ||||||
First mid-term. 1. Searching: depth-first, breadth-first, best-first, iterative deepening, 2. Backtracking, both explicit and through recursion, 3. Python ability. | ||||||
Finish off the few more features. Hill climbing and genetic algorithms. | ||||||
Break | ||||||
More Searching. Strategies for dealing with incomplete knowledge (maybe not enough sensors) or non-determinism (not sure what will happen, real world: turning motor on might not result in expected movement) And-or trees. Games. Dealing with opponents. Minimax search. | ||||||
Alpha-beta pruning. Logic based agents. Propositional Logic. We had just got into the paragraph labelled Resolution. | ||||||
An example showing the importance of resolution. Predicate Calculus. Unifying, Substituting, and Renaming variables. | ||||||
Prolog. enemy.pl, tj1.pl, tj2.pl, tj3.pl, log.pl. member.pl. | ||||||
When something goes wrong, "Action (h for help) ?", type little t then capital A or sometimes little a, sometimes notrace. and sometimes nodebug.. Family tree assignment. The knight's tour, Farmer, Fox, Chicken, and Corn again, Small parser for English sentences, we didn't do this one, but it would do you good to have a look at it, Reversible operations on numbers, the Peano axioms, Binary trees of numbers. | ||||||
13-Probability, 14-Probabilistic-Reasoning. | ||||||
No regular in-person classes this week. You should have received an email about that. Use the time for a special research assignment, which I have added as assignment 6. | ||||||
Same as Tuesday. | ||||||
Neural Networks: intro, details, final words. | ||||||
Implementation ideas for multi-layer neural networks. Learning decision trees, The restaurant visit example, improved. | ||||||
Second mid-term. 1. Best-first and Heuristic searches, 2. Games, dealing with an opponent or uncooperative environment, 3. Propositional logic, predicate calculus, prolog, 4. Probability and probabilistic reasoning. | ||||||
Planning. Other forms of learning. | ||||||
The minimax solution, just for reference. Solution to question 6. There will be no new question. Natural language in prolog, Natural language with ambiguity. |