Practica2 LabSisData
Practica2 LabSisData
Practica2 LabSisData
Grupo: 206
Docente: Ing. Laura Patricia del Bosque Vega
Pedro de Alba s/n, Ciudad Universitaria, San Nicolás de los Garza, Nuevo León, CP.66451
1
Introducción
En esta práctica, exploraremos el ámbito de las redes complejas, que consisten en una
gran cantidad de nodos que se relacionan entre sí mediante conexiones. Nos
enfocaremos en el análisis de un grafo particular, diseñado por nosotros para reflejar la
red social entre los integrantes de nuestro equipo. Además, realizaremos
presentaciones basadas en investigaciones previas, fundamentales para este ejercicio
práctico.
Objetivo
El propósito principal de esta práctica es comprender una red compleja que involucra
conjuntos de nodos, además de adquirir un conocimiento más profundo sobre el
funcionamiento de los grafos. Esto nos permitirá obtener una comprensión más amplia
de todo el proceso de integración.
Justificación
Esta práctica está vinculada a los contenidos de la Unidad 2 ("Sistemas complejos") del
curso de Programación de Sistemas Adaptativos. Se divide en dos secciones: el
análisis de redes complejas y la creación de arte con fractales. Estas divisiones tienen
como objetivo facilitar la organización del trabajo, y a medida que avancemos,
definiremos nuestros progresos en cada una de ellas
2
Desarrollo
Redes complejas
Realiza los siguientes ejercicios.
1. Dibuja un grafo que represente una pequeña parte de tu red de amistades
(considera 10 amigos).
3
Haz un programa que realice lo siguiente:
Leer una matriz de adyacencias desde un archivo (parte del primer avance).
4
1. Creación del Grafo Aleatorio:
• Datos y Parámetros:
• Nodos (Amigos): Representados por números enteros del 1 al 10.
• Probabilidad de Conexión: Establecido en 50% para representar la posibilidad
de que dos amigos estén conectados.
• Variaciones Implementadas:
• Aleatoriedad en Conexiones: Cada par de nodos tiene una probabilidad
independiente de 50% para crear una arista entre ellos.
2. Visualización:
• Herramientas Utilizadas:
• NetworkX: Para la gestión de estructuras de datos de grafos.
• Matplotlib: Para la representación gráfica del grafo.
• Metodología de Visualización:
• Se utiliza la función draw de NetworkX con etiquetas para identificar cada nodo.
3. Almacenamiento de la Matriz de Adyacencias:
• Proceso de Almacenamiento:
• La matriz de adyacencias del grafo se convierte en una matriz densa con la
función todense.
• Se guarda en un archivo de texto adjacency_matrix.txt utilizando NumPy para
la escritura de archivos.
4. Cálculo de Métricas:
• Lectura de la Matriz:
• La matriz se lee del archivo guardado para reconstruir la estructura del grafo.
• Métricas Calculadas:
• Número de Nodos (n): Total de amigos representados.
• Número de Aristas (m): Total de conexiones entre amigos, sin contar
duplicados para grafos no dirigidos.
• Grado de Cada Vértice: Número de amigos directamente conectados a cada
individuo.
5
Caos: arte con fractales
Realiza una presentación de 4-7 filminas donde contestes las preguntas que se presentan
a continuación. Cada filmina deberá contener máximo 7 puntos (bullets), y cada punto
deberá contener de 7-9 palabras. La presentación deberá contener al menos una imagen
relevante de acuerdo a lo que se investigó y también las referencias que utilizaste.
Preguntas
1. ¿Qué es un fractal?
2. ¿Cómo se puede hacer arte con fractales? (Aquí puedes considerar ya sea música o
arte visual.)
3. ¿Cómo se ve una imagen creada con fractales? (Proporciona un ejemplo.)
4. ¿Qué herramientas existen para crear arte con fractales?
6
7
8
Busca un ejemplo de código que haga arte con fractales y realiza una presentación de 4-7
filminas (adicional a la que hiciste para el primer avance) donde contestes las preguntas
que se presentan. Cada filmina deberá contener máximo 7 puntos (bullets), y cada punto
deberá contener de 7-9 palabras. La presentación deberá contener las referencias que
utilizaste. (6 pts)
Preguntas
Código de Ejemplo:
9
10
10
11
Código
12
Resultados
Se puede observar la matriz de adyacencia que el programa genera y lee, también nos
genera gráficamente los resultados usando librerías específicas de Python. Además,
en la consola podemos ver los resultados, como los nodos, aristas y los grados de
cada vértice.
https://youtu.be/2xICQPccrDE
13
Conclusión
14