Advertisement
elcocodrilotito

práctica 2 más en proceso

Apr 1st, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.75 KB | None | 0 0
  1. def suma_costes(c):
  2.     P=[c[0]]
  3.     for i in range(1,len(c)):
  4.         P.append(P[-1]+c[i])
  5.     return P
  6.  
  7. # n: índice de la última tarea considerada
  8. # k: índice del último agente considerado (k se indexa desde 0)
  9. def fuerza_bruta(n,k,c,P):
  10.     if n==k:
  11.         return max(c[0:n+1]),[i for i in range(n+1)]
  12.     elif k==0:
  13.         return P[n],[n]
  14.     else:
  15.         minimo=None
  16.         for i in range(k,n+1):
  17.             c_fb, p_fb = fuerza_bruta(i-1,k-1,c,P)
  18.             if c_fb < P[n]-P[i-1]:
  19.                 c_fb = P[n]-P[i-1]
  20.             if minimo==None or c_fb < minimo:
  21.                 minimo=c_fb
  22.                 arg_min = p_fb + [n]
  23.         return minimo, arg_min
  24.  
  25. c=[8,6,7,2,1,4]
  26. P=suma_costes(c)
  27. print(fuerza_bruta(len(c)-1,2,c,P))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement