Техники визуализации при разработке алгоритмов

Материал из WEGA
Версия от 11:04, 22 июня 2018; Irina (обсуждение | вклад) (Новая страница: «== Постановка задачи == Комплексный процесс проектирования, анализа, реализации, настройк…»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Постановка задачи

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


Эксперименты позволяют измерять величину практических индикаторов, таких как константные множители конкретной реализации, узкие места при практическом применении, локальность ссылок, поведение кэша и коммуникационная сложность, которые может оказаться очень сложно предсказать теоретически. К сожалению, как и в любых других эмпирических науках, порой бывает сложно на основе экспериментов сформировать заключения общего характера по поводу алгоритмов. С этой целью некоторые исследователи предложили точные и исчерпывающие рекомендации по различным аспектам эмпирической оценки алгоритмов, сложившиеся на основе их собственного опыта работы в этой сфере (см., например, [1, 15, 16, 20]). В работе [ ] можно найти аннотированную библиографию источников по теме экспериментальной алгоритмики, охватывающую вопросы методологии, инструментов и техник.


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


В числе других инструментов, полезных для разработки алгоритмов, системы визуализации используют интерактивную графику для дополнения процессов разработки, представления и понимания компьютерных программ [27]. Обеспечивая возможность передачи значительных объемов информации в компактной и удобной для понимания человеком-наблюдателем форме, системы визуализации помогают разработчикам получать представление о работе алгоритмов, тестировать слабые места реализации и настраивать используемые эвристики для повышения практической эффективности алгоритмических кодов. Некоторые примеры подобного использования приведены [12].

Основные результаты