Skip to content

Add CLI option to dump the optimized schedule

CLI should have an option that outputs an optimized schedule without statistical modeling. Probably JSON.

Provisional example:

angonoka schedule --output schedule.json tasks.yml

Possible output

{
    "makespan": 200,
    "tasks": [
        {
            "task": "Do things",
            "agent": "Bob",
            "priority": 0,
            "expected_duration": 100,
            "expected_start": 0
        },
        {
            "task": "Do other things",
            "agent": "Mary",
            "priority": 0,
            "expected_duration": 100,
            "expected_start": 0
        },
        {
            "task": "Do even more things",
            "agent": "Bob",
            "priority": 1,
            "expected_duration": 100,
            "expected_start": 100
        }
    ]
}

Could probably refactor the part about optimization from here https://gitlab.com/signal9/angonoka/-/blob/d130c8f4b89dd7e7d30fb9999cd7ccdc2ef30900/src/predict.cpp#L100-103 into a standalone function that takes the event queue as parameter. I.e.

optimize(EventQueue, Configuration) -> Schedule

schedule(Configuration) -> (Future<OptimizationResult>, EventQueue)

predict(Configuration) -> (Future<Prediction>, EventQueue)
Edited by Andrew