НОВОСТИ   БИБЛИОТЕКА   ЮМОР   КАРТА САЙТА   ССЫЛКИ   О САЙТЕ  




предыдущая главасодержаниеследующая глава

Составление программ машинной обработки геологических данных. Алгоритмические языки

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

Работу программы можно рассматривать как переработку исходных данных ("входной информации") в данные ответа ("выходную информацию"). Структуру программ удобно иллюстрировать с помощью блок-схем, указывающих последовательность выполнения различных частей ("блоков") программы. Примеры блок-схем некоторых программ, используемых при решении геолого-геофизических задач, приведены ниже.

Различные геологоразведочные организации уже разработали много программ для ЭЦВМ различных марок "Урал-2", "Минск-22", "БЭСМ-2" и др.), реализующих те или иные звенья обработки геолого-геофизической информации, и обмениваются этими программами.

В настоящее время создано большое число руководств по программированию как на некоторые условные машины, так и на конкретные марки ЭЦВМ [16, 23 и др.]. По-видимому, наиболее удобен для специалистов геологической службы, желающих детально ознакомиться с основами программирования, учебник Е. А. Жоголева и Н. П. Трифонова [23].

Овладение программированием на конкретные машины позволяет геологу оперативно решать разнообразные задачи, связанные с применением математических методов и с реализацией громоздких звеньев обработки. В то же время далеко не всегда от специалиста геологической службы требуется знание программирования на конкретные ЭЦВМ. Составление программ в кодах машины является весьма кропотливым и трудоемким делом. Различные машины имеют разные системы команд, так что программирование для каждой новой марки необходимо осваивать заново. Программы, составленные для одной марки ЭЦВМ, негодны для других. Очень часто составление программ начинается, когда еще неизвестно, на машине какой марки она будет реализована. Все это приводит к необходимости разработки методов программирования, не связанных с системой команд конкретной ЭЦВМ.

В последнее время все большее значение приобретает методика поэтапного программирования, суть которой заключается в следующем.

  1. Составляется программа не в кодах машины, а с помощью специальных символов в соответствии со строго определенной формой записи, т. е. на некотором искусственном языке. Такие искусственные языки, поскольку они созданы для описания алгоритмов (программ), называются алгоритмическими. Программа, записанная на алгоритмическом языке, не зависит от систем команд конкретной машины и может быть реализована на любой машине некоторого класса ЭЦВМ.
  2. Алгоритмический текст преобразуется в программу в кодах ЭЦВМ. Это может быть выполнено как вручную, так и непосредственно на вычислительной машине с помощью специальной "программирующей программы" ("транслятора").

Такой двухэтапный метод программирования имеет определенные преимущества даже и при отсутствии трансляторов. Алгоритмический язык, овладение которым существенно легче, чем программированием на конкретные ЭЦВМ, оказывается связующим звеном между специалистом геологической службы и математиками-программистами.

Составление алгоритмического текста занимает сравнительно немного времени - во многих случаях несколько часов и даже (для несложных программ) несколько минут. Алгоритмический текст без особого труда может быть переведен в коды ЭЦВМ программистом, даже если последний совсем не знаком со спецификой задач геологической разведки.

Особенно высока эффективность двухэтапного программирования при наличии хорошо работающих трансляторов - перевод алгоритмического текста в коды ЭЦВМ занимает несколько минут.

Предельно оперативным процесс программирования на алгоритмическом языке становится в случае, когда разработана система "подалгоритмов" (алгоритмов, описывающих отдельные звенья обработки информации и входящих в качестве составных частей в более сложные алгоритмы)1. Путем композиции таких подалгоритмов оказывается возможным быстро составить сложную программу, причем текст, соответствующий программе из десятков тысяч команд, может уместиться на одном тетрадном листе. Это позволяет "разбавлять" алгоритмические тексты избыточной информацией с тем, чтобы приблизить алгоритмический текст к обычному языку геолога. Записи на таком языке могут иметь, например, следующий вид [40]: "По данным геофизических исследований скв. 217, 315, 472, 538 Зурбаганской площади выделить пласты-коллекторы и оценить их пористость и нефтенасыщенность".

1 (Разработка систем подалгоритмов (подпрограмм) называется "предпрограммированием".)

Овладение языками такого типа геологу будет особенно просто. Тогда цепь, связывающая геолога с ЭЦВМ и в настоящее время весьма длинная (геолог - буферный специалист, знакомый с проблемами геологических исследований и вычислительной техникой, - программист-ЭЦВМ) сократится до минимума.

Насколько более оперативным становится программирование при использовании алгоритмических языков, видно из табл. 1.

Таблица 1
Таблица 1

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

В настоящее время работа по созданию алгоритмов различных звеньев и этапов обработки геологической и геофизической информации уже начата. Так, УкрНИГРИ опубликованы [36, 57] серии алгоритмов, относящихся к обработке промыслово-геофизической информации; предполагается издание алгоритмов обработки поисково-разведочной информации и в ряде других организаций.

В процессе алгоритмизации обработки геолого-геофизических данных выяснилась новая и очень важная функция алгоритмических языков - последние являются средством документации обработки данных. В связи, с тем, что словесное описание методик обработки геологических материалов во многих случаях малоэффективно, достаточно подробно процесс обработки получаемых данных, как правило, не описывают (при этом в той или иной мере аппелируют к интуиции, опыту или догадке интерпретатора), что и является основным источником субъективных просчетов или разногласий при интерпретации. Используя алгоритмические языки, мы в состоянии достаточно четко, подробно и в то же время компактно описать различные звенья и этапы обработки информации. Имеется еще одна важная область использования алгоритмических текстов - анализ алгоритмов с целью выбора марки ЭЦВМ, на которой возможна их реализация (или же выбор параметров ЭЦВМ, если ни одна из машин имеющихся марок не является достаточно эффективной для обработки данного класса алгоритмов).

Следует заметить, что международный алгоритмический язык АЛГОЛ-60 - основной язык, на котором производится (или предполагается производить) обмен алгоритмами, предназначен главным образом для решения задач вычислительного характера и малоэффективен во многих случаях, важных с точки зрения автоматизации обработки геолого-геофизической информации. Так, уже при составлении простейшего алгоритма (алгоритмы 1-2) мы столкнулись с целесообразностью расширения понятий алгоритмического языка. В настоящее время в УкрНИГРИ совместно с Институтом кибернетики АН УССР разрабатывается язык, максимально эффективный для записи алгоритмов обработки геологической информации [40, 41].

О важности разработки формальных, особенно алгоритмических, языков хорошо сказал акад. В. М. Глушков: "Если обратиться к истории, то нетрудно вспомнить, что каких-нибудь четыре столетия назад формульного языка математики, столь привычного для нас сегодня, не существовало. Возможно, тогда работы, создавшие эту символику, не представлялись современникам столь значительными, как они кажутся нам сейчас: речь шла "всего лишь" о форме записи, а не о каких-либо новых результатах. Но нам совершенно ясно, что не будь этих работ, не было бы и бурного развития математического анализа, давшего естествоиспытателям и инженерам мощный аппарат для решения многих важнейших проблем науки и техники"1.

1 (В. М. Глушков. Алгоритмы - язык науки. "Неделя" (приложение), № 21, 1965.)

предыдущая главасодержаниеследующая глава








© Злыгостев А.С., 2001-2019
При использовании материалов сайта активная ссылка обязательна:
http://informaticslib.ru/ 'Библиотека по информатике'
Рейтинг@Mail.ru
Поможем с курсовой, контрольной, дипломной
1500+ квалифицированных специалистов готовы вам помочь