Introdução aos Conceitos e Ferramentas

1. Python

Tipos de alto nível

3. Função lista2adjacencia: Eliminação do FOR

Função substituindo o laço FOR:

1 from numpy import *
2 
3 def lista2adjacencia(L):
4     #pegando o número máximo da lista de arcos, correspondente a quantidade total de nós
5     n = L.max()+1
6     A = ones((n,n)) * float('inf')
7     A[ L[:,0], L[:,1] ]=1
8     return A
  • Testando
 1 from iaOPF import iaadjmxtcreate
 2 from rod_2 import *
 3 
 4 L = array([[0,1],[3,2],[1,0],[3,0]])
 5 print L
 6 
 7 print L.shape
 8 
 9 print("\n")
10 graph = lista2adjacencia(L)
11 print graph
12 mmgraphviz(iaadjmxtcreate(graph))
[[0 1]
 [3 2]
 [1 0]
 [3 0]]
(4, 2)


[[ Inf   1.  Inf  Inf]
 [  1.  Inf  Inf  Inf]
 [ Inf  Inf  Inf  Inf]
 [  1.  Inf   1.  Inf]]
/media/_xsb/courseIA368Q1S2012/rod_2/GRVIZ61765_001.png