Download - Practica #2
Practica #2Análisis de Redes Complejas
Laboratorio de Sistemas AdaptativosMartes – M4.M5
Angel Rodolfo Reyna Acevedo 1459652Lucía Guadalupe Moyeda Cornejo 1145154
Adrian Vega Magaña 1497896Lucero Itzel Ramos García 1491994
En esta practica de laboratorio , tuvimos que elegir uno de los temas vistos en la Unidad 2 de Sistemas Adaptativos y decidimos realizar el Análisis de Redes Complejas.
Primero definiremos unos conceptos básicos Una red es un conjunto de vértices unidos por un conjunto de
aristas Un grafo es un conjunto de objetos
llamados vértices o nodos unidos por enlaces llamados aristas o arcos, que permiten representar relaciones binarias entre elementos de un conjunto.
Una red compleja se refiere a una red (grafo) que posee ciertas características topológicas no triviales que no ocurren en redes simples(una cola pesada en la distribución de grado, un alto coeficiente de agrupamiento, una estructura comunitaria a muchas escalas, y evidencias de una estructura jerarquizada).
Introducción
El objetivo de esta practica, es poner en practica el análisis de las métricas en redes complejas
Aprender a utilizar nuevas tecnologías para su creación y análisis
Objetivo
Uno de los motivos que nos llevo a seleccionar este tema, es que no fue tan hablado entre los compañeros como los AG, decidimos que queríamos hacer algo diferente, ver como podrían aplicarse los otros temas en X lenguaje
Lo que confirmo el tema, es que las redes se viven a diario en muchos ámbitos, sociales, tecnológicos, etc. Y quisimos adentrarnos un poco mas, para poder entender todo lo que nos rodea cada día
Justificación
Para desarrollar esta practica, utilizamos Python y tres librerías especializadas en el tema de redes complejas:
Numpy: extensión de Python que agrega mayor soporte para vectores y matrices
Networkx: es una librería de Python para el estudio de graficas y redes.
Matplotlib: librería para la generación de gráficos a partir de datos contenidos en listas o array
Desarrollo
El propósito del programa es el de crear un grafo con un numero aleatorio de vértices y un numero aleatorio de aristas para su posterior análisis.
Una vez obtenido el grafo, se analizan las métricas básicas , vistas en clase.
Proposito
def __init__(self):self.G = nx.Graph();self.nodos = randint(11,25);print 'La cantidad de nodos es: ',
self.nodos;for n in range(0,self.nodos):
self.G.add_node(n);print(self.G.nodes());
#Generar las aristasdef Aristas(self):
aristas = randint(10,25);print 'La cantidad de aristas es: ',
aristas;for a in range(0,aristas):
nd1 = randint(0,self.nodos);#nd2 = randint(0,self.nodos);print '[',a,'--',nd1,']';self.G.add_edge(a,nd1);
print (self.G.edges());
Código
#Mostrar la reddef Mostrar(self):
nx.draw(self.G);plt.show();
def Diametro(self):c = nx.eccentricity(self.G);print 'Diametro: 'print c;
def Centralidad(self):cen = nx.degree_centrality(self.G);print 'Grado de centralidad de los nodos: 'print cen;
def MatrizAdyacencia(self):#M = adjacency_matrix(self.G);print 'Matriz de adyacencia --> 'print nx.adjacency_matrix(self.G);
Código
def Densidad(self):print 'La densidad del
grafo es: 'print nx.density(self.G);
def Geodecica(self):#c = radius(self.G);#print 'Center: ', c;p =
nx.shortest_path(self.G);print 'Shortest: ' print p;
Resultados
•Aquí se muestran dos nodos enlazados, de manera vertical y a manera de coordenada•También se muestra la densidad del grafo generado
Matriz de adyacenciaDado que el grafo era algo grande, todos los datos arrojados siempre rebasaban el tamaño de la pantalla y la forma de matriz se ve un poco afectada por ello
Los nodos enlazados en un inicio, son los nodos conectados. Tenemos dos ejemplos, los nodos encerrados en la primera pantalla con rojo, son estos mismo, también encerrados con rojo
En esta practica primero que todo, nos adentramos mas a Python, nos dimos cuenta que es una tecnología muy versátil gracias a las librerías que podemos encontrar en internet, esto hace que podamos utilizarlo con cualquier objetivo (investigación, entretenimiento, etc.).
Practicamos mas lo visto en clase y ahora sabemos, que hay métricas que se dan solo en ciertas condiciones, como el Diametro, que tienen que estar todos los vértices enlazados entre si
Conclusiones