Exemplo n.º 1
0
def pom3_csvmaker(names, rows, verbose=True):
    header = names[:]
    objectives = ['-cost', '+completion', '-idle']
    p3 = pom3.pom3()
    bigrows = []
    #clean rows
    for _r, r in enumerate(rows):
        for _i, i in enumerate(r):
            rows[_r][_i] = round(float(i), 2)
    #simulate pom
    for r in rows:
        vals = p3.simulate(r)
        bigrow = r + [round(i, 2) for i in vals]
        bigrows.append(bigrow)

    header += objectives

    if verbose:
        s = ''
        for i in header:
            s += str(i) + ','
        print s[:len(s) - 1]
        for r in bigrows:
            s = ''
            for i in r:
                s += str(i) + ','
            print s[:len(s) - 1]

    return header, bigrows
Exemplo n.º 2
0
def pom3_csvmaker(names,rows,verbose=True):
    header = names[:]
    objectives = ['-cost','+completion','-idle']
    p3 = pom3.pom3()
    bigrows = []
    #clean rows
    for _r,r in enumerate(rows):
        for _i,i in enumerate(r):
            rows[_r][_i] = round(float(i),2)
    #simulate pom3
    for r in rows:
        vals = p3.simulate(r)
        bigrow = r+[round(i,2) for i in vals]
        bigrows.append(bigrow)
    
    header += objectives
    
    if verbose:
        s = ''
        for i in header:
            s += str(i)+','
        print s[:len(s)-1]
        for r in bigrows:
            s = ''
            for i in r:
                s +=str(i) + ','
            print s[:len(s)-1]
    
    return header,bigrows
Exemplo n.º 3
0
def POM3(Class='a'):
    "POM3"
    p3 = pom3.pom3()

    headers = [
        'Culture', 'criticality', 'criticality_modifier', 'initial_known',
        'interdependency', 'dynamism', 'size', 'plan', 'team_size'
    ]

    def bounds(Class):
        if Class == 'a':
            return {
                'Culture': [0.1, 0.9],
                'criticality': [0.82, 1.26],
                'criticality_modifier': [0.02, 0.1],
                'initial_known': [0.4, 0.7],
                'interdependency': [0.0, 1.0],
                'dynamism': [1.0, 50.0],
                'size': [0, 4],
                'plan': [0, 4],
                'team_size': [1.0, 44.0],
            }
        elif Class == 'b':
            return {
                'Culture': [0.1, 0.9],
                'criticality': [0.82, 1.26],
                'criticality_modifier': [0.8, 0.95],
                'initial_known': [0.4, 0.70],
                'interdependency': [0.0, 1.0],
                'dynamism': [1.0, 50],
                'size': [0, 2],
                'plan': [0, 4],
                'team_size': [1.0, 44.0],
            }
        elif Class == 'c':
            return {
                'Culture': [0.5, 0.9],
                'criticality': [0.82, 1.26],
                'criticality_modifier': [0.02, 0.08],
                'initial_known': [0.2, 0.5],
                'interdependency': [0.0, 50.0],
                'dynamism': [40.0, 50.0],
                'size': [3, 4],
                'plan': [0, 4],
                'team_size': [20.0, 44.0],
            }

    cost = lambda x: p3.simulate([round(float(k), 2) for k in x[1:-3]])[0]
    completion = lambda x: p3.simulate([round(float(k), 2)
                                        for k in x[1:-3]])[1]
    idle = lambda x: p3.simulate([round(float(k), 2) for k in x[1:-3]])[2]

    return Cols(POM3, [
        N(least=bounds(Class)[h][0], most=bounds(Class)[h][1]) for h in headers
    ] + [O(f=cost), O(f=idle),
         O(f=completion, love=True)])
Exemplo n.º 4
0
 def evaluate(prob, input = None):
     if input:
         for i,decision in enumerate(prob.decisions):
             decision.value = input[i]
     else: input = [decision.value for decision in prob.decisions]
     p3 = pom3.pom3()
     output = p3.simulate(input)
     for i,objective in enumerate(prob.objectives):
         objective.value = output[i]
     return [objective.value for objective in prob.objectives]
Exemplo n.º 5
0
 def evaluate(prob, input=None):
     if input:
         for i, decision in enumerate(prob.decisions):
             decision.value = input[i]
     else:
         input = [decision.value for decision in prob.decisions]
     p3 = pom3.pom3()
     output = p3.simulate(input)
     for i, objective in enumerate(prob.objectives):
         objective.value = output[i]
     return [objective.value for objective in prob.objectives]
Exemplo n.º 6
0
def POM3(Class='a'):
 "POM3"
 p3 = pom3.pom3()
 
 headers = ['Culture', 'criticality', 'criticality_modifier'
          , 'initial_known', 'interdependency', 'dynamism'
          , 'size', 'plan', 'team_size']

 def bounds(Class):
  if Class=='a':
   return {'Culture': [0.1, 0.9], 
           'criticality': [0.82, 1.26], 
           'criticality_modifier': [0.02, 0.1], 
           'initial_known': [0.4, 0.7], 
           'interdependency': [0.0, 1.0], 
           'dynamism': [1.0, 50.0], 
           'size': [0, 4], 
           'plan': [0, 4], 
           'team_size': [1.0, 44.0], 
           }
  elif Class=='b':
   return {'Culture': [0.1, 0.9], 
           'criticality': [0.82, 1.26], 
           'criticality_modifier': [0.8, 0.95], 
           'initial_known': [0.4, 0.70], 
           'interdependency': [0.0, 1.0], 
           'dynamism': [1.0, 50], 
           'size': [0, 2], 
           'plan': [0, 4], 
           'team_size': [1.0, 44.0], 
           }
  elif Class=='c':
   return {'Culture': [0.5, 0.9], 
           'criticality': [0.82, 1.26], 
           'criticality_modifier': [0.02, 0.08], 
           'initial_known': [0.2, 0.5], 
           'interdependency': [0.0, 50.0], 
           'dynamism': [40.0, 50.0], 
           'size': [3,4], 
           'plan': [0, 4], 
           'team_size': [20.0, 44.0], 
           }
  
 cost = lambda x: p3.simulate([round(float(k),2) for k in x[1:-3]])[0]
 completion = lambda x: p3.simulate([round(float(k),2) for k in x[1:-3]])[1]
 idle = lambda x: p3.simulate([round(float(k),2) for k in x[1:-3]])[2]
 
 return Cols(POM3,
            [N(least=bounds(Class)[h][0], most=bounds(Class)[h][1])
             for h in headers] + 
            [O(f=cost), O(f=idle), O(f=completion, love=True)])