суббота, 12 ноября 2016 г.

Книга о ЦНИИАСУГА: воспоминания Евгения Хойхина

Е. Хойхин: Это были мои лучшие годы 
            
В жизни мне повезло трижды: когда родился, когда женился и когда работал в отделе составления расписания движения самолетов.

Начало работы
Я пришел в НВЦ ГА сразу после окончания РКИИГА в 1969 году и проработал в одном отделе вплоть до его закрытия. Уже на следующий день вышел работать в ночную смену. Занимался я корректировкой расписания на «Минск-22»: днем в распечатках, в которых фигурировали десятки тысяч цифр, искал начало рейсов, подлежащих корректировке, и делал пометки, а ночью по этим пометкам находил нужные рейсы в памяти ЭВМ и выполнял коррекции. Сегодня такая работа и в страшном сне присниться не может.
Все изменилось буквально в один день. Но сначала расскажу, что этому предшествовало. Незадолго до моего прихода в отделе отпраздновали огромный успех. Благодаря правильной политике прежнего начальника отдела Кордонского Х.Б. удалось доказать, что наше расписание более безопасное, чем действующее расписание, которое вручную составлял Шаркевич И.Н., старейший работник министерства ГА. Последний имел 30 летний опыт работы и пользовался большим авторитетом в министерстве. Будучи единственным составителем расписания, Шаркевич И.Н очень ревниво относился к своей работе. Можно представить, как он реагировал, когда сотрудники периферийного вычислительного центра предлагали ему свой проект расписания. Профессионал высочайшего класса, он легко находил ошибки, и тогда весь труд отдела отправлялся в урну. Но наступил день, когда в проекте ошибок не оказалось. Более того, уже самому Шаркевичу И.Н. было указано на его ошибки в расписании. Теперь оставалось только ждать решения министерства. К этому отдел шел целых четыре года!
В 1970 году, после смерти Шаркевича И.Н., министерство возложило составление расписания движения самолетов на нас, как единственных, кто мог тогда реально решить эту задачу. С этого момента жизнь в нашем центре существенно изменилась: поступила новая, значительно более мощная, электронно-вычислительная машина АСВТ, в отдел пришли новые люди. Вскоре наш научно-вычислительный центр был преобразован в ЦНИИ АСУ ГА.
Первое промышленное расписание было составлено на «Минск-22» с использованием «старого» программного обеспечения. Одновременно началась работа по созданию АСУ «Расписание». Я стал ответственным за комплекс задач «Синхронизация рейсов».

Мне досталась фантастическая задача
Суть синхронизации рейсов заключалась в назначении рейсам времени выполнения с учетом требований безопасности полетов в пунктах синхронизации: аэропортах, секторах УВД и точках пересения воздушных трасс. В расписании присутствовало до 5000 рейсов и более 200 пунктов синхронизации. Предварительно рейсы были упорядочены таким образом, что для их выполнения требовалось опеределенное количество самолетов, имеющихся в распоряжении каждой авиакомпании (в то время управления ГА). Это свойство необходимо было сохранить и после синхронизации.
Для меня задача синхронизации рейсов представляла большую увлекательную игру: сначала априорно определялись минимально возможные показатели загрузки пунктов синхронизации, потом осуществлялась попытка их достижения. Когда прогноз совпадал с полученными результатами, это доставляло, помимо огромной радости, и уверенность в правильности выбора решения.
Неопределенность в задаче была обусловлена наличием у каждого рейса ограниченного допуска на сдвиг относительно предварительно заявленного времени его выполнения. Однако величина допуска могла изменяться в зависимости от того, какое время было назначено рейсам, ранее прошедшим синхронизацию. Поэтому перед синхронизацией очередного рейса уточнялась величина его возможного допуска на сдвиг. Эту задачу решал комплекс программ, написанный моим коллегой Костюченко А.Н.
Изменение величины допуска создавало помеху в работе алгоритмов, основанных на строгой математике. Чтобы ослабить влияние помех, были введены эвристические правила, которые определяли порядок поступления рейсов на синхронизацию и выбор наилучшего варианта выполнения рейса из множества, которое определяла математика.
В целом алгоритм решения задачи копировал поведение специалиста. Периодически процесс синхронизации приостанавливался для выполнения анализа загрузки пунктов синхронизации и оценки подвижности оставшихся рейсов. По результатам анализа ЭВМ принимала решение, требуется ли изменение тактики проведения синхронизации. В алгоритме была предусмотрена и возможность пересмотра ранее принятых решений.
Счет продолжался от 8 до 10 часов. Мой предшественник, Веневцев В.М., приходил на «Минск-22» с раскладушкой. «Старые» программисты помнят, как в нужный момент «Минск-22» могла разбудить спящего. Раскладушкой мне воспользоваться не приходилось: вместо звуков, моя ЭВМ периодически выдавала информацию к размышлению.
Существовали и технические проблемы. Главная из них состояла в том, что катастрофически не хватало памяти ЭВМ и, как результат, выходили из строя диски и сами дисковводы из-за бешенного к ним обращения. В нашем распоряжении были только 2048 кб памяти. По сегодняшним меркам – это ничто. Тем не менее, проблема была решена путем страничной организации памяти ЭВМ. Как оказалось позже, наше решение во многом совпало с известным paging-ом в системе IBM 360.
Работая на нашей технике, мы привыкли выкручиваться, экономить каждый байт, а порою – и бит. Вспоминается один случай. Я делал доклад нашим гостям из авиакомпании British Airways: рассказал и показал, как работает программа синхронизации рейсов. По окончании доклада один из гостей поинтересовался техническими данными нашей ЕС-1055. После моего ответа последовал новый вопрос: «И это все работает?». Не знаю, поверил ли наш гость или ушел в полной уверенности, что его обманули.
За свою программистскую жизнь я написал большое количество программ, но горжусь только одной: синхронизацией рейсов. Ее трудно назвать программой, поскольку она состояла почти из 200 модулей. А сколько в ней было заложено математики и оригинальных решений! Такое забыть невозможно и сравнить не с чем.
С подобной задачей я столкнулся еще один раз. Это было в вычислительном центре автомобильного концерна «Volkswagen», где синхронизация (движение деталей, узлов и машин) выполнялась при составлении недельных планов работы заводов концерна. Программа уже работала. Я занимался написанием новых блоков и корректировкой старых. Программа была сложной, но, в отличии от моей, дополнительной математики не требовала. Все укладывалось в рамках известных методов решения задач календартного планирования. Написанная на очень высоком профессиональном уровне, программа работала на современной ЭВМ . Меня поразил объем обрабатываемой информации: он почти на два порядка превышал наш. Если наша задача решалась только два раза в году, то здесь – еженедельно. Для решения требовались те же 8 часов. Остается только сожалеть, что у нас не было такой мощной ЭВМ.

Моя работа с Кордонским Х.Б.
Кордонский Хаим Борисович (1919 - 1999), профессор, доктор технических наук, заслуженный деятель науки Латвийской ССР, представитель ленинградской математической школы академика Линника Ю.В., известный специалист по использованию теории вероятностей и статистики в инженерном деле, с 1965 года работал в НВЦ ГА, после перехода на кафедру РКИИГА оставался научным консультатом нашего отдела.

Из всех задач, решаемых в отделе, Хаим Борисович отдавал предпочтение моей. Внешне это было незаметно, но я чувтствовал по продолжительности и частоте общения со мной. Хаим Борисович курировал Веневцева В.М., а когда пришло мое время, то «взялся » и за меня. Поначалу он не вмешивался в мою работу, соглашался практически со всем, что я планировал сделать, но внимательно следил за результатами. Когда мой комплекс задач реально заработал на промышленном уровне, я отправился к Хаиму Борисовичу записываться в соискатели. Тогда я полагал, что диссертация у меня в кармане и оставалось только все изложить на бумаге. Но я ошибся. Слова, которые он мне сказал, я запомнил на всю жизнь: «Евгений, вы – отличный инженер. Вы взяли у науки все что хотели, но сами Вы, какой вклад в науку сделали?» В этих словах есть и уважение, и строгость, и принципиальность и даже доброта. Соискателем я, разумеется, стал, но от Кордонского Х.Б. я ушел с идеей, над реализацией которой мы потом вместе работали в течение несколько лет.    
Идея Хаима Борисовича заключалась в использовании свойств энтропии при решении комбинаторных задач. Впервые понятие энтропии было введено в термодинамике. Потом ее стали использовать в теории вероятностей и статистике. Для комбинаторных задач - это было совершенно новое направление. Работу начали с построения математической базы. Некоторое время ушло на создание теорем, доказывающих возможность и эффективность примения энтропии. Затем от теории перешли к моей задаче. Мы получили очень хорошие результаты, но мне хотелось добраться до оптимума. Однако поиск оптимального решения для моей задачи оказался равносильным поиску темной кошки в темной комнате, когда ее там нет. Я стал подумывать о том, как изменить задачу. Решение пришло само собой: поменять матрицу, которая представляла пункт синхронизации, на шахматную доску, рейсы – на ферзи, а условие – ферзи не должны бить друг друга. Этой мыслью я поделился с учителем, а он, в ответ, принес мне книгу Виленкина Н.Я. «Популярная комбинаторика». Открыл ее на странице, где лежала закладка, а там задача Макса Беццеля о расстановке ферзей на шахматном поле. Классика, о которой я тогда и не подозревал! Хотя все решения этой задачи были известны, решение ее нашим методом стало стратегически важным. Мы общались ежедневно. Было заметно, как он переживает. Но все хорошо закончилось, и я начал готовить новую программу: прочитал, что решение задачи расстановки коней на поле 100 х 100 пока не найдено. Но Хаим Борисович меня тогда впервые остановил: «Пусть другие пробуют, а нам нужно писать статью». Статья была напечатана в журнале «Кибернетика» в 1984 году.
Относительно «других» Хаим Борисович как в воду глядел. В 2011году, в Берлине, я познакомился с молодым человеком. Мой случайный знакомый - докторант Бернского университета. Он и его коллеги из Берлинского технического университета занимались проблемой планирования развития регионов. Наше общение продолжилось, когда оказалось, что при решении они используют энтропию. Мне показали копию статьи на английском языке, на которую они опирались в своей работе. Это был перевод нашей статьи! Так спустя 27 лет идея Кордонского Х.Б. продолжала реализовываться в других научных областях.
Диссертацию я защитил в 1994 году. Хаим Борисович прислал мне из США отзыв, Эдуард Иванович Махарев и Юрий Михайлович Парамонов были моими рецензентами. Всем им огромное спасибо. 

ЭВМ была моим персональным компьютером
Если бы в институте вели статистику, чьи программы использовали больше всего машинного времени, то я был бы в числе лидеров. Я был настолько увлечен своей программой, что часто и в выходные дни просиживал за ЭВМ. Магические слова «безопасность полетов» открывали любые двери, даже в машинный зал: мне разрешалось присутствовать при работе моих программ. С машинистами и операторами у меня сразу установились прекрасные отношения на взаимовыгодной основе. Мне нужна была статистика работы новых алгоритмов, которых я испытывал на случайно сгенерированных матрицах, а машинистам и операторам – статистика использования машинного времени. Бывало по пятницам, ко мне приходили операторы с вопросом, есть ли у меня «что-нибудь» для них. Мое «что-нибудь» было бесконечно играющим, его всегда можно было остановить и в любой момент запустить заново без потери накопленной информации. Но самое главное – оно надежно работало. Только скачок напряжения в электросети, а это случалось около 7 часов утра, мог остановить мою программу. Но к этому времени машинисты и операторы уже просыпались, чтобы передать смену. Спасибо машинистам, ЭВМ работала как часы!
Мое частое общение с ЭВМ позволяло мне иногда использовать ее в своих личных интересах. Расскажу об одном эпизоде. В 1976 или 1977 году газета «Советская Молодежь» проводила первый конкурс «Реши, если силен ». Меня заинтересовали задачи первого тура, поскольку часть из них можно было сразу поставить и решить на ЭВМ, а остальным требовалась только правильная интерпретация. Таким образом, ЭВМ решила все задачи. На этом мое участие в конкурсе могло закончиться, если бы не одна задача. Она имела несколько решений, и мне казалось невозможным перечислить все решения без помощи ЭВМ. Я решил продолжить участие в надежде, что подобные задачи будут еще. И они были! Сколько было туров и задач – уже не помню. Самому пришлось решить только две задачи; остальные решила ЭВМ.
Поскольку таких «умных» как я больше не оказалось, мы втроем разделили первое место. Я не оговорился: настало время сознаться еще в одном «преступлении». Мне было чуть за 30, и я не считал себя молодежью. Но моя жена была еще комсомолкой. Поэтому в конкурсе я «косил» под свою жену. Глупо? – Разумеется. Когда в газете были напечатаны результаты, у меня на работе это прошло незаметно, а жена принимала поздравления.
Дальше было еще забавнее. Организатор конкурса предложил моей жене участвовать в комиссии, интересовался ее мнением относительно задач, планируемых в следующих конкурсах. Разумеется, она вежливо отказалась, объясняя отсутствием времени. Из его писем к ней стало ясно, что он работает в вычислительном центре Латвийского Государственного Университета, а моя жена работала экономистом в том же университете. Как они не встретились, известно только Богу, и только ему известно, как мне досталось от жены дома! Хорошо, что при регистрации нужно было указать только специальность!

Какие люди работали в нашем отделе!
Первому поколению расписанцев мы обязаны победой в конкуренции за право составлять расписание. Оно оставило нам большой объем научных трудов в виде статей и диссертаций. Мы не заканчивали курсов программирования. Нашими университетами были книги, по которым мы самостоятельно учились, и не соответствующая нашим задачам вычислительная техника, на которой нам приходилось демонстрировать чудеса изворотливости. Не случайно наше АСУ «Расписание» было отмечено в отчете Государственного Комитета по Науке и Технике СССР за 1978 год.
Эти люди составляли гордость нашего отдела.
Максим Михал Семенович. Мой первый начальник отдела. Автор теории составления графиков оборота самолетов. Обладал феноминальной памятью: мог наизусть перечислить последовательность рейсов в любом графике.
Веневцев Валерий Михайлович. Автор первой программы синхронизации рейсов и мой первый наставник. Его диссертацию я знал почти наизусть. Заядлый рыболов, он пристрастил меня к ловле спиннингом. Сколько километров вдоль берегов рек мы прошагали вместе!
Попов Георгий Лоресович. Талантливый программист, тестировал расписание, составленное Шаркевичем И.Н., и находил в нем ошибки.
Букачева Зоя Васильевна. Моя бессменная помощница. Ответственная и очень скромная. Ее программы всегда отличались надежностью: я не помню ни одного случая сбоя.
Цуманов Игорь Михайлович. Талантливый программист. Занимался оптимизацией маршрутов движения самолетов. В 60-ые годы он первый освоил задачу коммивояжора, усложнил ее, введя информацию о силе и направлении ветра.
Дачковский Василий Захарович. Отличный организатор. Прошел путь от научного сотрудника до заместителя начальника института. Он меня удивил в первый месяц прихода в отдел, когда составил справочник по переводу чисел из десятичной системы в восьмиричную и шестнадцатиричную. Многие тогда пользовались этим справочником.
Пустынский Валерий Леонидович. Руководитель сектора, в последние годы - начальник отдела. Умница, необыкновенно душевный человек. С ним было очень комфортно общаться и дружить.
Клюшкин Виктор Алексеевич. Летописец нашего отдела. Виктор обладал каллиграфическим почерком. Как ни кто другой, он мог коротко и четко изложить мысли на бумаге. Если каждый из нас хорошо знал лишь свое направление, то Виктор был в курсе всех.
Пономарев Виктор Викторович. Скромный, трудолюбивый, неконфликтный, он отвечал за автоматизированный набор расписания. Виктор работал в непростых условиях: писал программы в институте, а их отладку проводил в типографии. Тонкости типографского дела он освоил самостоятельно.
Костюченко Александр Николаевич. Талантливый программист, ответственный за комплекс задач «Ресурсы». Его отличительная черта – аккуратность: свои мысли он записывал на бумаге и складывал в папку. Когда возникала в них необходимость, он доставал их из папки обычно со словами: «У меня все ходы записаны!». Будучи человеком очень энергичным и хозяйственным, Александр был организатором всех выездов отдела на природу. Уха и шашлыки всегда приготавливались под его личным руководством. Кстати, и рыба ловилась тоже!
Клоков Виктор Алексеевич. Программист от Бога. Виктор один создал комплекс задач «Оперативная корректировка расписания». Это была первая и единственная система коллективного доступа, созданная в институте.
Руденок Марина Антоновна. Труженица, наравне с нами, мужчинами, выходила работать в ночную смену. Как человек очень ответственный и надежный, она пользовалась в отделе заслуженным уважением и любовью.
Случайные люди у нас в отделе не задерживались, потому что мы всегда работали напряженно и со всей отдачей. Нет возможности рассказать о всех моих коллегах. Многие из них представлены на фотографии ниже.
Наш отдел после получения переходящего Красного знамени
         

Мой опыт работы заграницей
Начиная с 1995 года я работаю по контракту заграницей: сначала - в США, потом - в Германии. Сразу хочу поделиться своим мнением: мы умеем лучше справляться с трудностями и мы более инициативны. В этом наше главное преимущество.
Расскажу о своем опыте работы в компании Galileo (Denver, Colorado, USA) . Встретили меня в отделе поначалу очень недружелюбно. Как выяснилось позже, меня навязали отделу из-за низкого уровня программирования у сотрудников. Морально меня тогда поддержали наши, цнииасуговцы, которые работали в этой компании: Виктор Тепо, Александр Костюченко и др.
Однажды я был свидетелем, как один контрактник из соседнего отдела, проводил собрание. Когда он говорил, все слушали его с огромным вниманием, буквально в рот заглядывали. И тогда я решил, что добьюсь такого же к себе отношения. Подходящего случая ждать долго не пришлось: срочно потребовалось откорректировать программу, которая работала с базой данных DB2. Никто в отделе с этой базой данных никогда не работал, в том числе и я. Мой шеф отправился на недельные курсы, а я решил сам разобраться в программе, хотя у меня была другая работа. Нашел литературу, прочитал все, что требовалось для исправления программы. Потом нашел ошибки в информации, которую поставлял другой отдел, и там договорился об их устранении. Когда шеф вернулся с курсов, программа уже работала. Американцы не поверили: программу тестировали как ни одну другую. Когда убедились, что она действительно работает, меня пригласили на кофе и в присутствии всего отдела поблагодарили. Поскольку весь отдел был на месте, я решил нанести моим американцам еще один удар: предложил пользоваться моей макрокомандой, которая распечатывала память ЭВМ в указанном объеме. Дело в том, что в их операционной системе отсутствовала макрокоманда PDUMP. Кто программировал на языке Assembler знает, как необходима эта макрокоманда. Правда была другая - DUMP, очень неудобная: она распечатывала память постранично, т.е. по 4096 байтов. Чтобы найти в ней нужную информацию, требовалось терпение и аккуратность. Моя макрокоманда стоила мне одного вечера и полчаса отладки.
Отношение ко мне резко изменилось к лучшему. Теперь и шеф не раз приходил консультироваться. Это была настоящая победа! Было бы место, я мог бы рассказать, как писал программы, за которые американцы не брались, или как писал многостраничные отчеты без программы-переводчика и не владея английским на должном уровне. Откровенно говоря, мои «подвиги» и выеденного яйца не стоили. Думаю, американцы это тоже понимали, но они ценили новые идеи и инициативу.
Ситуация, которая сложилась в Galileo, была скорее исключением. Во всех других компаниях ко мне сразу относились очень дружелюбно и готовы были оказать любую помощь. Но расслабляться нельзя было нигде.
С переходом на персональные компьютеры я обнаружил, что здесь возможности для творчества просто не имеют границ. Многие компании строют свои «доморощенные» системы, в которых часто имеет место большой объем ручной работы. Чтобы облегчить себе работу, я создавал персональную базу данных, собирая информацию из архива компании; потом оказывалось, что моя база данных нужна всем, и она становилась коллективной. Всегда такая инициатива приносила мне уважение коллег.
Мне уже 70, и я продолжаю программировать благодаря опыту, приобретенному в институте. Спасибо тебе, ЦНИИ АСУ ГА!

Вместо заключения
Однажды в интернете я обнаружил предложение Европейского Парламента по совершенствованию системы планирования воздушного движения в аэропортах (Proposal for a REGULATION OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL on common rules for the allocation of slots at European Union airports. Brussels, 2011). В этом документе было сказано, что в перспективе возможно создание единого европейского координатора, ответственного за распределение слотов (времени) во всех аэропортах Европейского Союза. Создание единого координатора – это реальный способ устранения всех существующих сегодня серьезных недостатков в организации согласования расписаний авиакомпаний. В этом же документе были также определены и требования к координатору, а именно: политическая и экономическая независимость. Если поразмыслить, то Латвия – идеальное место для такого института: член Европейского Союза, небольшое государство с небольшим объемом воздушных перевозок.
В СССР таким единым координатором был ЦНИИ АСУ ГА, а основным инструментом координации – программы синхронизация рейсов и корректировка расписания. Мы затратили около 20 лет на создание того, что сегодня только планируют делать в Европе. Так почему бы не возродиться нашему институту? - Для начала нужно, чтобы о нас вспомнили. Может быть эта книга нам поможет?

Комментировать в Facebook

2 комментария:

Анонимный комментирует...

Здравствуйте, Субхи!
Спасибо за присланные воспоминания Евгения Хойхина.
Исключительно интересно написано! Я получила большое удовольствие, прочитав этот материал .  Наши люди способны
рождать гениальные идеи, но  мы не умеем защищать эти идеи перед мировым сообществом. Поэтому многие открытия  носят имя не  тех ,кто это сделал, а вторичных личностей, как например пояса Ван Алена, которые открыл Сергей Вернов. Вероятно виновато наше воспитание, которое учит концентрировать внимание на деле, а не  на  закреплении  открытия за собой. А может быть это и не важно - кто открыл. Главное радость , чтоэто сделал ты  и сознание того, что ты можешь сделать не одно открытие.
Молодец  Евгений Хойхин! Хорошо написал! А вот второго  ЦНИИАСУГА нам не видать.
С уважением  -  Людмила Савельевна Картунова (Добродушина)

Анонимный комментирует...

Субхи,
спасибо огромное за то, что присылаете мне воспоминания АСУГовцев! Всегда с удовольствием читаю! Сегодня даже всплакнула над стаьей дяди Жени Хойхина, она еще и с фотографией! Знакомые фамилии, знакомые лица... Все молодые, симпатичные и такие увлеченные своей работой! Какое нужное и важное дело-создать книгу об этом уникальном институте, составленную из воспоминаний ее сотрудников! Я горжусь, что и мой папа внес свою небольшую лепту в огромный пласт совместной работы, которой и сейчас можно гордиться! Здоровья на долгие-долгие годы всем АСУГовцам!

Вика (Виктория Пономарева)