Skip to content

efuller-gov/dm3k

Repository files navigation

DECISION MAXIMIZER 3000

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.

block diagram

Installation

Pre-requisites

Installation assumes you have...

Installation Procedure

from the main directory of the repo run...

$ sudo docker-compose -f docker-compose.yml up --build -d

NOTE this make take a while....please be patient

To confirm the installation, run...

$ sudo docker ps

Output 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_optimizer

If there are errors, here are some logs to check

$ docker logs <container_name>
$ docker exec -ti dm3k_api cat /app/logs/basic.log

To stop DM3K, run...

$ sudo docker-compose -f docker-compose.yml down

Usage

Connect 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

Contributing

See

depending on how you wish to contribute.

License

For more details, see LICENSE file

About

The Decision Maximizer 3000 optimization project

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages