# data2Gurobi November 6, 2017 # Usage: ./data2Gurobi sched_data.txt to produce *.lp file for gurobi_cl # gawk ' ($1 != "#"){prefs[$2]=$1} END{ print "Maximize" printf("Du") for (letter in prefs) { pst = prefs[letter] for (i=1; i <= 9 ; i++) { printf(" + %s %s%s",10-i,letter,substr(pst,i,1)) } print("") } print "Subject To" for (i=1; i <= 9 ; i++) { my_switch=0 for (letter in prefs) if (my_switch == 0) { my_switch =1 printf("%s%s",letter,i) } else printf(" + %s%s",letter,i) print(" <= 3") } print "" for (letter in prefs) { my_switch=0 for (i=1; i <= 9 ; i++) { if (my_switch == 0) { my_switch =1 printf("%s%s",letter,i) } else printf(" + %s%s",letter,i) } print(" <= 1") } print "Bounds" print "Du = 0" print "Binary" for (letter in prefs) { pst = prefs[letter] for (i=1; i <= 9 ; i++) { printf("%s%s ",letter,substr(pst,i,1)) } } print("") } ' $*