COSC 270: Artificial Intelligence

Project 3
Spring 2022

Due: F 3/25 @ 5 PM ET
9 points

  1. Implement Neapolitan's algorithm for probability propagation in trees. Your implementation must be general, meaning that it must work for any tree-structured Bayesian network.

    I put some starter code on cs-class (aka class-1.cs.georgetown.edu). To get started, log on to cs-class and copy over the following zip file:

    cs-class-1% cd
    cs-class-1% cp ~maloofm/cosc270/p3.zip ./
    cs-class-1% unzip p3.zip
    
    In the p3 directory, you will find partial class definitions for Drug, Node, and Network.

  2. Test your implementation using the example from lecture involving the patients who participated in a drug study. You can find this code in Drug.java. It instantiates the evidence that the doctor encountered a cured patient and prints the probability that the patient was part of the drug study.

  3. Implement the following network for determining if an employee is an insider as Insider.java. Let
    $a_{0} =$ the employee is not an insider,
    $a_{1} =$ the employee is an insider,
    $b_{0} =$ the employee was not seen using an external drive,
    $b_{1} =$ the employee was seen using an external drive,
    $c_{0} =$ the employee was not caught exfiltrating documents,
    $c_{1} =$ the employee was caught exfiltrating documents,
    $d_{0} =$ the employee did not conduct uncharacteristic document downloads, and
    $d_{1} =$ the employee conducted uncharacteristic document downloads.
    The network and its probabilities before initialization are as follows:
    After initialization, the state of the network is as follows:
    After instantiating that the employee was seen using an external drive, we have the following network:
    Note that this network is after Neapolitan's in Section 6.2.2.

  4. For both networks, the main method should print the entire state of all of the nodes in the network before initialization, after initialization, and after instantiation.

Instructions for Electronic Submission

In a file named HONOR, provide the following information:
Name
NetID

In accordance with the class policies and Georgetown's Honor Code,
I certify that, with the exceptions of the course materials and those
items noted below, I have neither given nor received any assistance
on this project.

When you are ready to submit your project for grading, put your source files, Makefile, and honor statement in a zip file named submit.zip. Upload the zip file to Autolab using the assignment p3. Make sure you remove all debugging output before submitting.

Plan B

If Autolab is down, upload your zip file to Canvas.

Copyright © 2022 Mark Maloof. All Rights Reserved. This material may not be published, broadcast, rewritten, or redistributed.