Содержание
Введение Раздел 1. Матричная алгебра. 1.1 Матрицы и их свойства. Раздел 2. Умножение матриц: алгоритм Винограда. 2.1. Обзор рекурсивных алгоритмов. 2.2. Описание и анализ алгоритма Винограда. Выводы Список использованной литературы.
Введение.
Не так давно человечество вступило в новый XXI век – век информации и компьютеров. Благодаря бурному развитию научных, технических и технологических исследований стало возможным хранить огромные объёмы данных и преобразовывать их со скоростями, которые ещё несколько десятилетий назад могли только сниться. При создании сложных информационных систем перед проектировщиками стали нетривиальные задачи, требующие разработки новых концепций программирования — алгоритмов. Говоря неформально, алгоритм (algorithm) — это любая корректно определенная вычислительная процедура, на вход (input) которой подается некоторая величина или набор величин, и результатом выполнения которой является выходная (output) величина или набор значений. Таким образом, алгоритм представляет собой последовательность вычислительных шагов, преобразующих входные величины в выходные. Алгоритм также можно рассматривать как инструмент, предназначенный для решения корректно поставленной вычислительной задачи (computational problem). В постановке задачи в общих чертах задаются отношения между входом и выходом. В алгоритме описывается конкретная вычислительная процедура, с помощью которой удается добиться выполнения указанных отношений. На практике нужно обеспечить понятность алгоритма, т.е. «читабельности». Часто этого можно достигнуть включением в реализацию приложения рекурсивных подпрограмм, механизмы, использования которых предоставляются практически всеми современными компиляторами и средами разработки. Объект называется рекурсивным, если для своего определения или функционирования он прямо или косвенно обращается к объекту в некотором смысле такого же типа. Так, например, в теле рекурсивных подпрограмм, которые будут подробно рассмотрены ниже, в простейшем случае содержится вызов самих себя, но с другими параметрами. Рекурсия является одним из наиболее мощных и, наверно, самым общим методом научного познания. Она эффективно применяется во многих прикладных и теоретических естественнонаучных дисциплинах, и стала неотъемлемой их частью. Как видим, понятие рекурсии очень широко и многогранно. В настоящей работе будет освещёно использование рекурсивного алгоритма (алгоритма Винограда) для умножения матриц размером . Он будет рассмотрены как с позиций теории алгоритмов и теории сложности, так и с точки зрения практического программирования. Актуальностью работы послужило то, что на практике нужно с минимальными затратами времени и сил производить умножение больших плотных матриц. Исходя из актуальности выбранной темы, мы определили объект, предмет и цель работы: Объект – матричная (линейная) алгебра в информатике. Предмет – рекурсивный алгоритм Винограда для умножений матриц. Цель работы: Проанализировать рекурсивные алгоритмы и показать на практике, что алгоритм Винограда наиболее подходящий для умножения матриц. Исходя из предмета, объекта и цели работы мы определили задания: Ø Провести теоретический анализ литературы по данному вопросу; Ø Показать на практике рациональность использования алгоритма Винограда для умножения матриц;
|