double arrow

Абстрактная природа алгоритма

Важно подчеркнуть различие между алгоритмом и его представлением, которое аналогично различию между рассказом и книгой. Рассказ по своей природе абстрактен, книга же является его физическим представлением. Если книга переводится на другой язык или переиздается в другом формате, меняется просто представление рассказа, а сам рассказ остается прежним.

Точно так же алгоритм является абстракцией, определяемой его представлениями. Отдельный алгоритм может иметь множество различных представлений. Например, алгоритм преобразования температуры по шкале Цельсия (С) в температуру по шкале Фаренгейта (F) обычно имеет вид алгебраической формулы F = (9/5) С + 32. Но его также можно представить в виде команды: «умножить температуру по шкале Цельсия на 9/-, и прибавить к результату умножения 32» или даже в виде электронной схемы. В каждом случае алгоритм остается прежним, меняется его представление.

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

Наконец, говоря об алгоритмах и их представлении, следует прояснить различие между двумя другими взаимосвязанными понятиями: программой и процессом. Программа является представлением алгоритма. Специалисты в области вычислительной техники используют термин «программа» по отношению к формальному представлению алгоритма, разработанному для прикладной вычислительной системы. В главе 3 мы определили процесс как действия по выполнению программы. Однако обратите внимание на то, что выполнить программу означает выполнить алгоритм, представленный этой программой. Поэтому процесс также можно определить как действия по выполнению алгоритма. Таким образом, программы, алгоритмы и процессы являются разными, хотя и взаимосвязанными сущностями. Программа является представлением алгоритма, а процесс является выполнением алгоритма.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: