I finished Unit 2 of M366 Block 2 yesterday, so I spent most of this afternoon writing up my notes on search algorithms and heuristics. And there were tons of them! I didn’t appreciate just how many topics were covered in Unit 2 until I started to summarise them in my M366 tiddlywiki.

One concept that it took me a while to get the hang of was alpha-beta pruning. There’s a great flash demonstration of alpha-beta pruning on the M366 course website (unfortunately only available to M366 students), which helped a lot; but oddly, the thing helped the most was going through the pseudocode example from the course text, rewriting it slightly so that it had a more familiar structure, and adding comments to each line describing what the code was doing. Once I’d done that, and I finally got my head around the recursive back-and-forth calling of the `ValueOfMax` and `ValueOfMin` functions, the exercises in Unit 2 actually made some kind of sense!

I feel pretty confident about minimax and alpha-beta pruning now, so hopefully I’ll be able to put that to use in the rest of TMA01. I’m probably the least confident about hill-climbing search, as it seems quite similar in some ways to best-first search, so I might end up getting features of the two mixed up. The other thing I’m still a bit shaky on is discussing the completeness, optimality and efficiency of a given algorithm. I’m not sure whether we’ll be required to write about why a certain algorithm is or isn’t complete, for example – but on the basis of the wordiness of TMA01 Q1, I think we probably will, so I definitely need to get a bit more confident in my understanding of the advantages/disadvantages of each kind of search.

Anyway, shakiness notwithstanding, I can technically start my answers for Questions 3 and 4, now that I’ve finished this unit – but not Question 2 yet. This is how the TMA is structured:

Question Necessary bit of course material
1 Block 1 Unit 1, Block 2 Unit 1
2 Block 2 Units 3 & 4
3 Block 2 Unit 2
4 Block 2 Unit 2

So I’ll be doing Q3, then Q4, and then going back to Q2 – hopefully I won’t forget to do it altogether!