Course 2 - Knowledge Based Artificial Intelligence

    Brief Overview

    This class focuses on a more discrete way to generating Artifical Intelligence through analytical and knowledge based reasoning, classification, and framing.

    • Acquire ways to generalize problems through reasoning and analytics.
    • Create heuristics to reduce graph searches and optimize most likely paths.
    • Develop an agent which can solve ARC-AGI problems using knowledge based reasoning.

    Detailed Overview

    Project Overview

    Class was broken into three majors components.

    Mini-Project 1: Sheeps and Wolves

    The purpose of this project was to get all sheep and wolves to the other side of the river based on a few set conditions.

    • The boat must always carry one or two animals at a time.
    • At no point may the wolves outnumber the sheep on either side.
    • The wolves and sheep may remain alone on one side

    There are multiple ways to solve this problem, but I decided to go for a simple breadth first search approach to explore all valid states.

    Thinking back on it now based on the skills I've learned in this class a simple heuristic to explore states which were closer to the goal state of 0 sheep and 0 wolves on the initial side would have lead to a better time complexity.

    Difficulty: 2/5

    Summary: Great first problem to practice exploring different states and compare to how a human versus a computer explores different states to find the solution.


    Project 2: Block World

    The project aims to solve the problem in which an initial set of blocks is given and must be moved using the fewest possible moves to reach a goal state.

    This was the only project where I was unable to find the optimal solution in all instances. I used a greedy algorithm that was based on two principles.

    • Check all of the top blocks in the current arrangement to see if any block can be directly placed onto it’s correct target stack.
    • If no direct placement is possible then move an incorrectly placed block to the table to clear the way and re-verify if Priority 1 can be satisfied.

    Difficulty: 4/5

    Summary: Probbaly one of the more difficult problems in the set. My solution was able to score 38/40 on the test cases, but a few others used an A* algorithm to acquire more successful results.


    Project 3: Sentence Reading

    The project problem begins with two inputs: a sentence and a question. The agent’s goal is to read the sentence and return an answer based on the knowledge contained in the sentence with a few constraints.

    To solve this problem I used framing techniques in which each word was categorized as "nouns", "verbs", "time", "adjectives", "adverbs", etc.

    The questions were then categorized into "who", "what", "where", "when", and "why" to determine the best rule based approach in answering this question.

    Based on keywords in the question the agent would pull specific words from the sentence to acquire the solution to the question

    Difficulty: 5/5

    Summary: This was the most difficult mini project in the course. While my solution did work and was able to score 40/40 the agent required multiple edge cases to handle strangely worded questions in order to find the solution.


    Project 4: Monster Classification

    The project problem begins with two inputs: a list of classified monsters and an unknown sample (e.g. monster or not a monster). The agent's goal is to classify the unknown sample as either a monster or not a monster.

    To solve this problem I constructed two different models: one for a monster classification and for a non-monster classification and updated them based on attributes received from the inputs.

    Would recommend spending time drawing out the general idea before starting.

    Difficulty: 1/5

    Summary: Took probably an hour or two to solve. The lectures help in identifying how to create a classification model.


    Project 5: Monster Diagnosis

    This agent addresses the challenges of diagnosing monster diseases given observations of vitamin elevations/deficiencies (+ / -).

    The agent begins by receiving two inputs: a dictionary of diseases with their vitamin effects and a patient's observed vitamin symptoms, returning the minimal disease set that explains all symptoms observed.

    This could be solved using a a breadth first search or brute force, but I decided to use an A* algorithm that used the number of mismatches from the disease as the main heuristic.

    Difficulty: 2/5

    Summary: Not a difficult problem at all. Could probably be solved in 30 minutes if you decide to solve using a breadth first search.


    Homework 1: Lord of the Rings

    This homework assignment is to draw out all of the different states for crossing a river with Gollum, Frodo, Sam, and the ring.

    The following below are the constraints of the problem:

    • Sam is the only one who can steer the raft.
    • The raft can only carry two people at a time.
    • Frodo or Gollum cannot be alone with Sam on the raft along with the ring.
    • Frodo or Gollum cannot be left alone with the ring on either side of the river bed.

    Not a difficult homework assignment, but quite tedious to draw out all of the different states.

    Difficulty: 1/5

    Summary: Sit down and grab a cup of a tea because it is a bit tedious to draw out the states, but does make you consider all of the different possibilities.


    Homework 2: Is it Soup?

    In this homework assignment the goal is to define heuristics that categorize a soup. While a seemingly simple problem, a deeper dive reveals that there are no universally defining characteristics of a soup.

    By the end of the homework assignment three classification models are generated to help determine the heuristics on what is considered a soup.

    Not difficult, but does take quite a bit of time to draw out and consider different types of soups.

    Difficulty: 2/5

    Summary: This homework assignment is also quite tedious, but interesting as it makes you consider what is actually a soup. In almost all cases I thought of there was no heuristic that could definitively classify if it was a soup or not.


    Homework 3: What Makes Up an Analogy?

    In this assignment the goal is to select an analogy quote written by someone other than myself and develop models of each of the two separate parts of the analogy. Once separated, the next steps are to examine the authors intentions and explain concepts using analogical reasoning explained in lecture.

    Difficulty: 2/5

    This was actually a really good assignment in learning how to break down an analogy to it's core and help build it back up using analogical reasoning and cognitive science.

    Summary: For peer reviews this was one of the more interesting ones as some students came up with very clever ways to break down their analogies as well as rewrite them.


    ARC-AGI Final Project

    The ARC AGI Project focuses on building an agent that can solve up to 96 ARC AGI problems. For this final project I implemented a Domain Specific Language approach and developed over 50 specialized transformation operations. My agent was able to solve 48/48 known test cases and 42/48 unknown problems. This agent focused on utilizing concepts such as case based reasoning, framing, and classification and revealed it's limitations in creative problem solving through visuospatial reasoning and metacognition which distinguishes human like intelligence.

    Difficulty: 4/5

    Summary: If you're new to numpy this is going to make you really good and fast at solving graph like problems. By the end of this I was able to solve many complex graph problems in a matter of minutes due to the repitition and similarity across different ARC-AGI problems. Also most people only solve 60-70 of the problems and are still able to get an A in the course so it's not too difficult in my opinion.