Skip to content

Azbesciak/DecisionDeck

Repository files navigation

MCDA algorithms for DecisionDeck project

This repository contains modules for DIVIZ and R MCDA platforms. It's a part of Bachelor's thesis.

Project contains implementation of 4 methods divided into modules:

How to use

Requirements:

  • Java 8

JVM projects works also with 8+ due to included in build.gradle XML dependencies; however, due to not attached xml jars with XMCDA, those are not visible on R Java classpath - this only works with JDK 8 when standalone usage is required. Propably installing those jars (for example javax.xml.bind) indivitually will solve the problem; not tested though.

  • The XMCDA Java library v0.6
  • R - at least 3.5 (required only when using R modules)
  • optionally Gradle 4.10+; however, it is recommended to use embedded wrapper.

Additionaly R modules requires installed XMCDA package - compatible jar is attached with project in /libs directory. Also, dematel-influence requires installed purrr package.

JVM connected (TOPSIS and AHP) projects are build under gradle. All of them can be employed with installed gradle or embedded gradlew usage - in the second case after type CMD command it will download wrapper (about 100 MB - just once). To create executable jar you need to type:

./gradlew :project:shadowJar

where project is the name of required project, for example topsis-normalization-weighting. Both XMCDA v2 and v3 are supported, so you need to specify version with flag --v2 or --v3.

In case of R packages, you just need to use it in R environment with respect to XMCDA version. All clients are named in following way:

<project>CLI_XMCDA<xmcda version>.R

project is the same as module name, however - camelCase'd In all cases, input and output dir paths are required, with preceding flag -i and -o, respectively.

If there is no dir at output path, it will be created.

If you are looking for input and output parameters, take a look into description-wsDDv[2/3].xml or tests in each module.

All gradle.build files in modules requires main project build.gradle - those only extends this file by module specific requirements, so if you are going to build those whithout the rest of the project dependency (not talking about single jar build - just about detatching this module from the whole project) you will need to change those files; otherwise dependencies will not be visible.