Я создаю список нулей в одной из моих функций, но когда я использую его как вход для другой функции, он возвращает две вещи, когда я печатаю его в другой функции:
Затем сам массив«Нет»
Откуда исходит «Нет»?
Разделы кода, используемые для отладки здесь:
#Value Iteration
#V_(k+1)(s) = max[sum(p(s',r|s,a)[r+(discount)V_k(s')]]
def val_it(maxCap, lineNum, cost, loss, pop_array, discount_rate):
state_total = (maxCap+1)**lineNum #(M+1)^N total states
values = [0]*state_total #returned values for each state of value iteration
lines = [0]*lineNum #array for all lines of each state
print(lines)
print(len(lines))
for state in range(state_total):
action = nextState(state, state_total, values, lines, maxCap, cost, loss, pop_array, discount_rate)
values[state] = np.max(action) #set value of this state to best action return
#V_(k+1)(s) = MAX...
#have new customers arrive at lines
lines = add_cust(lineNum, pop_array, lines)
return(values)
Теперь функция, которая возвращает «Нет»"type:
#calculate all next states
def nextState(state, state_total, values, lines, maxCap, cost, loss, pop_array, discount_rate):
actions = [0]*state_total #actions for all states
reward = 0
print(lines)
print(len(lines))
prob = nextStateprob_calc(pop_array) #calculate probability
reward = reward_calc(maxCap, lines, cost, loss) #calculate reward
#find value iteration for given action
for action in range(len(actions)):
actions[action] += prob * (reward + discount_rate*values[state+1])
return actions
Я с нетерпением жду ответа.