Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Синтаксис модели

Разработка более сложных моделей в LINGO 221 | Указатель LINGO | Представление модели в What’s Best | Связь с фирмой LINDO Systems | Операторы SUB и SLB | Nbsp;   2 Команды LINDO | Детальное обсуждение команд для Windows | Output Options | Графическое изображение ненулевых элементов | Принципы моделирования |


Читайте также:
  1. A) проанализируйте модели образования слов, прочтите и переведите слова и словосочетания, созданные на их основе.
  2. Benefits of simulations- Преимущества моделирования
  3. CRON модели для газетной и газетно-коммерческой печати
  4. D-моделирование) автобусной остановки
  5. А) проанализируйте модели образования слов, прочтите и переведите слова, созданные на их основе.
  6. Аддитивные и субтрактивные цветовые модели
  7. БИЗНЕС-МОДЕЛИ ОНЛАЙНОВЫХ СМИ

 

В этом разделе уточняются требования LINDO к синтаксису записи модели. К счастью, список правил достаточно короткий и легок для изучения.

Целевая функция должна обязательно располагаться в самом начале модели и начинаться со слов либо MAX (максимизировать) либо MIN (минимизировать). Конец целевой функции и начало секции ограничения отмечается одной из ключевых фраз следующего вида:

 

SUBJECT TO

SUCH THAT

S.T.

ST

Секция ограничений завершается словом END. Это слово в обязательном порядке требуется только в случае, когда за этой секцией следуют еще операторы, такие как GIN и BIN, которые рассматриваются далее в этой главе.

Имена в LINDO ограничены восемью символами. Имена должны начинаться с буквы (от A до Z), за которой следует до семи дополнительных символов. Последние могут включать в себя любые символы за исключением следующих:!) + – = > <. Так, например, следующие имена будут допустимыми:

 

XYZ MY_VARA12 SHIP.LA

В то время как следующие имена будут неправильными:

 

THISONEISTOOLING A-HYPHEN 1INFRONT

Первое из имен в последней строке содержит более восьми символов, второе содержит недопустимый символ дефиса, а последнее начинается не с буквы.

Вы можете при желании (но не обязательно) давать имена ограничениям. Эти имена для ограничений должны подчиняться тем же правилам, что и имена переменных. Чтобы дать имя ограничению, вы должны начать его запись с этого имени, поставив после него правую скобку. После правой скобки вы можете вводить ограничения, как обычно. Например, следующее ограничение имеет имя XBOUND:

 

XBOUND) X < 10

 

LINDO распознает только пять операторов: «плюс» (+), «минус» (–), «больше» (>), «меньше» (<) и «равно» (=). Когда вы вводите с клавиатуры операторы строго неравенства — «больше» (>) или «меньше» (<), LINDO будет их интерпретировать как операторы нестрогого неравенства, то есть как «больше или равно» (³) и «меньше или равно» (£) соответственно. Это связано с тем, что многие клавиатуры не имеют символов нестрогого неравенства. В системах, где такие операторы имеются, LINDO не распознает их. Однако, если вам это больше нравится, вы можете вводить комбинации символов “<=” и “>=” вместо “<” и “>”.

LINDO не воспринимает скобки как арифметические символы, определяющие порядок действий. Все операторы читаются слева направо.

В любом месте модели можно поместить комментарии. Комментарии начинаются с восклицательного знака (!). Все, что следует за ним в текущей строке, воспринимается как комментарий. Например, простая модель, рассмотренная выше в этом разделе, может быть записана в ином виде с использованием комментариев:

 

MAX 10 STD + 15 DLX! максимальная прибыль

SUBJECT TO

! Здесь приведены ограничения на запасы компонент

! для компьютеров STANDARD и DELUXE

STD < 10

DLX < 12

! Здесь приведены ограничения по запасам
! на физические компоненты

STD + 2 DLX < 16

END

 

Комментарии сохраняются, если файл модели сохраняется в текстовом формате. Сохранение фала в упакованном формате (*.LPK) или формате MPS (*.MPS) приведет к удалению из модели любого специального форматирования и комментариев.

 

Замечание: Комментарии не сохраняются в упакованных форматах (см. выше).

 

Ограничения и целевая функция могут отделяться друг от друга несколькими строками или могут быть объединены в одну строку. Вы можете оборвать строку в любом месте, только не внутри имени переменной или коэффициента. Следующая запись будет эквивалента ранее приведенной форме (хотя может быть и не очень удобной для чтения):

 

MAX

STD + 15 DLX SUBJECT TO

STD

<

dlx < 12 STD + 2

dlx < 16 end

Однако, если целевая функция будет записана следующим образом:

MAX 10 ST

D + 1

5 DLX

SUBJECT TO

 

… то LINDO выдаст сообщение об ошибке, поскольку переменная STD и коэффициент 15 разорваны и располагаются в разных строках.

Компилятор LINDO не чувствителен к регистру. Весь введенный текст будет преобразован к верхнему регистру внутри самого LINDO. Например, запись модели в виде:

 

Max x

st

X < 1

ENd

является допустимой и содержит одну переменную X, а не две — x и X.

В правой части ограничений допускаются только константы, но не переменные. Так, ограничение в виде:

X > Y

… будет забраковано компилятором. Подобное ограничение следует переписать в виде:

 

X – Y > 0

 

И наоборот, только переменные и их коэффициенты допускаются в левой части ограничений. Например, ограничение:

 

3X + 4Y - 10 = 0

 

не допустимо, поскольку в левой части появилась константа в виде –10.

Конечно, такое ограничение следует записать в виде:

3X + 4Y = 10

 

для того, чтобы удовлетворить правилам синтаксиса LINDO.

 


Дата добавления: 2015-11-16; просмотров: 147 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Ввод задачи в LINDO| Оператор FREE

mybiblioteka.su - 2015-2024 год. (0.007 сек.)