This folder has code for all the programming assignments for CSCI 561 Foundations of Artifical Intelligence at USC for the Fall 2016 semester. The following give a brief description of each of the assignments. All of the programming assignments were implemented using Java.
Homework 1 is based on the implementation of global search strategies including uninformed search strategies such as Breadth-First Search(BFS), Depth-First Search(DFS) and Uniform Cost Search(UCS) and informed search strategies such as AStar heuristic search.
Homework 2 was based on adversarial search. I developed a game playing agent using Minimax and Alpha-beta pruning to find the next optimal move for a player in the game Gang War.
Homework 3 was based on inference in First-Order Logic. I developed an agent using the resolution algorithm that, given a Knowledge Base and a query, determines whether the Knowledge base entails the query.
- Involved lexical parsing of logical statement and converting each statement into CNF form. This was done with just the native libraries.
- Apply unification algorithm to among clauses of the Knowledge base to resolve the clauses to determine entailment