import platform
platform.platform()
platform.python_version()
import networkx as nx
nx.__version__
from pylab import *
%matplotlib inline
import random
import DSTG
G=nx.Graph()
G.add_weighted_edges_from((u,v,random.randint(1,8)) for u,v in nx.petersen_graph().edges())
G.edges(data=True)
nx.write_edgelist(G,"tezinskiPetersen.edgelist")
nx.write_multiline_adjlist(G,"tezinskiPetersen.multiadjlist")
dat=open("tezinskiPetersen.edgelist",'r')
print(dat.read())
dat.close()
dat=open("tezinskiPetersen.multiadjlist",'r')
print(dat.read())
dat.close()
Z1=nx.read_edgelist("tezinskiPetersen.edgelist",nodetype=int)
Z1
Z1.nodes()
Z2=nx.read_multiline_adjlist("tezinskiPetersen.multiadjlist",nodetype=int)
Z2
Z2.nodes()
tezinskiGraf1=nx.read_edgelist("tezinskiGraf1.edgelist",nodetype=str)
figure(figsize=(8,6))
DSTG.CrtajTezinskiGraf(tezinskiGraf1, pos={'A':(0,2),'B':(0,4),'C':(0,0),'D':(2,4),'E':(2,2),'F':(2,0),'G':(4,4),'H':(4,2),'I':(4,0)},
rubVrha='k',velicinaVrha=500,fontTezine=14)
nx.to_pandas_adjacency(tezinskiGraf1,dtype=int)
nx.adj_matrix(tezinskiGraf1).todense()
nx.dijkstra_path(tezinskiGraf1,'A','E')
nx.shortest_path(tezinskiGraf1,'A','E')
nx.dijkstra_path_length(tezinskiGraf1,'A','E')
nx.shortest_path_length(tezinskiGraf1,'A','E')
nx.dijkstra_path(tezinskiGraf1,'A','H')
nx.shortest_path(tezinskiGraf1,'A','H')
nx.dijkstra_path_length(tezinskiGraf1,'A','H')
nx.shortest_path_length(tezinskiGraf1,'A','H')
nx.single_source_dijkstra_path(tezinskiGraf1,'A')
nx.single_source_dijkstra_path(tezinskiGraf1,'B')
nx.single_source_shortest_path(tezinskiGraf1,'A')
nx.single_source_shortest_path(tezinskiGraf1,'B')
nx.single_source_dijkstra_path_length(tezinskiGraf1,'A')
nx.single_source_dijkstra_path_length(tezinskiGraf1,'B')
nx.single_source_shortest_path_length(tezinskiGraf1,'A')
nx.single_source_shortest_path_length(tezinskiGraf1,'B')
nx.single_source_dijkstra(tezinskiGraf1,'A')
nx.single_source_dijkstra(tezinskiGraf1,'B')
list(nx.all_pairs_shortest_path(tezinskiGraf1))
list(nx.all_pairs_shortest_path_length(tezinskiGraf1))
list(nx.all_pairs_dijkstra_path(tezinskiGraf1))
DSTG.ispis(list(nx.all_pairs_dijkstra_path_length(tezinskiGraf1)),80)
nx.dijkstra_predecessor_and_distance(tezinskiGraf1,'A')
nx.dijkstra_predecessor_and_distance(tezinskiGraf1,'B')
nx.dijkstra_predecessor_and_distance(tezinskiGraf1,'F')
nx.predecessor(tezinskiGraf1,'A')
pozicije={'A':(0,2),'B':(0,4),'C':(0,0),'D':(2,4),'E':(2,2),'F':(2,0),'G':(4,4),'H':(4,2),'I':(4,0)}
DSTG.CrtajNajkraciPut(tezinskiGraf1,pozicije,'A','H',velicinaVrha=500,fontTezine=14,rubVrha='k')
DSTG.CrtajNajkraciPut(tezinskiGraf1,pozicije,'A','E',velicinaVrha=500,fontTezine=14,rubVrha='k')
DSTG.CrtajNajkraciPut(tezinskiGraf1,pozicije,'A','H',velicinaVrha=500,rubVrha='k',tezine=False)
DSTG.CrtajNajkraciPut(tezinskiGraf1,pozicije,'A','E',velicinaVrha=500,rubVrha='k',tezine=False)
DSTG.StabloNajkracihPutova(tezinskiGraf1,pozicije,'A',velicinaVrha=500,fontTezine=14,rubVrha='k')
DSTG.StabloNajkracihPutova(tezinskiGraf1,pozicije,'B',velicinaVrha=500,fontTezine=14,rubVrha='k')
DSTG.StabloNajkracihPutova(tezinskiGraf1,pozicije,'A',velicinaVrha=500,rubVrha='k',tezine=False)
DSTG.StabloNajkracihPutova(tezinskiGraf1,pozicije,'B',velicinaVrha=500,rubVrha='k',tezine=False)
DSTG.KorijenskoStabloNajkracihPutova(tezinskiGraf1,'A',velicinaVrha=500,rubVrha='k',fontTezine=14)
figure(figsize=(6,7))
DSTG.KorijenskoStabloNajkracihPutova(tezinskiGraf1,'B',velicinaVrha=500,rubVrha='k',fontTezine=14)
DSTG.KorijenskoStabloNajkracihPutova(tezinskiGraf1,'A',velicinaVrha=500,rubVrha='k',tezine=False)
DSTG.rucni_Dijkstra_graf(tezinskiGraf1,'A')
DSTG.rucni_Dijkstra_graf(tezinskiGraf1,'B')
nx.floyd_warshall(tezinskiGraf1)
print(nx.floyd_warshall_numpy(tezinskiGraf1,nodelist=['A','B','C','D','E','F','G','H','I']))
DSTG.ispis(nx.floyd_warshall_predecessor_and_distance(tezinskiGraf1),80)
DSTG.FW(tezinskiGraf1,step=[0,3,5,7,9],ncol=3)
F1=nx.Graph({"v1":{"v2":{'weight':2}},"v2":{"v3":{'weight':3}},"v3":{"v4":{'weight':1}}})
figure(figsize=(6,2))
DSTG.CrtajTezinskiGraf(F1,{'v1':(0,0),'v2':(1,0),'v3':(2,0),'v4':(3,0)},velicinaVrha=500,rubVrha='k',fontTezine=14)
DSTG.FW(F1,step=range(5),ncol=5)
F2=nx.Graph({"v1":{"v2":{'weight':15},"v3":{'weight':5},"v4":{'weight':1}},"v2":{"v3":{'weight':8},
"v5":{'weight':3}},"v4":{"v5":{'weight':2}}})
figure(figsize=(8,5))
DSTG.CrtajTezinskiGraf(F2,{"v1":(0,3),"v2":(2,3.5),"v3":(1.2,2),"v4":(0.5,0),"v5":(4,0.3)},velicinaVrha=500,rubVrha='k',fontTezine=14)
DSTG.FW(F2,step=range(6),ncol=3,redoslijed_vrhova=['v1','v2','v3','v4','v5'])