Архивы: по дате | по разделам | по авторам

Программирование и сила Кориолиса,<br>или Необычайное приключение файла в Internet

Архив
автор : Валерий Очков   31.03.1997

В свое время автору пришлось писать на языке Mathcad программу поиска минимума многомерной функции. Она здесь не приводится, но любопытные могут увидеть ее на стр. 134 в [2] или скачать с ftp://twt.mpei.ac.ru/ochkov/mcad.book (программа 6_15.mcd).

Программа довольно простая - у автора больше времени ушло на поиск ей названия, чем на ее написание. Программа названа "Два шага" - "Two Step". Есть такой бальный танец. Один персонаж фильма "Свадьба в Малиновке" называл его "В ту степь". Программа при поиске минимума делает два шага от очередной точки приближения ("от печки", если вспомнить танец) и переходит туда, где значение оптимизируемой функции минимально. Эти два шага делаются по всем координатам (их N) в положительном (+D) и в отрицательном (-D) направлениях. По мере приближения к минимуму шаги укорачиваются. "Танец" повторяется до тех пор, пока шаг не станет короче заданного значения погрешности (D<TOL).

В программе интересен не сам алгоритм, а след, оставляемый программой на плоскости X-Y (в "поле") при оптимизации функции двух переменных (см. рис. 1 и 2).

Рис. 1. Начальные шаги приближения к минимуму.

Рис. 2. Конечные шаги приближения к минимуму.

Форма следа программы "Тустеп" позволила дать ей и другие названия. У многих народов считается, что чем больше у человека имен, тем больше у него небесных покровителей. Это, наверно, можно отнести и к программам.

Если наполнить ванну водой, бросить в нее, к примеру, перышко и выдернуть пробку, то перышко сначала будет более-менее спокойно двигаться к дырке, а потом закрутится в водовороте. Совсем как на наших рисунках: при начальных шагах приближения (рис. 1) промежуточные точки спокойно дрейфуют к минимуму, а затем закручиваются в вихре (рис. 2), который позволяет называть данный метод оптимизации не только "Тустеп", но и "Вальс". Но если быть совсем точным, то его следует именовать также и методом наискорейшего спуска воды. И вот почему.

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

Автор переслал по Internet файл с программой оптимизации коллеге в Австралию (чем черт не шутит) и к полному своему удивлению, переходящему в удовлетворение, узнал, что след поиска минимума в южном полушарии закручивается против часовой стрелки. "Австралийский след" оптимизации из-за экономии места здесь не приводится. Но его можно увидеть, посмотрев на зеркальное отражение рис. 1 и 2.

Причина иной закрутки следа поиска минимума южнее экватора, конечно, не в воде, хотя сила Кориолиса здесь присутствует: при пересылке файла в Австралию в текст программы вкралось маленькое изменение. Вместо строки for i О 1...N (сделать шрифт как у программы)появилась другая - for i О N...1 (тоже). На поиск минимума это не повлияло (перебор координат оптимизируемой функции ведется всего лишь с другого конца), но тем не менее след стал закручиваться по-иному. А виной тому все та же сила Кориолиса, заставляющая жесткие диски серверов и маршрутизаторов на юге вращаться несколько иначе, чем на севере. Отсюда и незначительные сбои при пересечении файлами экватора. Их выловить довольно трудно, так как при контрольной обратной пересылке файла ошибка исправляется по принципу "минус на минус дает плюс".Литература:

  1. Б. М. Яворский, А. А. Детлаф "Справочник по физике для инженеров и студентов вузов". М.: "Наука", 1977.
  2. В. Очков "Mathcad PLUS 6.0 для студентов и инженеров". М.: "КомпьютерПресс", 1996.
  3. Отрывной календарь на 1997 год для программистов и пользователей. ТОО "Тосна", 1996.

Примечание редакции:

В настоящее время разработаны драйверы, корректирующие прохождение файлов с севера на юг и обратно. Их можно считать по ftp://coriolis.com/coriolis.

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.