【问题标题】:python backtracking knapsack蟒蛇回溯背包
【发布时间】:2020-06-09 13:57:04
【问题描述】:

这是我到目前为止的代码:

   def frac_knapsack(n,size, profit,K):
    if K <= 0:
       return 0
    for i in range(0,i):
        if profit[i]/size[i]>profit[i-1]/size[i-1]:
            profit.append[i] and size.append[i]
    s = 0
    p = 0
    for i in range(n):
        if s + size[i] <= K:
            p += profit[i]
            s += size[i]
        else: 
            p += (K-s) * (profit[i]/size[i])
            s = K
            break
        return p
def Knapsack(i, size):
    if i > n or size <= 0:
        print(x)
        return
    if x[j] == 1:
        for j in range(0,i-1):
           p+=P[j]
    if x[j] == 1:
        for j in range(0,i-1):
           s+=S[j]
    if x[i] == 1:
        if s+size[i] <= K and (p + profit[i] + B) > MaxProfit:
            B = fractional_Knapsack(n-(i+1), size[i+1:], profit[i+1:], T-size[i])
        if p+profit[i] > MaxProfit:
            MaxProfit=p+profit[i]
            x=solution
        Knapsack(i+1, T-size[i])
        if x[i] == 0:
            B = frac_Knapsack(n-(i+1), size[i+1:], profit[i+1:], T)
        if (p + B) > MaxProfit:
            Knapsack(i+1, T)
  1. 我在第 4 行排序时遇到问题。我必须将其排序为重量效率。我需要使用快速排序算法吗?
  2. 我想为以下四件事提供意见: n、大小、利润和 K 我需要使用地图吗?规模和利润都在列表中吗?

【问题讨论】:

  • 你能缩小你的问题范围并发布完整的追溯吗?

标签: python backtracking knapsack-problem


【解决方案1】:

你用过

B = fractional_Knapsack(n-(i+1), size[i+1:], profit[i+1:], T)

你的方法被调用

def frac_knapsack(n,size, profit,K):

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 2011-06-07
    • 2010-10-27
    • 2010-10-21
    • 2016-05-28
    • 2014-08-01
    相关资源
    最近更新 更多