Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Главные принципы, лежащие в основе создания эффективных алгоритмов



Каждый, кто занимается разработкой алгоритмов, должен овладеть некоторыми основными методами и понятиями. Всем когда-то впервые пришлось столкнуться с трудной задачей, за­дать вопрос: с чего начать? Один из возможных путей — про­смотреть свой запас общих алгоритмических методов для того, чтобы проверить, нельзя ли с помощью одного из них сформу­лировать решение новой задачи.

Ну, а если такого запаса нет, то как все-таки разработать хо­роший алгоритм? С чего начать? У всех есть печальный опыт, когда смотришь на задачу и не знаешь, что делать. Рассмотрим три общих метода решения задач, полезных для разработки алго­ритмов.

Первый метод связан со сведением трудной задачи к после­довательности более простых задач. Конечно, мы надеемся на то, что более простые задачи легче поддаются обработке, чем первоначальная задача, а также на то, что решение первоначаль­ной задачи может быть получено из решений этих более простых задач. Такая процедура называется методом частных целей.

Этот метод выглядит очень разумно. Но, как и большинство общих методов решения задач или разработки алгоритмов, его не всегда легко перенести на конкретную задачу. Осмысленный выбор более простых задач — скорее, искусство или интуиция, чем наука. Более того, не существует общего набора правил для определения класса задач, которые можно решать с помощью такого подхода.

Второй метод разработки алгоритмов известен как метод подъема. Алгоритм подъема начинается с принятия начального предположения или вычисления начального решения задачи. За­тем начинается насколько возможно быстрое движение «вверх» от начального решения по направлению к лучшим решениям. Когда алгоритм достигнет такой точки, из которой больше не­возможно двигаться наверх, алгоритм останавливается. К сожа­лению, мы не можем всегда гарантировать, что окончательное решение, полученное с помощью алгоритма подъема, будет оптимальным. Эта ситуация часто ограничивает применение мето­да подъема.

Вообще методы подъема являются «грубыми». Они запоми­нают некоторую цель и стараются сделать все, что могут и где могут, чтобы подойти ближе к цели. Это делает их несколько не­дальновидными. Недальновидность метода подъема хорошо ил­люстрируется следующим примером. Пусть требуется найти мак­симум функции у= f(x), представленной графиком (рис. 1.24).

Если начальное значение аргумента х равно а, то метод подъема даст устремление к ближайшей цели, т. е. к значению функции в точке х=b, тогда как подлинный максимум этой функции находится при х=с. То есть метод подъема в данном примере находит максимум, но не тот. В этом и заключается «грубость» метода подъема.

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





Дата публикования: 2015-09-18; Прочитано: 1918 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...