module HAHP.Sample.CarChoice where import Data.Map import HAHP.Data import Numeric.LinearAlgebra.HMatrix carChoiceTree :: AHPTree carChoiceTree = AHPTree "Choose the best car for the Jones family" ( (4><4) [ 1, 3, 7, 3 , 1/3, 1, 9, 1 , 1/7, 1/9, 1, 1/7 , 1/3, 1, 7, 1 ] ) Nothing Nothing Nothing [ AHPTree "Cost" ( (4><4) [ 1, 2, 5, 3 , 1/2, 1, 2, 2 , 1/5, 1/2, 1, 1/2 , 1/3, 1/2, 2, 1 ] ) Nothing Nothing Nothing [ AHPLeaf "Purchase Price" True Nothing , AHPLeaf "Fuel Costs" True Nothing , AHPLeaf "Maintenance Costs" True Nothing , AHPLeaf "Resale Value" True Nothing ] , AHPLeaf "Safety" True Nothing , AHPLeaf "Style" True Nothing , AHPTree "Capacity" ( (2><2) [ 1, 1/5 , 5, 1 ] ) Nothing Nothing Nothing [ AHPLeaf "Cargo Capacity" True Nothing , AHPLeaf "Passenger Capacity" True Nothing ] ] asValues = insert "Purchase Price" 0.242 . insert "Fuel Costs" 0.188 . insert "Maintenance Costs" 0.357 . insert "Resale Value" 0.225 . insert "Safety" 0.215 . insert "Style" 0.346 . insert "Cargo Capacity" 0.090 . insert "Passenger Capacity" 0.136 $ empty ahValues = insert "Purchase Price" 0.027 . insert "Fuel Costs" 0.212 . insert "Maintenance Costs" 0.312 . insert "Resale Value" 0.095 . insert "Safety" 0.215 . insert "Style" 0.346 . insert "Cargo Capacity" 0.090 . insert "Passenger Capacity" 0.136 $ empty psuvValues = insert "Purchase Price" 0.027 . insert "Fuel Costs" 0.133 . insert "Maintenance Costs" 0.084 . insert "Resale Value" 0.055 . insert "Safety" 0.083 . insert "Style" 0.045 . insert "Cargo Capacity" 0.170 . insert "Passenger Capacity" 0.273 $ empty crvValues = insert "Purchase Price" 0.242 . insert "Fuel Costs" 0.160 . insert "Maintenance Costs" 0.100 . insert "Resale Value" 0.415 . insert "Safety" 0.038 . insert "Style" 0.160 . insert "Cargo Capacity" 0.170 . insert "Passenger Capacity" 0.136 $ empty esuvValues = insert "Purchase Price" 0.362 . insert "Fuel Costs" 0.151 . insert "Maintenance Costs" 0.089 . insert "Resale Value" 0.105 . insert "Safety" 0.025 . insert "Style" 0.025 . insert "Cargo Capacity" 0.170 . insert "Passenger Capacity" 0.046 $ empty omValues = insert "Purchase Price" 0.100 . insert "Fuel Costs" 0.156 . insert "Maintenance Costs" 0.058 . insert "Resale Value" 0.105 . insert "Safety" 0.424 . insert "Style" 0.078 . insert "Cargo Capacity" 0.310 . insert "Passenger Capacity" 0.273 $ empty carChoiceAlternatives :: [Alternative] carChoiceAlternatives = [ Alternative "Accord Sedan" asValues , Alternative "Accord Hybrid" ahValues , Alternative "Pilot SUV" psuvValues , Alternative "CR-V SUV" crvValues , Alternative "Element SUV" esuvValues , Alternative "Odyssey Minivan" omValues ]