0% found this document useful (0 votes)
147 views9 pages

COMSATS University Islamabad Lahore Campus: Midterm Terminal Examination - Fall 2021

This document contains instructions for an Artificial Intelligence lab exam for Nabeel Ahmad. It includes two questions - the first asks to write a Python program to find the most cost-effective path between nodes in a graph using the A* search algorithm. The second asks to construct a semantic network in Neo4j to represent relationships between people and animals, then write Cypher queries to add, modify and delete relationships and nodes in the network and find answers to specified queries.

Uploaded by

NABEEL AHMAD
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
147 views9 pages

COMSATS University Islamabad Lahore Campus: Midterm Terminal Examination - Fall 2021

This document contains instructions for an Artificial Intelligence lab exam for Nabeel Ahmad. It includes two questions - the first asks to write a Python program to find the most cost-effective path between nodes in a graph using the A* search algorithm. The second asks to construct a semantic network in Neo4j to represent relationships between people and animals, then write Cypher queries to add, modify and delete relationships and nodes in the network and find answers to specified queries.

Uploaded by

NABEEL AHMAD
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

COMSATS University Islamabad Lahore Campus

√ Midterm □ Terminal Examination – Fall 2021

Course Title: Artificial Intelligence - Lab Course Code: CSC462 Credit Hours: 1(0,1)
Course Dr. Atifa Athar Programme Name: BS Computer Science
Instructor/s:
Semester: 6th Batch: SP19 Section C Marks: 25
Due on 11-11-2021 Time 80+10 Mins
Name: Nabeel Ahmad Registration no: SP19-BCS-114
 No late submissions will be accepted.
 you are required to be submit solution using attached template only.
 Upload your solution to the google classroom

Section: 1
Question No 1. Marks: 10
Write a complete program of A* in python for the following graph to find the most cost-effective path
to reach from start state A to final state G. (Attach the code). Print the program output as well.

Code:
# -*- coding: utf-8 -*-
"""
Created on Thu Nov 11 13:50:38 2021
@author: Nabeel
"""

Graph = {
"A" : [("B",2),("E",3)],
"B" : [("A",2),("C",1),("G",9)],
"E" : [("A",3),("D",6)],
"C" : [("B",1)],
"G" : [("B",9),("D",1)],
"D" : [("E",6),("G",1)]
}

Heuristics = {
"A" : 11,
"B" : 6,
"E" : 7 ,
"C" : 99,
"G" : 0,
"D" : 1
}

def getHeuristic(n):
return Heuristics[n]

def getClose(n , j):


return Graph[n][j][0]

def getCost(n , j):


return Heuristics[n][j][1]

def calGraph(x, y, s, e, z=[]):


z = z + [s]
lowest = 100
minNode = None

if s == e:
return z

if s not in x:
print("Node not found")

if e not in x:
print("Node not found")

for n in x[s]:
node = getHeuristic(n[0])
if node < lowest:
lowest = node
lowestNode = n[0]
if lowestNode not in z:
np = calGraph(x, y, lowestNode, e, z)
if np != 'null':
return np
return None

print ("A* path is", calGraph(Graph, Heuristics,"A", "G"))

Outputs:
Section: 2
Question No 2. Marks: 5 + 10 = 15
Construct a Semantic network for the following statements in neo4j
1. Diana has a cat named “Marie”.
2. Marie has white fur.
3. John is the only son of Diana.
4. Jill doesn’t love horses but loves cats.
5. Jill is the stepsister of John.
1.1. Write a cypher statement to add Diana likes to grow plants.
1.2. Write a cypher statement to modify Jill is the stepsister of John = > Jill is the real sister of
John
1.3. Write cypher statements to delete following statements Marie has white fur.
1.4. Write cypher statements to find the answer of following queries:
a. Who is the son of Diana?
b. Which animal Jill loves?

Graph code:
Create (a:Cat {name:'Marie',fur:'White'}),(b:Cat{name:'Cat'}),(c:Horses {name:'Horses'}),
(d:Person {name:'Diana'}),(e:Person{name:'John'}),(f:Person{name:'Jill'}),
(a)- [:Is_a] -> (b),
(d)- [:Has_cat] -> (a),
(e)- [:Son_of] -> (d),
(f)- [:Does_nt_Love] -> (c),
(f)- [:Loves] -> (a),
(f)- [:Step_Sister] -> (e)

1.1
Match (n:Person {name:'Diana'})
Create (n)- [:Likes_To_Grow] -> (p:Plants {name:'Plants'})
1.2
Match (j:Person {name:'Jill'}) - [r:Step_Sister] -> (m:Person {name:'John'})
Delete r
Create (j)- [:Real_Sister] -> (m)
1.3
Match (n:Cat{name:'Marie'})
Remove n.fur
1.4
Match (n:Person{name:'Diana'})
Return n.Son

1.5
Match (j:Person {name:'Jill'})
Return j.Loves

You might also like