Advertisement
elcocodrilotito

practica 2 piccolo

Apr 3rd, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.98 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.  
  26. def fuerza_dinamica(n,k,c,P):
  27.     F=[[P[i]] for i in range(n)]
  28.     F[1].append(max(c[:2]))
  29.     G=[[0] for i in range(n)]
  30.     G[1].append(1)
  31.     for fila in range(2,n):
  32.         for columna in range(1,min(n,k)):
  33.            
  34.  
  35. c=[8,6,7,2,1,4]
  36. P=suma_costes(c)
  37. print(fuerza_bruta(len(c)-1,2,c,P))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement