From 17ce2f1f0ffd199c7f7d73bfaefd7846b792fecd Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Mon, 6 Mar 2017 14:10:17 +0100 Subject: Initial import --- ilpscheduling/generate.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 ilpscheduling/generate.py (limited to 'ilpscheduling/generate.py') diff --git a/ilpscheduling/generate.py b/ilpscheduling/generate.py new file mode 100644 index 0000000..b9d1cef --- /dev/null +++ b/ilpscheduling/generate.py @@ -0,0 +1,34 @@ +# vim: set fileencoding=utf-8 : + +import random, yaml, sys +from model import WorkerSlotModel + +def main (args): + numSlots = args.slots + numWorker = args.worker + minDatesPerStudent = 1 + maxDatesPerStudent = 3 + + worker = {} + slots = {} + + for i in range (numSlots): + slots[i] = {'max': args.slotLimit, 'min': 0} + + prio = list (range (1, numSlots+1)) + for i in range (numWorker): + keys = slots.keys () + random.shuffle (keys) + s = random.randint (minDatesPerStudent, maxDatesPerStudent) + worker[i] = {'prio': dict (zip (keys[:s], prio[:s])), 'slots': {'min': 1, 'max': 1}} + + data = WorkerSlotModel (slots, worker, {'minSlots': 0, 'maxSlots': len (slots)}) + data.dump (sys.stdout) + +def addParser (subparsers): + parser = subparsers.add_parser ('generate', help='Generate random testcase') + parser.add_argument('--slots', '-s', type=int, default=5) + parser.add_argument('--worker', '-w', type=int, default=60) + parser.add_argument('--slot-limit', '-l', dest='slotLimit', type=int, default=12, help='Max number of worker per slot') + parser.set_defaults (func=main) + -- cgit v1.2.3