
книги из ГПНТБ / Общее математическое обеспечение для решения задач экономики, статистики и управления на ЭВМ Минск-32 тезисы докладов и сообщений
..pdfподблоки, число ошибок в которых превышает некоторое наперед заданное число).
4.Расчет вероятностей различных сочетаний ошибок в блок заданной длины.
Ксреднему уровню относятся модули, состоящие из одного или нескольких модулей низшего уровня, объединенных в опре деленной последовательности с дополнительной переработкой полученных результатов.
Кмодулям среднего уровня относятся:
1.Расчет финальных вероятностей марковских цепей.
2.Вычисление произведения матриц 2-х типов, поставленное
всоответствие с заданной логической шкалой.
3.Формирование линейного пространства строк матрицы, записанной в битовом виде.
Книзшему уровню относятся модули, реализующие процедуры матричной алгебры, ввода и вывода информации и т. д.
Кмодулям низшего уровня относятся:
1.Умножение матриц.
2.Сложение матриц.
3.Вычитание матриц.
4.Транспонирование матриц.
5.Формирование единичной матрицы.
6.Ввод прямоугольной матрицы в МОЗУ.
7.Ввод диагональной матрицы в МОЗУ.
8.Ввод числовой последовательности заданной в битовом
виде.
9.Печать прямоугольной матрицы.
10.Печать числовой последовательности в битовом виде.
Все модули, входящие в предлагаемый комплекс, находятся в полном соответствии с требованиями, предъявляемыми к СМО
«Минск-32».
Г. П. Свирид
СИСТЕМЫ АВТОМАТИЧЕСКОГО ПРОГРАММИРОВАНИЯ В ИНЖЕНЕРНЫХ РАСЧЕТАХ
Характерной особенностью инженерных задач, является срав нительно неГзольише требования к объему памяти, стандартизация определенных этапов вычислений, цикличность, а тадже в неко торых случаях удобный вид выдачи результатов. В тех задачах,
120
где приходится использовать итерационные и градиентные мето ды решения, важным становится вопрос скорости вычислений. Как правило, инженерные задачи довольно хорошо расписы ваются на современных алгоритмических языках, что намного ускоряет процесс их реализации на ЭВМ. В настоящее время имеется несколько систем автоматического программирования, входными языками большинства которых являются алгоритми ческие языки типа АЛГОЛ. Некоторые из них ориентированы на получение оптимальных рабочих программ, другие — на быструю трансляцию с языка программирования. Поэтому при решении определенного класса инженерных задач возникает не обходимость правильного выбора системы программирования. Подобное исследование было проведено для задач теории плас тичности, решаемых методом конечного элемента в вариационной постановке. На 20-ти задачах исследовались временные характе ристики трансляторов TAM-22, ТАМ-22Т и сравнивались с уже известными характеристиками трансляторов МЭИ-3, МАЛГОЛ, АЛГЭМ.
Анализ исходных программ и счета по рабочим программам показал высокую эффективность транслятора ТАМ-22Т. Времен ные характеристики рабочих программ, составленных ТАМ-22Т, по сравнению с временем счета по рабочим программам, полу чаемым с помощью ТАМ-22, превосходят в 5—6 раз. Высокое качество программирования достигается за счет методов опти мизации при программировании циклов, адресации переменных с индексами. Структурный анализ исходных и рабочих программ показал, что при 16% переменных с индексами в программе уве личение длины рабочей программы, полученной с помощью ТАМ-22Т, по сравнению с рабочей программой, полученной с помощью ТАМ-22, составляет 1%, а уменьшение времени счета в 5 раз. Соответственно, при 90% переменных с индексами, удли нение рабочей программы составляет 40%, а скорость счета уменьшается в 6 раз. В обоих случаях время трансляции удлиня лось незначительно (15%). Число процедур в программах состав ляло от 10 до 12 с высокой частотой обращения к ним. Примерная длина рабочих программ равнялась 5000 командам. Трансляция исходных программ и счет по рабочим программам проводились на ЭВМ «Минск-22М», «Минск-32».
Наряду с хорошими качественными и организационными характеристиками транслятора ТАМ-22Т, следует отметить неко торые недостатки, в частности, организацию процедур вводавывода. Большой набор программ процедур ввода-вывода поз воляет выполнить достаточно разнообразные действия при
121
вводе и выводе информации. Однако нельзя считать нормальным тот факт, что при обычном выводе результатов счета на БПМ для процедур ввода-вывода резервируется 3000 ячеек памяти. Использование же программы расфиксации (СП-300) для эконо мии памяти при выводе является по многим причинам не удоб ным, а в некоторых случаях невозможным. Использование про цедур с телом LIBRARY (<строка>) является достаточно мощ ным средством использования библиотечных программ. Однако, возможность прямого включения в исходную программу опера торов языков низшего уровня, во многих случаях дала бы боль ший эффект.
Из проведенного анализа можно сделать вывод, что для ЭВМ «Минск-22М» и в режиме совместности «Минск-32» наиболее эффективной системой программирования является система ТАМ-22Т.
В. М. Школьников
ОБРАБОТКА МЕТЕОРОЛОГИЧЕСКИХ ДАННЫХ
ВРЕАЛЬНОМ МАСШТАБЕ ВРЕМЕНИ
Впроцессе автоматизации обработки метеорологической ин формации решается задача быстрейшего донесения до потреби теля готовой продукции. Задача наиболее остро стоит в части первичной обработки данных, поскольку эту стадию проходит абсолютно вся информация. Существующие схемы усвоения дан ных предполагают накопление поступающей в центр по линиям связи информации в течение времени, сравнимого с длитель ностью (3 часа) метеорологического срока наблюдения, а затем интенсивную обработку. Частота приостановки накопления оп ределяет задержку усвоения. Отсюда понятно стремление повы
сить указанную частоту. В этой связи определенный прогресс представляет собой концепция, принятая в типовом программно аппаратном комплексе первичной обработки данных на базе ЭВМ «Минск-32», разработанном в Гидрометцентре СССР. Данные здесь воспринимаются, точнее опознаются, по отдельным сообщениям. Задержка усвоения представляет собой время пос тупления сообщения, поскольку длительность опознавания не сравнимо меньше. В этом смысле и понимается реальный мас штаб времени обработки. Несмотря на незначительную «глубину проникновения» опознавания, на этом примере отчетливопро
122
сматриваются многие проблемы организации обработки в ре альном масштабе времени.
Исходные данные для опознавания поступают в центр по 30 телеграфным каналам связи. Процесс усвоения данных разби вается на три стадии: прием поступающей информации, опозна вание сообщений и распределение результатов. На первой ста дии основными проблемами являются размещение данных и своевременная передача их для обработки. На второй стадии главным является построение схемы опознавания, ориентирован ной на одновременное хранение малого объема данных по каж дому каналу, учитывая значительное количество последних. Наконец, на третьей стадии важно обеспечить информацией каждого потребителя в его собственном темпе усвоения и притом так, чтобы ограничения на объем размещаемой информации не были заметны.
Размещение данных производится для снижения задержки обработки непосредственно в памяти ЭВМ. Поскольку данные поступают непрерывно, то обработка ведется параллельно с на коплением. Традиционная схема совмещения обработки с на коплением, когда выделенный участок памяти разбивается по полам, причем запись информации ведется поочередно то в одну, то в другую половину, тогда как одновременное чтение произво дится из противоположной, признака непригодной. Причиной тому — потребность в дополнительной памяти на каждый канал для накопления смысловых единиц обработки. В связи с этим разработана схема циклического размещения данных, при кото рой поле для записи не фиксируется заранее, а по мере необходи мости отводится в соответствии с имеющимся в выделенном участке резервом.
Метеорологические сообщения опознаются в телеграфном коде, в формате, установленном Всемирной метеорологической организацией. Основные компоненты оформления сообщения укладываются в телеграфную строку. Смысловая законченность строки и ее сравнительно небольшой размер позволили ориенти ровать опознавание на построчное усвоение данных. В каждой из строк оформления зафиксированы признаки, позволяющие идентифицировать ее вид. По завершении анализа строки форми руется предистория следующей, позволяющая в сжатой форме отразить связь между компонентами сообщения.
В результате опознавания определенная часть данных приз нается удовлетворяющей формату сообщений, а остальная — не удовлетворяющей. И та, и другая информация оформляется в виде стандартных макетов, направленных на дальнейшую об
123
работку. Объем макета сравним с величиной сообщения, однако ограничения по памяти и разброс размеров сообщений вынуж дают представлять некоторые из них в виде совокупности маке тов, которые сменяют друг друга в памяти по мере опознавания.
Необходимость обеспечения информацией потребителей раз личного характера привела к разработке схемы согласования через внешнюю память на магнитной ленте. Учитывая целесооб разность снабжения потребителя законченными сообщениями, а также снижения объема передаваемой ему информации путем исключения заведомо ненужной, нетрудно понять, почему одно из основных мест в этой схеме занимает процедура сортировки макетов. Сортировка осуществляется параллельно с пополнением ленты информацией.
Рассмотренная схема опознавания в настоящее время реали зована и функционирует в составе программно-аппаратного комплекса. Объем программного обеспечения — около 12000 команд.
А. А. Кузьмина
РЕАЛИЗАЦИЯ МУЛЬТИПЛИКАТИВНОГО СИМПЛЕКСНОГО АЛГОРИТМА
Для машины «Минск-32» на ЯСК составлена программа решения общей задачи линейного программирования с двусто ронними ограничениями на неизвестные.
Формулировка задачи.
Требуется найти вектор х15.. ., х„ максимизирующий линей-
П
ную форму f(x) = £ CjXj и удовлетворяющей системе ограни-
чений |
i=i |
|
|
|
п |
OijXj = b, |
при I = |
1, ., .. , т |
(1.1) |
£ |
||||
2= 1 |
|
|
|
|
0 < |
Xj < fij |
при j = |
1,.. .,п |
(1.2) |
Матрица А = (atj) коэффициентов при неизвестных в ограниче ниях (1.1) предполагается заполненной на 15—30%.
Программа составлена для машины в неполном комплекте (с оперативным запоминающим устройством объемом 16384 ячейки). Этим определяются некоторые особенности составленной программы. Составлены вспомогательные программы, работаю-
124
щие независимо от основной программы, которые записывают исходные данные на МЛ. Основная программа, реализующая мультипликативный симплексный алгоритм, состоит из 4-х час тей, записанных на МЛ, и поочередно вызываемых головной программой в оперативную память, В каждый момент времени в оперативной памяти находится и работает только одна из этих частей. В памяти машины хранятся только ненулевые элементы исходной и промежуточной информации.
В качестве исходной информации, помимо коэффициентов в ограничениях, задается список столбцов, которые, по мнению инженера, поставившего задачу, войдут в базисное решение, а также список тех неизвестных, которые должны (в оптимальном решении) быть равны своей верхней границе. Списки эти, конеч но, не точные, но от того, насколько они близки к действитель ности, зависит время решения задачи.
Матрица вводится в оперативную память и обрабатывается по частям, каждая часть содержит целое число столбцов. Выпол нение программы начинается с вызова в оперативную память и выполнения первой части программы, которая осуществляет процедуру «повторения», т. е. нахождения такого мультиплика тивного представления обратной базисной матрицы, которое содержит ровно т элементарных матриц Е, «Повторение» произ
водится в соответсгвии со списком базисных столбцов, заданным в исходной информации.
По окончании работы этой части программы мы будем иметь обратную матрицу базиса В~1 в мультипликативном представле нии и базисное решение В~ 1Ъ. Может оказаться, что часть переменных не удовлетворяет ограничениям (1.2). В этом случае формируется столбец невязок и вводится в базис с большой отрицательной ценой.
Затем вводится и выполняется часть программы, осущест вляющая основные операции симплексного мультипликативного алгоритма. Выбирается минимальное Aj в рассматриваемой
части матрицы, |
|
|
min Aj = Ак |
|
|
с„В~lAj — Cj, |
если Xj = О |
|
Cj — саВ |
1Aj, |
если Xj = flj |
Пусть j = К |
номер, на котором достигается минимум Aj |
данной части и хк = 0 (хк = fik).
125
Для выбора вектора выводимого из базиса ищется
в = min-l пи
{ |
|
aik > 0 |
aikik< О |
(aik < 0) |
(aik > 0) |
Jx — множество номеров базисных столбцов. Если в = fi, то базис не изменяется, изменяется лишь решение.
Преобразование решения производится по формулам
Если отрицательных Aj в рассматриваемой части исходной матрицы нет, то вызывается следующая часть матрицы и т. д., пока не исследуем все части матрицы. Если ни в одной из частей матрицы отрицательных Дj нет, то в оперативную память вызы вается та часть программы, которая осуществляет процедуру «повторения».
«Повторение» необходимо для избавления от возможного накопления ошибок.
При повторном обнаружении ситуации: все Д; 3> 0 — решение считается найденным. Тогда в оперативную память вызывается часть программы, производящая выдачу результатов. Печатается оптимальное решение, значение целевой функции, число итера ций, объективно обусловленные оценки, пределы изменения коэффициентов функционала, в которых оптимальное решение не меняется, пределы изменения правых частей ограничений (1,1), в которых объективно обусловленные оценки остаются неизмен ными. Печатается также результат подстановки решения в систе му ограничений (1,1), равный
тп
£ |
hi— £ |
аих > |
I = 1 |
; - |
1 |
Допустимый объем решаемых задач т < 127, п s$ 1000.
126
Е. В. Кузнецова, В. Г. Сырцов
ПРОГРАММА «СИМПЛЕКС-32»
Для решения задач линейного программирования больших размеров составлена программа, реализующая модифицирован ный симплекс-метод с мультипликативным представлением об ратной матрицы на ЭВМ «Минск-32» с использованием магнит ных лент.
Размеры канонической матрицы ограничений практически не имеют. Матрица ограничений и элементарные матрицы под готавливаются и обрабатываются в «безнулевом», «уплотненном» виде, т. е. только ненулевые элементы с координатами по строке, причем, координата совмещена с мантиссой.
Предусмотрена возможность повторения счета с любой пор ции итераций.
Предусмотрен сброс итераций, который состоит в том, что через некоторое число итераций счет повторяется, но ввод пере менной в базис определяется ее наличием в последнем перед сбросом плане.
Ведется анализ: если вектор вводился, то по возможности он в базис не вводится.
Программа «Симплекс-32» снабжена комплексом обслужи вающих программ:
—подготовка канонической матрицы ограничений на магнит ной ленте;
—вывод на печать промежуточных, опорных и оптимальных планов в упорядоченном виде;
—дублирование магнитных лент.
Я. Г. Новрузбеков, Н. С. Матвеева
ПРОГРАММЫ ДЛЯ ОТЫСКАНИЯ ЛОКАЛЬНОГО МИНИМУМА ФУНКЦИЙ МНОГИХ ПЕРЕМЕННЫХ НА ОСНОВЕ МЕТОДОВ РОЗЕНБРОКА, СОПРЯЖЕННЫХ ГРАДИЕНТОВ И ПОКООРДИНАТНОГО СПУСКА. СРАВНЕНИЕ ЛОКАЛЬНЫХ МЕТОДОВ
Описание метода Розенброка
На минимизирующую функцию сильных ограничений не накладывается. Знания аналитического выражения самой функции
127
и ее производных не требуется достаточно знать значение функции в любой точке. Поиск минимума происходит по ортогональным изменяющимся направлениям. Начальной системой ортогональ ных направлений S?, 5 °,.. . S ° являются координатные оси. Движение к минимуму производится по каждому из направлений
S k ( k = 1,л):
х п+1= X'1-{•• ik • Sk
Сначала производится шаг произвольной длины i k. Шаг счи тается удачным, если,
/(* " +!) < /(*")
в противном случае шаг неудачный, В случае удачи длина шага увеличивается в а раз. В случае неудачи делается отход на вели чину —fi, причем движение осуществляется по направлению (— Sk). Если по каждому из ортогональных направлений S k будет сделано, по крайней мере, по одному успешному и неуспешному шагу, то производится смена ортогональных направлений.
Новые направления определятся следующим образом. При движении по каждому из направлений S k запоминается алгебра ическая сумма всех успешных шагов d k
Определяется следующая |
система векторов |
||||
A t |
= d |
X |
+ |
d 2S°2 + |
. . . . + d X |
Л2 = |
|
|
d2S2 + |
. . . . 4- d X |
|
A„ |
= |
|
|
|
d X |
Новые ортогональные направления S}, S 2, . . . ., S„ находятся |
|||||
так: |
|
|
|
|
|
|
Si = B J 1^1 |
|
|||
|
= |
A 2 |
|
( A 2 • Sj) • S} |
|
|
Si = |
B 2! \B2\ |
|
||
|
B„ = |
A n— |
£ (A„ ■Sj) • Sj |
||
|
S i = B J |
|
y -1 |
|
|
|
\Bn\ |
|
! 2-S
Характеристика программы
Программа составлена на языке АЛГАМС. Начальное зна чение шага 1к выбирается в пределах 0,05 -г 0,2.
Через каждые 20 шагов запоминается минимальное значение f(x ) и сравнивается с текущим минимумом, это позволяет уло вить момент зацикливания в окрестности точки локального ми нимума. Под «зацикливанием» понимаем возврат траектории поиска в исходную точку после некоторого количества смен ортогональных направлений. Зацикливание происходит в том случае, когда в окрестности минимума величина шага 1к оказы вается большой. В этом случае 1к уменьшается в 10 раз, и так до следующего зацикливания. Найденная точка считается точкой
минимума, |
если |
удовлетворяются |
условия: lk < |
и |
| F3 — F2| |
< е2, |
где F2 — минимальное значение |
/(*)> полу |
|
ченное за |
предыдущие 20 шагов, |
F3 — минимальное значение |
f(x ) за последующие 20 шагов.
Вычисление значения функции входит в программу как про цедура-функция.
Описание метода сопряженных градиентов
Поиск минимума f(x), где х е Е„, производится по меняю щимся ортогональным направлениям. Для того, чтобы построить новое направление, необходимо знать градиент функции в пре дыдущем шаге поиска. Новые сопряженные направления опре деляются по формулам:
S( + i = — di+i + fii$i
(gj+i> gj+i) i = 0, 1, 2 .. . n— i,
(9t, 9i)
(S0 = — go, go = 9rad f (x0)). Следующее приближение находим так
JC"+1 = x"+ djs„
При этом необходимо выполнение
/(* "+1) < Я**).
129