小作業の並列化

rcpsp33.py




026
027
028
029
030
031
032

#rcpsp32.py 
 :
#====資源制約  
res=prob.addResource("Resource",capacity={(0,"inf"):10}) 
mode={}  
for i in data:
    mode[i]=Mode("M{0:02d}_{1:02d}".format(i,data[i][3]),duration=data[i][1])                    
    mode[i].addResource(res,requirement=data[i][3])
    act[i].addModes(mode[i])



026
027
028
029
029a
030
031
031a
032

#rcpsp33.py 
 :
#====資源制約  
res=prob.addResource("Resource",capacity={(0,"inf"):10}) 
mode={}  
for i in data:
    period=data[i][1]*data[i][3] #1人で何日かかるか
    mode[i]=Mode("M{0:02d}_{1:02d}".format(i,period),duration=period)
    mode[i].addResource(res,requirement=1)
    mode[i].addParallel(start=1,finish=period,maxparallel=10)
    act[i].addModes(mode[i])  

【rcpsp33.txt】


001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018

  activity    mode   duration  1 2 3 4 5 6 7 8 910111213
---------------------------------------------------------------------
   A01      M01_09      9     *6*3                      
   A02      M02_04      4     *4                        
   A03      M03_06      6       *6                      
   A04      M04_16      16        *10*6                  
   A05      M05_20      20                  *4*10*6      
   A06      M06_20      20          *4*10*6              
   A07      M07_20      20              *4*10*6          
   A08      M08_04      4                         *4    
   A09      M09_10      10                      *4*6    
   A10      M10_15      15                          *10*5
---------------------------------------------------------------------
   resource usage/capacity     
---------------------------------------------------------------------
           Resource           10 910101010101010101010 5
                              10101010101010101010101010
---------------------------------------------------------------------