Facultad de Matemática y Computación Universidad de La Habana
Propuesta de una metodología para simular el comportamiento de una información en redes sociales.
Autor Oscar S. González Mota Tutor Lic. Yudivián Almeida Cruz
Trabajo de Diploma presentado en opción del título de Licenciado en Ciencia de la Computación Junio de 2009
A
mi familia querida y aguerrida que nunca se cansa, ...y representa mi columna espiritual... ...A mi mama, mi papa, mis abuelas y abuelos... ...A mi segundo papa ...
Agradecimientos
A mi tutor Yudivián que es un personaje celebre. A mi guía de estudio Otero por estar siempre luchando con nosotros. A ese grupito de aplicaciones que con el que me relaciono día a día, a Campi, Danelia y Jacque que tanto me ayudaron en lograr mi objetivo. A mis compañeros de aula Josué, Maurice, Nestor, David, Marcel, Joan, Yanay, German, Alejandro que luchan por alcanzar este sueño. A mis compañeros graduados Erick, Daniel, Juliet, Raidel, Dayana, Maibis, Eidel, Yanice que han compartido incontables experiencias. A mis profesores y alumnos ayudantes que se sacrificaron los fines de semanas por aportar un granito de arena en mis conocimientos. A todos los que me han dado apoyo constante e incondicional a lo largo de mi carrera estudiantil y mi vida personal. … Hacia aquellas personas que luchan por algo sin cesar...
Resumen Se propone una metodología para la diseminación de la información en una red social, el cual esté estructurado de forma que pueda simular las características que incluyan los sistemas actuales. A través de las redes complejas se procede a brindar una alternativa para la implementación del mismo, estudiando sus características y propiedades. Además de utilizar el empleo de la lógica difusa, el concepto de perfil y la inserción de los pesos, para efectuar el proceso de divulgación de la información en la red.
Índice general Introducción
1
1. Redes sociales
3
1.1 Definición
.
.
.
.
.
.
.
.
3
.
.
.
.
.
.
.
4
1.2.1 Teoría de los seis grados de separación .
.
.
6
1.2.2 Proyecto small_world
1.2 Origen
.
.
.
.
.
7
1.3 Proyectos de redes sociales en internet .
.
.
.
7
1.3.1 MySpace .
.
.
.
.
.
.
8
1.3.2 Facebook .
.
.
.
.
.
.
9
1.3.3 Orkut
.
.
.
.
.
.
10
1.3.4 Otras redes sociales
.
.
.
.
.
10
1.3.5 Aplicaciones
.
.
.
.
.
11
1.3.5.1 APIs de Facebook
.
.
.
.
11
1.3.5.2 OpenSocial de Google .
.
.
.
12
.
.
2. Redes Complejas 2.1 Definición
13 .
.
.
.
.
.
.
.
13
.
.
.
.
.
14
2.3 Modelos de construcción de redes
.
.
.
.
16
2.4 Grafos aleatorios
.
.
.
.
16
.
.
.
.
17
.
.
.
.
17
.
.
.
.
.
18
2.5.1 Modelo Albert Barabási .
.
.
.
.
19
2.5.2 Enlace preferencial
.
.
.
.
.
19
2.5.3 Adaptabilidad
.
.
.
.
.
21
2.5.4 Crecimiento de redes
.
.
.
.
.
21
2.6 Modelo Powerlaw Cluster
.
.
.
.
.
22
2.2 Propiedades y características .
.
2.4.1 Modelo Erdos-Renyi(E-R) 2.4.1.1 Estructura del modelo 2.5 Redes de libre escala
.
.
I
3. Diseño e Implementación 3.1 Diseño
.
24 .
.
.
.
.
.
24
3.1.1 Formación de la red
.
.
.
.
.
.
24
3.1.2 Peso en las aristas
.
.
.
.
.
.
26
3.1.3 Envío de la información
.
.
.
.
.
26
3.1.4 Sistema Difuso
.
.
.
.
..
27
.
.
.
.
.
29
3.2.1 Librerías utilizadas
.
.
.
.
.
29
3.2.2 Estructura de la aplicación
.
.
.
.
.
30
3.2.3 Modulo interfaz
.
.
.
.
.
31
.
3.2 Implementación de la aplicación
3.2.4 Modulo simulator
.
.
.
.
.
.
32
3.2.5 Modulo útil
.
.
.
.
.
.
34
.
.
.
.
35
.
3.2.5.1 Modulo evento 3.2.6 Modulo system
.
.
.
.
.
.
35
3.2.7 Modulo perfiles
.
.
.
.
.
.
37
.
.
.
.
38
3.2.7.1 Modulo introvertido, conservador, sociable,comunicador 3.2.8 Modulo func_gráficas .
.
.
.
.
.
39
3.2.9 Interfaz de la aplicación
.
.
.
.
.
39
4. Resultados realizados
43
4.1 Grafo Erdos-Renyi .
.
.
.
.
.
.
44
4.2 Grafo Albert Barabási
.
.
.
.
.
.
47
4.3 Grafo Power-law Cluster
.
.
.
.
.
.
50
4.4 Comparativas entre modelos.
.
.
.
.
53
Conclusiones
55
Recomendaciones
56
Bibliografía
57
II
Índice de figuras 1.1
Esquema de una red social
.
.
.
.
.
.
4
1.2
Esquema de la teoría de los seis grados
.
.
.
.
6
2.1
Esquema de una red Heterogénea,modularidad alta .
.
.
15
2.2
Esquema de una red Aleatoria
.
.
.
.
.
17
2.3
Esquema de una red Barabási (1)
.
.
.
.
.
19
2.4
Ejemplo de enlace preferencial
.
.
.
.
.
20
2.5
Ejemplo de una red Powerlaw Cluster
.
.
.
.
22
2.6
Ejemplo de una red Barabási (2)
.
.
.
.
.
23
3.1
Esquema IN: Ajena
.
.
.
.
.
.
28
3.2
Esquema IN:Interesante
.
.
.
.
.
.
28
3.3
Esquema NR:Enemigo
.
.
.
.
.
.
28
3.4
Esquema NR:Conocido
.
.
.
.
.
.
28
3.5
Esquema NR:Amigo
.
.
.
.
.
.
28
3.6
Arquitectura del software por módulos
.
.
.
.
31
3.7
Esquema del Sistema difuso
.
.
.
.
.
.
36
3.8
Esquema de la interfaz
.
.
.
.
.
.
39
3.9
Esquema de Datos del modelo Barabási
.
.
.
.
40
3.10 Esquema de Datos del modelo Erdos Renyi
.
.
.
40
3.11 Esquema de Datos del modelo Powerlaw Cluster
.
.
.
40
3.12 Esquema de Configuración de Perfiles (1)
.
.
.
.
41
3.13 Esquema de Configuración de Perfiles (2)
.
.
.
.
41
3.14 Esquema de Otras Propiedades
.
.
.
.
.
42
3.15 Esquema de graficación
.
.
.
.
.
42
4.1
Esquema del grafo Erdos Renyi para n=100, k=0.04 (G1) .
.
44
4.2
Tabla del grafo Erdos Renyi para n=100, k=0.04 (G1)
.
.
44
4.3
Esquema del grafo Erdos Renyi para n=100, k=0.26 (G2) .
.
45
4.4
Tabla del grafo Erdos Renyi para n=100, k=0.26 (G2)
.
.
45
4.5
Esquema del grafo Erdos Renyi para n=1000, k=0.01 (G3) .
.
46
4.6
Tabla del grafo Erdos Renyi para n=1000, k=0.01 (G3)
.
.
46
4.7
Esquema de una red de Barabási para n=100 y m=2 (G1)
.
.
47
4.8
Tabla de una red de Barabási para n=100 y m=2 (G1)
.
.
47
.
III
4.9
Esquema de una red de Barabási para n=100 y m=25 (G2) .
.
48
.
.
48
4.11 Esquema de una red de Barabási para n=1000 y m=5 (G3) .
.
49
4.12 Tabla de una red de Barabási para n=1000 y m=5 (G3)
.
49
4.10 Tabla de una red de Barabási para n=100 y m=25 (G2)
.
4.13 Esquema del grafo Power-law Cluster para n=100, m=2, k=1.0 (G1)
50
4.14 Tabla del grafo Power-law Cluster para n=100, m=2, k=1.0 (G1) .
50
4.15 Esquema del grafo Power-law Cluster para n=100, m=15, k=1.0 (G2)
51
4.16 Tabla del grafo Power-law Cluster para n=100, m=15, k=1.0 (G2)
51
4.17
52
Esquema del grafo Power-law Cluster para n=1000, m=5, k=1.0 (G3)
4.18 Tabla del grafo Power-law Cluster para n=1000, m=5, k=1.0 (G3) .
52
4.19 Tabla perfil 'Introvertido' x Grafos
.
.
.
.
.
53
4.20 Tabla perfil 'Social' x Grafos .
.
.
.
.
.
54
4.21 Tabla perfil 'Comunicador' x Grafos .
.
.
.
.
54
IV
Introducción Desde tiempos antaños el hombre ha necesitado convivir en sociedad, provocando la adopción de medidas, herramientas, metodologías y soluciones para perfeccionarla. La creación del lenguaje y los medios de comunicación son un ejemplo claro de estas herramientas. Hoy en día han alcanzado un gran desarrollo aplicando un gran numero de teorías en diversas ramas. En el caso de la computación se ha visto un incremento exponencial de la teoría en los últimos 20 años. En la web especifícamente, las redes sociales han tenido un gran impacto a partir de nuevas tecnologías como la web 2.0, que facilitan el avance de ellas en este sector. Facebook es una de los tantos proyectos sociales que inundan la internet, facilitando un amplio uso de la comunicación, y estableciendo mecanismos para acercar mas a las personas, como compartir información, recomendar amigos, conocerlos a través de un perfil,ect... El uso de las redes complejas ha propiciado un avance matemático en la teoría de las redes sociales, creadas con el objetivo de modelar los procesos que ocurren en la actualidad; siendo una herramienta indispensable para el estudio y análisis de la misma. En este documento se enunciarán las premisas fundamentales para la modelación teniendo en cuenta: ◦ Realizar una revisión bibliográfica sobre las redes sociales existentes en el campo de la computación ◦ Realizar una revisión bibliográfica sobre las redes complejas con el propósito de identificar técnicas, mecanismos, características y propiedades que poseen las redes actuales. ◦ Proponer una metodologia para simular el comportamiento que tiene una red social en cuanto a la divulgación de una noticia, a partir de las redes complejas. ◦ Implementar una aplicación que proponga como version inicial el uso y la práctida de dicha metodología.
1
Introducción
Para una mejor comprensión, el trabajo se ha estructurado en 4 capítulos que detallan con mucho cuidado el desarrollo del modelo propuesto. En el capítulo 1 se describe el concepto de redes sociales, el surgimiento, su origen, algunas teorías mencionadas, el impacto que ha presentado en la web. Así como una breve introducción de algunas redes sociales en internet como facebook que han desarrollado, llevando a la practica muchos conceptos de comunicación como “El amigo de tu amigo es también mi amigo”. En el capítulo 2 se introduce la teoría de las redes complejas como herramienta matemática principal para analizar el estudio y composición de algunas estructuras sociales que están presentes en la actualidad. Además de mencionar modelos de redes que definen sus propiedades, características, topología, ventajas y desventajas. La importancia que se le atribuye a cada uno, es también un factor clave en la modelación de las redes. En el capitulo 3 se procede a publicar el diseño y la implementación de una metodologia propuesta. Combinando las redes complejas para la formación del grafo, la unificación de la lógica difusa, con el concepto de perfil y la inserción de los pesos para la diseminación de la información, hace posible el surgimiento de una metodología que trata de simular el comportamiento de una noticia en la red. En la implementación se describe el funcionamiento de la aplicación a través de módulos y bibliotecas de clases. También se enuncia paso por paso el proceso de simulación. En el capitulo 4 se muestran los resultados obtenidos a partir de la metodologia propuesta. También se hace una comparación a partir de los tipos de redes que se atribuyen en la aplicación, con el objetivo de visualizar algunas diferencias de cada grafo, mostrar ventajas y desventajas. Para concluir el trabajo se presentan las conclusiones y las recomendaciones que incluyen algunas lineas para darle continuidad a este y finalmente la bibliografía consultada.
2
Capítulo 1 Redes Sociales El análisis de redes sociales ha irrumpido en muchas ciencias sociales en los últimos años provocando un gran impacto en la sociedad. En la actualidad se encuentran extendidas en muchos sectores como la Psicología, Tecnología y Sociología. La necesidad de buscar el apoyo de otras personas hizo que el hombre interactuara más en sociedad, perfeccionando técnicas de comunicación, estrategias y metodologías para su mejor desempeño.
1.1 Definición Existen distintas definiciones de redes sociales según el medio en el que esté contextualizada. Para la Sociología una red social es "Un conjunto de relaciones humanas que tienen un impacto duradero en la vida de cualquier persona. La red social está conformada por los sujetos significativos cercanos al individuo y constituye su ambiente social primario. Está constituida por los miembros de la familia nuclear, amigos, vecinos, compañeros de trabajo y conocidos de la comunidad"[1].
En Comunicación una red social es: "Un grupo de personas (organizaciones) conectadas por diversas relaciones sociales como amistad, trabajo, intercambio de información, etc."[40].
Matemáticamente es vista como: “Una estructura social que se puede representar en forma de uno o varios grafos en el cual los nodos representan individuos (a veces denominados actores) y las aristas relaciones entre ellos ”[3].
3
Capitulo 1. Redes Sociales
Fig 1.1 Esquema de una red social
Un ejemplo de redes sociales en la computación, específicamente en Internet; se muestra a través de una aplicación web. En ellas cada usuario se construye un perfil donde especifica información sobre sí mismo (Ya sea edad, fecha de nacimiento, sexo, etc.). Este perfil puede ser público o semipúblico a otros usuarios. Luego de estar creado el perfil, el usuario se dispone a agregar amigos/conocidos o simplemente a buscar nuevo. Creándose las nuevas relaciones o simplemente reafirmando otras.
1.2 Origen:
Los precursores de las redes sociales a finales del 1800 incluyen a Émile Durkheim y a Ferdinand Tönnies [3]. Tönnies discutió que los grupos sociales pueden existir como lazos sociales personales y lazos sociales directos en cualquier acoplamiento que compartan valores y creencia. Durkheim dio una explicación noindividualista de los hechos sociales argumentando que los fenómenos sociales cuando interactúan los individuos que obran recíprocamente, constituyen una 4
Capitulo 1. Redes Sociales
realidad que se puede explicar no más en términos de características de agentes individuales. Él distinguió entre una sociedad tradicional con la “solidaridad mecánica” que prevalece si son las diferencias individuales están minimizadas, y la sociedad moderna con la “solidaridad orgánica” que desarrolla fuera de las diferencias de los individuos resultados de cooperación[3]. Georg Simmel, escribiendo a final del vigésimo siglo, era el primer erudito en pensar directamente en términos de redes sociales. Sus ensayos señalan a la interacción del tamaño de la red en la naturaleza y a la probabilidad de interacción de manera ramificada. En las primeras décadas del vigésimo siglo, tres tradiciones principales en redes sociales aparecieron[3]. En los años 30, una tradición trabajó en el análisis sociométrico de los pequeños grupos, J.L. Moreno tomaba el liderazgo en estudiar las salas de clase y grupos de trabajo. Un grupo de Harvard con W. Lloyd Warner y Elton Mayo exploró las relaciones interpersonales en el trabajo. En el 1950s1960s, los antropólogos se encontraban centrados alrededor de la universidad de Manchester, tal como Gluckmann RadcliffeMarrón, tal como A.R., J. Clyde Mitchell y Elizabeth Bott investigaron redes comunitarias en África meridional, la India y el Reino Unido[3]. Para el año 1929 se dieron los primeros pasos en torno a la teoría. Fue inicialmente propuesta en 1929 por el escritor húngaro Frigyes Karinthy1 [3,5], en una corta historia llamada “Chains”. Donde se explica la idea de que el número de conocidos crece exponencialmente con el número de enlaces en la cadena, y sólo un pequeño número de enlaces son necesarios para que el conjunto de conocidos se convierta en la población humana entera. En la década de los ´50 se dieron los primeros pasos dentro de las Matemáticas para demostrar la teoría. Pero les tomó cerca de 20 años llegar a un resultado satisfactorio. Pero no es hasta 1995 que se ejemplifica a través de la web. En ese año es cuando Randy Conrads crea el sitio web classmates.com. Con el objetivo de mantener y recuperar el contacto con compañeros [7]. En 1973 el sociólogo Mark Granovetter realizó un famoso estudio sobre dos comunidades bostonianas que se movilizaban frente a las consecuencias del crecimiento urbano. De este estudio emergía la idea de que la coordinación social dependía, a la hora de la verdad, no tanto de los vínculos fuertes como las relaciones familiares, de amistad o de cuadrilla, como de los vínculos débiles establecidos con anterioridad con otros actores con los que hasta entonces habían tenido 5
Capitulo 1. Redes Sociales
poco o ningún contacto. En un estudio posterior corroboró esta idea estudiando qué contactos servían realmente a la hora de encontrar trabajo. Granovetter llamó a este fenómeno “la fuerza de los vínculos débiles ”[2]. A partir del 2003 comienza entonces una nueva época para las redes sociales, el cual empiezan a aparecer sitios web como MySpace, Facebook, etc.; que promocionan la consolidación del círculo de amistades. Estos sitios han llegado a ser muy populares, tanto, que las grandes compañías han entrado en este mercado. 1.2.1 Teoría de los Seis grados de separación “Seis grados de separación” es una teoría que ratifica lo que ya había enunciado Frigyes Karinthy. Donde se demuestra que a través de una cadena de 5 intermediarios se puede contactar a una persona en el lugar más recóndito del planeta. Esta teoría plantea que por lo general una persona conoce de forma promedio 100 personas. Si cada una de esas conoce a otros 100, entonces un mensaje de la persona original puede ser transmitido a 10 000 personas (este sería el 2do nivel).Entonces en un sexto nivel el mensaje ha sido transmitido a 1 000 000 000 000. En seis pasos, y con las tecnologías disponibles, se podría enviar un mensaje a cualquier lugar individuo del planeta [8,10]. En la figura 1.2 se muestra un ejemplo de dicha teoría.
fig 1.2 Esquema de la teoría de los seis grados
6
Capitulo 1. Redes Sociales
En 1967, el psicólogo estadounidense Stanley Milgram ideó una nueva manera de probar la teoría, que él llamó "el problema del mundo pequeño". Al azar seleccionó varias personas del medio oeste estadounidense para que enviaran tarjetas postales a un extraño situado en Massachusetts, situado a varios miles de millas de distancia. Los remitentes conocían el nombre del destinatario, su ocupación y la localización aproximada. Se les indicó que enviaran el paquete a una persona que ellos conocieran directamente y que pensaran que fuera la que más probabilidades tendría, de todos sus amigos, de conocer directamente al destinatario. Esta persona tendría que hacer lo mismo y así sucesivamente hasta que el paquete fuera entregado personalmente a su destinatario final[3].
1.2.2 Proyecto small world
El proyecto small world (mundo pequeño), es un experimento realizado por la Universidad de Columbia. Para poner en práctica este proyecto se necesitan pocos requisitos. Solo se necesita registrarse y el sistema le asignará una «personaobjetivo», de la cual se tiene acceso a su nombre, edad y ciudad donde vive. El objetivo consiste en contactar con ella utilizando solamente nuestra red de contactos de la vida real. Entonces hay que difuminar a través de toda la red de contactos si alguien conoce a la personaobjetivo hasta llegar a contactar con él. Este proyecto intenta probar la teoría de los seis grados de separación [7, 9,10].
1.3 Proyectos de Redes Sociales en Internet Las redes sociales basadas en Internet tienen como objetivo establecer la comunicación, integrar comunidades y aumentar la cooperación entre las personas. Dándole un nuevo enfoque al concepto de comunicación podemos tener nuevas amistades y relaciones en cualquier parte del mundo; que antes se nos hacía muy difícil lograr. Las redes sociales se han convertido en una herramienta de gran utilidad proporcionando una comunicación global.
Este
fenómeno en
crecimiento congrega en la actualidad a millones de personas de distintas partes del planeta.
7
Capitulo 1. Redes Sociales
Estas redes se clasifican en dos grandes grupos: Las redes sociales personales o de amistad, motivadas por afinidades musicales, por intereses comunes, etc. Este tipo de redes permiten una mayor interacción entre los usuarios. Algunas redes como estas son MySpace [13], Facebook [12] y Orkut [11]
Las profesionales, que están orientadas al trabajo mediante la utilización de la red. Ejemplos de este tipo son: Plaxo [14] o Xing [15]. Por los beneficios que traen consigo la utilización de las redes sociales estas han sido aceptadas y gozan de mucha popularidad mundialmente.
1.3.1 MySpace Es una de las redes sociales más populares en la actualidad. La plataforma incluye redes de amigos, grupos, blogs, fotos, vídeos y música y una red interna de mensajería para poder comunicarte con otros usuarios. Cuenta con herramientas simples y sencillas donde se puede crear un perfil personal, con fotos, comentarios, música y la posibilidad de comunicarse rápidamente con otros usuarios. Triunfando especialmente entre los jóvenes. Esta red no ha parado de crecer y cuenta con más de 300 millones de usuarios y más de 116 millones de visitantes únicos. Es una de las más populares dentro de la población mundial. Según el sitio web Alexa, dedicado a medir el tráfico de Internet, MySpace es el sexto sitio más visitado de toda la Red y el cuarto más visitado de lengua inglesa [19, 20, 22]. Dentro de las aplicaciones que contiene la plataforma se encuentran los Boletines, Grupos, MySpaceIM, MySpaceTV.
Algunas de las aplicaciones que lo hacen más populares son: MySpace Mobile: Proporciona el acceso a contenido de MySpace a través de la telefonía celular. MySpace News: Es un servicio que permite enviar feeds RSS o recibas noticias.
8
Capitulo 1. Redes Sociales
MySpace Classifieds: Es la sección de clasificados del MySpace. MySpace Poll: Para que los usuarios puedan incluir encuestas en sus perfiles y compartir con otros usuarios [13]. 1.3.2 Facebook Este sitio fue creado para los estudiantes de la Universidad de Harvard, pero ya hoy en día ha sido abierto a cualquier persona que tenga una cuenta de correo electrónico. Se ha hecho popular debido a que en esta plataforma, se pueden desarrollar aplicaciones y hacer negocio a partir de la red social. Estando publicado solamente en inglés llegó a ser el sitio que más usuarios de nivel superior tenia registrados, teniendo 20 millones. Para el 2008 fue lanzado en francés, alemán y español para impulsar su expansión fuera del mercado en inglés [16]. Una de las ventajas de Facebook es su gran versatilidad. La creación de aplicaciones externas abiertas que se alimentan de unas interfaces de programas de aplicaciones (APIs) que tienen implementado; permitiendo el uso particular de aplicaciones como si se tratara de un sistema operativo web, en el que cada cual, aporta a dicho sitio. Se pueden hacer muchas cosas como subir tus fotos, controlar los libros que has leído o quieres leer, distintos test, encuestas, herramientas de interacción social... hasta aplicaciones para seguir acciones en bolsa [19,20,21,22]. Dentro de las aplicaciones más populares aparecen: iLike: Integra el servicio social de la red y la recomendación de música en el perfil. Picnik: Corrige las fotos que tengas en Facebook sin salir de la aplicación. Touchgraph: Muestra un gráfico de nuestra red social de amigos.
9
Capitulo 1. Redes Sociales
1.3.3 Orkut Orkut es una red social promovida por Google desde enero del 2004. La red está diseñada para permitir a sus integrantes mantener sus relaciones existentes y hacer nuevos amigos, contactos comerciales o relaciones más íntimas. Es posible crear y mantener comunidades, que agrupan personas de acuerdo a sus gustos e intereses, en diferentes categorías, entre las que se cuentan: actividades, negocios, juegos, música, mascotas, religión, escuelas, comidas, preferencias sexuales, y algunas más. Hasta hace algún tiempo solo podían acceder a esta comunidad aquellos que recibían una invitación de alguien que ya pertenecía a ella, esto mientras el servicio permanecía en fase beta. Hoy está abierta a cualquier persona, para ello es necesario tener una cuenta en algún servicio de Google [11].
1.3.4 Otras Redes Sociales Xing [15] es una plataforma donde se puede gestionar y establecer contactos profesionales. Una de las funciones principales que tiene es la opción de visualizar la red de contactos, por ejemplo: un usuario puede ver a través de cuántos intermediarios están conectados con otros. Se basa en el principio de los “Seis grados de separación” o el fenómeno del "mundo pequeño". Adicionalmente esta plataforma online ofrece numerosas opciones para contactar, buscar personas por nombre, ciudad, sector, empresa, áreas de interés, etc. Ofrece también un calendario público de eventos, que se presentan al usuario por orden temático o geográfico, donde se puede aprovechar la función de “eventos” para la gestión de la agenda personal. Además brinda una bolsa de trabajo con el nombre en inglés de “Marketplace”. Los usuarios de la plataforma pueden ofrecer o buscar allí puestos o proyectos de trabajo [23]. La novedad está en el pago de los anuncios por interés de los usuarios, medido en la cantidad de clic por anuncio y llamado anuncios de coste por clic (CPC).
10
Capitulo 1. Redes Sociales
Plaxo [14] es una libreta de direcciones en línea y la creación de redes de servicios sociales fundada por Napster. Permite la actualización automática de información de contacto. Los usuarios y sus contactos almacenan su información en los servidores. Cuando esta información es editada por el usuario, los cambios aparecen en los libros de dirección de todos aquellos que figuran en la cuenta en el cambiador de sus propios libros. Una vez que los contactos se almacenan en la ubicación central, es posible establecer una lista de conexiones entre los contactos y acceder a la libreta de direcciones desde cualquier lugar.
Un plugPlaxo apoya en los principales libros de dirección incluidos los de Outlook / Outlook Express, Mozilla Thunderbird, y Mac OS X de la Libreta de direcciones, aunque otras pueden ser apoyadas a través de una interfaz de programación de aplicaciones.
1.3.5 Aplicaciones Existen una gran variedad de herramientas y aplicaciones para estas redes sociales, la cual hace mucho más flexible y dinámica la comunicación, desarrollo y el manejo entre ellas.
1.3.5.1 APIs de Facebook La API de Facebook es una plataforma para la creación de aplicaciones que están disponibles para los miembros de la red social de Facebook. Esta permite a las aplicaciones utilizar la conexión social y el perfil de información para hacer más aplicaciones que impliquen, y publicar las actividades de las noticias y páginas de perfil de Facebook, con sujeción a los usuarios la configuración de privacidad [24].
11
Capitulo 1. Redes Sociales
1.3.5.2 OpenSocial de Google OpenSocial es un servicio de Google que mediante un conjunto de APIs permite construir aplicaciones para redes sociales. Es un estándar que cumplen muchos sitios que implementan redes sociales. De tal forma que la forma de programar aplicaciones para diferentes sitios de redes sociales sea común. Este es el mismo concepto utilizado por Facebook, pero con una diferencia importante: Los desarrolladores de Facebook tienen que trabajar con lenguajes de propiedad de Facebook y con APIs como FBML y FQL. Las aplicaciones desarrolladas con estos lenguajes no funcionan en ningún otro sitio. En cambio los desarrolladores que trabajan con OpenSocial pueden trabajar usando estándar HTML y Javascript. Sus aplicaciones serán posible de correr en cualquier otro lado donde haya un contenedor OpenSocial [25].
12
Capítulo 2 Redes Complejas Para realizar el análisis de las redes sociales hacen faltan herramientas que modelen y estudien sus estructuras relacionales. Estas surgen cuando diferentes organizaciones o individuos interaccionan, se comunican, coinciden, colaboran, a través de diversos procesos o acuerdos, que pueden ser bilaterales o multilaterales. De este modo la estructura que emerge de la interrelación se traduce en la existencia de una red social. Estas estructuras relacionales llamadas “Redes Complejas”, permiten una mejor comprensión. Tradicionalmente el estudio de las redes complejas ha sido territorio de las matemáticas, especialmente la teoría de grafos. Inicialmente se enfoco en grafos regulares, sin tener en cuenta los principios de los grafos aleatorios; proponiéndose como los que mejor definían a las redes complejas. Leonhard Euler, pionero en la teoría de grafos, fue el primero en estudiar los grafos regulares en el siglo 18. en el siglo 19 la teoría se desarrollo mucho más algorítmica y estadísticamente [26,27]. 2.1 Definición:
Para definir a una red compleja se utiliza la teoria de grafos. Estos “ han sido muy útil para el análisis de redes sociales porque: tiene un vocabulario que puede ser utilizado para analizar muchas propiedades de las estructuras sociales; nos ofrece las operaciones matemáticas por las cuales esas propiedades pueden analizarse y medirse; y permite probar teoremas sobre los grafos y, por tanto, deducir y someter a test determinados enunciados”[28].
13
Capítulo 2. Redes Complejas
Una red compleja es un grafo que tiene ciertas propiedades y características definido de la forma: “...Una red R consiste de un conjunto de nodos V = {v1 , v2 , . . . , vN }, y un conjunto de parejas ordenadas E = {(vi , vj )} ⊂ V x V. Cada pareja ordenada (vi , vj ) se llama conexión dirigida del nodo vi al nodo vj . La red R se llama no dirigida si para cada pareja (vi , vj ) ∈ E también existe la pareja (vj , vi ) ∈ E. De lo contrario, la red se denomina dirigida. Llamaremos a todos los nodos que están conectados directamentea un nodo vi , los vecinos de vi . Finalmente, el numero ki de vecinos del nodo vi (es decir, el numero de conexiones de vi ) se llama la N
conectividad de vi , y el promedio de estas conectividades, k =N
−1
∑ k i , es la conectividad i=1 i=1
de la red. ..”[27].
2.2 Propiedades y Características En el estudio de las redes complejas se encuentran diversas propiedades que identifican a
sus respectivos modelos, estas determinan su estructura y composición. Una de las propiedades importantes del análisis de la estructura de las redes es la distribución de grado en una red que se representa habitualmente como pk y es definida como la fracción de nodos en la red con un cierto grado k. Es decir si la red posee una cantidad de n nodos en total y nk de ellos repartidos en cada grado k, de esta forma se tiene que p k=
nk n
. También existen otras como el coeficiente de
agrupamiento, la modularidad, la heterogeneidad en el conexionado, y la propiedad mundo pequeño que caracteriza de forma general a dichas redes. El Coeficiente de Agrupamiento (clustering) es la probabilidad de que dos elementos de una red estén conectados si ambos están conectados a otro elemento en común osea que en una red compleja se formen conexiones triangulares, o también se conoce como la regla de que “el amigo de mi amigo es también mi amigo”. La media de este parámetro para todos los nodos se conoce como coeficiente de agrupamiento de la red.
14
Capítulo 2. Redes Complejas
La longitud Mínima entre dos nodos es el número mínimo de saltos necesarios para llegar de un nodo vi a otro nodo vj de la red. La longitud promedio de la red es promedio de las longitudes mínimas Lij entre todas las posibles parejas de nodos (vi, vj) de la red. De aquí surge El fenómeno small world o mundo pequeño, indicando que la distancia media entre cualquier par de nodos no conectados directamente es pequeña, la misma dota a las redes de alta eficiencia en la transmisión de información. Las redes small world se da en aquellas redes en las que a pesar de existir un gran número de nodos, es posible encontrar sendas cortas que conecten a 2 nodos cualesquiera. La modularidad es una medida que categoriza a los tipos de redes, es decir si los nodos están muy interconectados entonces se dice que la modularidad es alta. Una red es Heterogénea cuando existen nodos con pocas, medias y muchas conexiones. Los nodos altamente conectados se denominan “ hub” o centros de la red. Estas redes que presentan heterogeneidad en el conexionado logran ajustarse más a una red social [29]. Un ejemplo de una red heterogénea y modularidad alta es la figura 2.1.
fig 2.1 Esquema de una red Heterogénea,modularidad alta
15
Capítulo 2. Redes Complejas
2.3 Modelos de construcción de redes Una red esta compuesta estructuralmente por modelos matemáticos que definen su topología y sus propiedades particulares, estos son llamados Modelos Estadísticos y Modelos Dinámicos. Los Estadísticos se guían por una variable probabilística que influyen en la toma de decisiones de crear la red. Es decir el grafo depende exclusivamente de esa variable para poder lograr su composición,un ejemplo son los grafos aleatorios de ErdosRenyi. Los Modelos Dinámicos consideran las redes como sistemas con interacciones que varían en el tiempo según determinadas leyes. Se llaman también Modelos de crecimiento o de evolución imitando los procesos de crecimiento mediante la adición gradual de nodos o enlaces[27].
Uno de estos ejemplos es el modelo de Enlace Preferencial de Albert Barabási, el cual
asume que la conexión de los nuevos nodos añadidos al sistema está regulada por la cantidad de conexiones de los ya presentes, es decir los nuevos elementos se unirán con mayor probabilidad a los más conectados ya ubicados en la red[27,29]. 2.4 Grafos Aleatorios Los Grafos Aleatorios son una rama de las redes complejas donde utilizan variables aleatorias como premisa fundamental para la construcción de los grafos. A partir de estos grafos y con determinadas características de cada modelo, se logran estudiar y simular algunas redes sociales reales [26]. Es importante señalar que se escogen los grafos aleatorios como herramienta principal porque existen eventos en la actualidad que se generan de forma aleatoria como es el presentar a dos personas que tengan rasgos en comunes llegando a ser “amigos”. En la figura 2.2 se muestra un ejemplo de una red aleatoria.
16
Capítulo 2. Redes Complejas
fig 2.2 Esquema de una red Aleatoria
2.4.1 Modelo ErdosRenyi (ER) El modelo (ER) revoluciono el desarrollo de los grafos aleatorios, conociéndose como uno de los primeros grafos generados para el estudio y la simulación de las redes sociales. Tambien se conoce como modelo Bernoulli, y a pesar de ser un modelo no muy aplicado, se le atribuye su importancia por ser el primer modelo que introduce las funciones de probabilidad sobre la creación de grafos[42,33]. Como depende de una variable aleatoria para poder decidir si conectar o no a los nodos de la red, existen características que varían. Mientras más probabilidad tenga una arista de ser insertada en el grafo, entonces el coeficiente de agrupamiento y la modularidad variaran en ascenso. No es una red de tipo mundo pequeño porque podría generarse un grafo con nodos desconectados. No es heterogénea, y su grado pk genera una distribución de poisson[27].
2.4.1.1 Estructura del modelo Este modelo devuelve un grafo aleatorio, con las características del modelo (ER). Los parámetros de entrada, "n" es la cantidad de nodo que va a tener el grafo y "p" es la probabilidad en que una arista escogida al azar sea parte del grafo. Se tiene que un nodo se enlaza con igual probabilidad “p” con el resto de la red. Se escogen dos nodos cualesquiera del grafo vi ,vj. Se genera 17
Capítulo 2. Redes Complejas
una variable aleatoria uniforme “u”, si “u” es menor que la probabilidad “p” entonces se crea la arista (vi ,vj) y se agrega al grafo. Repetimos el proceso M =
n⋅n−1 veces habiendo 2
establecido como máximo M enlaces entre parejas de nodos. Si M es un valor pequeño con respecto al valor total de nodos, muchos de estos estarán desconectados, mientras que por el contrario si M es grande en comparación con “n” , es muy posible que casi todos los nodos estén enlazados entre sí. Cuando se enlazan los nodos de esta forma aparecen propiedades específicas en la distribución de grado Pk donde posee propiedades de distribución de Poisson [2,6].
2.5 Redes de Escala Libre Existen muchos sistemas en la naturaleza que pueden ser descritos por medio de redes aleatorias. Se creía que todas las redes de este tipo se comportaban de la misma manera, siguiendo el modelo de Erdős y Rényi [33]. Sin embargo Watts y Strogatz [30] estudiando redes sociales, descubrieron que estas no se comportaban de dicha forma. Al observar los resultados de varios experimentos con redes reales, Barabási y Albert [32] observaron que todas las redes de los experimentos se comportaban siguiendo una ley de potencia en la distribución de los grados de los vértices, y llaman a estas redes “redes de escala libre”.
Las redes de escala libre poseen alta heterogeneidad al contener nodos con pocas,medias y
muchas conexiones. El valor medio de la distribución no es representativo de la conectividad de la red. La mayoría de los vértices tienen baja conectividad y alta solo unos pocos. Una propiedad especialmente importante de las redes de escala libre es la robustez de sus conexiones frente a la supresión aleatoria de nodos. En estas redes es más probable la eliminación de un nodo poco conectado que la de uno muy conectado, aunque la supresión de un “hub” puede producir un cambio en el sistema que cause su fragmentación[36].
18
Capítulo 2. Redes Complejas
2.5.1 Modelo Albert Barabási
AlbertLászló Barabási, profesor de física, se ha dado a conocer por sus investigaciones acerca de redes libres de escala y las redes biológicas. Barabási descubrió las redes libres de escala en muchos dominios (enlaces entres aeropuertos, cableado eléctrico, relaciones sexuales entre personas, coautorías de artículos),explicaron éste fenómeno apelando a dos mecanismos: Crecimiento y enlace preferencial. Su formulación sostiene que las redes de escala libre van creciendo con el tiempo y los nuevos nodos que se adosan se enlazan preferentemente con los nodos ya existentes en función de su número previo de conexiones. Estos mecanismos bastan para explicar el surgimiento de las redes de escala libre, su mantenimiento en diferentes tamaños (escalas de la red) y también su presencia muy frecuente [35]. En la figura 2.3 se muestra un ejemplo de una red de tipo Barabási.
fig 2.3 Esquema de una red Barabási (1)
2.5.2 Enlace Preferencial En la vida real las conexiones entre diferentes nodos no se dan de manera igualitaria. Por ejemplo, si una persona tiene una computadora nueva y quiere conectarla a internet, no va a contratar el servicio de internet de alguna compañía elegida al azar, sino que buscara la compañía que ofrezca el mejor servicio y al mejor precio, y probablemente sera esta compañía la que tenga más clientes. En una escuela los varones no buscan a su pareja al azar, sino que buscaran salir con la 19
Capítulo 2. Redes Complejas
chica más bonita, o tal vez con la más inteligente, y sera esta muchacha la que tenga más pretendientes. Por esta razón, Barabási inventó el concepto de enlace preferencial en el cual los nuevos nodos que se añaden a la red se conectaran preferentemente con los nodos ya existentes que tengan el mayor numero de conexiones. Intuitivamente podemos pensar que el enlace preferencial consiste en que uno siempre trata de estar conectado con los nodos más “populares”, es decir, con los nodos de mayor conectividad. Para incorporar este comportamiento Barabási sugirió que la probabilidad de enlace
∑ N t
preferencial seria: k , t=
n=0
kn
⋅k siendo k , t la probabilidad en que un nodo
−1
aleatorio sea seleccionado, donde kn es la conectividad del nésimo nodo ya existente al tiempo t. El
∑ N t
factor
n =0
kn
−1
es la sumatoria de conectividades que tiene cada nodo del grafo osea 2⋅M
siendo M la cantidad de aristas del grafo. En otras palabras k , t=
k . 2⋅M
Por ejemplo el grafo de la figura 2.4, y se quiere calcular la probabilidad de que un nodo sea seleccionado para enlazarlo con un nodo nuevo “6”. Entonces dado la fórmula propuesta por Barabási indica que el nodo “0” es el que más probabilidad tiene para que este sea el indicado, su probabilidad p=0.5 ,y la de los nodos restantes seria 0.1. fig 2.4 Ejemplo de enlace preferencial
20
Capítulo 2. Redes Complejas
2.5.3 Adaptabilidad El concepto de adaptabilidad es uno de los elementos claves para analizar una red de social. Existen personas que desarrollan determinados rasgos mas rápidos y en menos tiempo que otras. Esto se debe a un factor que inside más en su medio social facilitando un rápido desarrollo para aprender dichos rasgos. Por ejemplo sean dos personas A, B que tienen como objetivo llegar a ser comunicadores, la primera es una persona extrovertida, que puede establecer fácilmente un tema de conversación o crear relaciones de amistad. En cambio B es introvertido y le resulta muy dificil el poder relacionarse. Esto hace que A sea mejor adaptable para cumplir dicho objetivo, Puede que B también lo cumpla, pero necesitará mas tiempo y dedicación para alcanzarlo. Esta observación hizo que Barabási propusiera el concepto de adaptabilidad en el que cada uno de los nodos vn ,además de tener una conectividad kn , también tenia un parámetro de adaptabilidad asociado wn. Este parámetro es una medida de que también estaba adaptado el nodo vn a su entorno: entre más grande es el valor de wn , mayor es el grado de adaptabilidad de vn. Específicamente, lo que Barabási hizo fue proponer una función de enlace preferencial Π(k, w, t) que, además de ser proporcional a la conectividad k de los nodos ya existentes, también es proporcional a su adaptabilidad w . De esta forma, la probabilidad de que un nuevo nodo añadido a la red se conecte con el nodo vn ya existente, cuya conectividad es kn y cuya adaptabilidad es wn , queda dada por Π k n ,wn ,t =Cwn k n donde C es una constante de normalización. Cada nodo nace con su propia adaptabilidad, la cual no cambia en el tiempo.
2.5.4 Crecimiento de redes En la actualidad las redes nunca permanecen fijas, por el contrario evolucionan y crecen con
el tiempo a través de la adición simultánea tanto de conexiones como de nodos. En el modelo más simple de redes añadimos un nuevo nodo en cada paso de tiempo. Este puede conectarse con algunos de los nodos ya existentes. Cada uno de los cuales pueden ser seleccionados para la conexión con una probabilidad k n , t siendo kn la conectividad al tiempo t del nésimo nodo existente. 21
Capítulo 2. Redes Complejas
Hay que resaltar la gran importancia que presentan este tipo de redes para estudiar el comportamiento de muchos procesos que ocurren en la actualidad, por ejemplo: La red de distribución eléctrica, en que existen estaciones enormes que abastecen a zonas enormes, y al mismo tiempo una miríada de transformadores pequeños. Las redes de comercio internacional, donde los países desarrollados, que son la minoría, concentran la mayor cantidad de intercambio de bienes, mientras que en los países no desarrollados, que son la mayoría, el intercambio comercial es relativamente menor. Esto se aplica también a las redes de comercio entre empresas dentro de cada país. La red de páginas web, que unos pocos sitios reciben gran cantidad de enlaces, mientras que la mayoría no recibe ninguno.
2.6 Modelo Powerlaw Cluster Powerlaw Cluster es una mejora al modelo de Albert Barabási , el cual utiliza el mismo paradigma de crecimiento de la red, mantiene el enlace preferencial. La innovación en este modelo es un factor 'k' de probabilidad que aumenta el grado de coeficiente de agrupamiento. Permitiendo que las subredes implícitas estén más interconectadas, provocando un mayor auge de la famosa frase: “El amigo de mi amigo, es también mi amigo”. Que no es más que una triangulación entre nodos de una misma vecindad[37].
En la figura 2.5 se muestra una red de tipo Powerlaw Cluster con n=30, m=2, k=1.0.
22
Capítulo 2. Redes Complejas
fig 2.5: Esquema de una red Powerlaw Cluster
En la figura 2.6 se muestra una red de Barabási con las mismas condiciones n=30, m=2.
fig 2.6: Esquema de una red Albert Barabási (2)
Nótese que en la figura 2.5 la red Powerlaw Cluster tiene más “hubs”,posibilitando que la red este mejor distribuida. Una diferencia notable son las triangulaciones de nodos, fíjese que la red de Barabási presenta un coeficiente de agrupamiento muy bajo, con respecto a la otra. Otra comparación que resalta a la vista es la heterogeneidad en el conexionado de estas redes. En el primer caso el modelo de la figura 2.5, tiene más diversidad en el conexionado, osea que hayan más nodos con muchas, medias y pocas conexiones que en el de la figura 2.6.
23
Capítulo 3 Diseño e Implementación Un sistema que simule el comportamiento de la divulgación de una noticia en una red social de nodos será el enfoque principal. Con el propósito de ver que alcance tiene este, estableciendo parámetros como: Nodo que más porciento tuvo en difundir la noticia, porciento de nodos que divulgaron la noticia, se podrá
identificar una metodología capaz de abordar los elementos
descritos anteriores. 3.1 Diseño El sistema esta compuesto por dos procesos fundamentales : la creación de la red, que van a estar compuesto por algoritmos de redes complejas, y la forma en que se propaga la información dentro del grafo. Cada uno de estos procesos tiene características propias y cruciales para el diseño del mismo. 3.1.1 Formación de la red Se quiere utilizar para la formación de la red 3 modelos de crecimientos de redes,estos son: el modelo de Erdos-Renyi, el modelo de Albert Barabási y el Powerlaw Cluster. Cada uno presenta propiedades imprescindible como el coeficiente de agrupamiento, la modularidad y la diversidad en sus conexiones. Asi como tambien la propiedad small world. La formación de la misma es una etapa crucial en el sistema porque las decisiones que se tomen en el momento en que un nodo se conecte a la red incidirá en la topología del modelo escogido.
24
Capítulo 3. Diseño e Implementación
El modelo propuesto por Erdos Renyi presenta un paradigma diferente en la formación de la red con respecto a los demás modelos. Este se rige por una variable aleatoria que determina la inserción de cada arista al grafo. Osea por cada par de nodos (formando una arista) que se agregue al grafo, dependerá de una variable aleatoria para que sea parte de este. Asi en cada instante de tiempo será conformada la red, presentando propiedades inestables como la del mundo pequeño, el cual, el grafo puede contener nodos aislados y entonces quedaría anulada. Para que se cumpla lo enunciado la probabilidad tendrá que ser muy baja. El coeficiente de agrupamiento y la modularidad varian en este aspecto. Por ejemplo para un grafo con 100 nodos y la probabilidad de enlazar es 0.08, el grafo es conexo, el coeficiente de agrupamiento es alto, no es heterogénea, la modularidad es alta. y presenta la propiedad mundo pequeño. El algoritmo definido por Albert Barabási, el cual presenta propiedades esenciales como el “enlace preferencial” permite ajustarse mejor a una red social. Determinar como formar la red es básicamente la construcción del grafo y para esto Barabási brinda una alternativa. Se muestran elementos a tener en cuenta para este grafo: – “n” es la cantidad de nodos que tendrá el grafo y “m” que sera la cantidad de conexiones posibles que un nodo pueda agregar. – El valor “m” tiene que es estar entre (1,n) , de lo contrario el grafo no se construiría. – Cada vez que un nodo se conecta al grafo este elegirá a sus vecinos a través del enlace preferencial. – A medida que el grafo va creciendo los nodos más viejos son los que irán adquiriendo mayor numero de conexiones. – Este grafo presenta la propiedad “Mundo Pequeño” el cual permite encontrar distancias mínimas entre nodos. – Los nodos también cuentan con un coeficiente de adaptabilidad, que esta dado por una variable probabilística, esto hace posible que existan nodos que desde que son añadidos al grafo, puedan crecer más rápido y lograr convertirse en “hubs”. – Mientras más grande se haga “m”, existirá en el grafo mayor coeficiente de agrupamiento, (Triangulaciones de nodos). También es posible lograr una alta heterogeneidad en sus conexiones, así como elevada modularidad.
25
Capítulo 3. Diseño e Implementación
También como propuesta tenemos el algoritmo “powerlaw cluster graph”[37], que brinda un paso adicional en la ejecución del grafo, dando la posibilidad de crear una triangulación cada vez que un nodo sea añadido al grafo. Esto trae como consigo que la red generada pueda alcanzar un mayor promedio de coeficientes de agrupamientos, si se desea. Es ajustable por una variable aleatoria uniforme entre (0,1). 3.1.2 Peso en las aristas Se quiere establecer un parámetro para medir el “grado de amistad” entre los nodos del grafo, dicho parámetro esta definido por valores entre [0,10]. Esta medida de clasificacion numérica es vital para el empleo de la lógica difusa en la red. Una vez definida las reglas y las variables del sistema, se procede al calculo con dichos pesos obtenidos. En la red que se desea generar , existirán dos tipos de pesos p1,p2. El primero representa la fortaleza social que exista entre dos nodos cualesquiera , es decir representa una medida de amistad. Mientras más se acerque p1 al valor '10', más amigo sera con el nodo adyacente. El otro peso define el interés de la noticia que el nodo origen divulga. Por ejemplo se tiene la arista (a,b), si un nodo 'a' genera un peso p2=8 entonces la noticia que le llegara al nodo 'b' sera interesante, mientras más grande sea p2 , más interesante se hará la noticia con respecto al nodo destino. 3.1.3 Envío de la información La divulgación de una noticia es el otro proceso clave para la implementación del sistema, para ello utilizamos el concepto de perfil. En la actualidad las personas se relacionan de acuerdo a los rasgos de la personalidad, conducta y comportamiento en su circulo social. Estas responden a partir de un conjunto de condiciones a determinadas acciones. Por ejemplo: sea A ,B sujetos sociales, si “A” es amigo de “B” , siendo “B” Extrovertido, el primero lo invita al cine, lo más probable es que este acepte la salida. A dichos rasgos lo identificaremos como “perfiles”. Se ha tomado como alternativa el empleo de este mecanismo, para clasificar a los nodos de la red, osea que cada nodo tenga asignado un perfil. Dichos perfiles son generados por un sistema difuso [38].
26
Capítulo 3. Diseño e Implementación
3.1.4 Sistema Difuso Los sistemas difusos son estudiados a menudo en el campo de la simulación para aproximar una respuesta a un conjunto de valores no definido[38]. Se quiere lograr que cada nodo pueda decidir el envío de la noticia a cada uno de sus vecinos, utilizando dos valores de entradas: – Interés de la Noticia (IN): – Interesante – Ajena – Noticia recibida por (NR): – Amigo – Conocido – Enemigo Estos valores son recibidos cuando al nodo le llega la noticia. Una vez efectuado, se procesa al cálculo de la defuzificación para generar la respuesta a sus adyacentes. Cabe señalar que él genera respuesta particulares para cada nodo de acuerdo a su perfil. Los parámetros se clasifican de acuerdo a un rango de (0,10), y un grado de membresía entre (0,1) , donde la curva define la membresía en un conjunto difuso. Este comportamiento representa a las figuras 3.1, 3.2, 3.3, 3.4 y 3.5.
27
Capítulo 3. Diseño e Implementación
Fig 3.1: Esquema IN: Ajena
Fig 3.2 Esquema IN:Interesante
Fig 3.3: Esquema NR:Enemigo
Fig 3.4: Esquema NR:Conocido
Fig 3.5: Esquema NR:Amigo
28
Capítulo 3. Diseño e Implementación
El valor de salida del sistema difuso, seria:
– Enviar Noticia (EN): – Si – No
3.2 Implementación de la aplicación Con el objetivo de crear una plataforma posible para poder visualizar las estrategias de los modelos de redes complejas, la diseminación de la información y el empleo de la lógica difusa, se procede a conformar una aplicación capaz de recopilar los elementos mencionados en los capítulos anteriores. Tomando como lenguaje de programación el python para lograr unificar mucha de estas tecnologías dadas a conocer por este lenguaje.
3.2.1 Librerías utilizadas Para la implementación de la aplicación se tuvo en cuenta un conjunto de bibliotecas y paquetes importantes. Para el python2.6 hicieron falta los siguientes paquetes: Python-tk: Conocido también como Tkinter, es un paquete hecho para escribir aplicaciones GUI portátiles con Python . Python-Matplotlib: es una librería de funciones para integrar a Python la capacidad de generar gráficas en formatos apropiados. Es útil para la visualización de los grafos generados por el paquete python-networkx.
Python-Networkx: Es el paquete usado para la manipulación, creación y estudio de las redes complejas. Los modelos propuestos que se insertan en la aplicación, son utilizados por esta librería.
29
Capítulo 3. Diseño e Implementación
Pyfuzzy 0.0.2: Es un paquete que sirve para aplicar los conocimientos de la lógica difusa en python. Facilita el manejo, contiene estructuras diseñadas y brinda una amplia gama de funciones de membresía predefinidas para conjuntos difusos. Gnuplot: Es requerido para la representación de las funciones de lógica difusa, tales como Zfunction. Python-gtk2: Es utilizado para desarrollar la interfaz de la aplicación, con el objetivo de mostrarle al usuario las comodidades más apropiadas para la interacción del programa. 3.2.2 Estructura de la aplicación La aplicación esta estructurada por los módulos que se muestran en la figura 3.6, el cual definen su composición.El módulo Interfaz es el puente entre los restantes módulos y la petición que hace el usuario. Una vez que la interfaz recibe los datos, procede a enviarlos a los módulos simulator y system. El primero esta diseñado para la formacion de la red y la simulación de la información, el último para la utilización de la logica difusa. El módulo util contiene metodos importantes para completar el proceso de simulación. El módulo perfiles esta diseñado para el trabajo la lógica difusa, guardando las característica que define a cada perfil. Por ultimo el módulo func_graficas visualiza las funciones de membresía de las variables de entrada del sistema difuso.
30
Capítulo 3. Diseño e Implementación
Fig 3.6: Arquitectura del software por módulos
3.2.3 Modulo Interfaz Es el que integra las funcionalidades del software,brindando una serie de opciones para este sea más flexible. Permite que el usuario interactúe con el sistema, haciendo los pedidos del dato que se desea insertar para la obtención de los resultados. Contiene los siguientes métodos:
•
Un método delete_event que cierra la aplicación.
•
Un método evento_agregar: guarda las las configuraciones de los perfiles personalizados que se desean simular en el grafo seleccionado.
•
Un método evento_combo: guarda el modelo de red que se desea simular.
•
Un método evento_botón_grafo: que es el encargado de transmitir la información del grafo al modulo simulator para que este pueda procesar y crearlo.Propiedades como el “Tipo de nodo que difunde la noticia”, tamaño de la red, cantidad de conexiones, tipo de red, son las que el usuario puede escoger en este método.
•
Un método evento_simular: Una vez creado el grafo como se desea, este captura las restantes opciones para la simulación, como los pesos de “Interés de la noticia”(IN), “Noticia Recibida”(NR). También si el perfil del grafo sera personalizado o global. Y por
31
Capítulo 3. Diseño e Implementación
ultimo ordena la simulación de como se divulga la noticia por todo el grafo, imprimiendo los resultados. •
Un método evento_grafica_nr que manda a llamar al modulo funciones_gráficas para graficar las funciones de membresía de la “noticia recibida (NR)”.
•
Un método evento_grafica_in que manda a llamar al modulo funciones_gráficas para graficar las funciones de membresía de la “interés de la noticia (IN)”.
•
Un método toggle_radio_perfil que reinicia los valores de los perfiles. Contiene además las variables:
•
self.s: Es el método simulator() guardado en dicha variable.
•
self.perfil_p: un contenedor para guardar la información de los perfiles. 3.2.4 Modulo simulator Inicialmente se escoge un nodo para que este comience con el proceso de simulación
diseminando la información en la red. Este nodo ya sea escogido por cumplir determinadas condiciones, se encarga de hacer una búsqueda entre sus vecinos y empezar el proceso. Dicha búsqueda es definida como “Recorrido a lo ancho”, el cual permite moverse siempre por la vecindad del nodo, priorizando a sus adyacentes primeros. Para la utilización del recorrido hizo falta la creación de una cola de eventos que guardara los estados de los eventos. Un evento puede ser de tipo “envía_noticia” o “recibe_noticia”. Cuando un nodo origen genera un evento de tipo envía_noticia, este manda a que el nodo destino genere un evento de tipo recibe_noticia con el identificado del nodo origen, y lo manda a guardar en la cola de eventos. Cuando se genera un evento de tipo recibe_noticia, se procede a hacer el calculo de la diseminación de la noticia en los vecinos del nodo que le es llegada la noticia. Si el nodo ya conoce la noticia es descartado este paso y continua el proceso repitiendo los mismo pasos a sus adyacentes. De esta manera se logra recorrer la red y guardar los resultados que se desean mostrar. Al terminar la simulación se genera un archivo que almacena paso por paso, el proceso entero.
Ejecuta las ordenes hechas por los métodos evento_botón_grafo y evento_simular. Capturando todas las peticiones hechas por el usuario, para proceder a la simulación de la 32
Capítulo 3. Diseño e Implementación
aplicación. Utiliza el paquete networkx para la implementación de las redes. Tiene una clase simulator contiene las variables: •
self.grafo: tipo de red para generar con el modulo python-networkx.
•
self.n: Cantidad de nodos que se quiere generar
•
self.m: Cantidad de conexiones promedio que se quiere generar por cada nodo
•
self.k: Probabilidad que tendrá una conexión de conectarse entre dos nodos (caso ErdosRenyi) y Probabilidad que tendrá un nodo de hacer una triangulación con uno de sus vecinos (caso Powerlaw Cluster)
•
num_random: Variable que guarda el tipo de nodo que va a difundir la noticia. Puede ser nodo más popular, menos popular o algún nodo que se quiera utilizar en particular.
•
El método run_simulator comienza con la simulación de la divulgación de la noticia en el grafo creado, se apoya en los métodos Recibe_noticia y Envía_noticia del modulo Útil. Además contiene las variables: ◦ id_noticia: es el nodo que va a difundir la noticia ◦ pesos: guarda la información de los pesos modificados por el usuarios, valor máximo y mínimo del interés de la Noticia (IN). Lo mismo para Noticia Recibida (NR). ◦ perfil: Guarda la información de los perfiles para los nodos del grafo. ◦ cola_eventos: Utilizado para saber cuando los nodos tienen que difundir o recibir la noticia. ◦ lista_noticias: Lista de todos los nodos del grafo, donde guarda si recibió o no la noticia a cada uno. ◦ lista_nodos_que_difunden_noticias:Lista de nodos que difunden la noticia. ◦ lista_nodos_que_sabían_la_noticia:Lista de nodos que conocen la noticia.
33
Capítulo 3. Diseño e Implementación
3.2.5 Modulo Útil Contiene un conjunto de métodos importantes para el empleo de la simulación, los cuales son descritos:
•
El método Envía_noticia crea un evento “Recibe Noticia” al nodo que sera enviada, y lo agrega en la cola_eventos.
•
El método Recibe_noticia es el encargado de que cuando le llega la noticia a un nodo decidir a que nodos enviarle dicha información, para esto se apoya en el método lógica_difusa, para saber la respuesta, si esta es afirmativa entonces crea un evento “Enviar noticia” al nodo elegido, y lo agrega a la cola de eventos, este proceso es realizado a todos los vecinos del nodo que recibe la noticia.
•
El método lógica_difusa devuelve la respuesta de enviar o no la noticia a un nodo. Se apoya en los módulos system y Perfiles para efectuar el proceso completo de la lógica difusa.
•
El método Porciento apoyado en las variables lista_nodos_que_difunden_noticias,
•
lista_nodos_que_sabían_la_noticia, lista_noticias, grafo, calcula los resultados que serán mostrados al usuario, estos son: ◦
Porciento de nodos que divulgaron la noticia.
◦
Nodo que más difundió la noticia.
◦
Porciento del nodo que más difundió la noticia.
◦
Porciento de nodos que recibieron la noticia y que ya la sabían.
◦
Porciento de nodos que no recibieron la noticia.
Además de utilizar las siguientes variables: ◦ nodo: Representa el índice de la lista lista_nodos_que_difunden_noticias. ◦
Total: Cantidad
de nodos del grafo.
◦
nodo_que_mas_difundió_noticia:
Lista donde guarda el nodo que difundió más la
noticia con la cantidad. ◦
nodo_que_mas_porciento_difundió_noticia: Lista donde guarda
más porciento de nodos al difundir la noticia, con la cantidad. 34
el nodo que tuvo
Capítulo 3. Diseño e Implementación
•
El método crea_lista genera una lista de tamaño nodos y le asigna a cada nodo el tipo valor.
•
El método cuenta_nodos devuelve la cantidad de nodos que tienen el valor “True”.
•
El método Vértice_mas_popular devuelve el nodo que mas conexiones tiene en la red.
•
El método Vértice_menos_popular devuelve uno de los nodo que menos conexiones tiene en la red.
•
El método dame_perfil devuelve un perfil aleatorio en caso que el usuario quiera que la red tenga múltiples perfiles.
•
El método convierte_de_porciento_cantidad convierte la información de los perfiles guardada en porciento por cantidad de nodos.
3.2.5.1 Modulo Evento Este modulo fue diseñado con el objetivo de crear una clase evento que contiene las variables: •
tipo_evento: puede almacenar los valores “ENVÍA_NOTICIA” o “RECIBE_NOTICIA”.
•
id: guarda el nodo que para vincular el tipo_evento.
3.2.6 Modulo system El sistema difuso esta dividido en 2 partes, “system” que guarda las variables del sistema con las funciones, y los perfiles que contienen las reglas. En la figura 3.7 se muestra un esquema de como esta implementado.
35
Capítulo 3. Diseño e Implementación
fig 3.7: Esquema del Sistema difuso
Cada perfil contiene dentro todo el proceso de fusificación y desdifusificación, así como el cálculo del centroide. ión se muestran las reglas.
R1: Introvertido – si IN es 'ajena' o NR es 'enemigo' o NR es conocido entonces EN es 'no' – si IN es 'interesante' o NR es 'amigo' entonces EN es 'si' R2: Conservador – si IN es 'ajena' o NR es 'enemigo' entonces EN es 'no' – si IN es 'interesante' y NR es 'conocido' o IN es 'interesante' y NR es 'amigo' entonces EN es 'si' R3: Social – si NR es 'enemigo' entonces EN es 'no' – si IN es 'ajena' o IN es 'interesante' o NR es 'amigo' o NR es 'conocido' entonces EN es 'si'
36
Capítulo 3. Diseño e Implementación
R4: Comunicador – si IN es 'ajena' y NR es 'enemigo' entonces EN es 'no' si IN es 'Interesante' o NR es 'amigo' o NR es 'conocido' entonces EN es 'si' Este modulo utiliza las funciones del paquete Pyfuzzy 0.0.2, para la implementación del sistema difuso. Contiene al método create_system que su objetivo es crear la variable global sistema donde este va a almacenar las variables de entrada y salida con sus respectivas funciones: •
noticia_recibida: ◦ enemigo:fuzzy.set.ZFunction.ZFunction(a=2.,delta=2.) ◦ conocido:fuzzy.set.PiFunction.PiFunction(a=5.,delta=3.) ◦ amigo: fuzzy.set.SFunction.SFunction(a=8.,delta=2.)
•
interés_noticia: ◦ ajena: fuzzy.set.Trapez.Trapez(m2=1.,beta=4.5) ◦ interesante: fuzzy.set.Trapez.Trapez(m1=9.,m2=12.,alpha=4.5)
•
enviar_noticia: ◦ si:fuzzy.set.Triangle.Triangle(y_max=1.0,y_min=0.0,m=7.5,alpha=2.5, beta=2.5) ◦ no:fuzzy.set.Triangle.Triangle(y_max=1.0,y_min=0.0,m=2.5,alpha=2.5, beta=2.5)
3.2.7 Modulo Perfiles Este módulo esta creado con el objetivo de utilizar métodos y variables comunes para los tipos de perfiles que hay creados. Dentro de los métodos tenemos los que crean reglas para la utilización del proceso de la lógica difusa. •
El método centroide determina el punto balance de la región difusa calculando el área bajo la curva de la figura creada.
•
El método Evalúa_función es para que la respuesta del modelo este acotada entre el rango [0,10].
•
El método create_and_implication_rule crea la regla “si A es a y B es b entonces C es c”.
•
El método create_and_implication_rule_1 crea la regla “si 'A es a y B es b' o 'D es d y E es e' entonces C es c”.
•
El método create_implication_rule crea la regla “si A es a entonces C es c”. 37
Capítulo 3. Diseño e Implementación
•
El método create_or_more_implication_rule crea la regla “si A es a o B es b o D es d entonces C es c”.
•
El método create_or_implication_rule crea la regla “si A es a o B es b entonces C es c”.
•
El método create_or_more_implication_rule_1 crea la regla “si A es a o B es b o D es d o E es e entonces C es c”. También contiene las variables que actúan como identificadores: ◦ INTROVERTIDO ◦ CONSERVADOR ◦ SOCIABLE ◦ COMUNICADOR
3.2.7.1 Modulo Introvertido, Conservador, Sociable, Comunicador Contiene una clase defuzifica y un método Reglas_del_sistema , que este ultimo es la unión de todas las reglas que que conforma el perfil. La clase esta estructurada por las variables: •
self.di: son los valores que van a tomar las variables de entrada.
•
self.sistema : contiene a todas las variables del sistema con sus funciones.
•
El método centroide unifica los métodos Reglas_del_sistema y centro id que contiene las variables : ◦ intervalos: cantidad de intervalos que se desea hacer para calcular el centroide. ◦ nombre_variable_salida: como lo indica, es el nombre de la variable de salida. ◦ Func: funciones devuelta por el método Reglas_del_sistema.
38
Capítulo 3. Diseño e Implementación
3.2.8 Modulo Func_gráficas Utiliza las librerías de Gnuplot para graficar las funciones de membresía de las variable “noticia recibida” y “interés de la noticia”.Contiene los métodos interés_noticia y noticia_recibida.
3.2.9 Interfaz de la aplicación La aplicación esta estructurada por 3 cuadros fundamentales para el manejo de la misma. Estos cuadros son: •
Datos del Grafo
•
Configuración de Perfiles
•
Otras Propiedades
38
fig 3.8 Esquema de la interfaz
El menú “Datos del Grafo” es donde el usuario escoge el tipo de grafo con sus parámetros de entrada. Por ejemplo en la fig 3.9 se muestra los Datos de la red de Barabási, donde te pide la cantidad de nodos que tendrá la red (n) y la cantidad de aristas iniciales de que cada nodo(m).
39
Capítulo 3. Diseño e Implementación
Otra opción que se incluyó en este recuadro fue quien pudiera comenzar a difundir la noticia.
fig 3.9 Esquema de Datos del modelo Barabási
En la fig 3.10 se muestran otros datos con respecto al modelo solicitado por el usuario. El modelo de Erdos Renyi, como ya se ha explicado anteriormente, tiene otros parámetros de entrada como la probabilidad de conectar una arista al grafo (k).
fig 3.10 Esquema de Datos del modelo Erdos Renyi
El modelo “Powerlaw Cluster” que se visualiza en la fig 3.11 muestra 3 opciones para generar la red, una más que las anteriores. Cabe señalar que la probabilidad (k) no es la misma que la del modelo Erdos Renyi. Es por esto que cada modelo contiene dentro de si sus propias variables para su utilización.
Fig 3.11 Esquema de Datos del modelo Powerlaw Cluster
El recuadro “Configuración de Perfiles” incluye características de los perfiles que se quieren asociar a la red escogida. Podemos escoger por “Perfil 40
Capítulo 3. Diseño e Implementación
Global” o “Perfil Personalizado”. El personalizado se crea con el objetivo de escoger cuantos nodos tendrá de cada perfil en el grafo.
Fig 3.12 Esquema de Configuración de Perfiles (1)
El usuario escoge el perfil que desee modificando los valores del porciento. Se da clic en el botón “Agregar”, para realizar dicha elección. Una vez realizada la acción,el limite del valor del porciento decrece a causa de la petición hecha por el usuario. Por ejemplo en la fig 3.12 se muestra este paso.
Ahora el usuario tiene para agregar hasta un 75%, porque en la primera petición escogió un 25% del perfil “introvertido”.
Fig 3.13 Esquema de Configuración de Perfiles (2)
El botón “Simular” se ejecuta cuando el usuario haya personalizado los recuadros “Datos del Grafo” y “Configuración de Perfiles” . Es necesario que el grafo se haya creado antes de dar clic a este botón, de lo contrario la aplicación no procedería a realizar el modelo pedido.
41
Capítulo 3. Diseño e Implementación
En el recuadro “Otras Propiedades” de la figura 3.14 muestra opciones para hacer más flexible y dinámico el rango de pesos de las variables “Interés de la Noticia” y “Noticia Recibida” . Puesto que estos valores se generan aleatorios, se trata de que el usuario pueda acotar los limites de los mismos. Tiene como objetivo que si se quisiera divulgar la noticia en la red de manera optimista , entonces los valores mínimos se incrementaría.
fig 3.14 Esquema de Otras Propiedades
Otra opción que brinda el recuadro “Otras Propiedades” es la posibilidad de representar las funciones de membresía con el paquete Gnuplot, vemos un ejemplo en la figura 3.15.
Fig 3.15 Esquema de graficación
42
Bibliografía [1] Lozares Colinas, Carlos (1996). “La teoría de las redes sociales”. Papers, Nº 48, Universidad Autónoma de Barcelona.
[2] David de Ugarte . Breve Historia del análisis de redes sociales . [3] Dr. Luis Joyanes Aquilar. Innovaciones Tecnológicas en Redes Sociales Virtuales. Facultad de informática, Universidad Pontificia de Salamanca , Campus de Madrid. [4] Hanneman, R. A. and M. Riddle (2005). Introduction to Social Network Methods.Riverside, CA: University of California, Riverside (published in digital form at http://www.faculty.ucr.edu/~hanneman/nettext/) [5] Redes Sociales en el punto de mira, Panda Security 2008. En: Boletines PandaLabs.Pcurity 200 http://www.pandasecurity.com/img/enc/Red_Soc_punto_mira.pdf [6] Gabriel Vélez Cuartas. La Teoría de la Estructuración para la Economía Basada en el Conocimiento: una propuesta metodológica a partir del concepto de red social, Universidad de Antioquia, Facultad de Ciencias Sociales y Humanas, Medellín [7] S. Milgram. The small world problem. Psychology Today, 1:61–67, 1967. [8] Saket Sathe. Six Degrees of Separation. June, 2008. http://lca2srv30.epfl.ch/sathe/data/six-degree.pdf [9] http://smallworld.columbia.edu/ [10] Charles Kadushin. Introduction to Social Network Theory, February 17, 2004 (published in digital form at http://home.earthlink.net/~ckadushin/Texts/Basic%20Network%20Concepts.pdf ) [11] http://www.orkut.com
57
Bibliografía [12] http://www.facebook.com [13] MySpace (2006a). Myspace.com a place for friends. Retrieved July 20, 2006 from: http://www.myspace.com/ [14] http://www.plaxo.com [15] http://www.xing.com [16] Eugene Barsky and Michelle Purdon. Introducing Web 2.0: social networking and social bookmarking for healt librarians, Publication: JCHLA/ JABSC Vol. 27,2006 [17] Attorney General. A Parent’s Guide to Social Networking Websites, LAWRENCE WASDEN, Boise, ID 83720-0010 ,NOVEMBER 2006 [18] David Fernández Quijada. El análisis de redes sociales aplicado al estudio de la estructura de las industrias culturales, Universidad Autònoma de Barcelona. [19] Romano, A. (2006, April 24). Walking a new beat: Surfing MySpace.com helps cops crack the case. Newsweek, 48. [20] Johnny Snyder, Don Carpenter, Gayla Jo Slauson. MySpace.com – A Social Networking Site and Social Contract Theory, Department of Business – CIS Mesa State College, Grand Junction, Colorado 81501. [21] Jennifer L. Behrens. About Facebook, Change at the social-networking juggernaut creates new opportunities for law library outreach, AALL Spectrum, April 2008. [22] MySpace, Facebook and Other Social Networking Sites: Hot Today, Gone Tomorrow?, Published: May 03, 2006, (http://knowledge.wharton.upenn.edu) [23] Publicacion #2, Redes Sociales, Mayo 2008, Enlace: http://www.proteccion.com.co/portal/secciones/PROTPORTAL/ HERRAMIIENTAS1/ RECURSOS/__html/descargas/Redes_sociales_2.pdf 58
Bibliografía
[24] Facebook API – Developers Guide [25] Proyecto de Grado Plataforma para Red Social: Plan Ceibal,Redes Sociales, [26] Jan Porekar: Random Networks. Prof. Rudi Podgornik. Ljubljana (2002) [27] Maximino Aldana : Redes Complejas .Noviembre (2006 ) [28] Luis Sanz. Análisis de redes sociales: o cómo representar las estructuras sociales subyacentes. Unidad de Políticas Comparadas (CSIC), Documento de Trabajo 03-07 [29] R. Albert and A.-L. Barabási, "Statistical mechanics of complex networks", Reviews of Modern Physics, 74, pp. 47-97, 2002. (Preprint available online at http://citeseer.ist.psu.edu/442178.html or http://arxiv.org/abs/cond-mat/0106096) [30] D. J. Watts and S. H. Strogatz., Collective dynamics of 'small-world' networks, Nature Vol 393 (1998) 440-442 [31] B. Bollobas: Mathematical results on scale-free random graphs. January 16, 2003 [32] A. Barabási, R Albert, “Emerge of Scaling in Random Networks”. Science, 1999. [33] Erdős and Rényi, “On Random Graphs”, 1959. [34] R Albert, H Jeong, AL Barabási, “The Internet's Achilles'hell: error and attack tolerance of complex networks”. Nature, 2000. [35] Jorge Miceli, Sergio Guerrero1:Redes libres de escala y su uso en el análisis de datos etnográficos: el caso de la comunidad tehuelche del Chalía [36] A. Barabási, Eric Bonabeau: Scale-Free Networks. Ameri 288, 60-69 (2003)
59
Bibliografía [37] P. Holme and B. J. Kim :Growing scale-free networks with tunable clustering. Phys. Rev. E, 2002, volume: 65. [38] Luciano Garcia, Luis Perez, Luis Marti:Temas de Simulacion. Editorial: Felix Varela, La habana,2006. [39] Aric Hagberg, Dan Schult, y Pieter Swart. NetworkX: High productivity soft-ware for complex networks.https://networkx.lanl.gov. [40] Anita Valdés Jahnsen. Modelo de análisis para una red social, Departamento de Comunicación Social,Concepción, Chile. http://periodismoudec.cl/estudiosdeperiodismo/index.php? [41] Colectivo de Autores. WEB 2.0 Aplicaciones Didácticas, CDI de Educacion de Madrid. [42] Alan Terry. Exponential random graphs. Dissertation submitted for the MSc in Data Analysis, Networks, and Nonlinear Dynamics, Department of Mathematics, University of York, UK .
60