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 CapacityDadMomKidPassenger CapacityDadMomKid。并且不允许使用双键。

您的文件有不少问题:

  1. 你spaces/indentation在很多地方都错位了。如果你用http://ipub.com/apps/ahp/处的编辑器,它会帮你对齐,还可以让你用tab键不假思索地缩进。

  2. 开头需要Version元素

  3. 接下来,您需要一个备选方案部分,其中包含备选方案 object

  4. 您的目标部分需要称为目标

  5. 您需要非常小心 YAML 中的冒号:每当您有 object 时,请务必使用 :(例如,在 pairwise 之后)

  6. 对于决策树中的每个节点,您需要添加一个 children 部分

  7. 对于决策树中的每个叶子,您需要将备选方案添加到 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)。只需粘贴即可...