УНИВЕРСИТЕТ ИТМО
Кафедра «Технологии программирования»



Главная

Новости
 Новости науки
 Важное
 Почетные доктора
 Инновации
 Культура
 Люди
 Разное
 Скартел-Yota
 Стрим
 Смольный
Учебный процесс
 Образование
 Дипломы
 Курсовые проекты
 Лабораторные работы
 Учебные курсы
 Визуализаторы
 Unimod-проекты
 Семинары
 Стипендии
Наука
 События и факты
 Госконтракты
 Статьи
 Диссертации
 Книги
 Презентации
 Свидетельства
 Сотрудничество
Исследования
 Автоматы
 Верификация
 Биоинформатика
 Искусственный интеллект
 Генетические алгоритмы
 Движение
 UniMod
 Роботы и агенты
 Нейронные сети
 ФЦП ИТМО-Аалто
 Разное

О нас
 Премии
 Сертификаты и дипломы
 Соревнования по программированию
 Прорыв
 Автографы
 Рецензии

Беллетристика
 Мотивация
 Мысли
Медиа
 Видео
 Фотографии
 Аудио
 Интервью

English
 Home

 Articles
 Posters
 Automata-Based Programming
 Initiatives
 Projects
 Presentations
 UniMod
 UniMod Projects
 Visualizers


Поиск по сайту

Яndex



   Главная / Курсовые проекты / Новый метод вычисления булевых формул (версия для печати)


Новый метод вычисления булевых формул



© А.С. Ковалев, А.П. Лукьянова, А.А. Шалыто

Санкт-Петербургский государственный университет информационных технологий, механики и оптики

Проектная документация
Исполняемая программа

Аннотация

Известны различные методы программной и аппаратной реализаций булевых формул. В описанном в данной работе методе объединяются идеи как программных, так и аппаратных методов реализации булевых формул. При этом сначала для формулы строится линейный бинарный граф, по которому эта формула может быть программно вычислена. Граф преобразуется в схему — мультиплексорный каскад. Анализ формул, которые формируются на выходе каждого элемента каскада показывает, что при таком подходе формула реализуется не по подформулам, а по фрагментам. На основе возврата от аппаратной реализации к программной (моделируя каскад) формируется принципиально новый способ программного вычисления булевой формулы по фрагментам, которые могут не являться ее подформулами.

Объясним разницу между подформулой и фрагментом формулы. Например, в формуле a & b | c & d выражение b | c & d не является подформулой, но является фрагментом формулы.

Вычисление булевой формулы предлагаемым способом на каждом этапе добавляет по одному операнду в уже вычисленный фрагмент формулы, начиная с ее конца. Например, для формулы, указанной выше, будут последовательно вычислены значения следующих ее фрагментов:
   d,
   c & d,
   b | c & d,
   и наконец, a & b | c & d.
Это позволяет вычислять булевы формулы быстрее, чем при использовании операторного (например, польского) способа, и отказаться от вычисления по переходам, как это выполняется при применении линейных бинарных графов.

При реализации данного проекта для построения линейных бинарных графов и мультиплексорных каскадов были применены теория компиляторов и SWITCH-технология.




© 2002—2017 По техническим вопросам сайта: vl.ulyantsev@gmail.com