1 | due: Wednesday 22nd January | A reading assignment. | |
2 | due: Tuesday 11th February | Complete the breadth-first farmer and fox solver. | |
3 | due: Monday 24th February | Solve the N Queens problem two different ways. | |
4 | due: Sun 13th April | Experiment in Natural Language understanding. Python code, Dictionary, Grammar. The now-complete write-up of how it all works. | |
5 | due: Wed 23rd April | Two exercises in prolog. Here is the family tree diagram. | |
6 | due: Mon 28th April | A program that uses minimax to play Nim against itself or a human. | |
Read the Important Rules link above before submitting. |
Quick introductions, There is a special reading assignment to get us started. Some introductory thoughts. A little problem. | ||||||
Exploring Python. | ||||||
Day Off | 15th | |||||
The farmer, fox, etc, etc puzzle, a very basic but real AI solution is used. Also the Python dict (dictionary) data type is introduced, and how to make a mutable object hashable. | ||||||
Generalising searches. Valuation and cost functions, maybe no goal state, just something good enough. Open set and closed set. Backtracking: given for free by recursion if used correctly. Sensible implementation of a queue for breadth-first search. A bit about iterative deepening. | ||||||
Getting value from Python exceptions. Building a binary tree, first as an example, then as a demonstration of iterative deepening: Iterative deepening vastly reduces memory requirement for BFS. | ||||||
Bacon and Kepler. A little bit of lisp. | ||||||
defining functions,
data structures,
a better way of getting input,
almost lazy evaluation. (added an extra 0 parameter function eratosthenes, as a challenge for anyone interested, after import lispy5 as L and L.run(), enter e.g. (first 100 (eratosthenes)) you'll probably see what it does almost immediately, the challenge is in working out exactly how it does it) | ||||||
(Intelligent?) Agents. | ||||||
Hackathon announcement for 22-23 Feb. Some real problem solving, but it's only a puzzle. queen-attacks.pdf. | ||||||
A more convenient setup for windows. Soduko puzzles for controlled searches. This is the basic depth-first search, print_grid uses unicode, paint_grid does the same but with tkinter. This is the more controlled depth-first search with its subtle error intact. | ||||||
The final version fully correct. What was "more controlled" about the final version? Backtracking now explicit and more efficient. Comparing Breadth first search, Dijkstra's algorithm and A* search in the context of real world shortest path. Heuristics, admissibility and consistency give guarantees. | ||||||
atn, vocab, grammar | ||||||
The traditional parsing method for logical (such as programming) languages, can't handle ambiguity and others. The ATN approach and its complicated needs. | ||||||
ATNs tamed at last. | ||||||
First mid-term test, a sample test Topics: searching of trees, graphs, and state spaces, depth first (with recursion and with explicit stack), breadth first, depth first with iterative deepening, best first, heuristic, backtracking (both through recursion and explicitly controlled), Dijkstra's algorithm, A* algorithm, basic python. | ||||||
Break | 10th to 14th | |||||
To be tidied up, for upcoming assignment: dictionary, grammar, atn. Logic based agents: pdf and docx. | ||||||
Logic and resolution. | ||||||
Quite a bit of prolog. | ||||||
prolog-backtrack.pdf, prolog-backtrack.docx, Reversible arithmetic with the Peano axioms. knight-pl.pdf, knight-pl.docx. The complete unification algorithm. | ||||||
Before moving on: recording the path taken in prolog. | ||||||
Neural Networks, A very simple one. | ||||||
Neural Networks, Smallest possible, just one neuron, Little n-grams. | ||||||
Training a neural network with hidden layers. Probability and probabilistic reasoning. | ||||||
reminders (to me). Probability, probabilistic reasoning, and fuzzy logic. | ||||||
Competitive games (like many real life situations) naughts and crosses as an example: The minimax strategy, and that in Python. | ||||||
Second mid-term: Sample test. Topics: Aspects of searching not covered by first test (mainly iterative deepening, open and closed sets), Logic and resolution, Prolog programming. Neural networks. Probability and related topics. | ||||||
The minimax naughts and crosses with optional human player. alpha-beta pruning with minimax. Wordnet - a kind of semantic network, and its little codes. A very old approach to natural language processing. A little bit of natural language processing in prolog. | ||||||