Sub-criteria ahp 包中多个决策者的代码
Sub-criteria code for multiple decision makers in ahp package
我想在我的 AHP 层次结构树的 yaml 文件中为 3 个多重决策(爸爸、妈妈和孩子)创建一个带有两个 sub-criteria(载货量、载客量)的 crieria(乐趣)使用 ahp 包,但不起作用。在 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'
如果我删除 "Kid",那么 "Mom" 就会重复。
我怎样才能解决这个问题?因为我希望每个 sub-criteria 有一个值,每个子标准有 3 个值。
我不确定您的缩进是否忠实于您的原始缩进,或者您是否在 YAML 文件中使用了 TAB 字符(您不应该那样做)。
您的 preferences:
键没有值,如果它应该有一个以 Dad
作为键之一的映射,请确保它比 preferences
缩进更远,目前是没有。
问题是键 childrend
有一个映射值,并且该映射有键:Cargo Capacity
、Dad
、Mom
、Kid
、Passenger Capacity
、Dad
、Mom
、Kid
。并且不允许使用双键。
您的文件有不少问题:
你spaces/indentation在很多地方都错位了。如果你用http://ipub.com/apps/ahp/处的编辑器,它会帮你对齐,还可以让你用tab键不假思索地缩进。
开头需要Version元素
接下来,您需要一个备选方案部分,其中包含备选方案 object
您的目标部分需要称为目标
您需要非常小心 YAML 中的冒号:每当您有 object 时,请务必使用 :(例如,在 pairwise 之后)
对于决策树中的每个节点,您需要添加一个 children 部分
对于决策树中的每个叶子,您需要将备选方案添加到 children 部分
一个有效的文件(与 https://cran.r-project.org/web/packages/ahp/vignettes/file-format.html 末尾的文件非常相似)是:
版本:2.0
备选方案:&alternatives
氟虫腈:
描述:备选方案 1
吡虫啉:
描述:备选方案 2
氟虫胺:
描述:备选方案 3
目标:
名称:乐趣
decision-makers:
- 爸爸:1/3
- 妈妈:1/3
- 孩子:1/3
喜好:
爸爸:
成对:
- [载货量,载客量,1/5]
妈妈:
成对:
- [载货量, 载客量, 1/5]<br>
孩子:
成对:
- [载货量, 载客量, 1/5]<br>
children:
载货能力:
喜好:
爸爸:
成对:
- [氟虫腈,吡虫啉,3]
- [氟虫腈,氟虫胺,9]
- [吡虫啉,氟虫胺,5]
妈妈:
成对:
- [氟虫腈,吡虫啉,7]
- [氟虫腈,氟虫胺,9]
- [吡虫啉,氟虫胺,5]
孩子:
成对:
- [氟虫腈,吡虫啉,7]
- [氟虫腈,氟虫胺,1]
- [吡虫啉,氟虫胺,5]
children: *备选方案
载客量:
喜好:
爸爸:
成对:
- [氟虫腈,吡虫啉,7]
- [氟虫腈,氟虫胺,9]
- [吡虫啉,氟虫胺,5]
妈妈:
成对:
- [氟虫腈,吡虫啉,5]
- [氟虫腈,氟虫胺,9]
- [吡虫啉,氟虫胺,9]
孩子:
成对:
- [氟虫腈,吡虫啉,7]
- [氟虫腈,氟虫胺,5]
- [吡虫啉,氟虫胺,5]
children: *备选方案
同样,最简单的方法是使用 shiny 应用程序中的编辑器(参见上文 link)。只需粘贴即可...
我想在我的 AHP 层次结构树的 yaml 文件中为 3 个多重决策(爸爸、妈妈和孩子)创建一个带有两个 sub-criteria(载货量、载客量)的 crieria(乐趣)使用 ahp 包,但不起作用。在 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'
如果我删除 "Kid",那么 "Mom" 就会重复。
我怎样才能解决这个问题?因为我希望每个 sub-criteria 有一个值,每个子标准有 3 个值。
我不确定您的缩进是否忠实于您的原始缩进,或者您是否在 YAML 文件中使用了 TAB 字符(您不应该那样做)。
您的 preferences:
键没有值,如果它应该有一个以 Dad
作为键之一的映射,请确保它比 preferences
缩进更远,目前是没有。
问题是键 childrend
有一个映射值,并且该映射有键:Cargo Capacity
、Dad
、Mom
、Kid
、Passenger Capacity
、Dad
、Mom
、Kid
。并且不允许使用双键。
您的文件有不少问题:
你spaces/indentation在很多地方都错位了。如果你用http://ipub.com/apps/ahp/处的编辑器,它会帮你对齐,还可以让你用tab键不假思索地缩进。
开头需要Version元素
接下来,您需要一个备选方案部分,其中包含备选方案 object
您的目标部分需要称为目标
您需要非常小心 YAML 中的冒号:每当您有 object 时,请务必使用 :(例如,在 pairwise 之后)
对于决策树中的每个节点,您需要添加一个 children 部分
对于决策树中的每个叶子,您需要将备选方案添加到 children 部分
一个有效的文件(与 https://cran.r-project.org/web/packages/ahp/vignettes/file-format.html 末尾的文件非常相似)是:
版本:2.0
备选方案:&alternatives
氟虫腈:
描述:备选方案 1
吡虫啉:
描述:备选方案 2
氟虫胺:
描述:备选方案 3
目标:
名称:乐趣
decision-makers:
- 爸爸:1/3
- 妈妈:1/3
- 孩子:1/3
喜好:
爸爸:
成对:
- [载货量,载客量,1/5]
妈妈:
成对:
- [载货量, 载客量, 1/5]<br>
孩子:
成对:
- [载货量, 载客量, 1/5]<br>
children:
载货能力:
喜好:
爸爸:
成对:
- [氟虫腈,吡虫啉,3]
- [氟虫腈,氟虫胺,9]
- [吡虫啉,氟虫胺,5]
妈妈:
成对:
- [氟虫腈,吡虫啉,7]
- [氟虫腈,氟虫胺,9]
- [吡虫啉,氟虫胺,5]
孩子:
成对:
- [氟虫腈,吡虫啉,7]
- [氟虫腈,氟虫胺,1]
- [吡虫啉,氟虫胺,5]
children: *备选方案
载客量:
喜好:
爸爸:
成对:
- [氟虫腈,吡虫啉,7]
- [氟虫腈,氟虫胺,9]
- [吡虫啉,氟虫胺,5]
妈妈:
成对:
- [氟虫腈,吡虫啉,5]
- [氟虫腈,氟虫胺,9]
- [吡虫啉,氟虫胺,9]
孩子:
成对:
- [氟虫腈,吡虫啉,7]
- [氟虫腈,氟虫胺,5]
- [吡虫啉,氟虫胺,5]
children: *备选方案
同样,最简单的方法是使用 shiny 应用程序中的编辑器(参见上文 link)。只需粘贴即可...