You are on page 1of 2

ADVANCE ALGORITHMS (3720216) 200280702004

Practical-3

Aim: Write a program to identify maximal independent set of any undirected


graph G.

Code:
#Input graph

graph = { 'a' : ['b', 'e'],


'b' : ['a', 'c', 'd'],
'c' : ['b', 'h', 'k'],
'd' : ['b', 'e', 'g', 'k'],
'e' : ['a', 'd', 'f' , 'g'],
'f' : ['e', 'i'],
'g' : ['d', 'e', 'i', 'k'],
'h' : ['c', 'j', 'k'],
'i' : ['f', 'g', 'j'],
'j' : ['h', 'i'],
'k' : ['c', 'd', 'g', 'h']
}

#Function for finding all neighbors of individual vertice

def select_neighbor(vertice):
if vertice in graph.keys():
#print(graph.values())
temp=graph.get(vertice)
temp.append(vertice)
return temp

#Function for finding maximal independent


set

def maximal_inde_set(graph):
set=graph.keys()

#if graph is empty


if not set:
print("Graph is empty")

#Independent set start from first value

#current=list(graph.keys())[0]
maximal=[]

for ele in set:


if ele in set:
temp_set=select_neighbour(el
e)
#print(temp_set)
ADVANCE ALGORITHMS (3720216) 200280702004

for key in temp_set: #del set[key]


set = [ele for ele in set if ele not in temp_set]
maximal.append(ele)
return maximal

max=maximal_inde_set(graph)
print("Maximal Independent Set:",max)

INPUT:

OUTPUT:

You might also like