|
Отправлено: 02.09.09 14:13. Заголовок: Как я пришел к оптимизационной инверсии (в работе)
Довольно забавно оно сложилось 1) ДИПЛОМ На дипломе я (поскольку претендовал на искушонность в области изобретении петрофизических взаимосвязей) , а руководили им Б.Ю.Вендельштейн и М.Г.Латышева я сидя в Саратове изобретал как же работать со сложными петрофизическими связями При полном непонимании программирования не знании численных методов я придумал что-то типа покоординатного спуска (первое что приходит в голову каждому) Только вот спускался я в начале по глинистости, потом по пористости, потом по насыщнности Потом хитро каждую переменную осреднял с весом (тут были и вовсе странные сейчас задумки - каждый метод брался с учетом его ошибок и частных производных по искомому свойству) и повторял На дипломе я это по собственной лени и недомыслию даже просчитать не попытался 2) Посли прихода в ЦГЭ таки пришлось думать о реализации этой задумки А делать это все пришлось в кодах М-20 (трехадресная машина реализация которой - БЭСМ-4 была в у ЦГЭ на Фрунзенской набережной) Книга Ляшенко (а тем более ее фотокопия) впяд-ли могли считаться шедевром педагогической мысли Поэтому алгоритм реально записала в кодах (с моим участием как алгоритмиста) И.М.Чуринова (программировавшая по методу А.С.Кронрода - модульно с собиралками по 16 команде - интересно много ли народу еще про эту команду передачи управления с возвратом помнит) С местом на Фрунзенской был напряг (по ночам считать не давали, а днем иногда по 5-ть минут - порой и колоду то ввести не успеешь) Потому откомандировали меня на ВДНХ где стояла М-222 Нашел я в коде И.М. пару технических ошибок, согласовал с ней и постепенно пустился в вольное плавание в области программирования А вышла ошибка уже проблемная При некорректных начальных приближениях или измерения текущие оценки глинистости, пористости и водонасыщенности стали выходить в отрицательную область и уравнения стали давать АВОСТы (аварийные остановки управления) 3) Проваландался я с затеей вводить ограничения до отпуска, а в отпуск в рюкзаке свойх книг взял Уайльда "Методы поиска экстремума" и "Вычислительные методы в химической физике" (со статьей Л.С.Полака) Книжки хорошие, но для дилетанта в оптимизации губительные Тем не менее главное я понял Не нужно делать итерации - надо минимизировать невязки Понял и по наивности и нахальству решил изобрести собственный алгоритм (только что нахальства не хватило назвать его собственным методом - видимо скромнее некоторых последующих геофизиков был уже тогда) ;-) Алгоритм я важно назвал иерархическим сканированием (по сути ползущий поиск с детальным сканированием текущей области по всем переменным) И все бы хорошо, но считал он (зараза) долго И тут я стал извращаться Извращения были двух типов а) ускорения совершенствованием кода - я даже переписал стандартную программу возведения числа в степень в ИС2 - ускорившись на 30% за счит избавления от априорно ненужных проверок и присвоений) А надо сказать (в скобках), обращение в ИС2 носило сакраментальный характер 016 Я+1 7501 7610 052 X Y б) ускорения за счкет ДЕШЕВОГО ШАГА (при покоординатном спуске регулярно часть переменных не варьировалась и этим можно было воспользоваться) В итоге программа ПЕТРОФИЗИКА (Ц2-15) таки стала считать заметно быстрее (до минуиы на точку- пласт) и 15-20 на 200 метров разреза Но меня это перестало удовлетворять из эстетических соображений С подачи А.П.Лавута я попробовал взять стандартную программу в ИС-2 СП-720 СП-720 реализовывала кучу поисковых методов (собственно она была лишь собиралкой) Но константы в ней задавали оптимисты Программа преждевременно заканчивал поиск 3) В следующий отпуск я ехал на поезде возбужденно листая книгу Розенброка и Стори "Вычислительные методы для инженеров-химиков" Прекрасная, вдохновляющая книга Приехав я прочел и первую книгу Химмельблау (также весьма тонизирующую) После этого методы Нельдера-Мида и Розенброка реализовал на АЛГОЛЕ ТА-1М и первый из них и в машинных кодах
|