Читайте также:
|
|
Синтаксис функции @IMPORT следующий:
@IMPORT(имя_электронной_таблицы, имя_диапазона_данныз);
Имя_электронной_таблицы может содержать до 64 символов и включать в себя имя устройства и путь. Не забудьте указывать расширение файла (то есть.WK4,.XLS, WR1). Имя_диапазона_данных является ссылкой на прямоугольный диапазон ячеек в электронной таблице, содержащий импортируемые данные. Команда присваивания имени диапазона зависит от типа электронной таблицы.
Использование функции @IMPORT разрешается только в секции DATA. LINGO перейдет к указанной в аргументе электронной таблице, чтобы прочитать значения инициализируемых переменных или массива. Данные DATA могут быть упорядочены горизонтально, вертикально или в виде таблицы. LINGO читает данные из электронной таблицы по строке за один раз, начиная с левого верхнего угла.
Количество ячеек в диапазоне электронной таблицы должно быть равно количеству элементов инициализируемого массива. Пустой элемент в диапазоне трактуется как нулевой.
Рассмотрим снова в качестве примера транспортную задачу из предыдущего раздела:
MODEL:
1]
2]! Стандартная транспортная задача с «плотным» множеством;
3]
4] SETS:
5]! Данны по запасам CAPFCITY, птребностям DEMAND и затратам COST
6]! берутся из файла NTAN.WK4. Каждый склад WAREHOUSE имеет CAPACITY;
7] а каждый получатель CUSTOMER имеет потребность DEMAND;
8] WAREHOUSE / WH1, WH2, WH3/: CAPACITY;
9] CUSTOMER / C1, C2, C3, C4/: DEMVAND;
10]! Для каждой комбинации поставщик-получатель
11] заданы затраты CST и объем перевозок VOL, подлежащий определению;
12] ROUTES (WAREHOUSE, CUSTOMER): COST, VOLUME;
13] ENDSETS
14]
15]! Целевая функция;
16] [COST] MIN = @SUM (ROUTES: COST * VOLUME);
17]
18]! Ограничения, исходя из потребностей;
19] @FOR(CUSTOMER (J): [DEMAND]
20] @SUM(WAREHOUSE (I): VOLUME(I, J)) > DEMAND(J));
21]
22]! Ограничения на запасы поставщиков;
23] @FOR(WAREHOUSE (I): [SUPPLY]
24] @SUM(CUSTOMER (J): VOLUME(I, J)) < CAPACITY(I));
25]
26]! Параметры;
27] DATA:
28] CAPACITY = @IMPORT(TRAN.WK4, CAP);
29] DEM = @IMPORT(TRAN.WK4, DEM);
30] CST = @IMPORT(TRAN.WK4, CST);
31]
32] ENDDATA
END
Обратите внимание на изменения в строках 29-30. Теперь мы используем функцию @IMPORT для заполнения наших данных из электронной таблицы TRAN.WK4. Файл электронной таблицы выглядит следующим образом:
Мы присвоили диапазон B5..E7, содержащему данные о затратах (Cost), имя CST. Диапазон F5..F7, содержащий данные о запасах (Capacity) мы назвали CAP. Аналогично, диапазонe B9..E9 с данными о потребностях (Demand) присвоено имя DEM. (Диапазон B14..E16 с именем VOL инициализирован нулями и будет содержать возвращаемые данные с помощью команды EXPORT).
Дата добавления: 2015-11-16; просмотров: 43 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Ввод из файлов с помощью @FILE | | | Пакетные файлы LINGO |