【问题标题】:Sub-criteria code for multiple decision makers in ahp packageahp 包中多个决策者的子标准代码
【发布时间】:2017-01-11 03:05:18
【问题描述】:

我想使用 ahp 包在我的 AHP 层次结构树的 yaml 文件中为 3 个多重决策(爸爸、妈妈和孩子)创建一个包含两个子标准(货物容量、乘客容量)的 crieria(有趣),但不起作用。在 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 个值。

【问题讨论】:

    标签: r process yaml hierarchy


    【解决方案1】:

    你的文件有很多问题:

    1. 你的空格/缩进在很多地方没有对齐。如果您使用http://ipub.com/apps/ahp/的编辑器,它会帮助您对齐,也可以让您使用tab键不假思索地缩进。

    2. 开头需要一个版本元素

    3. 接下来,您需要一个 Alternatives 部分,其中包含替代对象

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

    5. 你需要非常小心 YAML 中的冒号:当你有一个对象时,一定要使用 :(例如在 pairwise 之后)

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

    7. 对于决策树中的每个叶子,您需要将备选方案添加到子部分中

    有效的文件(与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

    同样,最简单的玩转方式是闪亮应用程序中的编辑器(参见上面的链接)。只需粘贴它就可以了...

    【讨论】:

      【解决方案2】:

      我不确定您的缩进是否忠实于您的原始缩进,或者您在 YAML 文件中使用了 TAB 字符(您不应该这样做)。

      您的preferences: 键没有值,如果它应该有一个以Dad 作为键之一的映射,请确保它比preferences 缩进更远,目前不是。

      问题在于键 childrend 的值是一个映射,并且该映射具有键:Cargo CapacityDadMomKidPassenger CapacityDad、@ 987654331@,Kid。并且不允许使用双键。

      【讨论】:

      • 嗨,Anthon,谢谢,但我不只使用 TAB 空格。但是我需要一个货物容量的决定,另一个乘客容量的决定,就像一个著名的汽车例子一样,是否有容量标准,有两个子标准货物容量和乘客容量。我的示例中唯一的区别是多个决策者。
      猜你喜欢
      • 2019-07-22
      • 1970-01-01
      • 2012-01-30
      • 2020-10-18
      • 2011-04-27
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      • 2010-10-25
      相关资源
      最近更新 更多