SlideShare une entreprise Scribd logo
1  sur  44
PROBLEMA NÚMERO 20
  COLABORACIONES CIENTÍFICAS




          Francisco Garrido Carrasco
RESÚMEN DEL ENUNCIADO
• DOS CIENTÍFICOS SON AFINES SI:
  – FIGURAN COMO AUTORES DE UN MISMO
    ARTÍCULO.
  – EXISTE UNA SUCESIÓN DE CIENTÍFICOS Ci TAL QUE
    (A Y C1), (C1 Y C2), … , (Cn-1 Y Cn), (Cn Y Z), ES
    DECIR, FIGURAN COMO AUTORES DE UN MISMO
    ARTÍCULO.
• HAY QUE DETERMINAR LOS CIENTÍFICOS (NO
  REPETIDOS) AFINES A UNO DADO.
                    Francisco Garrido Carrasco
REPRESENTACIÓN DEL PROBLEMA



      RELACIÓN DE COLABORACIÓN EN UN ARTÍCULO
 C1                                             C2




                   Francisco Garrido Carrasco
REPRESENTACIÓN DEL PROBLEMA

                     C2
                                               C3


   C1


                                          C4
        C5
             Francisco Garrido Carrasco
DE LOS TAD´S VISTOS HASTA AHORA,
EL QUE MEJOR SE CORRESPONDE CON
      EL GRÁFICO ANTERIOR ES:




 TAD GRAFO
             Francisco Garrido Carrasco
Características del GRAFO


• Vértices: Representan a los científicos.
• Arcos: Representa la relación entre científicos,
  es decir, si existe arco entre dos vértices
  (científicos) han colaborado en el mismo
  artículo.


                    Francisco Garrido Carrasco
Características GRAFO
• Grafo no dirigido:
   – A afín B     han colaborado en el mismo artículo.
                                OR
   – Existe sucesión de científicos Ci / A - C1 - C2 - … - B
                           &&
   – B afín A    han colaborado en el mismo artículo.
                                OR
   – Existe sucesión de científicos Ci / B - C1 - C2 - … - A

• El grafo permite ciclos.

                         Francisco Garrido Carrasco
Características del GRAFO
• Grafo no dirigido:

                       C2
                                                     C3


    C1
                                                     ADY(C3, C4) = 1
                                                          &&
                                                     ADY(C4, C3) = 1

                                                C4
          C5
                   Francisco Garrido Carrasco
Características del GRAFO
EJEMPLO
                                   A afín D && D afín A
     A   B   C   D                 B afín C && C afín B
                                   B afín D && D afín B
 A   0   0   0   1
 B   0   0   1   1
 C   0   1   0   0                 A afín C && C afín A

 D   1   1   0   0        A                       D   B   C

                     Francisco Garrido Carrasco
Características del GRAFO
  TIPOS DE IMPLEMENTACIÓN




         Francisco Garrido Carrasco
Características del GRAFO
         TIPOS DE IMPLEMENTACIÓN


• Matriz de adyacencia




                  Francisco Garrido Carrasco
Características del GRAFO
         TIPOS DE IMPLEMENTACIÓN


• Matriz de adyacencia

• Dos conjuntos




                  Francisco Garrido Carrasco
Características del GRAFO
         TIPOS DE IMPLEMENTACIÓN


• Matriz de adyacencia

• Dos conjuntos

• Lista de adyacencia


                   Francisco Garrido Carrasco
Características del GRAFO
    TIPOS DE IMPLEMENTACIÓN



MATRIZ DE ADYACENCIA
(mejor tiempo de acceso)


           Francisco Garrido Carrasco
ALGORITMO




 Francisco Garrido Carrasco
ALGORITMO
• DEBE SER ITERATIVO




                 Francisco Garrido Carrasco
ALGORITMO
• DEBE SER ITERATIVO
• COSTE CUADRÁTICO




                 Francisco Garrido Carrasco
ALGORITMO
• DEBE SER ITERATIVO
• COSTE CUADRÁTICO
• DEBE DETERMINAR SI A Y Z SON AFINES




                 Francisco Garrido Carrasco
ALGORITMO
•   DEBE SER ITERATIVO
•   COSTE CUADRÁTICO
•   DEBE DETERMINAR SI A Y Z SON AFINES
•   DADO UN NÚMERO “n”, QUE DETERMINA EL
    MÁXIMO NÚMERO DE CIENTÍFICOS
    INTERMEDIOS QUE PUEDE HABER ENTRE A Y Z



                  Francisco Garrido Carrasco
ALGORITMO
• DEBE SER ITERATIVO
• COSTE CUADRÁTICO
• DEBE DETERMINAR SI A Y Z SON AFINES
• DADO UN NÚMERO “n”, QUE DETERMINA EL
  MÁXIMO NÚMERO DE CIENTÍFICOS
  INTERMEDIOS QUE PUEDE HABER ENTRE A Y Z
• “n” >= 0


                Francisco Garrido Carrasco
ALGORITMO
EN REALIDAD MI PROBLEMA ES:
Comprobar si dos científicos son AFINES,
dado un número máximo de científicos
intermedios

TRADUCIDO A MI TAD GRAFO ES:
Comprobar si EXISTE CAMINO entre ellos y
que la longitud de este sea menor o igual
que un número dado


              Francisco Garrido Carrasco
ALGORITMO
              SOLUCIÓN


RECORRER EL GRAFO DESDE UN VÉRTICE
(CIENTÍFICO) DADO, INTENTANDO LLEGAR AL
OTRO VÉRTICE (CIENTÍFICO) DADO.




              Francisco Garrido Carrasco
ALGORITMO
OPCIONES PARA RECORRER




       Francisco Garrido Carrasco
ALGORITMO
OPCIONES PARA RECORRER
    Recorrido en anchura
  Recorrido en profundidad
    Recorrido topológico
       Algoritmo MM
   Algoritmo de Warshall
     Algoritmo de Floyd
    Algoritmo de Dijkstra
     Algoritmo de Prim
    Algoritmo de Kruskal

         Francisco Garrido Carrasco
ALGORITMO
RECORRIDO EN ANCHURA
      Complejidad: O(n2)
       Recorrido iterativo
 Válido para grafos no dirigidos


          VALDRÍA




         Francisco Garrido Carrasco
ALGORITMO
RECORRIDO EN PROFUNDIDAD
       Complejidad: O(n2)
  Puede ser recursivo e iterativo
  Válido para grafos no dirigidos


           VALDRÍA




          Francisco Garrido Carrasco
ALGORITMO
     RECORRIDO TOPOLÓGICO
          Complejidad: O(n2)
          Recorrido iterativo
PARA GRAFOS DIRIGIDOS Y SIN CICLO

         ¡ NO VALDRÍA !



            Francisco Garrido Carrasco
ALGORITMO
ALGORITMO DE MM
COMPLEJIDAD O(n4)
  Recorrido iterativo


  ¡ NO VALDRÍA !




    Francisco Garrido Carrasco
ALGORITMO
ALGORITMO DE WARSHALL
  COMPLEJIDAD O(n3)
     Recorrido iterativo


    ¡ NO VALDRÍA !




       Francisco Garrido Carrasco
ALGORITMO
ALGORITMO DE FLOYD
 COMPLEJIDAD O(n3)
   Recorrido iterativo
    Grafos valuados


   ¡ NO VALDRÍA !



     Francisco Garrido Carrasco
ALGORITMO
      ALGORITMO DE DIJKSTRA
           Complejidad O(n2)
           Recorrido iterativo
            Grafos valuados


            ¡ VALDRÍA !
PONIENDO A TODAS LAS ARISTAS PESO 1


             Francisco Garrido Carrasco
ALGORITMO
        ALGORITMO DE PRIM
           Complejidad O(n2)
           Recorrido iterativo
            Grafos valuados


       ¡ PUEDE O NO VALER!
      PERO NO TIENE POR QUÉ
PONIENDO A TODAS LAS ARISTAS PESO 1

             Francisco Garrido Carrasco
ALGORITMO
      ALGORITMO DE KRUSKAL
           Complejidad O(n2)
           Recorrido iterativo
            Grafos valuados


       ¡ PUEDE O NO VALER!
      PERO NO TIENE POR QUÉ
PONIENDO A TODAS LAS ARISTAS PESO 1

             Francisco Garrido Carrasco
ALGORITMO
   LOS VÁLIDOS SON



  Recorrido en anchura
Recorrido en profundidad
  Algoritmo de Dijkstra



       Francisco Garrido Carrasco
ALGORITMO
     UTILIZARÉ



Recorrido en anchura




     Francisco Garrido Carrasco
void Anchura(Grafo G, TipoVertice v, CjtoVertices &Visitados){
     CjtoVertices Ady;
     TipoVertice w;
                                                                          ALGORITMO
     ColaTipoVertice C;

    Visitados.Crear();
    Visitados.Insertar(v);
                                                                   RECORRIDO EN ANCHURA
    C.Crear();
    C.Insertar(v);
    while(!C.Vacia()){
            C.Primero(v);
            C.Borrar();
            //Tratamiento de v
            Ady.Crear();
            G.Adyacentes(v,Ady);
            while(!Ady.Vacio()){
                          w = Ady.Elegir();
                          Ady.Borrar(w);
                          if(!Visitados.Pertenece(w)){
                                        Visitados.Insertar(w);
                                        C.Insertar(w);
                          }
            }
    }
}                                            Francisco Garrido Carrasco
ALGORITMO
              HAY QUE MODIFICAR ALGUNAS COSAS

• Añadir parámetros de entrada.
• Cada vértice será una estructura, compuesta por el valor
  numérico del vértice y un contador, que determina la
  distancia a la que se encuentra respecto del nodo de partida.
   typedef struct Vertice{
      int numeroVertice;
      int contador;
   };
• El algoritmo devolverá un tipo booleano.

                             Francisco Garrido Carrasco
bool Anchura(Grafo G, TipoVertice v, TipoVertice v2, CjtoVertices &Visitados, int n){
   bool encontrado = false;
    CjtoVertices Ady; TipoVertice w; ColaTipoVertice C;
    Visitados.Crear(); Visitados.Insertar(v);
    C.Crear(); C.Insertar(v);
    while((!C.Vacia()) && (!encontrado)){                                ALGORITMO
            C.Primero(v);
            C.Borrar();
            //Tratamiento de v                                     RECORRIDO EN ANCHURA
            Ady.Crear();
            G.Adyacentes(v,Ady);
                                                                        MODIFICADO
            while((!Ady.Vacio()) && (!encontrado)){
                         w = Ady.Elegir();
                         Ady.Borrar(w);
                         if(!Visitados.Pertenece(w)){
                                     w.contador = 1 + v.contador;
                                     if((w == v2) && (w.contador <= n)){
                                                encontrado = true;
                                     }
                                     Visitados.Insertar(w);
                                     C.Insertar(w);
    }       }            }
    return encontrado;
}                                           Francisco Garrido Carrasco
bool Anchura(Grafo G, TipoVertice v, TipoVertice v2, CjtoVertices &Visitados, int n){
   bool encontrado = false;
    CjtoVertices Ady; TipoVertice w; ColaTipoVertice C;
    Visitados.Crear(); Visitados.Insertar(v);
    C.Crear(); C.Insertar(v);
    while((!C.Vacia()) && (!encontrado)){                                ALGORITMO
            C.Primero(v);
            C.Borrar();
            //Tratamiento de v                                     RECORRIDO EN ANCHURA
            Ady.Crear();
            G.Adyacentes(v,Ady);
                                                                        MODIFICADO
            while((!Ady.Vacio()) && (!encontrado)){                      (MEJORA)
                         w = Ady.Elegir();
                         Ady.Borrar(w);
                         if(!Visitados.Pertenece(w)){
                                     w.contador = 1 + v.contador;
                                     if((w == v2) && (w.contador <= n)){
                                                encontrado = true;
                                     }
                                     Visitados.Insertar(w);
                                     if(w.contador <= n){
                                                  C.Insertar(w);
    }       }            }           }
    return encontrado;                      Francisco Garrido Carrasco
}
¿PREGUNTAS?

    Francisco Garrido Carrasco
ALGORITMO
               MÁS FÁCIL


         Algoritmo de Dijkstra

(Distancia mínima de un vértice al resto)




               Francisco Garrido Carrasco
ALGORITMO
                 RESUMIENDO

– Algoritmo de Dijkstra
– Todos las aristas tienen peso 1
– Comprobar en la matriz el valor dado para el par de
  vértices (científicos), los cuales estamos
  comprobando su afinidad

  Si (valor <= n) -> Existe camino -> Científicos afines
  Si (valor > n) OR (valor == 0) -> Científicos no afines


                   Francisco Garrido Carrasco
ALGORITMO                                   IMPLEMENTACIÓN
Procedimiento Dijkstra (ent G: grafo; ent v: vértice;
                               sal MenorCoste: vector[n] de etiqueta)
variables
     Visitados: Cjto Vértices;

Inicio
     Para todo w de G.Vertices() hacer
             MenorCoste[w] = etiqueta (G, v, w)
     FinPara
     MenorCoste[v] = 0;             // no hace falta, ya vale 0
     Visitados.Crear();
     Visitados.Insertar(v);
     mientras Visitados no contenga todos los vértices hacer
             seleccionar w no pertenece Visitados t.q. MenorCoste[w] sea mínimo
             Visitados.Insertar(w);
             para todo u no pertenece Visitados hacer
                         MenorCoste[u] = mínimo (MenorCoste[u], MenorCoste[w]+etiqueta(G, u, w))



                                         Francisco Garrido Carrasco
ALGORITMO                             IMPLEMENTACIÓN
Procedimiento Afines (ent G: grafo; ent v: vértice; ent v2: vértice) devuelve boolean

Variables
    sal MenorCoste: vector[n] de etiqueta

Inicio
    Dijkstra(G, v, menorCoste);
    si ((MenorCoste[v2 - 1] == 0) OR (MenorCoste[v2 - 1] > n)) {
           devuelve false;
    }
    sino{
           devuelve true;
    }
Fin

                                  Francisco Garrido Carrasco

Contenu connexe

Dernier

ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y maslida630411
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 

Dernier (20)

El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y mas
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 

En vedette

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

En vedette (20)

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 

Garrido_Carrasco_Francisco_[Grafos]

  • 1. PROBLEMA NÚMERO 20 COLABORACIONES CIENTÍFICAS Francisco Garrido Carrasco
  • 2. RESÚMEN DEL ENUNCIADO • DOS CIENTÍFICOS SON AFINES SI: – FIGURAN COMO AUTORES DE UN MISMO ARTÍCULO. – EXISTE UNA SUCESIÓN DE CIENTÍFICOS Ci TAL QUE (A Y C1), (C1 Y C2), … , (Cn-1 Y Cn), (Cn Y Z), ES DECIR, FIGURAN COMO AUTORES DE UN MISMO ARTÍCULO. • HAY QUE DETERMINAR LOS CIENTÍFICOS (NO REPETIDOS) AFINES A UNO DADO. Francisco Garrido Carrasco
  • 3. REPRESENTACIÓN DEL PROBLEMA RELACIÓN DE COLABORACIÓN EN UN ARTÍCULO C1 C2 Francisco Garrido Carrasco
  • 4. REPRESENTACIÓN DEL PROBLEMA C2 C3 C1 C4 C5 Francisco Garrido Carrasco
  • 5. DE LOS TAD´S VISTOS HASTA AHORA, EL QUE MEJOR SE CORRESPONDE CON EL GRÁFICO ANTERIOR ES: TAD GRAFO Francisco Garrido Carrasco
  • 6. Características del GRAFO • Vértices: Representan a los científicos. • Arcos: Representa la relación entre científicos, es decir, si existe arco entre dos vértices (científicos) han colaborado en el mismo artículo. Francisco Garrido Carrasco
  • 7. Características GRAFO • Grafo no dirigido: – A afín B han colaborado en el mismo artículo. OR – Existe sucesión de científicos Ci / A - C1 - C2 - … - B && – B afín A han colaborado en el mismo artículo. OR – Existe sucesión de científicos Ci / B - C1 - C2 - … - A • El grafo permite ciclos. Francisco Garrido Carrasco
  • 8. Características del GRAFO • Grafo no dirigido: C2 C3 C1 ADY(C3, C4) = 1 && ADY(C4, C3) = 1 C4 C5 Francisco Garrido Carrasco
  • 9. Características del GRAFO EJEMPLO A afín D && D afín A A B C D B afín C && C afín B B afín D && D afín B A 0 0 0 1 B 0 0 1 1 C 0 1 0 0 A afín C && C afín A D 1 1 0 0 A D B C Francisco Garrido Carrasco
  • 10. Características del GRAFO TIPOS DE IMPLEMENTACIÓN Francisco Garrido Carrasco
  • 11. Características del GRAFO TIPOS DE IMPLEMENTACIÓN • Matriz de adyacencia Francisco Garrido Carrasco
  • 12. Características del GRAFO TIPOS DE IMPLEMENTACIÓN • Matriz de adyacencia • Dos conjuntos Francisco Garrido Carrasco
  • 13. Características del GRAFO TIPOS DE IMPLEMENTACIÓN • Matriz de adyacencia • Dos conjuntos • Lista de adyacencia Francisco Garrido Carrasco
  • 14. Características del GRAFO TIPOS DE IMPLEMENTACIÓN MATRIZ DE ADYACENCIA (mejor tiempo de acceso) Francisco Garrido Carrasco
  • 16. ALGORITMO • DEBE SER ITERATIVO Francisco Garrido Carrasco
  • 17. ALGORITMO • DEBE SER ITERATIVO • COSTE CUADRÁTICO Francisco Garrido Carrasco
  • 18. ALGORITMO • DEBE SER ITERATIVO • COSTE CUADRÁTICO • DEBE DETERMINAR SI A Y Z SON AFINES Francisco Garrido Carrasco
  • 19. ALGORITMO • DEBE SER ITERATIVO • COSTE CUADRÁTICO • DEBE DETERMINAR SI A Y Z SON AFINES • DADO UN NÚMERO “n”, QUE DETERMINA EL MÁXIMO NÚMERO DE CIENTÍFICOS INTERMEDIOS QUE PUEDE HABER ENTRE A Y Z Francisco Garrido Carrasco
  • 20. ALGORITMO • DEBE SER ITERATIVO • COSTE CUADRÁTICO • DEBE DETERMINAR SI A Y Z SON AFINES • DADO UN NÚMERO “n”, QUE DETERMINA EL MÁXIMO NÚMERO DE CIENTÍFICOS INTERMEDIOS QUE PUEDE HABER ENTRE A Y Z • “n” >= 0 Francisco Garrido Carrasco
  • 21. ALGORITMO EN REALIDAD MI PROBLEMA ES: Comprobar si dos científicos son AFINES, dado un número máximo de científicos intermedios TRADUCIDO A MI TAD GRAFO ES: Comprobar si EXISTE CAMINO entre ellos y que la longitud de este sea menor o igual que un número dado Francisco Garrido Carrasco
  • 22. ALGORITMO SOLUCIÓN RECORRER EL GRAFO DESDE UN VÉRTICE (CIENTÍFICO) DADO, INTENTANDO LLEGAR AL OTRO VÉRTICE (CIENTÍFICO) DADO. Francisco Garrido Carrasco
  • 23. ALGORITMO OPCIONES PARA RECORRER Francisco Garrido Carrasco
  • 24. ALGORITMO OPCIONES PARA RECORRER Recorrido en anchura Recorrido en profundidad Recorrido topológico Algoritmo MM Algoritmo de Warshall Algoritmo de Floyd Algoritmo de Dijkstra Algoritmo de Prim Algoritmo de Kruskal Francisco Garrido Carrasco
  • 25. ALGORITMO RECORRIDO EN ANCHURA Complejidad: O(n2) Recorrido iterativo Válido para grafos no dirigidos VALDRÍA Francisco Garrido Carrasco
  • 26. ALGORITMO RECORRIDO EN PROFUNDIDAD Complejidad: O(n2) Puede ser recursivo e iterativo Válido para grafos no dirigidos VALDRÍA Francisco Garrido Carrasco
  • 27. ALGORITMO RECORRIDO TOPOLÓGICO Complejidad: O(n2) Recorrido iterativo PARA GRAFOS DIRIGIDOS Y SIN CICLO ¡ NO VALDRÍA ! Francisco Garrido Carrasco
  • 28. ALGORITMO ALGORITMO DE MM COMPLEJIDAD O(n4) Recorrido iterativo ¡ NO VALDRÍA ! Francisco Garrido Carrasco
  • 29. ALGORITMO ALGORITMO DE WARSHALL COMPLEJIDAD O(n3) Recorrido iterativo ¡ NO VALDRÍA ! Francisco Garrido Carrasco
  • 30. ALGORITMO ALGORITMO DE FLOYD COMPLEJIDAD O(n3) Recorrido iterativo Grafos valuados ¡ NO VALDRÍA ! Francisco Garrido Carrasco
  • 31. ALGORITMO ALGORITMO DE DIJKSTRA Complejidad O(n2) Recorrido iterativo Grafos valuados ¡ VALDRÍA ! PONIENDO A TODAS LAS ARISTAS PESO 1 Francisco Garrido Carrasco
  • 32. ALGORITMO ALGORITMO DE PRIM Complejidad O(n2) Recorrido iterativo Grafos valuados ¡ PUEDE O NO VALER! PERO NO TIENE POR QUÉ PONIENDO A TODAS LAS ARISTAS PESO 1 Francisco Garrido Carrasco
  • 33. ALGORITMO ALGORITMO DE KRUSKAL Complejidad O(n2) Recorrido iterativo Grafos valuados ¡ PUEDE O NO VALER! PERO NO TIENE POR QUÉ PONIENDO A TODAS LAS ARISTAS PESO 1 Francisco Garrido Carrasco
  • 34. ALGORITMO LOS VÁLIDOS SON Recorrido en anchura Recorrido en profundidad Algoritmo de Dijkstra Francisco Garrido Carrasco
  • 35. ALGORITMO UTILIZARÉ Recorrido en anchura Francisco Garrido Carrasco
  • 36. void Anchura(Grafo G, TipoVertice v, CjtoVertices &Visitados){ CjtoVertices Ady; TipoVertice w; ALGORITMO ColaTipoVertice C; Visitados.Crear(); Visitados.Insertar(v); RECORRIDO EN ANCHURA C.Crear(); C.Insertar(v); while(!C.Vacia()){ C.Primero(v); C.Borrar(); //Tratamiento de v Ady.Crear(); G.Adyacentes(v,Ady); while(!Ady.Vacio()){ w = Ady.Elegir(); Ady.Borrar(w); if(!Visitados.Pertenece(w)){ Visitados.Insertar(w); C.Insertar(w); } } } } Francisco Garrido Carrasco
  • 37. ALGORITMO HAY QUE MODIFICAR ALGUNAS COSAS • Añadir parámetros de entrada. • Cada vértice será una estructura, compuesta por el valor numérico del vértice y un contador, que determina la distancia a la que se encuentra respecto del nodo de partida. typedef struct Vertice{ int numeroVertice; int contador; }; • El algoritmo devolverá un tipo booleano. Francisco Garrido Carrasco
  • 38. bool Anchura(Grafo G, TipoVertice v, TipoVertice v2, CjtoVertices &Visitados, int n){ bool encontrado = false; CjtoVertices Ady; TipoVertice w; ColaTipoVertice C; Visitados.Crear(); Visitados.Insertar(v); C.Crear(); C.Insertar(v); while((!C.Vacia()) && (!encontrado)){ ALGORITMO C.Primero(v); C.Borrar(); //Tratamiento de v RECORRIDO EN ANCHURA Ady.Crear(); G.Adyacentes(v,Ady); MODIFICADO while((!Ady.Vacio()) && (!encontrado)){ w = Ady.Elegir(); Ady.Borrar(w); if(!Visitados.Pertenece(w)){ w.contador = 1 + v.contador; if((w == v2) && (w.contador <= n)){ encontrado = true; } Visitados.Insertar(w); C.Insertar(w); } } } return encontrado; } Francisco Garrido Carrasco
  • 39. bool Anchura(Grafo G, TipoVertice v, TipoVertice v2, CjtoVertices &Visitados, int n){ bool encontrado = false; CjtoVertices Ady; TipoVertice w; ColaTipoVertice C; Visitados.Crear(); Visitados.Insertar(v); C.Crear(); C.Insertar(v); while((!C.Vacia()) && (!encontrado)){ ALGORITMO C.Primero(v); C.Borrar(); //Tratamiento de v RECORRIDO EN ANCHURA Ady.Crear(); G.Adyacentes(v,Ady); MODIFICADO while((!Ady.Vacio()) && (!encontrado)){ (MEJORA) w = Ady.Elegir(); Ady.Borrar(w); if(!Visitados.Pertenece(w)){ w.contador = 1 + v.contador; if((w == v2) && (w.contador <= n)){ encontrado = true; } Visitados.Insertar(w); if(w.contador <= n){ C.Insertar(w); } } } } return encontrado; Francisco Garrido Carrasco }
  • 40. ¿PREGUNTAS? Francisco Garrido Carrasco
  • 41. ALGORITMO MÁS FÁCIL Algoritmo de Dijkstra (Distancia mínima de un vértice al resto) Francisco Garrido Carrasco
  • 42. ALGORITMO RESUMIENDO – Algoritmo de Dijkstra – Todos las aristas tienen peso 1 – Comprobar en la matriz el valor dado para el par de vértices (científicos), los cuales estamos comprobando su afinidad Si (valor <= n) -> Existe camino -> Científicos afines Si (valor > n) OR (valor == 0) -> Científicos no afines Francisco Garrido Carrasco
  • 43. ALGORITMO IMPLEMENTACIÓN Procedimiento Dijkstra (ent G: grafo; ent v: vértice; sal MenorCoste: vector[n] de etiqueta) variables Visitados: Cjto Vértices; Inicio Para todo w de G.Vertices() hacer MenorCoste[w] = etiqueta (G, v, w) FinPara MenorCoste[v] = 0; // no hace falta, ya vale 0 Visitados.Crear(); Visitados.Insertar(v); mientras Visitados no contenga todos los vértices hacer seleccionar w no pertenece Visitados t.q. MenorCoste[w] sea mínimo Visitados.Insertar(w); para todo u no pertenece Visitados hacer MenorCoste[u] = mínimo (MenorCoste[u], MenorCoste[w]+etiqueta(G, u, w)) Francisco Garrido Carrasco
  • 44. ALGORITMO IMPLEMENTACIÓN Procedimiento Afines (ent G: grafo; ent v: vértice; ent v2: vértice) devuelve boolean Variables sal MenorCoste: vector[n] de etiqueta Inicio Dijkstra(G, v, menorCoste); si ((MenorCoste[v2 - 1] == 0) OR (MenorCoste[v2 - 1] > n)) { devuelve false; } sino{ devuelve true; } Fin Francisco Garrido Carrasco