Читайте также:
|
|
В текстовом отчете имена переменных печатаются в верхней его части, имена строк появляются слева, а правые части справа по направлению строк. Ненулевые коэффициенты матрицы появляются в соответствующих позициях матрицы. Отметим, что коэффициенты с целыми значениями в диапазоне от 0 до 9 печатаются без изменений.
Все остальные коэффициенты заменяются буквами по следующей схеме:
Заменяющий символ | Диапазон коэффициента |
Z | 0.000000 –.000001 |
Y | 0.000001 –.000009 |
X | 0.000010 –.000099 |
W | 0.000100 –.000999 |
V | 0.001000 –.009999 |
U | 0.010000 –.099999 |
T | 0.100000 –.999999 |
A | 1.000001 – 10.000000 |
B | 10.000001 – 100.000000 |
C | 100.000001 – 1000.000000 |
D | 1000.000001 – 10000.000000 |
E | 10000.000001 – 100000.000000 |
F | 100000.000001 – 10000000.000000 |
G | > 1000000.000000 |
Так, строку 4 следует читать как C(B1T1) + B(T1T1) < E, где переменные в скобках и C,B и D относятся к указанным выше диапазонам.
Текстовый вариант изображения ненулевых элементов компилируется с учетом параметра Terminal Width (ширина экрана). Поэтому, если ширина изображения превышает параметр Terminal Width, отчет будет продолжен на дополнительной странице. Возможно вы захотите в связи с этим увеличить параметр Terminal Width, чтобы максимизировать количество текстового отчета на одной странице.
Графическая версия соответствующего отчета выводит в верхней части имя модели, а внизу размерность матрицы и, если позволяет пространство окна, имена строк слева и имена переменных сверху. Отрицательные коэффициенты изображаются красными прямоугольниками, а положительные — голубыми. Если позволяет пространство окна, выводятся фактические значения коэффициентов. Различие между текстовой и графической формами такого изображения состоит в том, что в графическом варианте не выводятся правые части ограничений и знаки неравенств, но он включает точные значение больших коэффициентов.
В правой части графического отчета вы можете видеть три «инструмента» в виде следующих иконок:
Самый верхний инструмент (в виде лупы со знаком +) является инструментов для увеличения изображения. Чтобы выбрать этот инструмент, щелкните мышкой по соответствующей радио-кнопке, расположенной слева от него. Курсор мыши примет вид этого инструмента . После этого вы можете позиционировать такой курсор над тем местом матрицы, которое хотите изучить более подробно, щелкнуть мышью по нему, и LINDO увеличит выбранную вами область. Используя этот инструмент, увеличим область со строками 4 и 5 и столбцами с B1T1 по T1T1:
Отметим, что при таком увеличении становится недостаточно места для вывода имен переменных в верхней части окна и вывода самих ненулевых значений в их прямоугольниках. Кроме того, добавлены полосы прокрутки, чтобы можно было прокручивать матрицу горизонтально и вертикально.
Вы можете совершенно аналогично уменьшать изображение, выбрав инструмент ().
Инструмент в виде стрелки () может быть использован для выделения и увеличения конкретной области матрицы. Поместите стрелку в верхний левый угол области, которую хотите выделить, нажмите клавишу мыши и, не отпуская ее, протащите до правого нижнего угла интересующей вас области. Отпустите клавишу мыши и LINDO увеличит выделенную область, так что она будет занимать целиком все изображение.
В настоящей версии графический отчет о ненулевых элементах не может быть отпечатан непосредственно из LINDO. Однако, вы можете использовать команду Copy из меню Edit. Это поместит изображение в буфер обмена Windows. Из буфера обмена изображение может быть вставлено в любую графическую программу (например, Microsoft Paint) и распечатано из нее.
Basis Picture Alt+6
Команда Basis Picture выводит на экран отчет в текстовом виде, содержащий «изображение» текущего базиса с упорядоченными строками и столбцами в соответствии с последним преобразованием или триангулизацией, выполненных решателем. Отчет Basis Picture посылается в окно отчета.
Используем эту команду для вывода на экран изображения оптимального базиса следующей модели:
Во-первых, мы оптимизировали модель, выбрав команду Solve из меню Solve. Затем мы выбрали команду Basis Picture из меню Reports и LINDO послал в окно отчета следующее изображение:
Можете заметить, что в этом отчете матрица базиса повернута на 90 градусов. Имена переменных, появляющихся в базисе, расположены слева. Имена строк, переменные из которых образуют базис, расположены слева направо в верхней части отчета. Положительные коэффициенты от 1 до 9 появляются в отчете неизмененными. Для остальных коэффициентов знак плюс (+) используется для положительных значений и знак минус (-) для отрицательных.
LINDO может привести базис некоторых моделей к треугольному виду (то есть все ненулевые коэффициенты будут располагаться либо выше, либо ниже главной диагонали). Модель с таким «треугольным» базисом, как правило, решается быстрее, чем с не «треугольным». В нашем конкретном примере матрица в значительной мере треугольная, и только семь столбцов содержат коэффициенты, расположенные ниже диагонали.
Не всегда в базисе присутствует полный набор переменных. В подобных случаях вы можете увидеть в изображении базиса имена ART. Они означают искусственные переменные (artificial variable), которые LINDO использует в качестве место-заполнителей, когда строке еще не присвоены переменные.
Отчет с изображением базиса компилируется с параметром Terminal Width (ширина экрана), который может быть установлен с помощью команды Edit|Options. Так, если ширина изображения превышает величину параметра Terminal Width, изображение будет продолжено на дополнительной странице. Вы можете захотеть увеличить значение параметра Terminal Width, чтобы увеличить количество информации, выводимой в отчете в пределах одной страницы.
Tableau Alt+7
Команда Tableau показывает текущее состояние симплекс-таблицы. Это удобный способ просмотра пошаговой работы симплекс-алгоритма, особенно в случае когда эта команда используется совместно с командой Pivot. Команда Tableau выводит переменные в верхней части окна, номера строк в первой колонке слева, базисную переменную в каждой строке во втором столбце, текущие коэффициенты для каждой переменной и текущее значение правых частей в правой части экрана.
Эта команда может быть скомбинирована с командой Pivot для управления внутренней работой решателя LINDO.
В нижеприведенном примере мы поочередно используем команды Tableau и Pivot, чтобы отследить, как LINDO оптимизирует следующую простую модель:
Последующее обсуждение предполагает некоторое представление о симплекс-методе. Интересующиеся читатели могут обратиться к любому введению в исследование операций за дополнительной информацией по этому вопросу или к книге Лайнуса Шрейджа Optimization Modeling with LINDO.
Выполнив команду Tableau, мы получим следующий отчет, содержащий начальное табло:
Термин ART используется для «искусственных» переменных, которые использует внутреннее устройство для организации первого шага в симплекс-методе. Такие переменные используются всякий раз, когда переменная еще не присвоена строке. Термин «SLK n» относится к «остаточным» переменным для n -й строки. Остаточные» переменные добавляются к каждому ограничению, записанному в виде неравенства, чтобы превратить его равенство.
Переменные текущего базиса перечислены во втором столбце слева. Отметим, что LINDO уже добавил все остаточные переменные в базис. Имена переменных появляются вдоль верхнего края окна. Ненулевые значения измененного столбца выводятся под его именем. Измененные значения правых частей приводятся справа. В заключение заметим, что LINDO добавил дополните6льную строку в нижней части табло. Эта дополнительная строка соответствует 1-й фазе симплекс-метода,на котором минимзируется сумма несоответствий.
Как только LINDO выполнит первое преобразование и проверит, что имеется допустимое решение, эта строка будет удалена из табло.
Просмотрев табло, мы замечаем, что переменная Y не является базисной с наименьшими приведенными затратами (-30 в строке 1). Выполнение «симлекс-теста по отношениям» для этой переменной показывает, что для нее связывающим ограничением является строка 4, которая ограничивает Y величиной 60=120/2. Таким образом, хорошим кандидатом на преобразование базиса могла бы быть переменная Y в строке 4 со значением 60. Чтобы посмотреть, согласится ли с этим LINDO, выполним команду Pivot из меню Solve. Когда мы проделаем это, то увидим, что LINDO согласен с приведенным нами выше анализом:
Теперь еще раз выполним команду Tableau, чтобы посмотреть на эффект перевода Y в базис:
Переменная Y заменила остаточную (SLK) переменную 4 в списке базисных переменных слева. Текущее целевое значение, равное 1800, появилось в правом верхнем углу. Значение Y, равное 60, появилось в последней строке в последнем столбце справа, который содержит правые части ограничений. Обратите внимание, что последняя строка, присутствующая в предыдущем табло исчезла, поскольку первое преобразование базиса выполнено, и теперь LINDO знает, что это допустимое решение.
Единственной переменной, которая теперь имеет предпочтительные (отрицательные) приведенные затраты, является переменная X. Еще раз выполним команду Pivot и увидим, что LINDO согласен с нашим анализом:
Выполним после этого в очередной раз команду Tableau, увидим следующее
На этом этапе больше нет привлекательных переменных, которые могли бы быть кандидатами для ввода в базис. Поэтому мы достигли оптимального решения. Выполним еще раз команду Pivot, чтобы убедиться в этом:
Отчет, выдаваемый командой Tableau, подчиняется параметру Terminal Width (ширина экрана). Так, если ширина отчета превышает значение параметра Terminal Width, он будет продолжен на дополнительной странице. Вы можете захотеть увеличить с помощью команды Edit|Options, чтобы оптимизировать количество выводимой на странице информации.
Formulation Alt+8
Команда Formulation используется для того, чтобы вывести всю модель (или выделенные фрагменты) в окно отчета. Пользователи, давно работающие с LINDO, обратят внимание, что эта команда эквивалентна команде LOOK в версии с командной строкой.
Команда Formulation выводит на экран внутреннее представление модели, созданной при компиляции текста в окне модели. Так, в частности, будут удалены все комментарии и специальное форматирование.
Чтобы выполнить команду Formulation, вы должны выбрать окно модели, для которой вы хотите создать этот отчет. Затем выберите команду Formulation из меню Reports, и на экране появится диалоговое окно:
В группе с меткой “Rows to View” (строки для просмотра) можно выбрать, все ли (All) строки модели подлежат выводу или только выделенные (selected). Если вы выбираете для просмотра в отчете опцию Selected (выделенные строки), то становится доступной группа “Selected rows” и вы можете указать начальную строку (Beginning row) и конечную строку (Ending row) для просмотра в отчете.
Проиллюстрируем команду Formulation, используя следующую простую модель, которую мы ввели в окне модели:
Выполнение команды Formulation для всех строк этой модели приведет к появлению следующего текста в окне отчета:
Как отмечалось выше, это внутренне представление модели в LINDO, а не точный слепок того, что вы набирали в окне модели. Как вы можете заметить, удалены все комментарии и текст переформатирован. Безусловно, хотя появившееся внутренне представление отличается от введенного вами, их математические формулировки эквивалентны.
Отчет, выдаваемый командой Formulation, подчиняется параметру Terminal Width (ширина экрана). Так, если ширина отчета превышает значение параметра Terminal Width, он будет продолжен на дополнительной странице. Вы можете захотеть увеличить с помощью команды Edit|Options, чтобы оптимизировать количество выводимой на странице информации.
Show Column Alt+9
При работе с большой моделью может оказаться полезным вывести на экран выбранную строку или столбец без детального просмотра всей формулировки модели. Команда Formulation позволяет просмотреть единственную строку, в то время как команда Show column позволяет просмотреть детали единственного столбца.
Чтобы выполнить команду Show column, следует сначала щелчком мыши выбрать окно нужной модели. Затем выполните команду Show column и выберите переменную, для которой хотите сгенерировать отчет. Нажмите кнопку OK и соответствующий отчет будет послан в окно отчетов (Reports Window).
Предположим, в качестве примера, что вы уже решили следующую небольшую транспортную модель:
Когда вы запустите команду Show column, LINDO выставит на экран следующее диалоговое окно, чтобы помочь вам выбрать имя столбца:
Окно-список с именем “Column to Show” содержит имена всех переменных текущей модели. Вы можете набрать имя непосредственно в поле редактирования или выбрать его из списка. В данном примере мы выбрали переменную XWH1C2.
Нажатие кнопки OK пошлет в окно Reports Window следующий отчет:
В первой строке мы имеем имя переменной и ее внутренний индекс. В данном случае этот индекс равен 2; это означает, что эту переменную LINDO встретил второй при компиляции модели.
В следующем разделе отчета имеется по одной строке для каждой строки матрицы, в которой столбец имеет ненулевой коэффициент. В каждой строке выведен номер строки матрицы, ненулевой коэффициент и двойственная цена этой строки-ограничения.
Наконец, в нижней части отчета приведено значение столбца и приведенные затраты.
Positive Define
Команда Positive Definite используется в квадратичном программировании для проверки, имеется ли гарантия глобального экстремума. При этом анализируются подматрицы ограничений, соответствующих квадратичной форме чтобы определить, является ли она положительно определенной. Если матрица положительно определенная, то целевая функция задачи выпуклая и гарантируется, что найденное решение является глобальным экстремумом.
Меню Window
Меню Windows показано слева и содержит все команды, которые помогают управлять различными окнами, создаваемыми LINDO. Ниже эти команды рассмотрены детально.
Open Command Window Alt+C
LINDO имеет свой макро- или командный язык для доступа ко всем его внутренним возможностям. Более подробную информацию о командном языке можно найти в руководстве пользователя (User’s Manual) LINDO.
Командный файл, содержащий команды LINDO, может быть выполнен с помощью команды Take Commands из меню File. Помимо этого вы можетt в интерактивном режиме вводить команды в командное окно (Command Window). Чтобы вызвать это окно, воспользуйтесь командой Open Command Window (открыть командное окно). На экране появится следующее окно:
Двоеточие в верхнем левом углу представляет собой приглашение на ввод команд. В ответ мы можете вводить любые допустимые команды LINDO. Для того, чтобы увидеть список допустимых команд, введите слово COMMAND в ответ на приглашение.
В следующем примере мы вводим простую модель в командном окне, выводим ее формулировку и затем решаем ее:
В целом, вы, вероятно, будете предпочитать использовать меню и интерфейс палитры кнопок при интерактивной работе с LINDO. Возможность работать с командным окном предназначена в первую очередь для пользователей, желающих испробовать возможности языка LINDO.
Open Status Window
Когда начинает работать внутренний решатель LINDO, он выводит на экран окно состояний (Status Window), которое выглядит примерно так:
Оно позволяет управлять работой решателя. Вы можете закрыть это окно в любой момент. Если вы его закроете, оно может быть в любой момент восстановлено командой Open Status Window (открыть окно состояний).
Более подробную информацию об использовании окна состояний можно найти в разделе, касающегося меню Solve.
Send to Back Ctrl+B
Команда Send to Back (переместить назад) помещает на экране активное окно позади всех остальных. Она особенно полезна для переключения между окном модели и окном отчета.
Предположим, в качестве примера, что наш экран сконфигурирован так, что окно модели находится поверх окна отчета (Report Window):
Выполнение команды Send to Back приведет к тому, что окна поменяются местами. Окно отчета переместится вперед и станет активным окном:
Cascade Ctrl+A
Команда Cascade упорядочивает все открытые окна каскадом с верхнего левого угла к правому нижнему с расположенным сверху активным окном.
Предположим, например, что наши окна расположены следующим образом:
После выполнения команды Cascade все окна будут позиционированы следующим образом:
Tile Alt+T
Команда Tile упорядочивает все открытые окна «паркетом». Каждое окно изменяет размер таким образом, чтобы все окна разместились на экране и, по возможности, с одинаковым размером. Вы можете выбрать расположение «паркетом» горизонтально или вертикально. Если вы выбираете горизонтальный (вертикальный) «паркет», то LINDO будет пытаться максимизировать горизонтальный (вертикальный) размер каждого окна. Если окон больше, чем три, то LINDO по-прежнему будет их располагать «паркетом», но выбор горизонтального или вертикального расположения уже не будет иметь никакого эффекта.
Предположим, например, что у нас есть три окна, расположенные следующим образом:
Выполнив команду Tile, увидим сначала диалоговое окно:
Если выбрать радио-кнопку с опцией Horizontal (горизонтальный) и нажать кнопку OK, то наши окна расположатся следующим образом:
Close All Alt+X
Команда Close All закрывает все окна и диалоги. Если вы внесли изменения в окно модели, не сохраняя их, то вы получите приглашение сохранить модель перед закрытием.
Замечание: Все изменения, внесенные с момента последнего сохранения, будут утеряны, если модель не сохранить перед закрытием. Рекомендуется всегда отвечать YES (да) на приглашение, чтобы быть спокойным.
Arrange Icons Alt+I
Если вы минимизировали какие-либо окна, так что они изображаются на экране в виде иконок, вы можете выполнить команду Arrange Icons (упорядочит иконки), чтобы выровнять их в левом нижнем углу родительского окна.
Меню Help
Меню Help и содержит несколько команд для доступа к системе помощи LINDO.
Эти команды рассмотрены ниже подробно.
Comtents F1
Команда Contents открывает окно помощи LINDO в разделе содержания (contents). При этом вы можете изучить содержание, чтобы найти интересующий вас раздел и перейти к нему, щелкнув мышью по соответствующему тексту заголовка раздела в содержании. Команды Contents может быть вызвана кнопкой .
Кнопка используется, чтобы вызвать контекстно-зависимую помощь. Выбор этой команды изменит курсор, превратив его в знак вопроса. При наличиии такового, выбор любой команды или кнопки выдаст вам соответствующий раздел справки.
Search for Help On
Alt+F1
Команда Search for Help On (поиск по справочной системе) позволяет осуществить в системе помощи поиск ключевого слова или раздела.
How to Use Help
Ctrl+F1
Команда How to Use Help (как использовать помощь) предоставляет вам информацию по навигации в системе помощи LINDO.
About LINDO
Команда About LINDO открывает системное окно, в котором вам предоставляется информация об используемом программном продукте и компании LINDO Systems, Inc. Первые четыре строки показывают версию LINDO, которой вы пользуетесь, серийный номер, дату версии и лицензионный знак (Copyright). Далее следует иконка LINDO, почтовый адрес, телефон, электронный адрес (e-mail) и адрес Internet компании LINDO. Следующий рисунок иллюстрирует вид диалогового окна About LINDO:
В группе (в нижней части окна) перечислены пределы на количество ограничений и переменных вашего продукта LINDO вместе с пределами на количество ненулевых элементов. Пределы на количество ограничений и переменных для каждой версии LINDO следующие: 100&200 для базовой версии, 500&1000 — для версии Super, 2000&4000 — для Hyper версии, 8000&16000 — для промышленной (показанной на приведенном рисунке) и 32000&100000 — для расширенной (Extended) версии. Предел на ненулевые элементы может быть установлен по вашему усмотрению с помощью команды Options меню File. Обратитесь к описанию этой команды относительно деталей, как изменить предел на количество ненулевых элементов.
Дата добавления: 2015-11-16; просмотров: 88 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Output Options | | | Принципы моделирования |