Practica2 LabSisData

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 15

Universidad Autónoma de Nuevo León

Facultad de Ingeniería Mecánica y Eléctrica

Materia: Laboratorio de Sistemas Adaptativos


Práctica 2: Redes complejas y caos.

Nombre Matrícula Carrera Semestre


Gael Alejandro Lozano Rodríguez 2022792 ITS 5to
Pablo Jair Tenorio Escalón 1968383 ITS 8vo
José Omar Veloquio Armendáriz 2003478 ITS 6to
Fernando Yahir García Dávila 1995329 ITS 5to
Gustavo Alonso Maass Alvarado 2002179 ITS 6to

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).

2. Guarda en un archivo la matriz de adyacencias para este grafo. El archivo debe


poder ser leído por un programa.

3
Haz un programa que realice lo siguiente:
Leer una matriz de adyacencias desde un archivo (parte del primer avance).

Calcular los valores de n (cantidad de vértices), m (cantidad de aristas) y grado de cada


uno de los vértices. Considera que tu matriz es simétrica.

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

1. ¿En qué lenguaje está hecho el código?

2. ¿Qué librerías se ocupan para correrlo?

3. ¿Qué hace el código que analizaste?

4. ¿Qué tutoriales existen para crear arte con fractales?

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.

Enlace del Video

https://youtu.be/2xICQPccrDE

13
Conclusión

Las redes complejas desempeñan un papel fundamental en la programación, especialmente


en campos como la ciencia de datos, el aprendizaje automático y la optimización. Estas redes,
que a menudo se representan como grafos, permiten modelar y analizar relaciones y estructuras
complejas entre datos o entidades. Su aplicación se extiende a la resolución de problemas
diversos, desde la detección de comunidades en redes sociales hasta la optimización de rutas
en logística. Comprender cómo funcionan las redes complejas y cómo aplicar algoritmos
específicos para trabajar con ellas es esencial para desarrolladores y científicos de datos en la
actualidad.

14

También podría gustarte