# UNIVERSIDAD NACIONAL DEL ALTIPLANO PUNO
# INGENIERIA ESTADISTICA E INFORMATICA
# INTELIGENCIA ARTIFICIAL

library(ggraph)
## Warning: package 'ggraph' was built under R version 4.1.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.1.3
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.1.3
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v tibble  3.1.6     v dplyr   1.0.8
## v tidyr   1.2.0     v stringr 1.4.0
## v readr   2.1.2     v forcats 0.5.1
## v purrr   0.3.4
## Warning: package 'tibble' was built under R version 4.1.3
## Warning: package 'tidyr' was built under R version 4.1.3
## Warning: package 'readr' was built under R version 4.1.3
## Warning: package 'purrr' was built under R version 4.1.3
## Warning: package 'dplyr' was built under R version 4.1.3
## Warning: package 'stringr' was built under R version 4.1.3
## Warning: package 'forcats' was built under R version 4.1.3
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(ggthemes)
## Warning: package 'ggthemes' was built under R version 4.1.3
library(dplyr)
library(igraph)
## Warning: package 'igraph' was built under R version 4.1.3
## 
## Attaching package: 'igraph'
## The following objects are masked from 'package:dplyr':
## 
##     as_data_frame, groups, union
## The following objects are masked from 'package:purrr':
## 
##     compose, simplify
## The following object is masked from 'package:tidyr':
## 
##     crossing
## The following object is masked from 'package:tibble':
## 
##     as_data_frame
## The following objects are masked from 'package:stats':
## 
##     decompose, spectrum
## The following object is masked from 'package:base':
## 
##     union
library(sand)
## Warning: package 'sand' was built under R version 4.1.3
## Loading required package: igraphdata
## Warning: package 'igraphdata' was built under R version 4.1.3
## 
## Statistical Analysis of Network Data with R, 2nd Edition
## Type in C2 (+ENTER) to start with Chapter 2.
library(pander)
## Warning: package 'pander' was built under R version 4.1.3
library(reshape2)
## Warning: package 'reshape2' was built under R version 4.1.3
## 
## Attaching package: 'reshape2'
## The following object is masked from 'package:tidyr':
## 
##     smiths
library(readxl)
## Warning: package 'readxl' was built under R version 4.1.3
Data <- read_excel("D:/INTELIGENCIA ARTIFICIAL/Data.xlsx")
Data
## # A tibble: 9 x 3
##    var1  var2  Peso
##   <dbl> <dbl> <dbl>
## 1     1     2     7
## 2     1     3     9
## 3     2     3    10
## 4     2     4    15
## 5     3     4    11
## 6     3     6     2
## 7     4     5     6
## 8     5     6     9
## 9     6     1    14
# Data <- edit(data.frame())

g <- graph.data.frame(Data, directed = F)
class(g)
## [1] "igraph"
V(g)$name
## [1] "1" "2" "3" "4" "5" "6"
E(g)$Peso
## [1]  7  9 10 15 11  2  6  9 14
tkplot(g)
## [1] 1
plot(g, edge.label = paste(E(g)$Peso, sep = ""))

# Camino mas corto entre 1 y 5
sp <- shortest.paths(g, v = "1", to = "5")
sp[]
##   5
## 1 2
gsp <- get.shortest.paths(g, from = "1", to = "5")
V(g)[gsp$vpath[[1]]]
## + 3/6 vertices, named, from f818b17:
## [1] 1 6 5
# Matriz de adyacencia con ceros
adj <- get.adjacency(g, attr = 'Peso', sparse = F)
adj
##    1  2  3  4 5  6
## 1  0  7  9  0 0 14
## 2  7  0 10 15 0  0
## 3  9 10  0 11 0  2
## 4  0 15 11  0 6  0
## 5  0  0  0  6 0  9
## 6 14  0  2  0 9  0
# Caminos mas cortos desde 1
allsp <- get.all.shortest.paths(g, from = "1")
str(allsp)
## List of 2
##  $ res  :List of 7
##   ..$ : 'igraph.vs' Named int 1
##   .. ..- attr(*, "names")= chr "1"
##   .. ..- attr(*, "env")=<weakref> 
##   .. ..- attr(*, "graph")= chr "f818b170-c50c-11ec-b9ac-eb85bb52b508"
##   ..$ : 'igraph.vs' Named int [1:2] 1 2
##   .. ..- attr(*, "names")= chr [1:2] "1" "2"
##   .. ..- attr(*, "env")=<weakref> 
##   .. ..- attr(*, "graph")= chr "f818b170-c50c-11ec-b9ac-eb85bb52b508"
##   ..$ : 'igraph.vs' Named int [1:2] 1 3
##   .. ..- attr(*, "names")= chr [1:2] "1" "3"
##   .. ..- attr(*, "env")=<weakref> 
##   .. ..- attr(*, "graph")= chr "f818b170-c50c-11ec-b9ac-eb85bb52b508"
##   ..$ : 'igraph.vs' Named int [1:3] 1 3 4
##   .. ..- attr(*, "names")= chr [1:3] "1" "3" "4"
##   .. ..- attr(*, "env")=<weakref> 
##   .. ..- attr(*, "graph")= chr "f818b170-c50c-11ec-b9ac-eb85bb52b508"
##   ..$ : 'igraph.vs' Named int [1:3] 1 2 4
##   .. ..- attr(*, "names")= chr [1:3] "1" "2" "4"
##   .. ..- attr(*, "env")=<weakref> 
##   .. ..- attr(*, "graph")= chr "f818b170-c50c-11ec-b9ac-eb85bb52b508"
##   ..$ : 'igraph.vs' Named int [1:3] 1 6 5
##   .. ..- attr(*, "names")= chr [1:3] "1" "6" "5"
##   .. ..- attr(*, "env")=<weakref> 
##   .. ..- attr(*, "graph")= chr "f818b170-c50c-11ec-b9ac-eb85bb52b508"
##   ..$ : 'igraph.vs' Named int [1:2] 1 6
##   .. ..- attr(*, "names")= chr [1:2] "1" "6"
##   .. ..- attr(*, "env")=<weakref> 
##   .. ..- attr(*, "graph")= chr "f818b170-c50c-11ec-b9ac-eb85bb52b508"
##  $ nrgeo: num [1:6] 1 1 1 2 1 1