A repository containing the work done during my research about UTA method (Internship at LAMSADE - Dauphine).
Work in progress
Upon decompressing the archive, you will get the following structure:
.decision-uta-method
├── diagrams <- directory containing diagrams used
├── uta-calculator <- directory containing Java projects
├── docs <- directory containing all of the docs produced
│ ├── images <- directory containing all of the images used in this repo
│ ├── reports <- directory containing all of the reports made
│ ├── internship-report.pdf <- pdf file explaining all the stuff done during the internship
│ └── internship-report.tex <- LaTeX file that generated the internship-report.pdf file
├── .gitignore <- ignoring file
└── README <- this file
The UTA method is used to solve a multi-criteria problem. It build a utility function based on the preferences of the DM and it consist in solving a linear program (LP).
An improved version of the UTA is the UTASTAR. In UTA we used a single error in UTASTAR we use a double positive error function. The updated version has performed better than the regular method.
In the internship-report, you will find a section that explain the UTA method, illustrated with an example.
You should install the following jar file: com.google.ortools.jar and protobuf.jar. You can find them in the lib folder and execute the 2 following commands:
mvn install:install-file -Dfile=lib\com.google.ortools.jar -DgroupId=com.google.ortools -DartifactId=ortools -Dversion=2015.08 -Dpackaging=jar
mvn install:install-file -Dfile=lib\protobuf.jar -DgroupId=protobuf -DartifactId=protobuf -Dversion=3.3.0 -Dpackaging=jar
After installing the 2 libraries, you should specify in the Eclipse the location of the Native Library Location. By going to the properties of the project > Java Build Path > Source Tabulation and Editing the location of Native library like the image below.
And then specify the location of the library folder by clicking on the External Folder button And finally navigate through the repository and select the folder libTo build the class of this program, you should execute the following command:
mvn compile
An example of a LP problem:
Running the examples will involve compiling them, then running them.
javac -d objs -cp lib/com.google.ortools.jar:lib/protobuf.jar examples/LinearProgramming.java
java -Djava.library.path=lib -cp objs:lib/com.google.ortools.jar com.lamsade.lp.LinearProgramming
javac -d objs -cp lib/com.google.ortools.jar;lib/protobuf.jar examples/LinearProgramming.java
java -Djava.library.path=lib -cp objs;lib/com.google.ortools.jar com.lamsade.lp.LinearProgramming
This class will alow to generate numbers that have a target Sum.
To build the class Utils, you should execute the following command:
javac -d objs utils/NumbersGenerator.java
When running the program, you can insert 2 arguments :
int counter; // default value : 4
double targetSum; // default value : 1.0
For example, if you want to generate 4 numbers that have the sum of 1, all you have to do is execute the following command:
java -cp objs; com.lamsade.utacalculator.NumbersGenerator 4 1.0
This class will alow to generate a scale, this has been used to generate a scale for a criteria.
To build the class Utils, you should execute the following command:
javac -d objs utils/ScaleGenerator.java
When running the program, you can insert 3 arguments :
double minValue;// default value : 10.0
double maxValue; // default value : 20.0
int cuts; // default value : 4
For example, if you want to generate the scale of criteria that have a minimum value of 10 and a maximum value of 20 with 4 cuts, all you have to do is execute the following command:
java -cp objs; com.lamsade.utacalculator.ScaleGenerator 10.0 20.0 4
For the ChoiceTransportation exercice, you should run the following commands :
javac -d objs -cp lib/com.google.ortools.jar;lib/protobuf.jar examples/ChoiceTransportation.java
java -Djava.library.path=lib -cp objs;lib/com.google.ortools.jar com.lamsade.lp.ChoiceTransportation
For the exercice Buying New Car, you should run the following commands :
javac -d objs -cp lib/com.google.ortools.jar;lib/protobuf.jar examples/BuyingNewCar.java
java -Djava.library.path=lib -cp objs;lib/com.google.ortools.jar com.lamsade.lp.BuyingNewCar