Построение модели
Если задача четко поставлена, для нее необходимо сформулировать математическую модель. Выбор модели существенно влияет на остальные этапы в процессе решения. Математическая формулировка и выбранный метод вычисления являются основой для определения последовательности действий, приводящих к получению искомого результата.
Большинство задач необходимо рассматривать индивидуально. Тем не менее существуют полезные руководящие принципы:
выбор модели - дело искусства;
изучение удачных моделей - наилучший способ приобрести опыт в моделировании.
Приступая к разработке модели, следует задать, по крайней мере, два вопроса:
Какие известные математические структуры более всего подходят для решения задачи, если в постановке задачи не указаны те, которые следует использовать?
Существуют ли решенные аналогичные задачи?
Сначала рассмотрим необходимость описания математически того, что мы знаем и что необходимо найти. На выбор соответствующей структуры будут влиять такие факторы, как удобство представления, простота вычислений, ограниченность наших знаний, а также:
Вся ли важная информация для решения задачи хорошо описана математически?
Существует ли математическая величина, соотносимая с результатом?
Выявлены ли полезные соотношения между характеристиками модели?
Удобно ли работать с моделью?
Разработка алгоритма
Наиболее распространенными методами разработки алгоритмов можно назвать метод частных целей и эвристический алгоритм.
Для разработки алгоритма методом частных целей необходимо ответить на следующие вопросы
Можно ли решить хотя бы часть задачи, игнорируя некоторые условия?
Можно ли решить задачу для частных случаев?
Есть ли что-то, что мы не достаточно поняли?
Встречались ли мы с похожей задачей? Можно ли видоизменять ее для решения задачи?
При разработке эвристического алгоритма необходимо помнить, что такой алгоритм обычно помогает найти хорошие, но не обязательно оптимальные решения. Нередко эвристический алгоритм имеет быструю и простую реализацию.
Современные методы программирования, основанные на структурном подходе, предусматривают использование специальных приемов, например применение пошаговой детализации. На первом этапе разработки алгоритм рассматривается в общем виде, как некоторая совокупность действий для преобразования исходной информации, все последующие этапы - это выявление все более частных особенностей.
При записи действий на любом этапе можно учитывать, что исполнителем алгоритма будет компьютер, который умеет совершать только вполне определенные действия, а именно присваивание, ветвление, циклическое повторение. Поэтому любая детализация должна приводить к таким конструкциям.
Пример 4: Можно привести аналогию между разработкой алгоритма решения задачи на компьютере и планировкой нового города. Исходными данными могут быть «желаемые параметры» города - географические, экономические, социальные и т. п., а результат - реально построенный город.
Do'stlaringiz bilan baham: |