Scenario:
- The goal is to select the most appropriate sedan from the candidates.
 - Selection criterion are:
- Style
 - Reliability
 - Fuel Consumption
 - Price
 
 - Criterion Comparison Table:
 
- Reliability Comparison Table:
 
- Owing to Fuel Consumption and Cost are both Quantitative criterion, there are no needs of comparison tables for such criterion.
 
GNU R:
- It is very powerful programmable statistical tool. This material is to demonstrate how GNU R can facilitate the Analytical Hierarchy Process (AHP) in decision making.
 
- In order to facilitate the calculation during AHP, a function library is designed as follows:
- ahp_dot <- function(m) {
 -  m -> ret
 -  for (i in 1:length(m[1,])) {
 -   for (j in 1:length(m[,1])) {
 -    sum(m[i,] * m[,j]) -> ret[i,j]
 -   }
 -  }
 -  ret
 - }
 - ahp_eigen_vector <- function(m) {
 -  m[1,] -> ret
 -  for (i in 1:length(m[1,])) {
 -   sum(m[i,]) -> ret[i] 
 -  }
 -  ret
 - }
 -  
 - ahp_weight <- function(v) {
 -  sum(v) -> total
 -  v -> ret
 -  for (i in 1:length(v)) {
 -   v[i]/total -> ret[i]
 -  }
 -  ret
 - }
 - ahp_eigen <- function(m) {
 -  ahp_weight(ahp_eigen_vector(ahp_dot(m))) -> ret
 -  ret
 - }
 - ahp_eigen_check <- function(v1, v2) {
 -  v1 - v2 -> ret
 -  ret
 - }
 - ahp_process <- function(m) {
 -  ahp_dot(m) -> my_dot
 -  ahp_eigen(my_dot) -> ret
 -  ret
 - }
 
 - Main R program is as follows:
- read.table("AHP-Criteria-Weight.dat") -> my_data
 - ahp_process(my_data) -> my_eigen
 - read.table("AHP-Style-Comparison.dat") -> my_data_1
 - ahp_process(my_data_1) -> my_eigen_1
 - read.table("AHP-Reliability-Comparison.dat") -> my_data_2
 - ahp_process(my_data_2) -> my_eigen_2
 - read.table("AHP-Fuel-Comparison.dat") -> my_data_3
 - ahp_weight(my_data_3[1,]) -> my_eigen_3
 - read.table("AHP-Price-Comparison.dat") -> my_data_4
 - ahp_weight(my_data_4[1,]) -> my_eigen_4
 - matrix(c(my_eigen_1, my_eigen_2, my_eigen_3), length(my_eigen_3)) -> my_matrix
 - my_eigen_3 -> ret
 - for (i in 1:length(my_eigen_3)) {
 -  sum(my_matrix[i,] * my_eigen) -> ret
 - }
 - print(ret * my_eigen_4)
 
 - Weight of Criteria Table:
 
- Weight Table of Candidates:
 
- Benefit Comparison Table:
 
- The best choice is Civic, and the worst one is Clio.