(5/5)

Important instructions:

1. You cannot use built-in libraries/implementations for learning the parameters of the Bayesian network.

2. Time taken to produce the output will also be taken into account, so you must optimize your code.

What to submit:

Your zip file should contain followings:

• Source code (your solution to the problem, developed using Python)

• writeup.txt: 1-page write-up containing details about code etc.

Objective: Bayesian inference on the given data.

Problem: Bayesian network is a directed acyclic graphical representation of a set of variables and their conditional dependencies. Each variable is represented as a node in the graph and a directed edge between the nodes represents the parent-child relationship between the considered nodes. In this assignment, we will estimate the probability distributions or parameters of a given network. For this, we will make use of a dataset containing samples comprising of values observed for different variables.

input

Line 1: n : no. of variable or nodes (N1, NI N.)

• Line 2 to Line n’ 1: Comma-separated list of all possible values of variables N1 to N.

• Line 2 to Line 2n + 1: n x of l’s and 0’s representing conditional dependencies. e.g. a

the value I at the location (3,2) shows that N2 is conditionally dependent on N

Line 2n + 2: m: no. of samples

• Line 2n * 3 to Line 2n + 2 'm: Comma-separated values observed for all variables (N1. N1 N1)

for each sample.

Sample input:

TRUE. FALSE

TRUE. FALSE

TRUE. FALSE

001

001

000

100

TRUE. FALSE, TRUE

FALSE. TRUE. FALSE

There are three binary variables (N1. N N) in this Bayesian network iere N is conditionally dependent

on Nj and N,. In other words. N1 and N, are the parents of N.

Output

Your program should learn the parameters (probability distributions of each variable) of the given network and return them ¡n the following format

Output format: Print n lines where Line t will contain the probability distribution of variable N1. Line 2 will

contain the probability distribution of variable N2 and so on. Round off the probability value up to 4 decimal

places.

For the above probleni the output is

0.2 0.8

040.6

0.2 0.4 0.3 0.5 0.8 0.6 0.7 0.5

This implies P(NTRUE) 0.2. and P(NFALSE) = 0.8. Similarly P(N:=TRUE) 0.4. and P(NFALSE)

= 0.6. Further. P(N3TRUE[N1TRtJE. N:TRUE) = 0.2. P(Ni=TRUEIN1=ThUE, N2=FALSE) = 0.4.

P(N=TRUEtN1=FALSE, NTRUE) = 0.3 and so on.

(5/5)

DescriptionIn this final assignment, the students will demonstrate their ability to apply two majorconstructs of the C programming language – Fu

Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t

Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th

1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of