---
title: "AHP El Método de Saati"
author: "Ricardo R. Palma"
date: "`r Sys.Date()`"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

# Ayuda a la toma de Decisiones

## Estado del Arte

En mi lista de tareas pendientes de diciembre del año pasado , tenía que "escribir un paquete R para facilitar el proceso de jerarquía analítica (AHP)", pero afortunadamente el grupo gluc se me adelantó y me ahorró toneladas de tiempo que dediqué a usar AHP para realizar una investigación real. problema. En primer lugar, ¡gracias por escribir el nuevo paquete ahp! A continuación, me gustaría mostrarles a todos lo fácil que este paquete hace que realice AHP y muestre los resultados. Usaremos el ejemplo de Tom, Dick y Harry que se describe en Wikipedia. – el objetivo es elegir un nuevo empleado y puedes elegir a Tom, Dick o Harry. Lea el planteamiento del problema en Wikipedia antes de continuar.

## ¿Qué es AHP?

AHP (Analitical Hierarchical Process) es un método para la toma de decisiones con criterios múltiples que desglosa el problema en función de criterios de decisión, subcriterios y alternativas que podrían satisfacer un objetivo particular. Los criterios se comparan entre sí, las alternativas se comparan entre sí basándose en qué tan bien satisfacen comparativamente los subcriterios, y luego los subcriterios se examinan en términos de qué tan bien satisfacen los criterios de nivel superior. El problema de Tom-Dick-Harry es una jerarquía simple: sólo un nivel de criterios separa la meta (“Elegir al líder más adecuado”) de las alternativas (Tom, Dick o Harry):

[Caso Estudio](https://en.wikipedia.org/wiki/Analytic_hierarchy_process_%E2%80%93_leader_example)


![Árbol AHP](tom-dick-harry.png)

Para utilizar el paquete ahp, la parte más desafiante consiste en configurar el archivo YAML con su jerarquía y sus clasificaciones. LO MÁS IMPORTANTE A RECORDAR ES QUE LA PRIMERA COLUMNA EN LA QUE APARECE UNA PALABRA ES IMPORTANTE. Esto se siente como FORTRAN. Los expertos de YAML pueden estar consternados porque yo no sabía esto, pero no lo sabía. Así que la mayor parte de las primeras 20 horas que pasé explorando el paquete ahp implicaron llegar a esta conclusión tan crítica. El archivo de entrada YAML AHP requiere que especifiques 1) las alternativas (junto con algunas variables que describen las alternativas; no las usé en este ejemplo, pero publicaré un segundo ejemplo que las usa) y 2) el jerarquía de objetivos, que incluye 2A) comparaciones de todos los criterios entre sí PRIMERO, y luego 2B) comparaciones de los criterios con las alternativas. Guardé mi archivo YAML como tomdickharry.txt y lo puse en mi directorio C:/AHP/tdh:


## Instalación de la biblioteca


Para instalarla debes seguir los pasos siguientes (revisa si ya has instalado devtools)

```{r}
devtools::install_github("gluc/ahp", build_vignettes = TRUE)
install.packages("data.tree")
library(ahp)
library(data.tree)
```
 Para generar la salida del procesamiento los pasos son ridiculamente sencillos.
 
 ## Seleccion de nueve gerente
 
```{r}
# setwd("C:/AHP/tdh" o la carpeta que hayas creado tu)
#getwd()
#list.files()
download.file("https://themys.sid.uncu.edu.ar/rpalma/R-cran/AHP/AHP_Simple/tom_dick_harry.ahp", "candidatos.ahp")
 myAhp <- Load("candidatos.ahp")

Calculate(myAhp)
Analyze(myAhp)
AnalyzeTable(myAhp)
```
 
Para ver otros ejemplo de cómo formar el archivo ahp busca en tu disco estos archivos

```{r}
library(ahp)
#list example files provided by the package
list.files(system.file("extdata", package="ahp"))
```

## Ejemplo de Compra de un automovil

```{r}
#load a specific example
# En este caso tomamos los archivos directamente de la bibloteca
# Si Windows 11 no carga estos datos es por la actualización de seguridad que está # instalando Microsoft en estos dias

# ahpFile <- system.file("extdata", "car.ahp", package="ahp")
download.file("https://themys.sid.uncu.edu.ar/rpalma/R-cran/AHP/AHP_Simple/car.ahp", "autos.ahp")

carAhp <- Load("autos.ahp")
Calculate(carAhp)
Analyze(carAhp)
AnalyzeTable(carAhp)
Visualize(carAhp)
```

```{r}
carAhp
```

## Ejemplo "selección del sitio de vacaciones"

```{r}
#the vacation.ahp file provides an example with multiple decision makers
ahpFile <- system.file("extdata", "vacation.ahp", package="ahp")

#download.file("https://themys.sid.uncu.edu.ar/rpalma/R-cran/AHP/AHP_Simple/vacation.ahp", "ahpFile.ahp")

vacationAhp <- Load(ahpFile)
Calculate(vacationAhp)
Visualize(vacationAhp)
Analyze(vacationAhp, decisionMaker = "Dad")
AnalyzeTable(vacationAhp, decisionMaker = "Mom")
AnalyzeTable(vacationAhp, 
             decisionMaker = "Kid",
             variable = "priority", 
             sort = "orig", 
             pruneFun = function(node, dm) PruneByCutoff(node, dm, minWeight = 0.1))
```




