<?xml version="1.0" encoding="UTF-8"?>
<program_description>
   <program provider="PUT" name="ImpreciseDEA-ValueAdditive-SMAA_efficiencies" displayName="ImpreciseDEA-ValueAdditive-SMAA_efficiencies" version="1.0" />
   <documentation>
      <description>Computes efficiency scores for the given DMUs (alternatives) using SMAA-D method and Additive Data Envelopment Analysis Model with imprecise data. For given number of buckets and samples, returns a matrix with alternatives in each row and buckets representing efficiency intervals in each column. Single cell indicates how many samples gave efficiency scores of respective alternative in respective bucket.</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,
            "intervalsNb" determines number of buckets, for which the efficiency scores are divided.
            </description>
         </documentation>
         <xmcda tag="methodParameters"><![CDATA[
	<methodParameters>
		<parameter id="samplesNb">
			<value><integer>%1</integer></value>
		</parameter>
		<parameter id="intervalsNb">
			<value><integer>%2</integer></value>
		</parameter>
		<parameter id="tolerance">
			<value><real>%3</real></value>
		</parameter>
		<parameter id="transformToUtilities">
			<value><boolean>%4</boolean></value>
		</parameter>
		<parameter id="boundariesProvided">
			<value><boolean>%5</boolean></value>
		</parameter>
		<parameter id="functionShapeProvided">
			<value><boolean>%6</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="int" displayName="number of intervals">
               <constraint>
                  <description>The value should be a positive integer.</description>
                  <code><![CDATA[%2 > 0]]></code>
               </constraint>
               <defaultValue>10</defaultValue>
            </entry>
            <entry id="%3" type="float" displayName="tolerance">
               <constraint>
                  <description>The value should be a non-negative number.</description>
                  <code><![CDATA[%3 >= 0]]></code>
               </constraint>
               <defaultValue>0.0</defaultValue>
            </entry>
            <entry id="%4" type="boolean" displayName="transform to utilities">
               <defaultValue>true</defaultValue>
            </entry>
            <entry id="%5" type="boolean" displayName="boundaries provided">
               <defaultValue>false</defaultValue>
            </entry>
            <entry id="%6" type="boolean" displayName="function shapes provided">
               <defaultValue>false</defaultValue>
            </entry>
         </gui>
      </input>
      <output id="efficiencyDistribution" name="efficiencyDistribution" displayName="efficiency distribution">
         <documentation>
            <description>A performance table for given alternatives. Single performance consists of attribute criterionID representing certain bucket, and a value representing the ratio of efficiency scores in this bucket.</description>
         </documentation>
         <xmcda tag="performanceTable"><![CDATA[<performanceTable>
						<alternativePerformances>
							<alternativeID> [...] </alternativeID>
							<performance>
								<criterionID> Bucket [...]</criterionID>
									<value>
									[...]
									</value>
							</performance>
							[...]
						</alternativePerformances>
					</performanceTable>]]></xmcda>
      </output>
      <output id="maxEfficiency" name="maxEfficiency" displayName="max efficiency">
         <documentation>
            <description>A list of alternatives with maximum efficiency scores (obtained for given sample).</description>
         </documentation>
         <xmcda tag="alternativesValues">
           <![CDATA[<alternativesValues>
						<alternativeValue>
						  <alternativeID> [...] </alternativeID>
						  <values>
                <value>
							  [...]
						    </value>
              </values>
						</alternativeValue>
						[...]
					</alternativesValues>]]></xmcda>
      </output>
      <output id="minEfficiency" name="minEfficiency" displayName="min efficiency">
         <documentation>
            <description>A list of alternatives with computed minimum efficiency scores (obtained for given sample).</description>
         </documentation>
         <xmcda tag="alternativesValues"><![CDATA[<alternativesValues>
						<alternativeValue>
						  <alternativeID> [...] </alternativeID>
						  <values>
                <value>
							  [...]
						    </value>
              </values>
						</alternativeValue>
						[...]
					</alternativesValues>]]></xmcda>
      </output>
      <output id="avgEfficiency" name="avgEfficiency" displayName="average efficiency">
         <documentation>
            <description>A list of alternatives with average efficiency scores (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>
