Программирование с отходом назад. — КиберПедия 

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Программирование с отходом назад.

2021-12-07 27
Программирование с отходом назад. 0.00 из 5.00 0 оценок
Заказать работу

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

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

Алгоритмы ветвей и границ.

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

 

Жизненный цикл программного обеспечения.

Жизненный цикл программного обеспечения включает в себя шесть этапов:

- анализ требований

- определение спецификаций

- проектирование

- кодирование

- тестирование

- сопровождение

 

Анализ требований. При разработке программного обеспечения он исключительно важен. Ошибки, допущенные на этом этапе, даже при условии безупречного выполнения последующих этапов могут привести к тому, что разработанный программный продукт не будет соответствовать требованиям практики, сферы его применения. Для создания конкурентоспособных продуктов в ходе выполнения этого этапа должны быть получены четкие ответы на следующие вопросы:

Что должна делать программа?

В чем состоят реальные проблемы, решению которых она должна способствовать?

Что представляют собой входные данные?

Какими должны быть выходные данные?

Какими ресурсами располагает проектировщик?

 

Определение спецификаций.

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

 

Проектирование.

На этом этапе создается общая структура программы, которая должна удовлетворять спецификациям; определяются общие принципы управления и взаимодействия между различными компонентами программы.

 

Кодирование.

Заключается в переводе на язык программирования конструкций, записанных на языке проектирования.

 

Тестирование.

На этом этапе производится всесторонняя проверка программ. Существуют три аспекта проверки программы:

- правильность

- эффективность реализации

- вычислительная сложность

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

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

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

1. сложение и вычитание выполняются быстрее чем умножение и деление. Целочисленная арифметика быстрее арифметики вещественных чисел.

2. удаление избыточных вычислений.

3. основан на способности некоторых компиляторов строить коды для вычисления так, что вычисления прекращаются если результат становиться очевидным.

4. исключение циклов.

 

Это далеко не полный перечень способов оптимизации. Стоит заметить, что не всегда стоит увлекаться погоней за быстродействием. Если результат незначителен то лучше предпочесть ясность и читабельность программы.

 

 

Сопровождение.

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

 

 


Поделиться с друзьями:

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.013 с.