public code v1

This commit is contained in:
2026-05-22 11:14:29 +02:00
parent 427197ec5a
commit b8141736eb
28859 changed files with 575079 additions and 0 deletions
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
@@ -0,0 +1 @@
/bin/
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>afryca.consensusmodel.zhang2012</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
@@ -0,0 +1,7 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8
@@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
@@ -0,0 +1,10 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: afryca.consensusmodel.zhang2012;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: %Bundle-Vendor
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: afryca.consensusmodel,
org.apache.commons.math3
Automatic-Module-Name: afryca.consensusmodel.zhang2011
@@ -0,0 +1,10 @@
#Properties file for afryca.consensusmodel.zhang2011
ConsensusModel.Information = Guiqing Zhang, Yucheng Dong, Yinfeng Xu. Linear optimization modeling of consistency issues in group decision making based on fuzzy preference relations. Expert Systems with Applications, 2012, vol. 39, no 3, p. 2415-2420\\n\\nThis proposal presents linear optimization models for solving some issues on consistency of fuzzy preference relations, such as individual consistency construction, consensus model and management of incomplete of fuzzy preference relations. This proposal optimally preserves original preference information in constructing individual consistency and reaching consensus (in Manhattan distance sense).
ConsensusModel.MainFeatures = Fuzzy preference relations\\nConsistency control\\nLinear programming
ConsensusModel.Name = G.Zhang et al. (2012)
ConsensusModel.Observations = There may not be a feasible solution
Bundle-Vendor = Sinbad2
Bundle-Name = Zhang2011
Variable.description = Consensus threshold indicating minimum agreement level to be reached
Variable.description.0 = Consistency threshold
Variable.description.1 = Consensus consistency level
@@ -0,0 +1,8 @@
#Properties file for afryca.consensusmodel.zhang2011
ConsensusModel.Information = Guiqing Zhang, Yucheng Dong, Yinfeng Xu. Linear optimization modeling of consistency issues in group decision making based on fuzzy preference relations. Expert Systems with Applications, 2012, vol. 39, no 3, p. 2415-2420\\n\\nEsta propuesta presenta modelos de optimización lineales para tratar cuestiones sobre la consistencia en relaciones de preferencia difusas, como por ejemplo la construcción individual de la consistencia, modelos de consenso y tratamiento de relaciones de preferencia difusas incompletas. Esta propuesta mantiene de forma óptima la información de la relación de preferencia difusa original en la construcción individual de la consistencia y el alcance de consenso (empleando la distancia de Manhattan).
ConsensusModel.MainFeatures = Relaciones de preferencia difusas\\nControl de consistencia\\nProgramación lineal
ConsensusModel.Name = G.Zhang et al. (2012)
ConsensusModel.Observations = Podría no existir una solución factible
Bundle-Vendor = Sinbad2
Bundle-Name = Zhang2011
Variable.description = Consensus threshold indicating minimum agreement level to be reached
@@ -0,0 +1,7 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
plugin.xml,\
OSGI-INF/l10n/bundle.properties,\
OSGI-INF/
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
point="afryca.consensusmodel">
<ConsensusModel
ConsensusModel="afryca.consensusmodel.zhang2012.Zhang2012"
Information="%ConsensusModel.Information"
MainFeatures="%ConsensusModel.MainFeatures"
Multicriteria="false"
Name="%ConsensusModel.Name"
Observations="%ConsensusModel.Observations"
Structure="afryca.fpr"
WithFeedback="false"
id="zhang2011">
<Variable
default_value="0.95"
description="%Variable.description.0"
id="cl"
is_array="false"
is_internal="false"
type="Float">
</Variable>
<Variable
default_value="0.85"
description="%Variable.description.1"
id="ccl"
is_array="false"
is_internal="false"
type="Float">
</Variable>
</ConsensusModel>
</extension>
</plugin>
@@ -0,0 +1,165 @@
package afryca.consensusmodel.zhang2012;
import java.util.ArrayList;
import afryca.ase.RunnableScript;
import afryca.consensusmodel.ConsensusEngine;
import afryca.consensusmodel.ConsensusModel;
import afryca.consensusmodel.definition.EResultElements;
import afryca.fpr.FPR;
import afryca.structure.Structure;
import afryca.consensumodel.addon.E4DIAddon;
public class Zhang2012 extends ConsensusModel {
private static final String CONSENSUS_MODEL_NAME = "G. Zhang et al. (2011)"; //$NON-NLS-1$
private static final String CL = "cl"; //$NON-NLS-1$
private static final String CCL = "ccl"; //$NON-NLS-1$
private Float cl;
private Float ccl;
@Override
protected void setModelConfiguration() {
}
@Override
protected void obtainConfigurationValues() {
cl = (Float) configuration.getValue(CL);
ccl = (Float) configuration.getValue(CCL);
}
@Override
protected Float[][][] obtainVisualizeValues() {
Structure[] auxPreferences = clonePreferencesUnion(preferences, ConsensusEngine.groupPreferences(numberOfExperts, numberOfAlternatives, preferences));
Float[][][] preferencesGroupVisualization = new Float[numberOfExperts + 1][numberOfAlternatives][numberOfAlternatives];
for (int k = 0; k < numberOfExperts+1; k++) {
preferencesGroupVisualization[k] = auxPreferences[k].obtainVisualizeValues();
}
return preferencesGroupVisualization;
}
@Override
protected void preFirstSaveRoundResults() {
Structure[] auxPreferences = clonePreferencesUnion(preferences, ConsensusEngine.groupPreferences(numberOfExperts, numberOfAlternatives, preferences));
preSaveRoundResult(1, auxPreferences,obtainVisualizeValues(), computeConsensusConsistencyLevel(auxPreferences));
result.put(EResultElements.initial_consensus_degree, computeConsensusConsistencyLevel(auxPreferences));
result.put(EResultElements.maxround, 1);
result.put(EResultElements.consensus_threshold, ccl);
result.put(EResultElements.consensus_model, CONSENSUS_MODEL_NAME);
}
@Override
protected void preSaveRoundResults() {
computeCollective();
preSaveRoundResult(1, preferences,obtainVisualizeValues(), computeConsensusConsistencyLevel((Structure[]) preferences));
}
@Override
protected void posSaveRoundResults() {
computeCollective();
posSaveRoundResult(preferences,obtainVisualizeValues(), computeConsensusConsistencyLevel((Structure[]) preferences), null);
}
@Override
protected boolean mustBeCarriedOutAnotherRound() {
return false;
}
@Override
protected void saveExecutionResults() {
this.configuration.setValue(PREFERENCES, preferences);
result.put(EResultElements.number_of_rounds_required, 1);
result.put(EResultElements.consensus_degree_achieved, computeConsensusConsistencyLevel((Structure[]) preferences));
}
@Override
@SuppressWarnings("unchecked")
protected void consensusRound() {
Float[] totalPreferences = preparePreferences();
ArrayList<FPR> preferencesResult = (ArrayList<FPR>) ((RunnableScript) E4DIAddon.aseService.createExecutionBuilder()
.setFunction("Zhang2011LinearOptimizationFunction")
.putVariable("cl", cl)
.putVariable("ccl", ccl)
.putVariable("prefs", totalPreferences)
.putVariable("numAlternatives", numberOfAlternatives)
.putVariable("numExperts", numberOfExperts)
.execute())
.getResult();
int cont = 0;
for(FPR fpr: preferencesResult) {
preferences[cont] = fpr;
cont++;
}
}
private Float[] preparePreferences() {
int numberOfAlternatives = preferences[0].getNumberOfAlternatives(), cont = 0;
Float[] totalPreferences = new Float[numberOfAlternatives * numberOfAlternatives * (preferences.length - 1)];
for(int p = 0; p < numberOfExperts; ++p) {
for(int i = 0; i < preferences[p].getNumberOfAlternatives(); ++i) {
for(int j = 0; j < preferences[p].getNumberOfAlternatives(); ++j) {
if(i == j) {
totalPreferences[cont] = 0.5f;
} else {
totalPreferences[cont] = (Float) preferences[p].getValue(i, j);
}
cont++;
}
}
}
return totalPreferences;
}
private void computeCollective() {
preferences[numberOfExperts] = ConsensusEngine.groupPreferences(numberOfExperts, numberOfAlternatives, preferences);
}
@SuppressWarnings("unused")
private Float computeConsistencyLevel(FPR fpr) {
float acum = 0;
for (int i = 0; i < numberOfAlternatives; ++i) {
for (int k = 0; k < numberOfAlternatives; ++k) {
if (k != i) {
for (int j = 0; j < numberOfAlternatives; ++j) {
if (j != i && j != k) {
acum += Math.abs((Float) fpr.getValue(i, j) + (Float) fpr.getValue(j, k) - (Float) fpr.getValue(i, k) - 0.5);
}
}
}
}
}
float value = (2f / ((3f * numberOfAlternatives) * (numberOfAlternatives - 1f) * (numberOfAlternatives - 2f)));
return 1f - (value * acum);
}
private Float computeConsensusConsistencyLevel(Structure[] fprs) {
float ccl = 2f / ((numberOfAlternatives * numberOfExperts) * (numberOfExperts - 1f) * (numberOfAlternatives - 1f));
float acum = 0;
for (int i = 0; i < numberOfAlternatives; ++i) {
for (int j = 0; j < numberOfAlternatives; ++j) {
if (j != i) {
for (int t = 0; t < numberOfExperts; ++t) {
for (int r = 0; r < numberOfExperts; ++r) {
if (t >= r) {
acum += Math.abs((Float) fprs[r].getValue(i, j) - (Float) fprs[t].getValue(i, j));
}
}
}
}
}
}
ccl = 1f - ccl * acum;
return ccl;
}
}
@@ -0,0 +1,10 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: afryca.consensusmodel.zhang2012;singleton:=true
Bundle-Version: 1.0.0.202101221157
Bundle-Vendor: %Bundle-Vendor
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: afryca.consensusmodel,org.apache.commons.math3
Automatic-Module-Name: afryca.consensusmodel.zhang2011
@@ -0,0 +1,4 @@
#Fri Jan 22 13:01:50 CET 2021
artifact.main=C\:\\Users\\\u00C1lvaro\\Workspaces\\afryca_2020\\afryca\\plugins\\afryca.consensusmodel.zhang2012\\target\\afryca.consensusmodel.zhang2012-1.0.0-SNAPSHOT.jar
artifact.attached.p2artifacts=C\:\\Users\\\u00C1lvaro\\Workspaces\\afryca_2020\\afryca\\plugins\\afryca.consensusmodel.zhang2012\\target\\p2artifacts.xml
artifact.attached.p2metadata=C\:\\Users\\\u00C1lvaro\\Workspaces\\afryca_2020\\afryca\\plugins\\afryca.consensusmodel.zhang2012\\target\\p2content.xml
@@ -0,0 +1,3 @@
artifactId=afryca.consensusmodel.zhang2012
groupId=afryca.group
version=1.0.0-SNAPSHOT
@@ -0,0 +1,13 @@
<?xml version='1.0' encoding='UTF-8'?>
<?artifactRepository version='1.1.0'?>
<artifacts size='1'>
<artifact classifier='osgi.bundle' id='afryca.consensusmodel.zhang2012' version='1.0.0.202101221157'>
<properties size='5'>
<property name='artifact.size' value='7392'/>
<property name='download.size' value='7392'/>
<property name='maven-groupId' value='afryca.group'/>
<property name='maven-artifactId' value='afryca.consensusmodel.zhang2012'/>
<property name='maven-version' value='1.0.0-SNAPSHOT'/>
</properties>
</artifact>
</artifacts>
@@ -0,0 +1,49 @@
<?xml version='1.0' encoding='UTF-8'?>
<units size='1'>
<unit id='afryca.consensusmodel.zhang2012' version='1.0.0.202101221157' generation='2'>
<update id='afryca.consensusmodel.zhang2012' range='[0.0.0,1.0.0.202101221157)' severity='0'/>
<properties size='9'>
<property name='es.Bundle-Name' value='Zhang2011'/>
<property name='es.Bundle-Vendor' value='Sinbad2'/>
<property name='df_LT.Bundle-Name' value='Zhang2011'/>
<property name='df_LT.Bundle-Vendor' value='Sinbad2'/>
<property name='org.eclipse.equinox.p2.name' value='%Bundle-Name'/>
<property name='org.eclipse.equinox.p2.provider' value='%Bundle-Vendor'/>
<property name='maven-groupId' value='afryca.group'/>
<property name='maven-artifactId' value='afryca.consensusmodel.zhang2012'/>
<property name='maven-version' value='1.0.0-SNAPSHOT'/>
</properties>
<provides size='6'>
<provided namespace='org.eclipse.equinox.p2.iu' name='afryca.consensusmodel.zhang2012' version='1.0.0.202101221157'/>
<provided namespace='osgi.bundle' name='afryca.consensusmodel.zhang2012' version='1.0.0.202101221157'/>
<provided namespace='osgi.identity' name='afryca.consensusmodel.zhang2012' version='1.0.0.202101221157'>
<properties size='1'>
<property name='type' value='osgi.bundle'/>
</properties>
</provided>
<provided namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' version='1.0.0'/>
<provided namespace='org.eclipse.equinox.p2.localization' name='es' version='1.0.0'/>
<provided namespace='org.eclipse.equinox.p2.localization' name='df_LT' version='1.0.0'/>
</provides>
<requires size='3'>
<required namespace='osgi.bundle' name='afryca.consensusmodel' range='0.0.0'/>
<required namespace='osgi.bundle' name='org.apache.commons.math3' range='0.0.0'/>
<requiredProperties namespace='osgi.ee' match='(&amp;(osgi.ee=JavaSE)(version=1.8))'>
<description>
afryca.consensusmodel.zhang2012
</description>
</requiredProperties>
</requires>
<artifacts size='1'>
<artifact classifier='osgi.bundle' id='afryca.consensusmodel.zhang2012' version='1.0.0.202101221157'/>
</artifacts>
<touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
<touchpointData size='1'>
<instructions size='1'>
<instruction key='manifest'>
Bundle-SymbolicName: afryca.consensusmodel.zhang2012;singleton:=true&#xA;Bundle-Version: 1.0.0.202101221157&#xA;
</instruction>
</instructions>
</touchpointData>
</unit>
</units>