Ошибки при выборе алгоритма

Анализ алгоритма.

Анализ – ключ к пониманию алгоритма в степени, достаточной для их эффективного применения при решении практических задач.

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

Анализ играет определенную роль в каждой точке процесса разработки и реализации алгоритмов.

Можно сократить время работы алгоритма на 3-6 порядка за счет выбора правильного алгоритма.

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

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

Эмпирический анализ.

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

Один из первых шагов в понимании производительности алгоритма – это эмпирический анализ.

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

Эта концепция может показаться слишком очевидной, но, тем не менее, это распространенное упущение в сравнительном анализе алгоритмов.

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

Когда эмпирический анализ начинает занимать слишком много времени, то алгоритм анализируется (оценивается) при помощи математического анализа.

Проблемы, возникающие при эмпирическом анализе:

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

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

Способы восприятия:

1. Визуальная

2. Аудиальная

3. Тактильная

4. Вкусовая

5. Обонятельная

· По форме представления
Текстовая
Числовая
Графическая (в виде изображений)
Звуковая (устная или в виде записи)

 

 

A. По назначению:
Массовая – содержит тривиальные (простые) сведения, оперирует набором понятий, понятным большей частью социума.
Специальная – т.е. содержит специфический набор понятий, при использовании происходит передача сведений, которые могут быть непонятны основной массе общества, но необходимо и понятно в рамках узкой социальной группы, где используется данная информация.
Секретная – передаваемая узком кругу лиц и по закрытым каналам.
Личная информация – набор сведений, о какой либо личности, определяющий социальное положение и типы социальных взаимодействий внутри популяции.

B. По значению:
Актуальная информация – ценна в данный момент времени.
Достоверная информация – информация, полученная без искажения.
Понятная информация – выражена на языке, на котором она понятна получателю.
Полная информация – достаточная для принятия решения.
Полезная информация – определяется субъектом информации.
Данные – признаки, параметры или записанные наблюдения, сохраняемые в какой либо форме на каком либо носителе. Таким образом, понятие «данные» более узкое, чем информация. Данные превращаются в информацию, как только начинают подвергаться какой либо обработке с определенной целью

 

1.10.12

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

Ошибки при выборе алгоритма.

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