<?xml version="1.0" encoding="UTF-8"?>
<program_description>
   <program provider="PUT" name="ImpreciseDEA-ValueAdditive-SMAA_ranks" displayName="ImpreciseDEA-ValueAdditive-SMAA_ranks" version="1.0" />
   <documentation>
      <description>Computes ranks for the given DMUs (alternatives) using SMAA-D method and Additive Data Envelopment Analysis Model with imprecise data. For given number of samples  returns a matrix with alternatives in each row and rankings in each column. Single cell indicates how many samples of respective alternative gave respective position in ranking.</description>
      <contact><![CDATA[Anna Labijak <support@decision-deck.org>]]></contact>
   </documentation>
   <parameters>
      <input id="units" name="units" displayName="units" isoptional="0">
         <documentation>
            <description>A list of alternatives (DMUs).</description>
         </documentation>
         <xmcda tag="alternatives"><![CDATA[<alternatives>
                        <alternative>
                            [...]
                        </alternative>
                        [...]
                    </alternatives>]]></xmcda>
      </input>
      <input id="inputsOutputs" name="inputsOutputs" displayName="inputs/outputs" isoptional="0">
         <documentation>
            <description>A list of criteria with specified preference direction. List has to contains at least one criterion that will be minimized (input) and at least one criterion that will be maximized (output).</description>
         </documentation>
         <xmcda tag="criteria"><![CDATA[<criteria>
                        <criterion>
							<scale>
                                [...]
							</scale>
                            [...]
                        </criterion>
                        [...]
                    </criteria>]]></xmcda>
         </input>
      <input id="performanceTable" name="performanceTable" displayName="performance" isoptional="0">
         <documentation>
            <description>A list of alternatives (DMUs) minimal performances (or exact performances if intervals should be created by tolerance).</description>
         </documentation>
         <xmcda tag="performanceTable"><![CDATA[<performanceTable>
						<alternativePerformances>
							<alternativeID> [...] </alternativeID>
							<performance>
								<criterionID>
									[...]
								</criterionID>
								<value>[...]</value>
							</performance>
							[...]
						</alternativePerformances>
						[...]
					</performanceTable>]]></xmcda>
      </input>
	  <input id="maxPerformanceTable" name="maxPerformanceTable" displayName="max performance" isoptional="1">
         <documentation>
            <description>A list of alternatives (DMUs) maximal performances.</description>
         </documentation>
         <xmcda tag="performanceTable"><![CDATA[<performanceTable>
						<alternativePerformances>
							<alternativeID> [...] </alternativeID>
							<performance>
								<criterionID>
									[...]
								</criterionID>
								<value>[...]</value>
							</performance>
							[...]
						</alternativePerformances>
						[...]
					</performanceTable>]]></xmcda>
      </input>
      <input id="weightsLinearConstraints" name="weightsLinearConstraints" displayName="weights constraints" isoptional="defaultFalse">
         <documentation>
            <description>A list of criteria linear constraints.</description>
         </documentation>
         <xmcda tag="criteriaLinearConstraints"><![CDATA[<criteriaLinearConstraints>
						<constraint>
							<element>
								<criterionID> [...] </criterionID>
								<coefficient>
									[...]
								</coefficient>
							</element>
							[...]
							<operator>[...]</operator>
							<rhs>
								[...]
							</rhs>
						</constraint>
						[...]
					</criteriaLinearConstraints>]]></xmcda>
      </input>
	  <input id="methodParameters" name="methodParameters" displayName="method parameters">
         <documentation>
            <description>Represents method parameters.
            "tolerance" represents the fraction for creating interval data (created interval: [data*(1-tolerance), data*(1+tolerance)]),
            "transformToUtilities" means if data should be tranformed into values from range [0-1],
            "boundariesProvided" means if inputsOutputs file contains information about min and max data for each factor,
            "functionShapeProvided" means if inputsOutputs file contains information about the shapes of value function for given factor,
            "samplesNb" determines number of samples used to calculate results.
            </description>
         </documentation>
         <xmcda tag="methodParameters"><![CDATA[
	<methodParameters>
		<parameter id="samplesNb">
			<value><integer>%1</integer></value>
		</parameter>
		<parameter id="tolerance">
			<value><real>%2</real></value>
		</parameter>
		<parameter id="transformToUtilities">
			<value><boolean>%3</boolean></value>
		</parameter>
		<parameter id="boundariesProvided">
			<value><boolean>%4</boolean></value>
		</parameter>
		<parameter id="functionShapeProvided">
			<value><boolean>%5</boolean></value>
		</parameter>
	</methodParameters>
]]></xmcda>
         <gui status="preferGUI">
            <entry id="%1" type="int" displayName="number of samples">
               <constraint>
                  <description>The value should be a positive integer.</description>
                  <code><![CDATA[%1 > 0]]></code>
               </constraint>
               <defaultValue>100</defaultValue>
            </entry>
            <entry id="%2" type="float" displayName="tolerance">
               <constraint>
                  <description>The value should be non-negative.</description>
                  <code><![CDATA[%2 >= 0]]></code>
               </constraint>
               <defaultValue>0.0</defaultValue>
            </entry>
            <entry id="%3" type="boolean" displayName="transform to utilities">
               <defaultValue>true</defaultValue>
            </entry>
            <entry id="%4" type="boolean" displayName="boundaries provided">
               <defaultValue>false</defaultValue>
            </entry>
            <entry id="%5" type="boolean" displayName="function shapes provided">
               <defaultValue>false</defaultValue>
            </entry>
         </gui>
      </input>
      <output id="rankAcceptabilityIndices" name="rankAcceptabilityIndices" displayName="rank acceptability indices">
         <documentation>
            <description>A performance table for given alternatives. Single performance consists of attribute criterionID representing certain ranking, and a value representing ratio of samples attaining this ranking.</description>
         </documentation>
         <xmcda tag="performanceTable"><![CDATA[<performanceTable>
						<alternativePerformances>
							<alternativeID> [...] </alternativeID>
							<performance>
								<criterionID> Rank [...]</criterionID>
									<value>
									[...]
									</value>
							</performance>
							[...]
						</alternativePerformances>
					</performanceTable>]]></xmcda>
      </output>
      <output id="avgRank" name="avgRank" displayName="average rank">
         <documentation>
            <description>A list of alternatives with average rank (obtained for given sample).</description>
         </documentation>
         <xmcda tag="alternativesValues"><![CDATA[<alternativesValues>
						<alternativeValue>
						  <alternativeID> [...] </alternativeID>
						  <values>
							  <value>
                [...]
                </value>
						  </values>
						</alternativeValue>
						[...]
					</alternativesValues>]]></xmcda>
      </output>
	  <output id="messages" name="messages" displayName="messages">
         <documentation>
            <description>A list of messages generated by the algorithm.</description>
         </documentation>
         <xmcda tag="methodMessages" />
      </output>
   </parameters>
</program_description>
