Skip to content
This repository has been archived by the owner on Aug 31, 2021. It is now read-only.
/ informaticup-2020 Public archive

Projektgruppe "urban parakeet". Ein Lösungsversuch für den informatiCup-2020.

License

Notifications You must be signed in to change notification settings

MarkL4YG/informaticup-2020

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Informaticup2020 Pandemie-Solution

1 General information

1.1 Group members

  • Tim Gurke
  • Torge Hamann
  • Magnus Leßmann
  • Malte Zietlow

1.2 Fulltext documentation and analysis

The implemented approach has been analysed and documented (in German) and can be viewed on Google Docs

2. Running this application

This application is written in python and can be started either directly from the command line or from the provided docker image.

2.1 Configuration and environment

The application port can be changed by setting the SERVER_PORT variable to a non restricted, unused port number.
The application comes with several approaches located in docker/python/approaches. The APPROACH environment variable can be used to select one of them. Its value must be the file name without extension (<approach-name>.py). If no approach has been set, the combined.combined_city_stats_and_vaccine_random approach is used.

Environment variables work for both the command line and the docker image, when passed.

List of available approaches

  • none -> Instantly ends rounds without any other action. (For comparision purposes)
  • random_approach -> Selects a random action from the list of available ones.
  • medication -> Immediately tries to develop and deploy medication to infected cities.
  • vaccine -> Immediately tries to develop and deploy vaccines to infected cities.
  • medication_and_vaccine -> Combination of the medication and vaccine approaches.
  • airport -> Calculates a risk for each city connection and closes the most risky ones depending on the available points that round.
  • city_stats -> Attempts to increase all cities statistics by using some of the four actions depending on the population and its current rating of the different attributes.
  • Several approaches were combined to provide benchmarks for results where more than one approach is applied:
    • combined.combined_airport_city_stats_random
    • combined.combined_airport_vaccine_medication_random
    • combined.combined_airport_vaccine_random
    • combined.combined_city_stats_and_vaccine_random
    • combined.combined_city_stats_medication_and_vaccine_random
    • combined.combined_random
  • ml_a2c -> Advantage Actor Critic-Agent
  • ml_ppo -> Proximal Policy Optimization-Agent

Note: Both the ml_a2c and the ml_ppo approaches require manipulation of the IC20 default request timeout. For tests, the timeout was completely disabled.

2.2 Running via. Docker (Preferred)

The Docker image markl4yg/informaticup-2020:latest can be used to spin up a standalone server that will answer requests from the ic20 test application on http://<container-address>:<server-port>/.

Building the image can be performed from <repository>/docker by running docker build . --file Dockerfile --tag markl4yg/informaticup-2020:latest. However, this will not be required when the docker hub registry is available.

2.3 Running via. command line

From the directory: <repository>/docker/python, the application can be started by invoking python3 main.py.

Releases

No releases published

Packages

No packages published