
From:  Mark Dyer 
Subject:  [Helpglpk] Newbie Question 
Date:  Sat, 9 Aug 2008 18:44:57 +0400 
I am trying to write a model to maximize overall output when selecting personnel given a budget, the salary of each potential person and their output ability. The problem I have is writing a rule where one person will be choosen as team leader and their output will be calculated as double. Please, could someone help me with this? Thanks. /* sets */ set PERSON; set POSITIONS; /* parameters */ param num_of_positions {i in POSITIONS}; param salary {i in PERSON}; param output {i in PERSON}; param position {i in PERSON, j in POSITIONS}; /* decision variables: yi, i in {1,..,7}. yi = 1 > person i is hired */ var y {i in PERSON} binary >=0; /* objective function */ maximize z: sum{i in PERSON} output[i]*y[i]; /* Constraints */ s.t. pos{j in POSITIONS}: sum{i in PERSON} position[i,j]*y[i] = num_of_positions[j]; s.t. people: sum{i in PERSON} y[i] = 12; s.t. budget: sum{i in PERSON} salary[i]*y[i] <= 1150000; data; set PERSON := 1 2 3 ... 100; set POSITIONS := A B C D E; param num_of_positions := A 1 B 5 C 3 D 2 E 1; param salary:= 1 90000 2 90000 3 70000 . . 98 61000 99 58000 100 67000; param output:= 1 22 2 93 3 14 . . 98 41 99 10 100 16; param position: A B C D E:= 1 1 0 0 0 0 2 0 0 1 0 0 3 0 1 0 0 0 . . 98 0 1 0 0 0 99 0 0 0 0 1 100 1 0 0 0 0; Sell your car for just $40 at CarPoint.com.au It's simple!
I am trying to write a model to maximize overall output when selecting personnel given a budget, the salary of each potential person and their output ability. The problem I have is writing a rule where one person will be choosen as team leader and their output will be calculated as double. Please, could someone help me with this? Thanks. /* sets */ set PERSON; set POSITIONS; /* parameters */ param num_of_positions {i in POSITIONS}; param salary {i in PERSON}; param output {i in PERSON}; param position {i in PERSON, j in POSITIONS}; /* decision variables: yi, i in {1,..,7}. yi = 1 > person i is hired */ var y {i in PERSON} binary >=0; /* objective function */ maximize z: sum{i in PERSON} output[i]*y[i]; /* Constraints */ s.t. pos{j in POSITIONS}: sum{i in PERSON} position[i,j]*y[i] = num_of_positions[j]; s.t. people: sum{i in PERSON} y[i] = 12; s.t. budget: sum{i in PERSON} salary[i]*y[i] <= 1150000; data; set PERSON := 1 2 3 ... 100; set POSITIONS := A B C D E; param num_of_positions := A 1 B 5 C 3 D 2 E 1; param salary:= 1 90000 2 90000 3 70000 . . 98 61000 99 58000 100 67000; param output:= 1 22 2 93 3 14 . . 98 41 99 10 100 16; param position: A B C D E:= 1 1 0 0 0 0 2 0 0 1 0 0 3 0 1 0 0 0 . . 98 0 1 0 0 0 99 0 0 0 0 1 100 1 0 0 0 0; Sell your car for just $40 at CarPoint.com.au It's simple! 
[Prev in Thread]  Current Thread  [Next in Thread] 