Skip to content
Solverytic.com
Интеллект для бизнеса
  • ⬩BI-анализ
    • ⬩ BI-анализ
    • ⬩ Дашборд руководителя
    • ⬩ Дистрибьюция
      • ⬩ Документация
    • ⬩ Маркетплейсы
    • ⬩ Фармацея
    • ⬩ Калькулятор стоимости
  • ⬩ОПТИМИЗАЦИЯ
    • ⬩ МАТЕМАТИЧЕСКАЯ ОПТИМИЗАЦИЯ
    • ⬩ AMPL
      • ⬩ О AMPL
      • ⬩ AMPL ПРОДУКТЫ
      • ⬩ AMPL IDE
      • ⬩ AMPL API
      • ⬩ FAQ
    • ⬩ SOLVERS
      • ⬩ О SOLVERS
      • ⬩ ВСЕ SOLVERS
      • ⬩ ПРОДАЖА SOLVERS
  • ⬩ОТРАСЛИ
  • ⬩КУПИТЬ
  • ⬩БЛОГ
  • ⬩Контакты

AMPL

  • Оглавление
  • Лексический состав AMPL
    • Зарезервированные и предопределенные имена
    • Общие имена
    • Синонимы ключевых слов и операторов
    • Токены AMPL
    • Выражения
      • Арифметические выражения
      • Логические выражения
      • Логические операторы
      • Логические операторы
      • Операторы арифметической редукции
      • Рекурсия
      • Стандартная форма записи выражений в AMPL
    • Функции
      • Библиотека расширенных функций
      • Встроенные функции
      • Строковые выражения в командах AMPL
      • Строковые функции и операторы
      • Функции округления
      • Функции пользователя
      • Функции случайных чисел
  • Объекты модели
    • Наборы
      • Выражения индексации наборов
      • Индексированные коллекции наборов
      • Интервалы
      • Классификация наборов
      • Место объявления элементов набора
      • Наборы длинных кортежей
      • Наборы упорядоченных пар
      • Наборы. Правила объявления наборов
      • Неупорядоченный набор символьных строк
      • Операции над наборами
      • Подмножества и кусочки упорядоченных пар
      • Предопределенные наборы
      • Размерность набора (Арность)
      • Упорядоченные наборы
      • Установление членства в наборе
      • Числовые наборы
      • Операции с наборами
        • Оператор setof
        • Операции с наборами кортежей
    • Параметры
      • Логические параметры
      • Объявление параметров
      • Ограничения параметров
      • Операции с параметрами
      • Параметр в индексном выражении
      • Разряженные параметры
      • Расчет параметров
      • Символьные параметры
      • Случайно сгенерированные параметры
    • Переменные
      • Действия c переменными
      • Начальные значения переменных
      • Объявление переменных
      • Ограничение переменных
    • Данные
      • Данные в списках
      • Общие правила работы с данными
      • Объявление данных
      • Чтение неформатированных данных
      • Двумерные таблицы и срезы
        • Двумерные таблицы и срезы
      • Базы данных
        • Доступ к базе данных
        • Запись данных в реляционные таблицы
        • Индексированные коллекции таблиц и столбцов, 2D таблица
        • Операторы обработки таблиц
        • Стандартные и встроенные обработчики таблиц
        • Чтение данных из реляционных таблиц
        • Чтение и запись одной и той же таблицы
      • Общие правила работы с данными
        • Другие особенности объявления данных
    • Целевая функция
      • Целевая функция
    • Результаты
      • Альтернативные решения
      • Связанные значения решения
    • Ограничения
      • Ограничения модели
  • Решатели
    • Взаимодействие с решателями
      • Обмен информацией с решателями с помощью суффиксов
      • Получение результатов от решателей
      • Фаза предварительного решения: presolve
  • Команды и настройки AMPL
    • Команды
      • Команды моделирования
      • Команды отображения
        • Другие функции отображения
        • Общие настройки управления выводом
        • display
          • Команда display
          • Параметры display
        • print
          • Команда print
        • printf
          • Команда printf
    • Настройки AMPL
      • Изменение данных
      • Модификация моделей
      • Настройка и решение моделей
      • Параметры
  • Столбчатые формулировки
    • Модель “черный ящик”
    • Модель планирования
    • Правила построения формулировки «по столбцам»
    • Формулировки по столбцам. Введение
  • Команды сценариев
    • Завершение цикла. Команда: break и continue
    • Запуск сценариев
    • Оператор перебора набора: for
    • Повторение действий в зависимости от условия. Оператор repeat.
    • Пошаговое выполнение сценария
    • Сценарии команд. Общие сведения.
    • Тестирование условия: оператор if-then-else
  • Сетевые линейные программы
    • Сетевые линейные программы
    • Транспортная модель
      • Общая формулировка
        • Модель кратчайшего пути
        • Модель максимизации потока
        • Модель максимизации потока
        • Модель назначения
        • Минимизация затрат
          • Естественная убыль. Различные единицы измерения грузов при транспортировке
          • Транспортная модель: минимизация затрат (общая модель)
          • Транспортная модель: минимизация затрат (специализированная модель)
      • Нотация: node и arc
        • Правила объявления node и arc
        • Минимизация затрат
          • Варианты моделей перевалки
          • Модель перевалки (специализированная)
          • Сетевая интерпретация модели перевалки (общая).
  • Кусочно-линейные формулировки
    • Min-Max и другие формулировки
    • Инвентированные события
    • Кусочно-линейные модели
    • Правила описания кусочно-линейных выражений
    • Работа с неосуществимостью
    • Штрафы – мягкие ограничения
  • Взаимодействие с моделями
    • Именованное окружение
    • Именованные проблемы
    • Переключение между моделями
  • Линейность и линеаризация выражений
    • Линейные выражения

Distribution

  • Консоль
    • Страница “ГЛАВНАЯ”
    • Страница “ММЛ / МТ”
    • Страница “ОВП граф.”
    • Страница “ОВП граф.+”
    • Страница “ОВП табл.”
    • Страница “Рейтинги”
    • Страница “Сравнения”
    • Страница «Акции: показатели»
    • Страница «Акции: Скидки»
    • Страница «Акции: Эффективность»
    • Страница «Анализ: ABC-XYZ»
    • Страница «Анализ: Что-Если»
    • Страница «Бенчмаркинг цен»
    • Страница «План/Факт»
    • Страница «Факторный анализ»

Пошаговое выполнение сценария

Команда: step

Если есть основания думать, что сценарий может не выполнять то, что нужно пользователю, можно указать AMPL выполнить его по одной команде за раз. Это средство можно использовать для предоставления элементарной формы «символического отладчика» для сценариев.
Чтобы пошагово пройти по сценарию, который не выполняет никаких других сценариев, необходимо установить для параметра single_step значение 1 со значения по умолчанию, равного "0". Например для сценария:

model steelT.mod; data steelT.dat;
option solution_precision 10;
option solver_msg 0;
set AVAIL3 default {};
param avail3_obj {AVAIL3};
param avail3_dual {AVAIL3};
let avail[3] := 0;
param previous_dual default Infinity;
repeat {
  let avail[3] := avail[3] + 1;
  solve;
  if Time[3].dual = previous_dual then continue;
  let AVAIL3 := AVAIL3 union {avail[3]};
  let avail3_obj[avail[3]] := Total_Profit;
  let avail3_dual[avail[3]] := Time[3].dual;
  if Time[3].dual = 0 then break;
  let previous_dual := Time[3].dual;
}
display avail3_obj, avail3_dual;

можно указать:

option single_step 1;
commands steelT.sa7;
steelT.sa7:2(18) data ...
<2>ampl:

Выражение steelT.sa7: 2 (18) представляет собой имя файла, номер строки и номер символа, где AMPL остановился при обработке сценария. За ним следует начало следующей команды (данных), которая будет выполнена. Строка amp: <2> указывает уровень вложенности ввода. ‘2’ означает, что выполнение входит в область действия commands, которая, в свою очередь, была выдана в исходном потоке ввода. На этом этапе можно использовать команду step для выполнения отдельных команд скрипта. Для выполнения одной команды необходимо ввести step:

<2>ampl: step
steelT.sa7:4(36) option ...
<2>ampl: step
steelT.sa7:5(66) option ...
<2>ampl: step
steelT.sa7:11(167) let ...
<2>ampl:

Если после step указать число, тогда заданное этим числом количество команд будет выполнено. Подсчитываются все команды, кроме тех, которые имеют отношение к объявлениям модели, таким как model и param. Каждый step возвращает к приглашению AMPL. Можно продолжать "шагать" по командам до завершения сценария, а можно в любой момент отобразить нужные значения, чтобы увидеть, работает ли сценарий. Представленная ниже последовательность захватывает точку, где изменяется двойное значение:

<2>ampl: display avail[3], Time[3].dual, previous_dual;
avail[3] = 22
Time[3].dual = 3620
previous_dual = 3620
<2>ampl: step
steelT.sa7:17(317) continue ...
<2>ampl: step
steelT.sa7:15(237) let ...
<2>ampl: step
steelT.sa7:16(270) solve ...
<2>ampl: step
steelT.sa7:17(280) if ...
<2>ampl: step
steelT.sa7:19(331) let ...
<2>ampl: display avail[3], Time[3].dual, previous_dual;
avail[3] = 23
Time[3].dual = 3500
previous_dual = 3620
<2>ampl:

Команда: Next

Любая серия команд AMPL может быть набрана при пошаговом вводе. После каждой команды приглашение <2>amp возвращается, чтобы напомнить пользователю, что он все еще находится в этом режиме и может использовать step для продолжения выполнения сценария.
Чтобы помочь пройти через длинные составные команды for, repeat, или if, AMPL предлагает несколько альтернатив для step. Команда next проходит мимо составной команды, и не заходит в нее. Если бы мы начинали с самого начала, каждое next вызывало бы выполнение следующего оператора. В случае repeat будет выполнена вся команда, а выполнение остановится только на команде display в строке 28:

ampl: option single_step 1;
ampl: commands steelT.sa7;
steelT.sa7:2(18) data ...
<2>ampl: next
steelT.sa7:4(36) option ...
<2>ampl: next
steelT.sa7:5(66) option ...
<2>ampl: next
steelT.sa7:11(167) let ...
<2>ampl: next
steelT.sa7:14(225) repeat ...
<2>ampl: next
steelT.sa7:28(539) display ...
<2>ampl:

Команда: skip

Введите next n, чтобы пройти мимо n команд. Команды skip и skip n работают как step и step n, за исключением того, что они пропускают следующие 1 или n команд в сценарии, а не выполняют их.

let, param, display, next, repeat, .dual, commands, break, skip, step, single_step
Каковы ваши чувства?
Поделитесь этой статьёй:
  • Facebook
  • Twitter
  • LinkedIn
  • Pinterest
Оглавление
  • Команда: step
  • Команда: Next
  • Команда: skip
Solverytic.com
  • Аналитика для маркетплейсов в Power BI
  • Аналитика для сети аптек и фармации в Power BI
  • Дашборд для руководителя
  • Аналитика для дистрибьюции/ритейла в power BI
  • Калькулятор онлайн стоимости BI-решения
  • Математическая оптимизация
  • Блог
  • Контакты
Solverytic.com - является официальным партнером AMPL Optimization Inc. и Microsoft
© 2023 Solverytic.com. Все права защищены. Политика конфиденциальности
Minsk, Belarus
(+375) 29 613-13-68
mail@solverytic.com