Способы разработки алгоритмов
Существует весьма большое количество всевозможных приемов и методов разработки алгоритмов. Однако среди имеющегося разнообразия этих методов можно выделить небольшой набор основных, в том смысле, что методы из такого набора часто применяются и лежат в основе многих процедур и алгоритмов. Можно утверждать, что знание приводимых ниже методов необходимо не только для программистов, но и для тех пользователей, которые используют средства автоматизации работы в том или ином вычислительном пакете.
Метод частных целей. Этот метод заключается в сведении сложной задачи к последовательности более простых задач. Данная рекомендация вполне естественна и разумна, и мы очень часто используем этот метод при решении тех или иных задач. Однако в конкретной сложной задаче часто очень трудно указать способ ее разбиения на набор более простых задач. Здесь большое значение имеют опыт и искусство специалиста.
Метод подъема. Этот метод, как и предыдущий, можно отнести к одному из общих рецептов разработки алгоритмов. Его суть заключается в следующей процедуре. Алгоритм начинается с принятия начального предположения или построения начального решения задачи. Затем начинается (насколько возможно) быстрое движение “вверх” от начального уровня по направлению к лучшим решениям. Когда алгоритм достигает точки, из которой невозможно двигаться вверх, он останавливается.
Программирование с отходом назад. Основой программ искусственного интеллекта, независимо от того, к каким задачам он прилагается – программированию игр, распознаванию образов и т.п. – является программирование перебора вариантов. Программирование перебора вариантов – это сложная задача, так как алгоритмы перебора ищут решения не по заданным правилам вычислений, а путем проб и ошибок, и схема не укладывается в схемы циклов, имеющихся в языках программирования. Ситуация зачастую осложняется тем, что прямыми методами перебор всех вариантов невозможно осуществить из-за их огромного количества.
Метод программирования с отходом назад позволяет осуществить организованный исчерпывающий поиск требуемого решения задачи. При этом часто удается избежать перебора всех возможных вариантов.
Дата добавления: 2015-08-08; просмотров: 794;