<?xml version='1.0' encoding='utf-8'?>
<program_description>
  <program provider="PUT" name="ElectreCredibilityWithCounterVeto" version="0.1.0" displayName="ElectreCredibilityWithCounterVeto" />
  <documentation>
    <description>ElectreCredibilityWithCounterVeto - computes credibility matrix using procedure which is common to the most methods from the Electre family.

This module is an extended version of 'ElectreCredibility' in that it is designed to work with the 'counter-veto' concept - i.e. it requires an additional input file ('counter_veto_crossed.xml') produced by 'ElectreDiscordance' module, which contains the information for which pairs and on which criteria the 'counter-veto' threshold has been crossed.

Please note that unlike 'ElectreCredibility', this module can accept discordance indices only in non-aggregated form (i.e. one index per criterion).</description>
    <url>http://github.com/xor-xor/electre_diviz</url>
    <reference>Bernard Roy and Roman Słowiński; Handling effects of reinforced preference and counter-veto in credibility of outranking; European Journal of Operational Research 188(1):185–190; 2008; doi:10.1016/j.ejor.2007.04.005</reference>
  </documentation>
  <parameters>

    <input id="input1" name="alternatives" displayName="alternatives" isoptional="0">
      <documentation>
        <description>Alternatives to consider.</description>
      </documentation>
      <xmcda tag="alternatives" />
    </input>

    <input id="input3" name="concordance" displayName="concordance" isoptional="0">
      <documentation>
        <description>Concordance matrix with aggregated concordance indices (i.e. one index per pair of alternatives or alternatives/profiles).</description>
      </documentation>
      <xmcda tag="alternativesComparisons" />
    </input>

    <input id="input4" name="counter_veto_crossed" displayName="counter_veto_crossed" isoptional="0">
      <documentation>
        <description>This input contains the information (boolean values) for which pairs of variants and on which criteria the 'counter-veto' threshold has been crossed.</description>
      </documentation>
      <xmcda tag="alternativesComparisons" />
    </input>

    <input id="input5" name="discordance" displayName="discordance" isoptional="0">
      <documentation>
        <description>Discordance indices provided in non-aggregated ('partial' or 'per-criterion') form.</description>
      </documentation>
      <xmcda tag="alternativesComparisons" />
    </input>

    <input id="input2" name="classes_profiles" displayName="classes_profiles" isoptional="1">
      <documentation>
        <description>Definitions of profiles (boundary or central) which should be used for classes (categories) representation.</description>
      </documentation>
      <xmcda tag="categoriesProfiles" />
    </input>

    <input id="input6" name="method_parameters" displayName="method_parameters" isoptional="0">
      <documentation>
        <description>A set of parameters provided to tune up the module's operation.</description>
      </documentation>
      <xmcda tag="methodParameters"><![CDATA[
        
        <methodParameters>
          <parameter name="comparison_with">
            <value>
              <label>%1</label>
            </value>
          </parameter>
          <parameter name="with_denominator">
            <value>
              <boolean>%2</boolean>
            </value>
          </parameter>
          <parameter name="only_max_discordance">
            <value>
              <boolean>%3</boolean>
            </value>
          </parameter>
        </methodParameters>
        
      ]]></xmcda>
      <gui status="preferGUI">
        <entry id="%1" type="enum" displayName="comparison_with">
          <documentation>
            <description>This parameter specifies the type of elements provided for comparison.

Choosing 'boundary_profiles' or 'central_profiles' requires providing inputs 'classes_profiles' and 'profiles_performance_table' as well (which are optional by default).</description>
          </documentation>
          <items>
            <item id="item0">
              <description>alternatives vs alternatives</description>
              <value>alternatives</value>
            </item>
            <item id="item1">
              <description>alternatives vs boundary profiles</description>
              <value>boundary_profiles</value>
            </item>
            <item id="item2">
              <description>alternatives vs central (characteristic) profiles</description>
              <value>central_profiles</value>
            </item>
          </items>
          <defaultValue>item0</defaultValue>
        </entry>
        <entry id="%2" type="boolean" displayName="with_denominator">
          <documentation>
            <description>This parameter specifies if you want to take into account only sufficiently great discordance (by using '1 - d_j(a, b) / 1 - C(a, b)' instead of '1 - d_j(a, b)' in credibility's equation).

In case of selecting this option, only discordance indices for which d_j(a, b) &gt; C(a, b) holds are taken into account.</description>
          </documentation>
          <defaultValue>true</defaultValue>
        </entry>
        <entry id="%3" type="boolean" displayName="only_max_discordance">
          <documentation>
            <description>Use only maximum discordance index in discordance aggregation part of credibility's equation (i.e. '1 - max(d_j(a, b))'). When 'with_denominator' is set to 'true', this parameter is ignored.</description>
          </documentation>
          <defaultValue>false</defaultValue>
        </entry>
      </gui>
    </input>

    <output id="output1" name="credibility" displayName="credibility">
      <documentation>
        <description>Credibility matrix computed from the given data.</description>
      </documentation>
      <xmcda tag="alternativesComparisons" />
    </output>

    <output id="output2" name="messages" displayName="messages">
      <documentation>
        <description>Messages or errors generated by this module.</description>
      </documentation>
      <xmcda tag="methodMessages" />
    </output>

  </parameters>
</program_description>
