Я использую amp для моделирования своей проблемы оптимизации на Python, и я новичок в amp. Моя переменная - это двумерный массив. Это мои данные:
data;
set USER := u1 u2 ;
set JOB := j1 j2 ;
param p:=
u1 j1 0.8022422666444835
u1 j2 0.8022422666444835
u2 j1 0.8022422666444835
u2 j2 0.8022422666444835
;
param o:=
u1 j1 0.268
u1 j2 0.544
u2 j1 0.234
u2 j2 0.964
;
и это мое моделирование усилителя:
set USER;
set JOB;
param p {USER,JOB}>=0;
param o {USER,JOB}>=0;
var t {i in USER, k in JOB}>=0;
maximize profit: sum{k in JOB} 50*log(1+(sum{i in USER} log(1+t[i,k]*o[i,k])))-sum{i in USER}sum{k in JOB} t[i,k]*p[i,k];
Результатом будет t
переменная. Я хочу преобразовать t
в двумерный массив на Python, потому что я хочу использовать результат этой проблемы оптимизации в моем коде Python. Я запустил этот код на Python:
time = ampl.getVariable('t')
for i in time:
print(i)
и результат:
(('u1', 'j1'), <amplpy.variable.Variable object at 0x7f82b3b419d0>)
(('u1', 'j2'), <amplpy.variable.Variable object at 0x7f82b3b41d10>)
(('u2', 'j1'), <amplpy.variable.Variable object at 0x7f82b3b41b50>)
(('u2', 'j2'), <amplpy.variable.Variable object at 0x7f82b3b41b10>)
Я не знаю, как преобразовать этот результат в двумерный массив на Python. Не могли бы вы помочь мне мольбами? Заранее благодарим за помощь.
data["u1"]["j2"]
. Если это так, вам нужен dict of dicts, а не ответ, который у меня ниже, который составляет список списков ... - person Andrew Allaire   schedule 19.05.2020