Попробуйте удалить первые две строки вашего кода.
Похоже, что формат, который вы используете для указания ВРЕМЕНИ, работает только в режиме "модель";в режиме «данных» тот же текст интерпретируется как объявление набора литералов «3», «by» и «1..8760».(Быстрый тест: если вы наберете display card(TIME);
, вы получите значение 3, сообщая, что в этом наборе ровно 3 члена.)
Раздел 5.2 Книги AMPL рекомендует использоватьобъявление типа "x..y by z" в модели (с x, y, z в качестве объявленных параметров), а затем указание значений для x, y, z в данных.
Обратите внимание, что начиная с 1 и увеличивая его с шагом 3, на самом деле точно не достигнет 8760, поэтому вы можете изменить свое начало на 0 или 3 или свой конец на 8761, если вы хотите равные промежуткимежду числами.