我想使用ahp包在我的AHP层次结构树的yaml文件中为两个子标准(货物容量,乘客容量)创建一个crieria(Fun),用于3个多重决策(爸爸,妈妈和孩子),但不起作用。在ahp文件格式元素(https://cran.r-project.org/web/packages/ahp/vignettes/file-format.html)中,元素是:
criteria 1
preferences
childrend
sub-criteria 1.1
sub-criteria 1.2
children: *alternatives
但是,当我尝试:
Fun:
preferences:
Dad:
pairwise
- [Cargo Capacity, Passenger Capacity, 1/5]
Mom:
pairwise
- [Cargo Capacity, Passenger Capacity, 1/5]
Kid:
pairwise
- [Cargo Capacity, Passenger Capacity, 1/5]
childrend:
Cargo Capacity:
preferences:
Dad:
pairwise:
- [Fipronil, Imidaclopride, 3]
- [Fipronil, Sulfluramida, 9]
- [Imidaclopride, Sulfluramida, 5]
Mom:
pairwise:
- [Fipronil, Imidaclopride, 7]
- [Fipronil, Sulfluramida, 9]
- [Imidaclopride, Sulfluramida, 5]
Kid:
pairwise:
- [Fipronil, Imidaclopride, 7]
- [Fipronil, Sulfluramida, 1]
- [Imidaclopride, Sulfluramida, 5]
Passenger Capacity:
preferences:
Dad:
pairwise:
- [Fipronil, Imidaclopride, 7]
- [Fipronil, Sulfluramida, 9]
- [Imidaclopride, Sulfluramida, 5]
Mom:
pairwise:
- [Fipronil, Imidaclopride, 5]
- [Fipronil, Sulfluramida, 9]
- [Imidaclopride, Sulfluramida, 9]
Kid:
pairwise:
- [Fipronil, Imidaclopride, 7]
- [Fipronil, Sulfluramida, 5]
- [Imidaclopride, Sulfluramida, 5]
children: *alternatives
错误是重复的地图密钥:
Error in value[[3L]](cond) :
Could not load ahp model. File must be a valid YAML file. Exception caught when parsing YAML file: Error in yaml::yaml.load(ahpString): Duplicate map key: 'Kid'
如果我删除“孩子”,则“妈妈”会重复 我怎样才能解决这个问题?因为我期望每个子标准有一个值,每个子标准内有3个值。
答案 0 :(得分:0)
我不确定您的缩进是否忠实于您的原件,或者您是否在YAML文件中使用了TAB字符(您不应该这样做)。
您的preferences:
密钥没有值,如果它应该有Dad
作为其中一个密钥的映射,请确保它比preferences
缩进,但目前不是。childrend
。
问题是,密钥Cargo Capacity
的值是映射,该映射包含密钥:Dad
,Mom
,Kid
,Passenger Capacity
,Dad
,Mom
,Kid
,Object
。并且不允许使用双键。
答案 1 :(得分:0)
您的文件存在很多问题:
你的空格/缩进在许多地方都是错位的。如果您使用http://ipub.com/apps/ahp/处的编辑器,它将帮助您对齐,并且还允许您使用Tab键进行缩进而不必考虑。
您需要一个开头的版本元素
接下来,您需要一个Alternatives部分,其中包含替代对象
您的目标部分需要被称为目标
您需要非常小心YAML中的冒号:每当有物体时,请务必使用:(例如成对后)
对于决策树中的每个节点,您需要添加子部分
对于决策树中的每个叶子,您需要将替代项添加到子部分
有效的文件(与https://cran.r-project.org/web/packages/ahp/vignettes/file-format.html末尾的文件非常相似)是:
Version: 2.0
Alternatives: &alternatives
Fipronil:
description: alternative 1
Imidaclopride:
description: alternative 2
Sulfluramida:
description: alternative 3
Goal:
name: Fun
decision-makers:
- Dad: 1/3
- Mom: 1/3
- Kid: 1/3
preferences:
Dad:
pairwise:
- [Cargo Capacity, Passenger Capacity, 1/5]
Mom:
pairwise:
- [Cargo Capacity, Passenger Capacity, 1/5]
Kid:
pairwise:
- [Cargo Capacity, Passenger Capacity, 1/5]
children:
Cargo Capacity:
preferences:
Dad:
pairwise:
- [Fipronil, Imidaclopride, 3]
- [Fipronil, Sulfluramida, 9]
- [Imidaclopride, Sulfluramida, 5]
Mom:
pairwise:
- [Fipronil, Imidaclopride, 7]
- [Fipronil, Sulfluramida, 9]
- [Imidaclopride, Sulfluramida, 5]
Kid:
pairwise:
- [Fipronil, Imidaclopride, 7]
- [Fipronil, Sulfluramida, 1]
- [Imidaclopride, Sulfluramida, 5]
children: *alternatives
Passenger Capacity:
preferences:
Dad:
pairwise:
- [Fipronil, Imidaclopride, 7]
- [Fipronil, Sulfluramida, 9]
- [Imidaclopride, Sulfluramida, 5]
Mom:
pairwise:
- [Fipronil, Imidaclopride, 5]
- [Fipronil, Sulfluramida, 9]
- [Imidaclopride, Sulfluramida, 9]
Kid:
pairwise:
- [Fipronil, Imidaclopride, 7]
- [Fipronil, Sulfluramida, 5]
- [Imidaclopride, Sulfluramida, 5]
children: *alternatives
同样,最简单的游戏方式是闪亮应用中的编辑器(参见上面的链接)。只需将其粘贴即可...