Главная страница

Поручиков М.А. Анализ данных. А. поручиков


Скачать 2.76 Mb.
НазваниеА. поручиков
Дата25.10.2022
Размер2.76 Mb.
Формат файлаdocx
Имя файлаПоручиков М.А. Анализ данных.docx
ТипАнализ
#753011
страница18 из 20
1   ...   12   13   14   15   16   17   18   19   20

БЫСТРОДЕЙСТВИЕ СИСТЕМ АНАЛИЗА ДАННЫХ

Общие сведения


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

  • вычислительной сложности использованных алгоритмов;

  • способа программной реализации алгоритмов;

  • аппаратного обеспечения.

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


Вычислительная сложность – это зависимость трудоемкости вычислений от объема обрабатываемых данных. Например,

вычислительная сложность алгоритма линейного поиска

O(n) n,

а алгоритма бинарного поиска O(n) log n

(рис. 52).




Рис. 52. Вычислительная сложность алгоритмов поиска
Очевидно, что один и тот же объем данных будет обработан быстрее алгоритмом с меньшей вычислительной сложностью.

Например, вычислительная сложность алгоритма вычисления

произведения матриц «по определению»

O(n) n3 , а алгоритма

Штрассена O(n) n2,81 . Очевидно, что один и тот же объем данных будет обработан быстрее алгоритмом с меньшей вычислительной сложностью

Предположим, что имеются два алгоритма, имеющие

соответственно вычислительную сложность

O1 (n)

и O2 (n) . Для

сравнения их вычислительной сложности необходимо найти значения предела

lim O1 (n) . (24)

n O2 (n)

При этом если значение выражения (24):

O1 (n)
O2 (n)

больше, больше,

    • равно некоторому числу, то функции одинаковую вычислительную сложность.

Пример

O1 (n)

и O2 (n)

имеют

Пусть имеются два алгоритма с вычислительной сложностью

соответственно O(n) en, O(n) n2 , тогда

1 2

n
lim O1(n)  lim e
lim

en



 lim e
.


2
n O2 (n)

n n

n n2



n
n 2n

Следовательно, вычислительная сложность первого алгоритма больше вычислительной сложности второго алгоритма.

Экспериментальноеопределениевычислительнойсложности

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

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

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



Рис. 53. Прогнозирование вычислительной сложности
Программноеобеспечениеsquare_matrix_multiply

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




Программное обеспечение square_matrix_multiply
Размер матриц


Число потоков Размер серии

Время вычислений




Рис. 54. Схема эксперимента
Программное обеспечение реализовано в виде приложения для операционной системы Windows (рис. 55).




Рис. 55. Интерфейс программного обеспечения square_matrix_multiply
Запуск эксперимента производится нажатием кнопки «Запуск». Результатом эксперимента является набор данных, включающий как условия эксперимента, так и экспериментальные данные. Результаты эксперимента можно сохранить в текстовый файл формата csvс помощью нажатия кнопки «Сохранить». Прервать выполнение экспериментов можно с помощью кнопки «Стоп».
1   ...   12   13   14   15   16   17   18   19   20


написать администратору сайта