The Decision Maximizer 3000, also known as decision-maximizer or DM3K for short, is a generalized decision-engine that solves complex resource allocation problems.
Table of Contents:
NOTE - For more explanation of resource allocation problems and their component parts, see /docs/resource_allocation_101.md
DM3K provides the user with:
- a web-based UI to define their resource allocation problem.
- a python optimizer that leverages linear optimization techniques to solve the user defined problem.
Installation assumes you have...
- docker (v19.03+) see https://docs.docker.com/get-docker/
- docker-compose (v1.27+) see https://docs.docker.com/compose/install/
from the main directory of the repo run...
$ sudo docker-compose -f docker-compose.yml up --build -dNOTE this make take a while....please be patient
To confirm the installation, run...
$ sudo docker psOutput of this command should show 3 docker containers: dm3k_api, dm3k_ui, dm3k_nginx as shown below...
| STATUS | PORTS | NAMES |
|---|---|---|
| Up 2 minutes (healthy) | 0.0.0.0:80->80/tcp, :::80->80/tcp | dm3k_nginx |
| Up 2 minutes | 9000/tcp | dm3k_api |
| Up 2 minutes | 80/tcp | dm3k_ui |
To confirm the health of the optimizer, run the following command:
$ sudo docker exec -ti dm3k_api python -m unittest discover -v -s /app/tests/test_optimizerIf there are errors, here are some logs to check
$ docker logs <container_name>
$ docker exec -ti dm3k_api cat /app/logs/basic.logTo stop DM3K, run...
$ sudo docker-compose -f docker-compose.yml downConnect to the UI by pointing your web browser to: http://{hostname}
where hostname is the name or ip address of the machine that is running docker.
For details on how to use the UI to create/solve resource allocation problems see /docs/user_guide.md
See
depending on how you wish to contribute.
For more details, see LICENSE file
