Русская логика и букварь цифровика. - logicrus.ru

реклама
В. И. Лобанов, к. т. н.
РУССКАЯ ВЕРОЯТНОСТНАЯ ЛОГИКА
И БУКВАРЬ ЦИФРОВИКА-ЭЛЕКТРОНЩИКА
Москва
2008
2
Посвящается Русским инженерам и учёным, интеллектуальной элите России.
Аннотация
Данное пособие является общедоступным изложением основ Русской,
истинно математической логики и инженерных методов разработки цифровых
устройств (ИМРЦУ), без освоения которых разработчик-цифровик не имеет
права на звание инженера.. Вскрывая противостояние Русской и классической
логики, автор показывает, что силлогистика Аристотеля не имеет никакого отношения к логике здравого смысла. Все существующие учебники логики невежественны, безграмотны и бестолковы. В связи с поголовным внедрением «болонкиного» образования и вымыванием математических дисциплин из программ обучения назрела насущная необходимость изложения ИМРЦУ на языке
четвероклассника. Предлагаемое издание реализует поставленные задачи:
книга полезна школьникам и академикам, инженерам и учёным, «физикам» и
«лирикам».
Москва
2008 г.

.
УДК 621.3.049.77:681.518.3
УДК 681.32.001.2
УДК 161:162
ББК 87.4
Л..
2
3
ПРЕДИСЛОВИЕ
Уважаемый Читатель, книге, которую Вы держите в руках нет цены: всё,
что за последние 120 лет вышло в свет по гуманитарной и математической логике – макулатура (за редчайшим исключением). Ценность предлагаемого Вам
пособия определяется тем, что оно создано на основе работ величайшего в
мире русского логика Платона Сергеевича Порецкого, впервые в истории построившего математическую силлогистику, о которой мечтал и над которой всю
жизнь безуспешно работал великий математик Лейбниц. Основополагающий
труд русского учёного вышел в 1884г [34], но до сих пор не освоен русскими логиками и математиками. О зарубежной науке говорить не приходится: она не
разобралась даже в скромных результатах своего талантливого сказочника и
логика Л.Кэрролла, который повторил некоторые выводы Порецкого спустя 12
лет. Академический автор Галинская И.Л. в своей работе [7,с.1] утверждает,
что «Символическая логика» впервые была издана в Англии в 1896г. Именно в
этой работе Кэрролл повторил формулы Порецкого для общеутвердительных и
общеотрицательных кванторов силлогистики.
Дорогой Читатель, знаете ли Вы математическую логику? Я абсолютно
уверен, что не знаете. В этом Вы сразу же убедитесь, пройдя тестирование по
нижеприведённому вопроснику.
Вопросник для математика и логика.
Как работать с картой Карно на 8 и более переменных?
Что такое метод обобщённых кодов Мавренкова?
Что можно вычислить с помощью кванторного исчисления?
Алгебра множеств и алгебра логики. Назовите различия.
Логика предикатов и логика суждений. В чём разница?
Физический смысл и вывод формулы импликации.
Фигуры и модусы Аристотеля. В чём их практическая ценность?
Правильны ли правила посылок в силлогистике?
Как выглядят аналитические представления для Axy, Exy и Ixy?
В чём смысл логики Платона Сергеевича Порецкого?
В чём главное достижение логики Льюиса Кэрролла?
Что такое вероятностная логика?
Что такое 4-значная комплементарная логика?
Как решаются логические уравнения?
Что такое логическое вычитание и деление?
Как найти обратную логическую функцию?
По характеру ответов можно судить о профессиональном уровне логикагуманитария и тем более математика. В 2008г. с этими вопросами не могли
справиться ни академики от логики, ни математики, ни инженеры-цифровики,
что говорит не только о недостаточной профессиональной подготовке, но и о
низком культурном уровне. Освоив Русскую логику, любой семиклассник легко
пройдёт предложенное автором тестирование.
В 1938 г. русский физик В. И. Шестаков впервые в мире (за два года до
Клода Шеннона) доказал возможность описания и преобразования релейноконтактных схем методами алгебры логики. C этого момента зарождается практическая логика. Поскольку практическая логика решала чисто инженерные за1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
3
4
дачи, то вполне естественно назвать эту логику инженерной. Эта наука профессионально решает такие проблемы, как графический и аналитический синтез комбинационных схем (многоаргументные методы минимизации логических
функций), синтез микропрограммных автоматов (МПА) на базе интегральных,
ламповых и релейных схем. К проблемам инженерной логики относится также
создание искусственного интеллекта, фундаментом которого является силлогистика. Но классическая силлогистика совершенно беспомощна в решении поставленных перед нею задач.
В конце 1980-х — начале 1990-х годов руководимый мною отд.450 ЦНИИ
«Циклон»(головной институт Минэлектронпрома СССР) имел тесные контакты с
проблемной лабораторией ЭВМ МГУ, возглавляемой талантливым русским инженером и учёным Н.П.Брусенцовым. Именно ему и его сподвижникам удалось
создать и запустить в производство троичную ЭВМ "Сетунь" и "Сетунь-70", чего
до сих пор не смогла сделать ни одна держава в мире несмотря на все их титанические усилия. Это именно он и его ученики разработали Диалоговую систему структурированного программирования (ДССП) и Русский адаптивный язык
РАЯ (по определению Ершова), являющиеся непревзойдёнными до сих пор
эталонами дисциплины и языков программирования. На чествовании юбилея Н.П.Брусенцова 2.03.95г. я получил в подарок от юбиляра его только что
изданную книгу «Начала информатики», которая и открыла передо мной проблемы классической логики. Поэтому я имею честь считать себя учеником Николая Петровича Брусенцова. Некоторые проблемы логики показались мне
надуманными, превращёнными «из мухи в слона». Захотелось найти простое,
прозрачное математическое решение высосанных из пальца проблем. Алгоритм решения логических уравнений удалось найти за 5 минут в присутствии
Учителя. Смешно, принимаясь за эту проблему, я даже не знал, что такое «решить логическое уравнение». Но был абсолютно уверен, что справлюсь с этой
задачкой за 5 минут: за плечами был 20-летний опыт «железных» оборонных
разработок на основе инженерной логики. В течение месяца построена Русская
логика, в которой была решена проблема силлогистики. Силлогистика – это
раздел логики, занимающийся силлогизмами. А силлогизм – это умозаключение, состоящее из двух посылок, связанных общим термином, и следующего из
них заключения. Пример такого силлогизма:
Все люди талантливы.
Все ученики – люди.
Все ученики талантливы.
В этом силлогизме заключение выводится просто. Но подавляющее большинство силлогизмов, встречающихся в быту, в любой из наук, «физической»
или «лирической», не имеют такого прозрачного решения. А потому и не решаются современной мировой логикой.
В 1997г. я уже излагал Русскую логику студентам и школьникам. Поскольку
все алгоритмы чрезвычайно просты, то учащиеся осваивали новую логику (логику нового тысячелетия) довольно успешно.
В Русской логике решены проблемы Аристотеля и Лейбница, их мечты реализованы в России. С 1998г Русская логика прошла проверку на различных
конференциях, конгрессах, в том числе и международных, симпозиумах и семинарах. Самой серьёзной проверкой автор считал и считает проверку на лекциях
и уроках студентами и школьниками: это самые дотошные и любознательные
критики в отличие от официозных «учёных». Лекции и занятия автор проводил
только по совместительству, в свободное от основной работы на оборонных
4
5
предприятиях время: 1) без работы по основной профессии теряешь квалификацию во всех сопредельных областях, 2) штатному преподавателю внедрять
новую науку весьма сложно(могут «перекрыть кислород»).
Положительными отзывами заполнен Интернет: я получал письма со всех
концов бывшего Союза. Мои лекции по Русской логике были записаны в декабре 2007г на телестудии Современной Гуманитарной Академии(Москва) и в 2008
году транслировались на весь бывший Советский Союз по каналу СГУ ТВ спутникового телевидения. Основные работы автора переведены в США. Очень не
хотелось бы, чтобы Русская логика вернулась к нам в зарубежной упаковке.
Основания для таких опасений более чем весомые. Ни для кого не секрет, что
среди западных учёных очень много невежественных жуликов и мошенников.
Начнём с Эйнштейна, которого выгнали из гимназии за бестолковость, от невежества которого в институте стонали профессора математики и который обокрал не только французского физика Пуанкаре и голландского физика Лоренца,
но и свою жену-славянку. Такое же интеллектуальное воровство, плагиат, допустил Винер - «отец кибернетики» по отношению к русскому учёному Колмогорову. Кстати, на встрече со студентами МГУ Винер в присутствии Колмогорова
признал приоритет советской науки. Лампа русского физика Лодыгина стала
называться лампой Эдисона, теорема советского учёного Котельникова теперь
упоминается только как закон Найквиста, радио русского исследователя Попова превратилось в радио Маркони, «отцом информатики» вместо русского физика В.И.Шестакова называют Клода Шеннона. Примеры жуликоватости, безграмотности, невежества и бестолковости западных «учёных» можно множить
до бесконечности (см. , например, моё математическое доказательство бестолковости и невежества нобелевского лауреата Б.Рассела).
До сих пор никто из официальной профессуры не понял гениальных работ
выдающегося русского учёного Порецкого П.С. Именно он предвосхитил создание истинно математической силлогистики. Позже к аналогичным результатам
в силлогистике пришёл Л. Кэрролл: он получил такие же математические выражения для кванторов "Все х суть y" и "Ни один х не есть y". Хотя уровень достижений Л.Кэрролла значительно ниже уровня результатов П.С.Порецкого, но
даже относительно простых работ английского математика и сказочника никто
не понял ни в России, ни за рубежом. Пусть Порецкий и Кэрролл не сумели решить всех проблем Аристотеля и Лейбница, но они заложили прочный аналитический фундамент, который так и не был в течение 120 лет востребован
классической логикой из-за невежества "так называемых логиков". Я думаю, что
саркастическое отношение Л. Кэрролла к "логикам" можно смело перенести на
наших современников, которые до сих пор не сумели разобраться в достижениях своих великих предшественников. В море макулатуры, издаваемой сегодня по логике, лишь работы Брусенцова Н.П., Катречко С. Л., Кузичева А.С. и
Светлова В.А. заслуживают внимания.
Все современные учебники логики невежественны, безграмотны и бестолковы. До сих пор никто из официальных логиков не принял мой вызов, не защитил честь официозной науки. Преподавание логики (основных её разделов) ведётся невежественно, как и 25 веков тому назад. Можно констатировать тот
факт, что официальная наука встала железобетонной стеной на пути Русской
логики. Подавляющее большинство (вполне возможно, что даже все без исключения) официальных учёных не приемлет Русскую логику. Истина определяется
не большинством голосов, но эти голоса обрекают отечественную логику на
плачевное дремотное состояние, а студентов и школьников на унылую и бес-
5
6
толковую зубрёжку. За 10 последних лет автору не известно ни одного случая
внедрения Русской логики в образование другими педагогами. Но и критики не
существует: никто не рискует защитить честь математического мундира. Буду
признателен за любые критические замечания по существу Русской логики.
Почему-то студенты и школьники на моих лекциях и уроках легко осваивали Русскую логику, а вот академики с нею никак не могут справиться. Наверное, мне попадались глупые академики, поэтому ищу умных. В гуманитарной и
тем более математической логике за последние 120 лет я умных академиков не
заметил. Кстати, даже такие «корифеи» в логике, как акад. Колмогоров А.Н.,
проф. Садовничий (ректор МГУ), проф. Зиновьев А.А., всякие расселы, заде,
гёдели и чёрчи ни черта не поняли ни в работах гениального логика Порецкого
П.С., ни в результатах, полученных Л.Кэрроллом. Если уж ты не способен создать что-либо стоящее в науке, то разберись вначале хотя бы с достижениями
своих предшественников в данной области. Кстати, убедившись в бестолковости вышеназванных «логиков», невольно задаёшься вопросом, а стоит ли изучать их работы.
Никакое образование немыслимо без изучения логики. Этот предмет в
качестве основного впервые ввёл в гимназиях и Академии великий русский
учёный М.В. Ломоносов. С тех пор логику в обязательном порядке изучали в
гимназиях России и по указанию Сталина в 1946 – 1957 гг.(после смерти Сталина с 1953г. по 1957г. – по «инерции») в школах СССР. В связи с этим поразительна безграмотность современных матлогиков:
 «изобретено» кванторное исчисление, которое ровным счётом ничего не исчисляет, т.к. является просто мнемоникой (один идиот от
математики придумал, а миллионы попугаев повторяют);
 «придумана» алгебра множеств, с задачами которой прекрасно
справляется алгебра логики (бестолковость математиков);
 единая математическая логика расчленена на логику суждений и
логику предикатов с бесполезными субъектами, предикатами, фигурами и модусами, с некорректными правилами посылок и прочей
наукообразной зубрёжной чепухой (бестолковость и неграмотность);
 доктора физматнаук и даже инженеры-цифровики не знают математической логики и бравируют своим невежеством (невежество и
безграмотность);
 ни один логик не сумеет аналитически доказать и объяснить, почему (x y) = x’+y – здесь и далее апостроф означает отрицание
(неграмотность и бестолковость);
 ни один математик не умеет аналитически представить общеутвердительный, общеотрицательный и частноутвердительный
функторы (невежество);
 более 120 лет математики и логики не могут освоить результатов
П.С. Порецкого и Л. Кэрролла (невежество и бестолковость);
 ни один академик не умеет решать задачи силлогистики;
 математики не умеют мыслить (см. сайты с моими публикациями).
Логика дисциплинирует мышление. Ещё Гераклит говорил, что учить
нужно многомыслию, а не многознанию. Не путайте Божий дар с яичницей: телевизионные «знатоки» - это не мыслители, они зарабатывают деньги не «своим собственным умом», а совсем другим местом. Все «интеллектуальные иг6
7
ры» на телевидении – это проверка на зубрёжную эрудицию «мартышек с
арифмометром». Если немного подумать, то к этому же разряду можно отнести
шахматистов,
программистов
и
микропрограммистов(схемотехниковцифровиков, использующих языки AHDL, VHDL и т.п.). ЭВМ уже обыгрывает
чемпионов мира по шахматам. Значит, шахматист – это просто калькулятор, а
программист – толмач, переводчик с одного языка на другой. Но переводчик
Пастернак далеко не поэт Пушкин. Эвристика, мышление – прерогатива человека, а ЭВМ пока ещё не умеет мыслить, да и вряд ли научится. Автор – программист и цифровой схемотехник с 35-летним стажем, но уже более 30 лет
считает, что уметь программировать необходимо, но лучше всегда эту работу
поручать кому-либо другому. То же самое можно сказать и о микропрограммировании, т.е. схемотехническом проектировании цифровых устройств. К сожалению, этими дисциплинами приходится заниматься всё больше и больше.
Творчество доступно и грузчику, и таксисту, но о серьёзном творчестве и серьёзном мышлении может идти речь лишь в фундаментальных науках, базирующихся на математике.
Над проблемой формализации мышления ВСЁ ЧЕЛОВЕЧЕСТВО (и
«физики», и «лирики») трудилось 25 веков. И тем не менее классическая логика, которую изучают во всём мире, вопиюще безграмотна и дремуче невежественна. С задачей формализации, чётко поставленной Лейбницем, справляется только Русская логика.
Если вы устали от зубрёжки силлогистики Аристотеля, хотите чуточку
поумнеть и превзойти в логике П.С. Порецкого, Л. Кэрролла, Дж. Буля и Лейбница, если вас интересует истинно математическая, понятная школьнику логика
здравого смысла, то осваивайте эту науку по следующим источникам:
1. Сайты в Internet: http://ruslogic.narod.ru , http://naztech.org/lobanov ,
http://matema.narod.ru/newpage113.htm, http://www.mirit.narod.ru/zerkalo.htm ,
http://ito.edu.ru/, http://www.trinitas.ru, http://lord-n.narod.ru/walla.html/Книги и
софт с Walla.com и др.
2. Лобанов В.И. Азбука разработчика цифровых устройств. – М.: Горячая линия
– Телеком, 2001 – 192с.
3. Лобанов В.И. Русская логика против классической (азбука математический
логики). – М.: Компания Спутник+, 2002 – 126с.
4. Лобанов В.И. Решебник по Русской логике. – М.: Компания Спутник+, 2002 –
133с.
5. Лобанов В.И. Русская логика – это очень просто! – М.: Русская Правда, 2006
– 32с.
6. Лобанов В.И. Русская вероятностная логика для школьников и умных академиков). – М.: 2008 – 33 с.
7. Лобанов В.И. Русская вероятностная логика. – М.: Русская Правда, 2009 –
320с.
8. Лобанов В.И. Русская логика для «физиков» и «лириков». – М.: Спутник+,
2005 – 427с.
В этом перечне только первый сайт является авторским, все остальные
созданы профессионалами-единомышленниками, оценившими значение Русской логики и ИМРЦУ для отечественной инженерии и разместившими математическую логику России и ИМРЦУ на своих страницах. Я чрезвычайно признателен за это патриотам русской науки. Почти все мои книги и многие статьи
выложены в открытом доступе на указанных сайтах. Последняя книга в этом
перечне написана в основном для инженеров. Их безграмотность в инженерных
7
8
методах разработки, контроля и диагностики цифровых устройств, а также в
программировании и микропрограммировании удручает. Не говоря уже о логической безграмотности. А ведь именно русским инженерам придётся решать
проблемы искусственного интеллекта(ИИ), стратегического научного направления 21 века. Фундаментом же ИИ является Русская логика, а не классическая
болтологика, которую изучают во всём мире.
Автор до сих пор занимается разработками электронных цифровых
устройств оборонного назначения. Накопленный опыт позволяет утверждать,
что формальные и инженерные методы проектирования цифровых устройств
легко осваиваются семиклассниками. Поэтому выпускники средних школ, освоившие «Русскую логику» и «Азбуку разработчика цифровых устройств»[29, 26]
могут сразу приступить к работе на инженерных должностях. Это чрезвычайно
актуально в связи с переходом на «болонкино образование»(Болонская конвенция), гуманитаризацией и вымыванием математики из программы обучения.
Но так называемые «гуманитарные науки» в большинстве своём представляют
собой «не замутнённый интеллектом поток сознания с очень специфическим
подходом» (Андрей Борцов. «Дебилизаторы подрастающего поколения»//«Знание – власть!», №41(310), ноябрь,2006). Дело в том, что любой гуманитарий безоговорочно верит в авторитеты, а значит, перестаёт мыслить. Математик постоянно думает, анализирует. Для него только истина является авторитетом. России нужны не болтуны и спекулянты, не жулики и ростовщики, не
«смехачи» и поп-звёзды, не «эффективные менеджеры» и толпы бухгалтеров,
а инженеры и учёные. Тот разгром нашей оборонной промышленности, науки,
культуры и образования, который учинила «пятая колонна», является государственным преступлением и требует государственного вмешательства и огромных усилий всего общества (в первую очередь технических профессионалов
старшего поколения, поскольку молодых нет и не предвидится в ближайшем
будущем) по ликвидации катастрофических последствий.
Хочу заранее вызвать у читателей агрессивный настрой. Не верьте ни
единому слову Русской логики, проверяйте, возражайте. Тем более, что
мой учитель в науке о мышлении Николай Петрович Брусенцов категорически
не согласен с Русской логикой. Вашего интеллекта и образования более чем
достаточно, чтобы разоблачить автора. У меня семиклассники решали такие
задачи по логике, с которыми не справится ни один инженер, ни один профессор, и уж тем более академик. Кроме того, помните, что все вы по определению безграмотны: не знаешь логики – невежда по критериям Русской
гимназии и Древней Греции.
Дополнительно примите к сведению, что с точки зрения «логиковпрофессионалов», автор Русской логики – дилетант, поскольку я действительно
не изучал в институте логику Аристотеля. Пришлось изучить, чтобы уничтожить
болтологику. Но стоит ли тратить время на то, что ещё 400 лет назад было разгромлено Френсисом Бэконом, что вызывало возмущение советского логика
Васильева Н.А., что опроверг 120 лет назад величайший Русский логик Платон Сергеевич Порецкий и немного позже даже английский математик и сказочник Льюис Кэрролл. Поскольку до сих пор, вот уже более 30, лет я разрабатываю цифровые системы управления, в основном оборонного назначения, где
всё построено на иженерной, т.е. строгой математической, логике, то у меня
есть все основания считать всех логиков мира (и математиков, в первую
очередь) за последние 120 лет дилетантами, невеждами, неучами, да ещё
и бестолочью. К сожалению, Математический институт им.Стеклова, утратил
8
9
лидерство в матлогике, превратившись в приют для «общечеловеков».
Такое утверждение звучит невежливо, но, во-первых, за 10 лет, прошедших с выхода в свет Русской логики, я исчерпал все дипломатические выражения и называю вещи своими именами. Во-вторых, «вежливость – любимая добродетель убогих…последнее прибежище бестолочей» (Диана Сеттерфилд
«Тринадцатая сказка»).
Автору неоднократно «советовали» назвать вновь открытую науку «Логикой Лобанова», в частности секретарь Комитета по обороне Госдумы РФ Симкин Владимир Соломонович считал(13.11.2003), что логику с таким русским
названием никто изучать не будет. Как это русские «фашисты», «пьяницы» и
«быдло» (по определению наших «любимых» косноязычных СМИ) смогли создать математическую логику?!
Я не имел морального права на такое «увековечивание» своего имени по
чисто этическим и патриотическим соображениям. Поскольку вновь созданная
логика опирается в основном на работы русских логиков Давыдова И.И.(17941863),Владиславлева М.И.(1840-1890), Порецкого П.С.(1846-1907), Введенского
А.И.(1856-1925), Лосского Н.О.(1870-1965), Поварнина С.И.(1870-1952), Васильева Н.А.(1880-1940), Брусенцова Н.П., Кузичева А.С. и др., то автор назвал
её Русской логикой. . Я не имел права на «Логику Лобанова» также и потому,
что это не лично моя заслуга, а свойство Русского менталитета, Русского языка. В прекрасной и глубоко познавательной книге В.А. Истархова «Удар Русских
Богов» (М.: Русская Правда»,2007 – 416с.) на стр.363 приводится фундаментальное высказывание: «Чем примитивнее язык, тем примитивнее мышление
человека…». Наш родной Русский язык самый богатый и мощный в мире. Поэтому русским легче было создать истинно математическую логику, и, видимо,
именно поэтому только русскими учеными и инженерами была решена эта многовековая проблема.
Кроме того, существуют логика Пор-Рояля (захудалый монастырь во
Франции), «новейшая английская логика» (Льар Л. «Английские реформаторы
логики») и польская инверсная запись в программировании, но никого это не
смущает. А вот Русская логика застряла у русофобов, как кость в горле. К тому
же Ф.М.Достоевский всегда говорил о национальном характере науки. В последнее время появилась «Русская механика» А.Ф.Черняева (М.:2001 – 592с.)
и «Русская физика» Антонова В.М. – М.: 2008, т.е. ряды Русских наук пополняются.
Ну и в конце концов, нужно как-то различать болтологику (официальную
классическую логику) и истинно математическую логику (Русскую).
В процессе освоения Русской логики читателю станет ясно, что нет логики
суждений и логики предикатов, а есть просто логика. Однако автор сохранил
традиционное разделение, чтобы не создавать психологического барьера. О
вероятностном характере всей силлогистики автор впервые сказал в «Русской
логике для школьников (и академиков)». Поэтому некоторые примеры в силлогистике требуют уточнения в постановке задач: необходимо оговорить мощность всех терминов-множеств. Однако главный, мыслительный, аспект этих
примеров не утрачен.
Автор рекомендует к обязательному изучению главу 1 из части 1 и главы
9, 10, 11 из части 2. Главы 1 - 8 из части 2 – дань традициям классической логики в отыскании интегрированных заключений в силлогизмах. Для искусственного интеллекта(ИИ) такие выводы ничего не значат: нужна чёткая количественная оценка каждого варианта заключения. Поэтому только вероятностная логи-
9
10
ка будет приемлема для ИИ. Пропущенные разделы есть смысл просмотреть
хотя бы «по диагонали», поскольку там излагаются методы и алгоритмы, не известные современной матлогике, приводится критический анализ невежества и
безграмотности «логиков» 20-го и 21-го столетий. Часть 3 предназначена для
инженеров-цифровиков, но вполне может быть освоена школьниками на уроках
информатики,
Автор родился и вырос в Осташкове, родине Леонтия Филипповича Магницкого, основателя Российской математики, на берегу озера Селигер. Поэтому он не мог не упомянуть этого города и самого озера хотя бы в названиях алгоритмов. Замысел книги родился благодаря зав. проблемной лаб. ЭВМ МГУ
Брусенцову Н.П., ознакомившему автора с проблемами современной логики.
Русская логика была впервые внедрена в Тушинском вечернем авиационном
техникуме (ТВАТ). Автор выражает свою глубокую признательность директору
ТВАТ Немченко Т.П. и завучу Волковой Е.И., оказавших большое содействие в
организации учебного процесса.
10
11
«…И может собственных Платонов
И быстрых разумом Невтонов
Российская земля рождать. »
М.В.Ломоносов.
ЧАСТЬ 1
Инженерная логика.
Глава первая
КОМБИНАЦИОННЫЕ ЛОГИЧЕСКИЕ ЦЕПИ
1.1 Основные положения алгебры логики
Анализ и синтез логических схем осуществляется на базе аппарата алгебры логики или булевой алгебры [26]. Излагать весь аппарат не имеет смысла, так как в инженерной практике используются два-три закона алгебры логики.
В алгебре логики переменные могут принимать только два значения, 0
или 1. Для двух аргументов существуют 16 логических функций (операций, логических действий). Над переменными в основном производятся три логических
действия: сложение, умножение, отрицание (инверсия), что соответствует
функциям ИЛИ, И, НЕ. Все функции в булевой алгебре могут быть описаны с
помощью таблицы истинности. В нижеследующих таблицах описаны функции
И(f1), ИЛИ(f2),НЕ(f3).
Вместо функции И часто используется термин «конъюнкция», вместо функции ИЛИ - термин «дизъюнкция». Вместо функции НЕ употребляется термин
«инверсия» или «отрицание». Для двоичной логики понятия «инверсия» и «отрицание» эквивалентны, но для многозначной дело обстоит иначе. По ЕСКД
11
12
логические элементы, реализующие функции И(f1), ИЛИ(f2), НЕ(f3), изображаются так, как представлено на рисунке.
При написании логических формул для функции И используются следующие знаки : &, Λ, точка или ее отсутствие; для функции ИЛИ - V ,+. Функция
НЕ обозначается штрихом над аргументом.Мы для обозначения отрицания будем использовать апостроф. Таким образом , можно записать:
f1 = x2&x1 = x2 Λ x1 = x2x1
f2 = x2 V x1 = x2+x1
f3 = x’
Основные законы алгебры Буля.
Прежде, чем приступить к изложению основных законов алгебры логики,
зафиксируем некоторые очевидные её положения.
1 + a = 1; 0 + a = a; a & 1 = a; a & 0 = 0; a + a’ = 1.
Эти соотношения легко проверяются подстановкой.
Как уже отмечалось, в булевой алгебре все операции осуществляются с
логическими переменными и подчиняются законам алгебры логики. Опишем
некоторые из них.
а) Переместительный закон
а+в=в+а;
ав = ва
б) Сочетательный закон
( а + в ) + с = а + ( в + с) ;
( ав )с = а(вс)
в) Распределительный закон
а( в + с ) = ав + ас ;
а + вс = (а + в)( а + с )
г) Закон поглощения
а + ав = а( 1 + в ) = а ;
а( а + в ) = а + ав = а
д) Закон склеивания
ав + ав’ = а ;
( а + в )(а + в’) = а
е) Идемпотентный закон
a + a = a;
a&a=a
ё) Правила де Моргана
Эти правила справедливы для любого числа аргументов.
а + в + с + .... + z = ( а’в’с’...z’ )’
авс... = ( а’ + в’ + с’ + ... + z’ )’
Эти правила можно описать таким алгоритмом.
Для перехода от логической суммы к логическому произведению необходимо проделать следующие операции :
1) проинвертировать все слагаемые в отдельности;
2) заменить знаки дизъюнкции на знаки конъюнкции;
3) проинвертировать получившееся выражение.
Аналогично выполняется переход от логического произведения к логической сумме. В инженерной практике используются лишь правила де Моргана и
12
13
закон склеивания (в виде карт Карно).
Кроме основных функций И, ИЛИ, НЕ в алгебре логики часто используются функции равнозначности (эквивалентности) и неравнозначности (сумма по
модулю 2 ).
Для обозначения этих функций используются следующие знаки : равнозначность - ~ , сумма по модулю 2 -  . Содержание этих функций отражено в
таблице .
Из таблицы получаем:
f4 = а ~ в = а’в’ + ав
f5 = a  в = а’в + ав’
Из таблицы видно, что
f4 = f5’ или f5 = f4’
Таким образом,
а’в’ + ав = ( ав’ + а’в )’ , или
а~в = ( а  в )’ , а  в = (а~в)’
Особое место в алгебре логики занимает функция импликации: a→b =
a’+b. Физический смысл этого соотношения не может объяснить ни один академик. Он будет разъяснен в разделе «Базисы силлогистики».
1.2 Алгебра множеств.
Обычно множества изображаются в виде окружностей, эллипсов, прямоугольников, квадратов и других фигур. Однако переход от двумерности к одномерности, т.е. к скалярным диаграммам, позволяет существенно расширить
возможности анализа и синтеза в алгебре множеств. Попробуем доказать
идентичность функций и законов в алгебре логики и алгебре множеств.
Полная система булевских функций(z0 – z15) для двух аргументов(x,y)
показана в таблице.
Эти функции для алгебры множеств можно представить с помощью скалярных диаграмм, которые предложены автором в качестве основного инструмента алгебры множеств. Здесь и далее в том случае, если аргумент или функ-
13
14
ция равны нулю, то они изображается тонкой линией, в противном случае –
толстой.
Все вышеперечисленные законы булевой алгебры легко и просто доказываются с помощью алгебры множеств. Приведем, к примеру, графическое
доказательство правила де Моргана для двух аргументов x+y = (x’y’)’.
Из скалярных диаграмм видно, что x+y = (x’y’)’. Далее будет показано, что
минимизация функций в алгебре множеств не отличается от минимизации логических функций в алгебре логики. Таким образом, мы доказали, что алгебра
логики и алгебра множеств идентичны.
В этом доказательстве не было никакой необходимости, поскольку аргументами в логике могут быть как отдельные переменные, так и множества.
Следовательно, алгебра логики и алгебра множеств – синонимы.Создатель
«алгебры множеств» и его последователи – невежды и бестолочи.
1.3 Разновидности логических интегральных схем ( ИС )
Логические ИС, выпускаемые промышленностью, являются функционально полными системами логических элементов и образуют базис построения логических схем.
Функционально полная система логических элементов - это такой набор
элементов, используя который можно реализовать любую сколь угодно сложную логическую функцию. К числу функционально полных систем относятся,
например, системы, реализованные на элементах «И-НЕ» либо на элементах
«ИЛИ-НЕ».
Наиболее распространены в настоящее время серии 1530
,1533,555,533,561,1561, 564,1564,176. Различаются эти серии по быстродей-
14
15
ствию. Наиболее быстродействующей серией является серия 1530, самой
инерционной - серия 176. Задержки в элементах серии 1530 порядка 3 нс, задержки в таких же элементах серии 176 - порядка 200нс. Максимальным потреблением обладает самая быстродействующая серия 1530, минимальным серия 1564.
В состав перечисленных серий входят , например, ИС, представленные
на рисунке. На этом рисунке контурными линиями ограничен состав одного корпуса ИС.
Пусть необходимо реализовать функцию f = а + вс в базисе И-НЕ.
Используя правило Де Моргана, получим: f = ( а’(вс)’)’ .Её реализация
представлена на рисунке.
15
16
1.4. Синтез комбинационных схем
Синтез комбинационных схем можно проиллюстрировать решением простой задачи.
Задача 1.3.1.
Приёмная комиссия в составе трех членов комиссии и одного председателя решает судьбу абитуриента большинством голосов. В случае равного распределения голосов большинство определяется той группой, в которой оказался председатель приемной комиссии. Построить автомат для тайного голосования, обеспечивающий определение большинства голосов.
Решение.
Пусть f - функция большинства голосов. f = 1, если большинство членов
комиссии проголосовало за приём абитуриента, и f = 0 в противном случае.
Обозначим через x4 голос председателя комиссии. Пусть x4 = 1, если
председатель комиссии проголосовал за приём абитуриента. Аналогично представляются через x3, x2, x1 - голоса членов приёмной комиссии.
С учётом вышеуказанных допущений условие задачи можно однозначно
представить в виде таблицы истинности.
Заполнение таблицы осуществляем с учётом того, что функция f является полностью определённой, т.е. она определена на всех возможных наборах
переменных x1 - x4. Для n входных переменных существует N = 2n наборов переменных. В нашем примере N = 24 = 16 наборов.
Записывать эти наборы можно в любом порядке, но лучше в порядке
возрастания двоичного кода.
16
17
Примечание. Здесь и далее под набором будем понимать конъюнкцию
всех входных переменных. Существует множество научных определений для
набора (конституента,терм,импликанта,минтерм и т.д.), но они только вносят
путаницу.
Все наборы, на которых функция принимает значение 1 , будем называть
единичными, или рабочими. Наборы, на которых функция принимает значение
0, будем называть нулевыми, или запрещенными.
Для того, чтобы по таблице истинности найти функцию f, достаточно выписать все единичные наборы и соединить их знаком дизъюнкции.
Таким образом,
f = x4’x3x2x1 + x4x3’x2’x1 + x4x3’x2x1’ + x4x3’x2x1 + x4x3x2’x1’ + x4x3x2’x1 + x4x3x2x1’
+ x4x3x2x1
Полученная форма функции называется совершенной дизъюнктивной
нормальной формой (СДНФ), так как каждое логическое слагаемое представляет собой конъюнкцию всех аргументов.
Очевидно, применяя основные законы булевой алгебры, мы могли бы
аналитически уменьшить сложность полученного выражения. Но это наихудший
способ минимизации булевых функций. Покажем это на примере вышеописанного автомата для тайного голосования. Представим полученную функцию в
виде логической суммы цифровых рабочих наборов и произведём группировку
слагаемых с целью минимизации результата на основе законов склеивания и
идемпотентности:
f = 0111+1001+1010+1011+1100+1101+1110+1111 =
= (0111+1111)+(1001+1011)+(1010+1011)+(1100+1101)+(1110+1111) =
= -111+10-1+101-+110-+111- = -111+10-1+(101-+111-)+(110-+111-) =
= -111+10-1+1-1-+11-- = x3x2x1+ x4x3’x1+ x4x2+ x4x3.
Как мы потом увидим, результат минимизации должен быть компактнее.
Но при аналитической минимизации придётся ввести неочевидную группировку:
(1101+1111).
f = 0111+1001+1010+1011+1100+1101+1110+1111 =
=(0111+1111)+(1001+1011)+(1010+1011)+(1100+1101)+(1110+1111)+(1101+1111)
.= -111+10-1+101-+110-+111-+11-1 = -111+(10-1+11-1)+(101-+111-)+(110-+111-) =
-111+1--1+1-1-+11-- = x3x2x1+ x4x1+ x4x2+ x4x3 = x3x2x1+ x4 (x1+ x2+ x3).
После длинных и неочевидных группировок удалось, наконец, получить
правильное решение в виде минимальной дизъюнктивной нормальной формы
(МДНФ). Даже для 4-х аргументов аналитический метод минимизации не рационален.
Однако не всегда исходное условие задано в виде таблицы истинности.
Задача 2.
Найти МДНФ функции, заданной в виде выражения:
M = (ax=bc)(bx=ac).
Решение.
Вначале необходимо выполнить операцию логического умножения, а затем преобразовать полученную ДНФ в СДНФ. Далее по СДНФ заполняется
таблица истинности и следует традиционная минимизация с помощью карты
Карно. Однако перемножать сложные выражения достаточно утомительно, поэтому заменим эту операцию сложением на основе формулы де Моргана. По-
17
18
лучим:
M’ = (ax  bc) + ( bx  ac) = ab’x+ac’x+a’bc+bcx’+a’bx+bc’x+acx’+ab’c.
Мы получили ДНФ инверсии логической функции М. Теперь необходимо
развернуть её в СДНФ. Выполняется эта процедура достаточно просто добавлением недостающей переменной (в данном случае домножением на (c+c’) или
(b+b’):
ab’x = ab’x(c+c’) = ab’cx+ab’c’x = 1011+1001,
ac’x = ac’x(b+b’) = abc’x+ab’c’x = 1101+1001,
После занесения M’в карту Карно получим
M = a’b’+abcx+c’x’.
1.5.Минимизация полностью определённых булевых функций.
Существует несколько способов минимизации булевых функций. Прежде
всего это метод Квайна-Мак-Класки, метод Блека-Порецкого и метод минимизации с помощью карт Карно или диаграмм Вейча [26, 27]. Здесь будет подробно излагаться метод карт Карно, как самый удобный метод, позволяющий
быстро решать задачи минимизации булевых функций от достаточно большого
числа аргументов (6-12). При этом получается минимальная форма в базисе И,
ИЛИ, НЕ.
Существуют карты Карно на 2 , 3 , 4 , 5 и 6 переменных[14,26]. Причем
последние стали использоваться достаточно недавно. На рисунке представлены карты Карно для 2, 3, 4, 5 и 6 аргументов.
18
19
1.6.Карты Карно для 7, 8, 9 и 10 переменных.
Карты Карно позволяют решать задачу минимизации логических функций
элегантно и просто. Карно был не только собразителен(кстати, за 30 лет я так и
не нашёл его биографии: узнал только, что это американец 20-го столетия), но
и ,вероятно,весьма ленив: он считал, что его карты настолько прозрачны, что
нет резона описывать алгоритм работы с ними (вполне возможно, что Карно и
не представлял себе карт более, чем для 4-х переменных). Поэтому до сих пор
неблагодарное человечество не научилось работать с этими картами. Алгоритм работы с картами Карно (этот алгоритм не известен ни одному логику в
мире) был разработан автором 30 лет назад, изложен в «Инженерных методах
разработки цифровых устройств»(1977г.), «Русской логике для школьников» и
«Русской логике против классической», а также на вышеназванных сайтах.
До сих пор сохранилось мнение, что карты Карно для 7-10 переменных
являются труднообозримыми, поэтому ни в какой литературе,кроме [14], нельзя
найти не только описания метода работы с картами Карно на большое количество переменных, но и самих карт. Этим же обстоятельством объясняется тот
факт, что до недавнего времени в литературе редко встречались карты Карно
даже для 6 переменных. Прежде,чем приступить к рассмотрению многоаргументных карт Карно,покажем на простых примерах, как осуществляется соседнее кодирование для произвольного числа переменных. Для одной переменной
существует только соседнее кодирование, так как она кодируется нулём и единицей. Чтобы перейти к соседнему кодированию для двух переменных x2 и x1
предлагается следующая операцию. Напишем в один столбец коды для x1.
Между нулём и единицей для столбца x1 проведём ось, которую назовём осью
симметрии 1-го ранга.
19
20
Проведём под этим столбцом ось симметрии , которую в дальнейшем
будем называть осью симметрии 2-го ранга, и продолжим столбец кодов для x1
симметрично относительно этой оси (симметрично относительно оси симметрии 2-го ранга разместятся и оси симметрии 1-го ранга).
Дополним одноразрядный код до двухразрядного, для чего выше оси
симметрии впишем для x2 нули , а ниже - единицы.
Таким образом , мы осуществили соседнее кодирование для двух переменных. Чтобы построить соседние коды для трёх переменных , проведём под
столбцами двухразрядных кодов ось симметрии 3-го ранга и продолжим эти
столбцы вниз симметрично относительно оси 3-го ранга, т.е. осуществим симметричное отображение относительно оси 3-го ранга.
20
21
Дополним двухразрядные коды до трёхразорядных, вписав в третьем
разряде нули выше оси Карно 3-го ранга и единицы ниже этой оси. Получим
соседнее кодирование для трёх переменных.
Следовательно, для того, чтобы осуществить соседнее кодирование для
(Р+1) переменных, если известно соседнее кодирование для Р переменных,
необходимо выполнить следующий алгоритм:
1) под столбцом известного Р-разрядного соседнего кодирования провести ось симметрии (Р+1)-го ранга ;
2) осуществить симметричное отображение относительно оси симметрии
(Р+1) - ранга всех Р-разрядных кодов и осей симметрии всех рангов до ранга Р
включительно ;
3) дополнить Р-разрядные коды слева одним разрядом, в котором записать 0 для всех кодов выше оси симметрии (Р+1)-го ранга и 1 для кодов, расположенных ниже оси симметрии (Р+1)-го ранга.
21
22
Соседнее кодирование карт Карно по вышеизложенному алгоритму производится как для вертикальных, так и для горизонтальных сторон карт. Примеры кодирования карт Карно приведены на рисунке. На нём стрелками обозначены оси симметрии, ранг которых отмечен цифрами, стоящими рядом со
стрелками .
Покрытие всех единичных наборов булевой функции, размещённых в
карте Карно, прямоугольниками Карно не вызывает затруднений, если функция
зависит не более, чем от 6 переменных. Обозримость карт Карно для большего
числа переменных усложняется, так как становится трудно определить, соответствует ли данная фигура покрытия понятию прямоугольника Карно. Определение достоверности прямоугольника Карно основано на принципе симметрии,
значительно повышающем обозримость карт Карно, и осуществляется с помощью приводимого ниже алгоритма.
Алгоритм проверки достоверности прямоугольника Карно (ПК)
( принцип симметрии )
1. Если предполагаемый прямоугольник Карно (ППК) охватывает одну
ось симметрии , либо не охватывает ни одной, то перейти к п.4.
2. Если ППК располагается по обе стороны от нескольких осей симметрии, то он должен быть симметричен относительно той из этих осей, которая
22
23
имеет максимальный ранг, иначе данная фигура не является прямоугольником
Карно.
3. Разбить исходный ППК пополам. Считать любую его половину новым
ППК. Перейти к п.1.
4. Конец.
Этот алгоритм необходимо применить дважды : относительно горизонтальных и относительно вертикальных осей симметрии.
Проверим достоверность прямоугольника Карно А на вышеприведённом
рисунке. Прямоугольник А размещается по обе стороны от горизонтальной оси
4-го ранга. Симметричность его очевидна. Верхняя половина фигуры А симметрична относительно горизонтальной оси симметрии 1-го ранга. Так как ППК
охватывает одну единственную ось симметрии , то проверка фигуры покрытия
А на соответствие принципу симметрии относительно горизонтальных осей закончена.
Приступаем к проверке принципа симметрии относительно вертикальных
осей симметрии. Фигура покрытия А размещается по обе стороны от вертикальной оси симметрии 4-го ранга и симметрична относительно этой оси. Левая
половина фигуры А симметрична относительно оси симметрии 3-го ранга. После повторного деления левая половина фигуры покрытия оказалась симметричной относительно оси симметрии 2-го ранга. После 3-го деления ППК не
охватывает ни одной оси симметрии, на этом проверка достоверности прямоугольника Карно заканчивается. Таким образом, фигура покрытия А действительно является прямоугольником Карно. Аналогично доказывается, что фигура покрытия В также является прямоугольником Карно. В результате минимизации прямоугольники А и В будут описаны следующими формулами:
a = x7x6’x1’
b = x7’x6x2.
На рисунке даны примеры фигур, не являющихся прямоугольниками Карно.Фигуры k, m и n не являются прямоугольниками Карно в силу нарушения
принципа симметрии. Фигура n не симметрична относительно горизонтальной
оси симметрии 2-го ранга, фигура m не симметрична относительно вертикальной оси симметрии 3-го ранга. Фигура k симметрична относительно оси симметрии 3-го ранга, но её половина не симметрична относительно оси 2-го ранга.
Поразително, что за 30 лет никто из преподавателей и «учёных» так и не
освоил моего алгоритма. До сих пор плодятся неграмотные методы работы с
картами Карно, в которых утверждается, что достаточно убедиться, что в фигуре покрытия 2n клеточек, чтобы считать её ПК. Фигура m содержит 8 клеточек,
но не является прямоугольником Карно.
Алгоритм «НИИРТА» графической минимизации булевых функций.
23
24
1. Заполнить карту Карно нулями и единицами в соответствии с таблицей
истинности или заданным алгебраическим выражением.
2. Покрыть все элементарные квадраты Карно, в которых записаны единицы, минимальным количеством фигур покрытия, каждая из которых имеет
максимальную площадь.
3. Проверить каждую фигуру покрытия на соответствие принципу симметрии. В противном случае изменить контур фигуры покрытия в соответствии
с принципом симметрии так, чтобы она превратилась в прямоугольник Карно.
4. Каждому прямоугольнику Карно соответствует одна импликанта, причём если в границах прямоугольника Карно какая-либо переменная принимает
значения как 0 , так и 1 , то эта переменная не войдёт в импликанту.
Применим карту Карно для решения задачи 1. На рисунке дан единственный минимальный вариант решения(иногда их бывает несколько).
f = x4x1 + x4x2 + x4x3 + x3x2x1
Эти выражения представляют собой пример дизъюнктивной нормальной
формы (ДНФ).
В некоторых случаях приведение результата минимизации к скобочной
форме позволяет уменьшить количество интегральных схем (ИС) , необходимых для реализации булевой функции. Скобочная форма получается после
вынесения общих множителей за скобки и для f имеет вид:
f = x4(x1 + x2 + x3) + x3x2x1
Кстати, полученный результат f = x4(x1 + x2 + x3) + x3x2x1 наводит на печальные размышления. На русский язык эта формула переводится так: «Абитуриент будет принят в учебное заведение, если за него проголосуют 3 члена комиссии или председатель вместе хотя бы с одним членом комиссии». Но ведь
этот ответ мы могли бы получить и эвристически, на основе здравого смысла,
просто немного подумав. Не пришлось бы рисовать таблицу истинности, заполнять карту Карно и т.д. Формальное решение логических задач иногда превращает нас в «мартышек с арифмометром», отвращает от мышления. Аналогичная опасность грозит и программистам, и микропрограммистам, т.е. схемотехникам.
В алгебре множеств также возможна минимизация логических функций.
На рисунке представлены скалярные диаграммы, каждый столбец которых помечен соседними кодами. Фактически эти диаграммы представляют собой одномерную карту Карно, поэтому здесь применимы все вышеприведенные алгоритмы минимизации.
24
25
Вполне естественно, что результат минимизации не изменился:
f = x4(x1 + x2 + x3) + x3x2x1
1.7.Оценка сложности реализации булевых функций
Приблизительную оценку реализации логической функции можно дать по
ДНФ, подсчитав коэффициент сложности Кс, равный общему количеству переменных, входящих в ДНФ, плюс количество импликант. Например, для СДНФ к
задаче 1 Кс = 32+8=40, а для отминимизированной функции Кс = 9+4=13.
Для того, чтобы перейти от логической функции (ЛФ) к электронной схеме, построенной на интегральных микросхемах (ИМС) типа И-НЕ, достаточно
преобразовать ЛФ по правилу де Моргана. Например:
f = x4x1 + x4x2 + x4x3 + x3x2x1 = [(x4x1)’ & (x4x2)’ & (x4x3)’ & (x3x2x1)’]’.
Из полученного уравнения видно, что для реализации его в виде электронной схемы необходимы только элементы типа И-НЕ: 3 двухвходовых элемента(2И-НЕ), один трёхвходовой элемент(3И-НЕ) и один четырёхвходовой
элемент(4И-НЕ). При этом нужно иметь в виду, что в одном корпусе ИМС могут
быть размещены 4 элемента И-НЕ, 3 элемента 3И-НЕ , 2 элемента 4И-НЕ или 1
элемент 8И-НЕ. В наше время отпала необходимость в реализации ЛФ на элементах типа И-НЕ, поэтому можно сразу рисовать схему на элементах И и ИЛИ.
Кроме того, применение программируемых интегральных схем (ПЛИС) вообще
снимает проблему реализации: достаточно представить лишь готовую формулу
ЛФ. Минимизация по таблицам истинности в САПР для ПЛИС зачастую оказывается неэффективной, поэтому советую иногда проверять результаты минимизации при работе в САПР.
При использовании базиса И-НЕ обе функции примут вид, представленный на рисунке. Из рисунка видно, что реализация функции по СДНФ потребовала 5 корпусов ИС, по минимальной форме - 1,58 корпуса ИС, по скобочной
форме - 1,16 корпуса. Таким образом, минимизация по карте Карно дала нам
трёхкратный выигрыш по корпусам ИС относительно реализации по СДНФ. Реализация по скобочной форме уменьшила объём оборудования ещё на 30%.
Кстати, оценка экономии по Кс даёт приблизительно такой же результат: 40/13 =
3,08.
25
26
1.8. Формы задания булевых функций.
Об одной форме задания булевых функций мы уже говорили - это таблица истинности. Иногда применяется более компактная запись, использующая
восьмеричные, десятичные или шестнадцатеричные эквиваленты наборов.
Например, набор x4x3x2’x1’ может быть представлен обобщённым кодом 1100 ,
десятичным эквивалентом которого является число 12. Удобнее всего 8-чные и
16-чные коды.
Ниже приведена Паскаль-программа синтеза псевдослучайных кодов для
задания произвольных булевых функций.
program nabor;
uses crt;
type stroka = string[4];
txt = file of stroka;
var f1:txt;
x,y,i,j,n,m,b:integer;
st:stroka;
26
27
{-------------------------------------------------------------}
function intchar(m:integer):char;
var
ch:char;
begin
case m of
0..9: ch:=chr(m+ord('0'));
10..35: ch:=chr(ord('A')+m-10);
else
begin
writeln('Ошибка ввода');
halt;
end;
end{case};
intchar:=ch;
end;
{--------------------------------------------------------------}
function int10(a:longint;b:integer):string;
{Пеpевод целого 10-ичного числа в (2..36)-ичные системы}
{a,b - исх. 10-ичн. число и основание сист. счисл. соотв-енно}
var s:string;
m,i,j:integer;
chrarr:array[0..30] of string;
begin
i:=0;
for j:=0 to 30 do chrarr[j]:=' ';
repeat
m:=(a mod b);
chrarr[i]:=intchar(m);
a:=a div b;
i:=i+1;
until (a=0);
s:=chrarr[i];
for j:=i-1 downto 0 do
s:=s + chrarr[j];
int10:=s;
end;
{=================================================}
begin
{$I-} {Внутр.проверка правильности операции с файлом отключена}
writeln('**************************************************************');
writeln('* Фоpмиpование файла случайных
*');
writeln('* 2-pазpядных 4,8,16-ичных чисел для каpт Каpно *');
writeln('* Pезультиpующий файл - rnd.txt
*');
writeln('*
Лобанов В.И. 16-09-1997
*');
writeln('**************************************************************');
writeln;
write('Введите длину файла n и количество пеpеменных m(4,6,8) ');
readln(n,m);
assign(f1,'rnd.txt');{Связь f1 с pезультиpующим файлом }
27
28
{$I+}
{Включить внутр.проверку}
rewrite(f1); {Открыть файл для записи}
case m of
4: begin b:=4; x:=15; end;
6: begin b:=8; x:=63; end;
8: begin b:=16;x:=255; end;
end;{case}
randomize;
for i:=1 to n do
begin
y:=random(x);
st:=int10(y,b);
write(st:8);
write(f1,st);
end;
close(f1);
writeln;
writeln('Файл rnd.txt сфоpмиpован');
writeln('Нажмите клавишу пpобела');
repeat until keypressed;
end.
Задача 3.
Полностью определённая булева функция от 4-х переменных задана
десятичными рабочими наборами : РН(4) = 5, 6, 7, 8, 9, 10, 11.Число в скобках
указывает количество переменных. Найти минимальную форму этой функции.
Решение.
Так как функция является полностью определённой, то запрещёнными
наборами ЗН(4) являются наборы 0 - 4, 12 - 15. Исходя из этой информации,
составляем таблицу истинности и осуществляем минимизацию по карте Карно.
Таблица 4.
РН(4)
5
6
7
8
9
10
11
x4
0
0
0
1
1
1
1
x3
1
1
1
0
0
0
0
x2 x1
0 1
1 0
1 1
0 0
0 1
1 0
1 1
f
1
1
1
1
1
1
1
ЗН(4)
0
1
2
3
x4
0
0
0
0
x3
0
0
0
0
x2 x1
0 0
0 1
1 0
1 1
f
0
0
0
0
28
29
4
12
13
14
15
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
По карте Карно получаем результат:
f = x4x3’ + x4’x3(x1 + x2)
Задание 1.
Найти минимальную форму полностью определённых булевых функций,
заданных 10-чными рабочим наборами :
1-1) РН(4) = 0, 1, 5, 7 - 9, 13, 15
1-2) РН(5) = 4, 6, 8, 10, 13, 17, 24, 30
1-3) РН(6) = 1 - 8, 16 - 24, 32 - 40
1-4) РН(7) = 7 - 15, 23 - 31, 39 - 47, 50 - 63
1-5) РН(8) = 7 - 15, 100 - 132
1.9. Минимизация недоопределённых булевых функций
Функция от n переменных называется недоопределённой, если она задана не на всех 2n наборах. Задача минимизации такой функции заключается в
оптимальном доопределении, которое позволило бы покрыть рабочие наборы
минимальным количеством прямоугольников Карно, каждый из которых имел
бы максимальную площадь.
Задача 4.
Найти минимальную форму функции y, представленной на рисунке.
Решение.
Функция задана только на 5 наборах. Добавим к трём рабочим наборам
ещё пять, а именно : 0000, 0011, 1000, 1011, 1010. Все оставшиеся наборы доопределим как запрещённые. В результате такого доопределения получим
прямоугольник Карно, состоящий из 8 элементарных квадратов Карно. Этому
прямоугольнику соответствует функция : y = x3’.
29
30
Решение задачи 4.
В этом разделе изложен общепринятый подход к минимизации недоопределённых логических функций (НОЛФ). В электронике существуют дополнительные требования, связанные с противогоночной защитой цифрового
устройства. В соответствии с этими требованиями желательно взаимное перекрытие всех прямоугольников Карно.
1.10. Минимизация системы булевых функций.
Существуют достаточно сложные методы минимизации системы булевых
функций. Однако все эти методы не дают оптимального решения, поэтому при
инженерном синтезе комбинационных схем осуществляется раздельная минимизация функций, которая тоже не всегда обеспечивает минимальное решение, но подкупает простотой.
Задача 5.
Построить преобразователь двоичного кода, получаемого на выходе делителя частоты на 12, в двоично-десятичный код. Условие задачи отражено в
таблице . Делитель работает в коде 8-4-2-1.
Решение.
Для каждой функции yi заполняем карту Карно, производим доопределение и осуществляем минимизацию. Весь процесс отражён на рисунке.
В результате минимизации получаем систему функций:
30
31
y1 = x1
y2 = x4’x2
y3 = x3
y4 = x4x2’
y5 = x4x2
Карты Карно к задаче 5.
Задача 6.
Построить один разряд многоразрядного сумматора.
Решение.
Пусть ai и вi - значения i-ых разрядов слагаемых а и в , Pi и Si - значения
переноса и суммы на выходе i-го разряда, Pi-1 - значение переноса на выходе
предыдущего разряда, тогда работу сумматора можно описать с помощью таблицы истинности.
Имеем систему полностью определённых булевых функций. Производим
раздельную минимизацию (см. рисунок).
Si = ai’вi’Pi-1 + ai’вiPi-1’ + aiвi’Pi-1’ + aiвiPi-1 = Pi-1(ai~вi) + Pi-1’(ai  вi) =
31
32
Pi = вiPi-1 + aiPi-1 + aiвi
Решение задачи 6.
Для реализации лучше Pi = aiвi + Pi-1(ai~вi)’ , так как может быть использован общий для Si и Pi сомножитель (аi~вi)’. Схема сумматора представлена на
рисунке. Здесь же дано условное обозначение одноразрядного сумматора , где
А и В - одноразрядные слагаемые, P0 и P1 - входной и выходной переносы, S1 сумма.
На этом же рисунке изображён двухразрядный сумматор, выполненный
на микросхеме 133ИМ2. Здесь А1, В1, А2, В2 - соответственно значения первых
и вторых разрядов слагаемых А и В; S1 и S2 - 1-ый и 2-ой разряды суммы; P0 входной перенос для первого разряда, P2’ - выходной перенос.
Задание 2.
2-1. Построить 2/(2-10) преобразователь для делителя частоты на 24 ,
работающего в коде 16-8-4-2-1. Этот преобразователь использовался на заре
цифровой схемотехники в радиолюбительских электронных часах.
32
33
2-2. Построить 4-входовой сумматор для суммирования одноразрядных
двоичных чисел.
1.11. Анализ комбинационных схем .
В процессе работы с цифровыми схемами иногда возникает задача
определения функции, которую реализует данная структура.
Задача 2.
На рисунке представлена принципиальная схема комбинационного автомата. Определить его функцию.
Схема автомата к задаче 2.
Решение.
Определим вначале прмежуточную функцию
f1 = x1’’ + x2’’ + x3’’ = x1 + x2 + x3
Затем f2 и f3
f2 = (f1x4)’ = ((x1 + x2 + x3 )x4)’
f3 = (x1x2x3)’
Функция f = f2’ + f3’ = (x1 + x2 + x3)x4 + x1x2x3 , т.е. схема реализует скобочную форму автомата, определяющего большинство голосов.
33
34
Глава вторая
МИНИМИЗАЦИЯ ЛОГИЧЕСКИХ ФУНКЦИЙ МЕТОДОМ ОБОБЩЁННЫХ
КОДОВ.
В СДНФ функции от n переменных каждый набор
xi можно заменить
последовательностью нулей и единиц. Такая
последовательность носит
название обобщённого кода.
Метод обобщённых кодов был разработан в конце 60-х годов на 21-й
кафедре Академии им. Дзержинского д. т. н. Мавренковым Леонидом Трофимовичем. Дальнейшее развитие метода и доведение его до инженерных методик было выполнено сотрудниками этой кафедры к.т.н. Кустенко А.С., к.т.н.
Кузнецовым Н.В. и к.т.н. Салтыковым Ю.А.(см. "Вопросы оборонной техники",
1972 г.). Этот метод до сих пор является самым эффективным методом минимизации логических функций.
Я понимаю, что доходчиво изложить метод Мавренкова очень непросто.
Вполне допускаю, что не все читатели освоят этот метод. Для решения подавляющего большинства задач вполне достаточно знания карт Карно. Метод
Мавренкова должен быть реализован на ЭВМ.
Например, набору x4x3’x2x1’ соответствует обобщённый код 1010. Для
ДНФ обобщённый код (ОК) имеет прочерки на местах отсутствующих переменных. Например, для функции от 5 переменных набору x5x2’ соответствует ОК =
1--0-.
Методом обобщённых кодов удобно работать с функциями, заданными
таблицами истинности. Причём рабочим наборам соответствуют рабочие
обобщённые коды (РОК), запрещённым наборам - запрещённые обобщённые
коды (ЗОК).
Введём понятие оценочной функции. Оценочная функция F0p(F1p) определяет количество нулей (единиц) для одного разряда всех РОК. Оценочная
функция F0з(F1з) определяет количество нулей ( единиц ) для одного разряда
всех ЗОК.
Функция вида F0 = F0р + F1з называется нулевой оценочной функцией.
Функция вида F1 = F1р + F0з называется единичной оценочной функцией.
В результате минимизации булевой функции получается минимальная
ДНФ (МДНФ), состоящая из простых импликант, т.е. таких импликант, дальнейшая минимизация которых не возможна. В методе обобщённых кодов простой
импликанте соответствует минимальный обобщённый код (МОК). Будем говорить , что даннный МОК покрывает определённый РОК, если нули и единицы в
этом РОК стоят в тех же разрядах, что и в данном МОК.
Сущность метода ОК заключается в том , чтобы по максимуму оценочных
функций выбрать такие переменные , которые чаще всего встречаются в РОК и
реже всего в ЗОК , и на их основе построить такую совокупность минимальных
обобщённых кодов , которая покрывала бы все РОК и не покрывала бы ни одного ЗОК.
34
35
2.1. Общий алгоритм определения МОК.
Алгоритм 1.
1. Присвоить индексу МОК значение 1, т.е. i :=1.
2. Подсчитать по таблице истинности F0 и F1 для всех разрядов РОК и
ЗОК.
3. В качестве базы МОКi (БМОКi) или дополнение к БМОКi выбрать переменную с максимальной F0 или F1 . Если F0 = max, то переменная входит в
БМОКi нулём. Если F1=max , то переменная входит в БМОКi единицей. Если
несколько переменных имеют максимальные оценочные функции, то выбрать в
качестве БМОК ту переменную, у которой соответствующая запрещённая оценочная функция (F0з, F1з) имеет минимальное значение; в противном случае в
качестве БМОК взять любую переменную с максимальной оценочной функцией.
4. Выписать все РОК и ЗОК , покрываемые базой МОКi. Если БМОКi не
покрывает ни одного РОК или покрывает все ЗОК , то приравнять нулю оценочные функции F0 и F1 для данного разряда и перейти к п.3. Если покрываемых ЗОК нет , то перейти к п.6.
5. Подсчитать F0 и F1 для всех разрядов РОК и ЗОК, покрытых данной базой, кроме тех разрядов, которые образуют БМОКi . Присоединить к БМОКi переменную (дополнение к БМОКi ) с максимальной оценочной функцией в соответствии с требованиями п.3. Считать этот ОК новой базой МОКi . Если новая
БМОКi покрывает столько же ЗОК , сколько и на предыдущем шаге , то приравнять нулю оценочные функции для дополнения к БМОКi , отбросить присоединённую переменную и добавить к БМОКi переменную с максимальной оценочной функцией в соответствии с требованиями п.3, считать полученный ОК новой БМОКi . Если БМОКi покрывает хотя бы один ЗОК, перейти к п.4.
6. Принять в качестве МОКi базу МОКi.
7. Если все РОК из исходной таблицы истинности покрыты минимальными обобщёнными кодами, перейти к п.9.
8. Выписать из исходной таблицы истинности все ЗОК и те РОК , которые
не покрыты минимальными обобщёнными кодами . Считать вновь полученную
таблицу исходной таблицей истинности . Увеличить индекс МОК на единицу,
т.е. i :=i+1. Перейти к п.2.
9. Конец.
Поясним положение пп.4 и 5 алгоритма 1. Пусть таблица истинности состоит из одного РОК 1110 и трёх ЗОК : 1010, 0110 и 1111.
После подсчёта оценочных функций оказалось, что для второго разряда
35
36
F0 = 3 = max. Если в соответствии с максимумом оценочной функции взять в
качестве БМОК код --0- , то этот код не покроет ни одного РОК, что недопустимо, т.к. БМОК обязательно должна покрыть хотя бы один РОК.
Несколько иная ситуация складывается в том случае , когда БМОК,
найденная по максимуму оценочной функции , покрывает часть РОК и все ЗОК.
Пусть функция задана пятью РОК и одним ЗОК.
Если в соответствии с максимумом взять в качестве БМОК код --1-, то в
конце концов мы построим некоторый ОК, не покрывающий ни одного ЗОК , но
длина этого ОК не будет минимальной. Проиллюстрируем выполнение алгоритма 1 примерами.
Задача 7.
Построить МДНФ булевой функции y, заданной таблицей, по методу ОК.
Решение .
1. Выбираем в качестве БМОК1 переменную x3 , т.е. БМОК1 = -1--. Эта
БМОК1 покрывает все РОК и один ЗОК .
2. Выписываем эти РОК и ЗОК (см.след. таблицу ).
3. По максимальному F0 = 5 определяем вторую переменную базы МОК1.
Это переменная x1. Она входит в БМОК инверсным значением , т.е. БМОК1 = -10.
4. Так как БМОК1 = -1-0 не покрывает ни одного ЗОК и покрывает все
36
37
РОК, то минимизацию считаем законченной и принимаем МОК1 = БМОК1 = -1-0 ,
т.е.
y = x3x1’ .
Такой же результат получается и по карте Карно .
Задача 8.
Построить МДНФ функции , заданной таблицей.
Решение.
1. Принимаем БМОК1 по F1 = 10 (можно по F0 =10).
БМОК1 = --1----БМОК1 покрывает один ЗОК и все РОК.
2. Выписываем все РОК и ЗОК , покрываемые БМОК1. После подсчёта
оценочных функций оказывается, что максимум F0 приходится на x1, поэтому
БМОК1 = --1----0
МОК1 = БМОК1 = --1----0
3.Непокрытым оказался только один РОК. Выписываем этот РОК и все
ЗОК в таблицу.
37
38
4. Находим БМОК2 = -----1-МОК2 = БМОК2 = -----1-Результат минимизации выглядит так :
y = x6x1’ + x3
Такой же результат получен и по карте Карно.
Задание 3.
Найти минимальную форму функций , указанных в задании 1, методом
обобщённых кодов.
2.2. Алгоритм соседнего определения базы МОК (алгоритм Мавренкова).
Алгоритм 1 требует раздельного размещения РОК и ЗОК. Приведение
таблицы истинности к такому виду усложняет метод ОК.
Процесс минимизации методом ОК может быть существенно упрощен, если определение БМОК производить с использованием приводимого ниже алгоритма.
Алгоритм 2.
1. Присвоить индексу МОК значение 1, т.е. i := 1 .
2. Присвоить индексу РОК значение 1 , т.е. j := 1.
3. Взять РОК из исходной таблицы истинности и, сравнивая его со всеми
ЗОК , определить переменные , по которым РОК может быть склеен с ЗОК. Эта
совокупность переменных и будет базой МОКi . Перейти к п.7.
4. Если РОКj не имеет соседних ЗОК, то j := j + 1 и перейти к п.3. Если в
таблице истинности нет ни одного РОК, соседнего хотя бы с одним ЗОК , то перейти к п.5.
5. Подсчитать по таблице истинности F0 и F1 для всех разрядов.
6. В качестве базы МОКi (БМОКi ) или дополнения к БМОКi выбрать переменную с максимальной F0 или F1. Если F0 = max, то переменная входит в
БМОКi нулём. Если F1 = max , то переменная входит в БМОКi единицей . Если
несколько переменных имеют одинаковые оценочные (максимальные) функции
, то выбрать в качестве БМОКi ту переменную , у которой соответствующая запрещённая оценочная функция ( F0з или F1з ) имеет минимальное значение, в
противном случае в качестве БМОКi взять любую переменную с максимальной
оценочной функцией F0 или F1 .
7. Выписать РОК и ЗОК , покрываемые базой МОКi . Если БМОКi не покрывает ни одного РОК или покрывает все ЗОК, то приравнять нулю оценочные
функции F0 и F1 для данного разряда и перейти к п.6. Если покрываемых ЗОК
нет , то перейти к п.9.
8. Подсчитать F0 и F1 для всех разрядов РОК и ЗОК , покрываемых дан-
38
39
ной базой, кроме разрядов (переменных) , образующих БМОКi. Присоединить к
БМОКi переменную (дополнение к БМОКi ) с максимальной оценочной функцией в соответствии с требованиями п.6. Считать полученный ОК новой базой
МОКi . Если новая БМОКi покрывает столько же ЗОК, сколько и на предыдущем
шаге, то приравнять нулю оценочные функции или дополнения к БМОКi , отбросить присоединённую переменную и добавить к БМОКi переменную с максимальной оценочной функцией в соответствии с положениями п.6, считать полученный ОК новой БМОКi .Если БМОКi покрывает хотя бы один ЗОК, перейти к
п.7.
9. Принять в качестве МОКi базу МОКi .
10. Если все РОК из исходной таблицы истинности покрыты минимальными обобщёнными кодами, перейти к п.12.
11. Выписать из исходной таблицы истинности все ЗОК и те РОК , которые не покрыты минимальными обобщёнными кодами . Считать вновь полученную таблицу исходной таблицей истинности. Увеличить индекс МОК на единицу , т.е. i := i+1. Перейти к п.2.
12. Конец.
Задача 9.
Произвести минимизацию булевой функции , заданной таблицей.
Решение.
1. По алгоритму 2 пп. 1-3 для РОК2 находим соседний ЗОК, т.е. находим
БМОК1 = ---0----.
2. По алгоритму 2 пп. 7-9 находим
МОК1 = ---0--0Так как МОК1 покрывает все РОК , то в соответствии с п.10 алгоритма 2
получаем
y = x5’x2’
Сущность алгоритма 2 заключается в том , что отыскиваются в первую
очередь « необходимые « МОК, т.е. МОК для тех РОК , развязывание которых с
ЗОК максимально затруднено , так как они развязываются только по тем переменным , по которым возможно склеивание данного РОК со всеми ЗОК. Под
развязыванием понимается процесс выявления тех переменных в РОК, кото-
39
40
рые не встречаются в ЗОК.
Задача 10.
Произвести минимизацию булевой функции , заданной таблицей.
Решение .
1. По алгоритму 2 пп.1-3 для РОК1 находим
БМОК1 = ----02. По алгоритму 2 пп.7, 8 строим таблицу.
3. По алгоритму 2 п.8 из таблицы находим БМОК1 = ---004. По алгоритму 2 п.9
МОК1 = БМОК1 = ---005. По алгоритму 2 для непокрытых РОК (для РОК3) находим
БМОК2 = -1----.
6. По алгоритму 2 пп.7, 8 , 11 строим таблицу.
7. По алгоритму 2 п.9 находим МОК2
МОК2 = 01---8. По алгоритму 2 пп.7, 8, 11 строим следующую таблицу .
40
41
9. По алгоритму 2 п.3 находим БМОК3
БМОК3 = ----110. По алгоритму 2 пп. 7, 8, 11 строим таблицу.
11. Из таблицы по алгоритму 2 п.8 находим
БМОК3 = ----11
12. По алгоритму 2 пп. 7, 8 строим следующую таблицу.
13. По таблице 17 определяем
МОК3 = -1--11
Таким образом ,
y = x3’x2’ + x5x2x1 + x6’x5
На рисунке представлено решение задачи 10 с помощью карты Карно .
Функция y представлена в виде МДНФ.
Из рисунка видно , что результаты минимизации по карте Карно и по методу обобщённых кодов совпадают.
41
42
Задача 10а.
Произвести минимизацию логической функции, заданной таблицей истинности.
Т.к. РОК3 и ЗОК1 являются соседними по x7,то в качестве БМОК1 выбираем х7’,не обращая внимание на абсолютный максимум F0 для х8.БМОК1 по-
42
43
крывает РОК1 - РОК5 и ЗОК3,ЗОК5.Подсчитаем оценочные функции для выбора
дополнения к БМОК1 и получения МОК1.
Дополнение х4’ могло бы привести нас к МДНФ,поэтому мы выберем эквивалентное по оценочной функции дополнение х1,чтобы убедиться в некоторых недостатках метода. В результате получим МОК1 = x7’x1. Поскольку МОК1
покрывает РОК с номерами 1,3 - 5,то стартовая таблица для синтеза БМОК2
выглядит так:
Исходя из этой таблицы получаем БМОК2 = x8’. Для нахождения МОК2
строим следующую таблицу.
Отсюда получаем МОК2 = х8’x5’, который дополнительно покрывает РОК2
и РОК6. Найдём БМОК3.
43
44
F0 для х3 имеет максимальное значение,но использовать x3’ в качестве
БМОК3 нельзя,поскольку единственный РОК не имеет нуля в данном разряде.
Принимаем БМОК3 = x8’. Строим очередную таблицу для синтеза последнего
МОК.
Из последней таблицы получаем МОК3 = x8’x7x4.Таким образом мы получили тупиковую ДНФ
y = x8’x7x4 + х8’x5’ + x7’x1.
По карте Карно получена минимальная ДНФ
y =х8’x5’ + x7x1’ + x7’x4’.
Т.е. высокая эффективность метода обобщённых кодов не всегда гарантирует получение МДНФ. Кроме того, если рассмотреть недоопределённую логическую функцию, заданную 8-ичными наборами: РОК – 67,73,63 и ЗОК –
37,65,66, то окажется, что по первому алгоритму получим избыточное решение.
В этом случае y = x3’ + x6x2x1. При минимизации по второму алгоритму y =
x6x2x1.Таким образом, алгоритм 2 не только менее трудоёмок, но и более эффективен.
Проверка результата минимизации булевых функций.
Результат минимизации булевой функции является корректным , если
выполняются следующие условия:
1. Совокупность МОК покрывает все РОК .
2. Совокупность МОК не покрывает ни одного ЗОК.
2.3. Выводы.
Далеко не всегда по методу ОК может быть получена МДНФ. Чаще всего
44
45
в результате минимизации удаётся получить одну из тупиковых ДНФ. В этом
недостаток метода. Алгоритм 2 по сравнению с алгоритмом 1 даёт более компактный результат, т.е. вероятность получения МДНФ по алгоритму 2 выше,
чем по алгоритму 1.
Достоинствами метода являются простота и высокая скорость получения
результата. Особенно этот метод эффективен для минимизации булевых
функций от большого числа переменных (n8). Вполне приемлемым даже без
применения ЦВМ является число наборов , на которых задана функция , в пределах 1000. Например , 6 булевых функций от 12 переменных, определённые
на 320 наборах (см. задачу 11) были отминимизированы вручную в течение 30
минут. Разумеется , задача такой сложности может быть решена на ЭВМ. Однако даже только на ввод с последующей проверкой 320 наборов для 6 функций потребуется значительно больше времени, чем на ручное решение. Эффективность данного алгоритма выше всех других, известных автору.
В соответствии с алгоритмом 2 в 1974г. была написана программа, которая позволяла минимизировать булевы функции от 36 переменных, определённые на 2000 наборах. Программа осуществляла контроль правильности
ввода исходных массивов. Если функция введена неверно , то выводились на
печать неправильно введённые РОК или ЗОК , а программа переходила к минимизации следующей функции. Время , затраченное ЦВМ М-220 на минимизацию булевой функции от 36 переменных , определённой на 1000 наборах ,
составило 6 минут .В 1985г. на языке Паскаль эта программа была переписана
для ПЭВМ ДВК-2М. Она обрабатывала 16 функций от 32 переменных. Количество наборов достигало 2000.
Вопрос о минимизации булевых функций вручную или с использованием
ПЭВМ решается в зависимости от количества наборов, на которых задана
функция, количества соседних РОК и ЗОК, а также от частоты чередования
РОК и ЗОК в исходной таблице истинности. Чем больше количество наборов,
задающих функцию, чем меньше соседних РОК и ЗОК, чем выше частота чередования РОК и ЗОК, тем предпочтительнее использование ЭВМ. Например,
систему из 7 булевых функций от 18 переменных, заданную на 80 наборах ,
оказалось рациональнее решать с помощью ЭВМ , так как в этой системе не
нашлось ни одной соседней пары РОК и ЗОК, а частота чередования РОК и
ЗОК для отдельных функций достигала 40.Однако за 35 лет инженерной практики разработки цифровых устройств и систем автор лишь трижды обращался к
услугам ЭВМ при решении задач минимизации булевых функций.
Задание 4.
45
46
Методом обобщённых кодов найти минимальное представление функций, заданных на рабочих и запрещённых наборах.
4-1) РН(4): 0, 4, 6, 10; ЗН(4): 7, 13. Ответ : Кс = 1
4-2) РН(5): 4, 2, 29, 23; ЗН(5): 3, 21. Ответ : Кс = 7 = (1+1+2)+3
4-3) РН(6): 0, 9, 10, 13, 57, 63, 36; ЗН(6): 27, 29, 18, 44, 33.
Ответ : Кс = 9 = (2+2+2)+3
4-4) РН(6): 1, 4, 14, 21, 35, 62; ЗН(6): 3, 7, 30, 9.
Ответ : Кс = 8 = (2+2+1)+3
4-5) РН(8): 16, 49, 35, 41, 253, 167, 158; ЗН(8): 99, 125, 90, 249, 1
Ответ : Кс = 9 = (2+2+2)+3
Примечание: Кс - коэффициент сложности булевой функции.
46
47
«Читай и слушай для собственного развлечения рассказы о хитроумных системах,
вникай в интересные вопросы, поставленные там со всей изощрённостью, какой
только может наделить их пылкая фантазия, но смотри на всё это только как на
упражнения для ума и возвращайся каждый
раз к согласию со здравым смыслом...»
(Честерфилд «Письма к сыну»)
ЧАСТЬ 2
Математическая логика суждений и предикатов.
Глава первая
Всё, о чем далее будет идти речь (комплементарная логика, решение
логических уравнений, русская
силлогистика, силлогистика АристотеляЖергонна, общеразговорная силлогистика и т. д.) разработано в России и не
известно мировой науке. Поэтому призываю всех читателей воспринимать
мои методы крайне критически и обязательно проверять их с точки зрения
здравого смысла. Весьма показателен пример некритического отношения к
теории относительности (ТО), которую к 1998г. немецкие физики Георг Галецки
и Петер Марквардт низвели с пьедестала. "Тысячи" экспериментов в защиту
нечистоплотного Эйнштейна оказались фиктивными. Из 5 реальных попыток
не было ни одной удачной. Великие русские учёные Н.Е.Жуковский и
К.Э.Циолковский категорически отрицали ТО Эйнштейна. В СССР ещё в 40-е и
60-е годы также были выступления и публикации учёных, критиковавших ТО.
Наиболее ярко отношение советской науки к ТО выражено в работах В. А. Ацюковского "Логические и экспериментальные основы теории относительности" –
М.: МПИ, 1990 – 56с., «блеск и нищета теории относительности Эйнштейна» г.Жуковский: Петит, 2000 – 17с. и статье В.Булавина «Гений всех времён» (см.
Internet).
Прежде, чем приступить к рассмотрению базовых проблем, стоит совершить небольшой экскурс в историю логики. Эта наука как основополагающий
раздел философии появилась в конце второго тысячелетия до н. э. в Индии.
Затем она перекочевала в Китай, где в 479-381гг до н. э. наблюдался период
расцвета логики и философии, связанный с учением Мо Цзы.
Наибольшего развития логика достигает в Древней Греции. Главные её
достижения связываются с именами Сократа(470-399гг. до н. э.), Платона(428348 гг. до н. э.), Аристотеля(384-322гг. до н. э.), стоиков Зенона из Китиона(336264гг. до н. э.) и Хризиппа(280-205гг. до н. э.), представившего теорию материальной импликации. Следует хотя бы просто перечислить имена ученых, уделявших самое пристальное внимание логике[36].
Ибн-Сина (Авиценна) – среднеазиатский мыслитель с широким кругом
интересов, род. в 980г. в Афшане, возле Бухары, умер в 1037г. Ему уже была
47
48
известна формула импликации (возможно, из работ стоиков).
Михаил Псёлл – византийский логик (1018-1096гг.), автор «квадрата
Псёлла».
Роджер Бэкон – английский философ(1214-1294гг.), считал в частности,
что «простой опыт учит лучше всякого силлогизма», т. е. опирался на логику
здравого смысла.
Уильям Оккам – английский философ, логик(1300-1349гг.). Ввёл троичную
логику за много веков до Лукасевича. Автор «принципа простоты» ("бритва Оккама").
Фрэнсис Бэкон (1561—1626), английский философ, родоначальник английского материализма. Лорд-канцлер при короле Якове I. В 1605 г. опубликовал свой трактат “Распространение образования”, в котором призывал положить в основу образования эксперименты и наблюдения. В его главном труде “Новый органон” (1620 г.) - был намечен научный метод, названный им индуктивным, для увеличения власти человека над природой. Он резко критиковал
предложенный ещё Аристотелем метод установления истины из априорных
предположений и предлагал производить множество опытов, которые способствуют ускорению темпа и строгости научного открытия. Утверждал, что логика
Аристотеля не просто бесполезна, но вредна.
Антуан Арно(1612-1694) и Пьер Николь(1625-1695) – французские логики,
авторы книги «Логика Пор-Рояля» (монастырь во Франции), последователи Декарта.
Арнольд Гейлинкс – бельгийский логик и философ(1625-1669гг). Опроверг за несколько веков до официального признания общезначимость модуса
DARAPTI для 3-й фигуры силлогизмов. Доказал правила Де Моргана:
1. ab  a+b
2. (a  b)’  (b’  a’)’
3. (bc)(ac)’  (ab)’
4. (ab)(ac)’  (bc)’
5. ab’  (ab)’
Готфрид Вильгельм Лейбниц – немецкий философ, математик, физик(1646-1716). Осовоположник символической логики. Впервые чётко сформулировал задачу математизации логики. Задолго до Эйлера использовал «круги
Эйлера». Впервые поставил «техническое задание» для силлогистики. Сформулировал и доказал теоремы:
1. Aab Aac  Aa(bc). На самом деле, иногда может быть и (a = bc).
2. Aab Acd  A(ac)(bd). На самом деле, иногда может быть и (ac = bd).
3. A(ab)a, т. е. все (ab) суть а.
4. A(ab)b, т. е. все (ab) суть b.
Якоб и Иоганн Бернулли(1654-1705 и 1667-1748) – ученики Лейбница.
Ввели операцию вычитания множеств.
Леонард Эйлер – математик, физик, астроном(1707-1783). Родился в
Швейцарии, но вся научная жизнь прошла в России. Создатель «кругов Эйлера», основы формальной силлогистики.
Иоганн Генрих Ламберт – швейцарский логик(1728-1777), последователь
Лейбница. Предвосхитил ряд работ Джорджа Буля(разложение функции на
элементарные составляющие), ввёл скалярные диаграммы для геометрической
интерпретации силлогизмов, но не довёл их до практического применения для
анализа и синтеза силогизмов.
Ж.. Д. Жергонн – французский астроном и логик(1771-1859). Впервые
48
49
зафиксировал с помощью кругов Эйлера силлогистический базис Аристотеля.
Август Де Морган – шотландский логик(1806-1871), автор логики отношений, «правил Де Моргана».
Джордж Буль – английский логик(1815-1864),создатель Булевой алгебры.
Отец Этель Лилиан Войнич (автор романа «Овод»).
Платон Сергеевич Порецкий (1846-1907) – профессор Казанского университета. Он опередил не только своё время, но и Бертрана Рассела.
П.Эренфест сказал, что Порецкий намного упростил приёмы решения логических уравнений по сравнению с Дж. Булем и Шредером. Могу добавить, что
русский логик впервые в мире дал аналитическое представление силлогистических функторов Axy и Exy. Этого не заметили ни зарубежные логики, ни, что
самое обидное, отечественные учёные. В течение 120 лет научные результаты
великого русского логика не были востребованы наукой, которая до сих пор
прозябает в невежестве. Основополагающие результаты Порецкого[34] до сих
пор не освоены отечественной и мировой наукой. Аналитическая силлогистика
зародилась 120 лет назад, но до сих пор не вошла в учебники логики.
Николай Александрович Васильев(1880-1940) – советский учёный, автор
монографии «О частных суждениях», в которой впервые заявляет, что силлогистика Аристотеля не имеет никакого отношения к здравому смыслу. Сформулировал требования к силлогистическому базису здравого смысла.
Из современных учёных, пытающихся решить фундаментальные проблемы логики, необходимо в первую очередь отметить Брусенцова Н. П. [2 – 4],
Светлова В. А., создавшего элегантные методы синтеза силлогизмов [35].
Особенно отрадно, что наряду с изяществом решения проблем силлогистики
Светлов В.А. насытил свой труд огромным количеством примеров.
Глава вторая
2.1.Законы логики суждений
Автор не открывает здесь ничего нового (всё уже открыто более 120 лет
назад величайшим русским логиком П.С.Порецким), но, излагая данный материал, хочет показать всю простоту аналитических выводов данных законов,
следовательно, и их никчёмность: незачем заучивать десятки правил, если доказательство столь примитивно. Всё дело в том, что в классической логике доказательство построено на громоздком аппарате таблиц истинности и словесной казуистике[9].Трудно назвать грамотным такое решение проблемы. Инженерная логика использует более совершенный инструмент для анализа и синтеза законов[26].
Алгоритм «Импульс» анализа законов логики суждений.
Алгоритм анализа законов логики суждений чрезвычайно прост:
1)произвести замену всех знаков импликации на символы дизъюнкции в
соответствии с известной формулой x  y = x’ + y;
2)привести полученное выражение к ДНФ;
3)занести ДНФ в карту Карно и убедиться, что она вся покрыта единицами – это свидетельствует о истинности проверяемого закона или суждения.
Воспользуемся перечнем законов из [9] для апробации алгоритма «Им-
49
50
пульс».
1.Закон исключённого третьего: p или неверно, что p.
В переводе на язык логики этот закон выглядит так: p + p’ = 1.Это тривиальное равенство, не требующее доказательства.
2.Закон непротиворечивости: неверно, что [р и не р].
На языке логики:p & p’ = 0. Это равенство верно по определению.
3.Закон двойного отрицания: если [не (не р)], то р.
Необходимо доказать, что (p’)’  p = 1.Доказательство основано на двойном отрицании и импликации: (p’)’  p = p  p = p’ + p = 1.
4.Обратный закон двойного отрицания: если р, то [не (не р)].
p  (p’)’= p’ + p = 1.
5.Закон контрапозиции: если (если р, то q), то [если (не q), то(не р)].
(p  q)  (q’  p’) = (p’ + q)  (q + p’) = pq’ + p’ + q = 1.
6.Законы, характеризующие конъюнкцию.
6.1.Если (р и q), то (q и р): pq  qp = (pq)’ + pq = 1.
6.2.Если (р и q),то р: (pq)  p = (pq)’ + p = p’ + q’ + p = 1.
6.3.Если р и q, то q: (pq)  q = (pq)’ + q = p’ + q’ + q = 1.
6.4.Если р, то [если q, то (p и q)]: p  (q  pq) = p’ + q’ + pq = 1.
7.Законы импликативных силлогизмов.
7.1.Если [(если р, то q) и (если р,то r)], то [если р, то(q и r )].
[(p  q)(p  r)]  (p  qr) = [(p’ + q)(p’ + r)]’ + p’ + qr =
= (p’+qr)’+p’+qr = 1.
7.2.Если [(если р, то q) и (если r,то s)],то [если(р и r),то (q и s)].
[(pq)(rs)]  (prqs) = [(p’+q)(r’+s)]’+p’+r’+qs = pq’+rs’+p’+r’+qs = 1.
7.3.Если [(если р, то q) и (если q, то r)],то (если р, то r).
[(pq)(qr)]  (pr) = pq’+qr’+p’+r = 1.
7.4.Если [(если р, то q) и (если r, то q)],то [если (р или r), то q].
[(pq)(rq)]  [(p+r) q] = pq’+rq’+p’r’+q = 1.
8.Законы, характеризующие дизъюнкцию.
8.1.Если (р или q), то (q или p).
(p+q)  (q+p) = (p+q)’+(p+q) = 1.
8.2.Если (р или q), то (если не р, то q).
(p+q)  (p’q) = p’q’+p+q = 1.
Как видит читатель, такие законы можно «изобретать» и доказывать десятками. Во всех выводах применялась аналитическая минимизация логических функций. Однако значительно проще для этой цели использовать карты
Карно.
Безусловно, доказательство истинности того или иного суждения, закона,
правила и т.п. весьма важно, но значительно интереснее и важнее выяснение
всех возможных заключений, которые могут последовать из заданных посылок.
Для этой цели служит алгоритм «Импульс-С».
Алгоритм «Импульс-С» синтеза импликативного заключения.
Алгоритм инженерного синтеза импликативных силлогизмов по заданным
посылкам немногим отличается от предыдущего алгоритма:
50
51
1)найти полную единицу системы М посылок, заменив импликацию по
формуле x  y = x’ + y;
2)привести полученное выражение к ДНФ;
3)подставляя в полученное выражение необходимые аргументы и отбрасывая лишние, т.е. заменяя их логической единицей, выводим соответствующие заключения как функции интересующих нас аргументов. Если в результате
подстановки будет получена единица, то заключение является частноутвердительным.
Пример.
Пусть известно, что [(pq)(qr)]. Найти заключение f(q,r).
Решение.
По алгоритму «Импульс-С» имеем:
1. M = (pq)(qr) = (p’+q)(q’+r).
2. M = (p’+q)(q’+r) = p’q’+p’r+qr = p’q’+qr.
3. f(q,r) = M(q,r) = q’+qr = q’+r = q  r.
Задача 2.1.1.
Рассмотрим задачу из [7] о крокодиле. Когда крокодил похитил ребёнка
одной египтянки и та попросила его не есть ребёнка, то крокодил ответил: " Я
верну тебе ребёнка, если ты отгадаешь, что я с ним сделаю". Найти ответ египтянки.
Решение.
В [7] даётся пространное, на 5 страницах, словесное толкование различных ситуаций. Решим эту задачу аналитически.
Обозначим через х - "крокодил съест ребёнка", через у - ответ египтянки:
" Ты съешь ребёнка". Тогда условие крокодила будет описано следующей формулой:
[(xy)x'][(x y)x] = ((x y)+ x’)(( xy)+x)=(xy'+x'y+x')(x'y'+xy+x)=(x'+y')(x+y') = y'.
Следовательно, условие крокодила непротиворечиво лишь при ответе: "
Ты не съешь ребёнка". Значит, египтянка должна ответить: " Ты съешь ребёнка" - тогда крокодил умрёт от противоречий.
Аналогично решается задача о путнике на мосту, которого за правдивый
ответ должны повесить, а за ложный - утопить.
Задача 2.1.2.
В тёмной комнате находятся 3 мудреца. На столе лежат 2 белых и 3
чёрных шляпы. Каждый мудрец надевает наугад одну из шляп, затем все
"кильватерной колонной" выходят в освещённое помещение. 3-й мудрец видит
шляпы 1-го и 2-го мудрецов, 2-й - только шляпу 1-го. На вопрос о цвете шляп 3й и 2-й мудрец ответили : " Не знаю" . Что сказал 1-й мудрец ?
Решение.
Пусть х1, х2, х3 означают, что чёрные шляпы надеты соответственно 1-м,
2-м и 3-м мудрецами. Ответ 3-го мудреца означает, что на на 1-м и 2-м - не
51
52
белые шляпы, что соответствует выражению (х1' х2')'. Если бы на первом мудреце была белая шляпа, то 2-й по ответу 3-го определил бы, что на нём чёрная
шляпа . Т. к. 2-й мудрец не нашёл ответа, то имеем (х1')' = х1. В итоге получим:
(х1' х2')'х1 = (х1 + х2)х1 = х1. Значит, на первом мудреце чёрная шляпа, а на втором могла быть любая шляпа.
Задача 2.1.3.
В [36,стр. 432] приведена аксиоматическая система Фреге. Непонятно,
почему эта система носит название аксиоматической. Аксиома – это исходное
положение, принимаемое без доказательств при дедуктивном построении теории(“Толковый математический словарь” – М.: Рус.яз., 1989 – 244с.). Докажем
все “аксиомы” с помощью алгоритма “Импульс”.
1. M = a  (b  a) = a’+b’+a = 1
2. M = (c  (ab))  ((ca)  (cb)) = (c’+a’+b)  (a’c+c’+b) =
(c’+a’+b)  (a’+c’+b) = 1
3. M = (a(bc))  (b(ac)) = (a’+b’+c)  (b’+a’+c) = 1
4. M = (ab)  (b’ a’) = (a’+b)  (a’+b) = 1
5. a’’  a = a’+a = 1
6. a  a’’ = a’+a = 1
Таким образом, мы подтвердили корректность всех “аксиом “ Фреге. Аксиомами их считать можно лишь при полном незнании математической логики.
Арнольд Гейлинкс – бельгийский логик и философ(1625-1669гг) доказал
правила де Моргана:
6. ab  a+b
7. (a  b)’  (b’  a’)’
8. (bc)(ac)’  (ab)’
9. (ab)(ac)’  (bc)’
10. ab’  (ab)’
Докажем эти правила современными методами (алгоритм “Импульс”).
ab  a+b = (ab)'+a+b = a'+b'+a+b = 1
(a  b)'  (b'a')' = (a  b)+(b+a')' = (a'+b)+(a'+b)' = 1
(bc)(ac)'  (ab)' = bc'+a'+c+ab' = 1
(ab)(ac)'  (bc)' = ab'+a'+c+bc' = 1
ab'  (ab)' = (a'+b)+(a'+b)' = 1
Позднеримский философ Боэций (480-524) [36, стр. 100] выявил следующее соотношение: (x  y)  (x’y’  xy  x’y). Классическая логика доказывает
этот закон с помощью таблиц истинности, что и громоздко, и непрофессионально. С помощью алгоритма “Импульс” доказательство укладывается в две
строчки. Читатель в состоянии самостоятельно выполнить это доказательство.
Задача 2.1.4.
В [36,стр.284] приводится закон замкнутых (гауберовых)
(ab)(cd)(ef)(bd’)(df’)(fb’)(a+c+e)  (a’b’)(c’d’)(e’f’).
Проверим его состоятельность.
52
систем:
53
Решение.
По алгоритму “Импульс” получим следующие соотношения.
М = (ab)(cd)(ef)(bd’)(df’)(fb’)(a+c+e)  (a’b’)(c’d’)(e’f’) =
= (a’+b)(c’+d)(e’+f)(b’+d’)(d’+f’)(f’+b’)(a+c+e)  (a+b’)(c+d’)(e+f’) =
= ab’+cd’+ef’+bd+df+bf+a’c’e’+ad’e+ad’f’+b’d’e+b’d’f’+b’ce+b’cf’+acf’ = 1.
Таким образом, мы доказали истинность закона. Однако проверим его
физическую реализуемость. Ведь совершенно ясно, что (ab)  (a’b’)  1.
Поэтому проверим, какие выводы на самом деле следуют из заданных посылок. По алгоритму “Импульс - C” найдём полную единицу системы, а из неё
сможем получить любые интересующие нас функции от необходимых аргументов.
М=(ab)(cd)(ef)(bd’)(df’)(fb’)(a+c+e)=
(a’+b)(c’+d)(e’+f)(b’+d’)(d’+f’)(f’+b’)(a+c+e)
M’ = ab’+cd’+ef’+bd+df+bf+a’c’e’
После занесения M’ в карту Карно и заполнения оставшихся пустыми
клеток карты единицами получим:
M = a’b’c’d’ef+a’b’cde’f’+abc’d’e’f’, откуда
M(a,b) = a’b’+ab = (a  b)
M(c,d) = c’d’+cd = (c  d)
M(e,f) = e’f’+ef = (e  f)
Это отнюдь не согласуется с выводами Гаубера. Для большей наглядности проиллюстрируем закон замкнутых систем скалярными диаграммами. В
формуле полной единицы М мы получили три набора. Изобразим эти наборы в
виде скаляров: М = 000011+001100+110000. Каждая единица набора изображается утолщённой линией.
Графические результаты подтверждают наши аналитические выкладки.
Функции импликации и равнозначности не идентичны. Как будет показано в
дальнейшем, импликация аналогична силлогистическому общеутвердительному функтору. Поэтому результаты Гаубера некорректны. Суть его ошибки заключается в том, что были заданы очень жёсткие исходные уловия, которые
могут быть выполнены лишь с некоторыми ограничениями.
Задача 2.1.5.
Это задача Лобановой С.В. При синтезе функции переноса в однораз-
53
54
рядном сумматоре получается выражение:
p1 = p0(ab)+ab, где а,b – складываемые числа, p0 и p1 – входной и выходной переносы. После минимизации получается функция p1 = p0(a+b)+ab.
Напрашивается «очевидный» вывод: (ab) = (a+b). Но это противоречит здравому смыслу и математике. Поэтому проверим истинность суждения:
[(p0(ab)+ab) = [(p0(a+b)+ab)]  [(ab) = (a+b)].
Решение.
Доказывать истинность [(p0(ab)+ab) = [(p0(a+b)+ab)]  [(ab)=(a+b)]=1
достаточно муторно, поэтому рассмотрим общий случай, на его основе выведем общий закон, а на основе закона решим задачу Лобановой С.В.
Исходя из равенств y = ax+b, y = az+b проверить суждение
[(ax+b) = (az+b)]  (x=z), т.е. можно ли удалять из правой и левой части
равенства одинаковые логические слагаемые и сомножители.
На основе алгоритма «Импульс» получаем
[(ax+b)=(az+b)](x=z) = (ax+b)(az+b)+(x=z) = (ax+b)(az+b) + b’(a’+x’)+
(x=z) = b+axz+a’b’+b’x’+xz+x’z’ = x’+z+a’+b  1.
Из этого закона ясно видно, что исходное суждение ложно. Это было
видно и без закона, на основании здравого смысла, однако его всегда нужно
поддерживать строгими математическими доказательствами. Поскольку закон
инициирован задачей Лобановой С.В., то он носит её имя. Поставить вопрос
оказалось сложнее, чем ответить на него.
Мы доказали, что нельзя сокращать обе части равенства на общие логические сомножители или удалять общие логические слагаемые.
Закон Лобановой С.В.
Сокращение на общий множитель или отбрасывание общих частей в
левой и правой половинах логического уравнения недопустимо.
Аналогично выведем и все другие импликативные законы логического
умножения и сложения, не известные мировой классической логике. Простота
алгоритмов «Импульс» и «Импульс-С» превращает дедуктивную логику в индуктивную.
Математическое доказательство импликативных законов настолько просто, прозрачно и примитивно, что нет никакого резона запоминать не только их,
но и подавляющее большинство остальных логических законов. Школьники и
студенты ни в коем случае не должны зубрить любые законы, но обязаны при
необходимости уметь их выводить. Зубрёжка унижает Человека. Связь импликативных законов с силлогистикой будет рассмотрена в соответствующем разделе.
54
55
55
56
56
57
57
58
58
59
Рассмотрим некоторые частные случаи импликативных законов. Попытаемся найти условия, при которых возможно сокращение общих множителей или
исключение общих слагаемых.
(ac=bc)(a→c)(b→c) → (a=b) = (ac=bc)(a’+c)(b’+c) → (a=b)=(ac≠bc)+ac’+bc’+(a=b) =
= ac(bc)+(ac)’bc+ac’+bc’+ab+a’b’ = 1.
((a+c)=(b+c))(a→c’)(b→c’) → (a=b) = ((a+c)≠(b+c))+ac+bc+(a=b) =
=(a+c)(b+c)’+(a+c)’(b+c)+ ac+bc+(a=b) = ab’c’+a’bc’+ac+bc+ab+a’b’ = 1.
Нам удалось найти такие условия. Смысл этих условий станет понятным при
изучении силлогистики, когда мы докажем, что (x → y) ≡ Axy.
2.2. Практикум по логике суждений.
Прекрасным примером применения логики суждений для доказательства
законов в различных областях науки являются задачи, предложенные Сергеем
Леонидовичем Катречко[8]. Речь идёт о таких науках как математика, физика,
химия, грамматика, богословие и др. Сам автор решает эти задачи на основе
рассуждений. Однако алгоритм “Импульс” существенно упрощает выводы.
Задача 2.2.1.
Если равнодействующая всех сил, действующих на движущееся тело, не
равна 0, то оно движется неравномерно или непрямолинейно, так как известно,
что если эта равнодействующая равна 0, то тело движется раномерно и прямолинейно.
Решение.
Проверим это утверждение. Введём следующие обозначения:
X – равнодействующая всех сил равна 0,
59
60
Y – движение равномерно,
Z - движение прямолинейно.
Тогда по алгоритму “Импульс” получим:
(x  yz)  (x’  (y’+z’)) = (x’+yz)  (x+y’+z’) = x(y’+z’)+x+y’+z’ =
= x+y’+z’  1.
Т.е. мы доказали несостоятельность данного доказательства, но не
утверждения. Здесь посылка и заключение связаны эквивалентностью, а не
импликативностью.
Задача 2.2.2.
Если все посылки истинны и рассуждение правильно, то заключение правильно. В данном рассуждении заключение ложно. Значит, или рассуждение
неправильно, или не все посылки истинны.
Решение.
X – посылки истинны,
Y – рассуждение правильно,
Z - заключение верно.
(xy  z)z’  (y’+x’) = (x’+y’+z)z’  (y’+x’) = xy+z+y’+x’ = 1.
Задача 2.2.3.
Если в суффиксе данного полного прилагательного или причастия пишется два н, то они пишутся и в соответствующем наречии. Неверно, что в
суффиксе данного наречия пишется два н. Следовательно, в суффиксе полного прилагательного или причастия, из которого образовалось наречие, пишется
одно н.
Решение.
X – в причастии два н,
Y – в полном прилагательном два н,
Z – в наречии два н.
((x+y)  z)z’  x’y’ = (x’y’+z)z’  x’y’ = x’y’z’  x’y’ = x+y+z+x’y’ = 1.
Мы доказали даже более сильное утверждение.
Задача 2.2.4.
Бог или бессилен предотвратить зло, или он не желает предотвращать
его(зло существует на Земле). Если бог всемогущ, то неверно, что он бессилен
предотвратить зло. Если бог всеблаг, то неверно, что он не желает предотвращать зло. Следовательно, неверно, что бог всемогущ и всеблаг.
Решение.
X – бог всемогущ,
Y – бог всеблаг,
U – зло существует,
V – бессилен против зла,
W – желает предотвратить зло.
u(u  (v+w’))(x  v’)(y  w)  (xy)’ = u(u’+v+w’)(x’+v’)(y’+w)  (xy)’ =
= u’+uv’w+xv+yw’+x’+y’ = 1.
Таким образом, мы чисто аналитически(математически) доказали, что бог
не всемогущ и не всеблаг одновременно. Однако это заключение можно оспорить, если удастся доказать некорректность посылок.
Задача 2.2.5.
60
61
Если каждый раз в полдень солнце находится в зените и сейчас полдень,
то сейчас солнце находится в зените.
Решение.
X – сейчас полдень,
Y – солнце в зените.
(x  y)x  y = (x’+y)x  y = xy  y = x’+y’+y = 1.
Однако обратное утверждение неверно:
(x  y)y  x = (x’+y)y  x = y  x  1.
Это заключение не согласуется со здравым смыслом. Ошибка вызвана
тем, что X и Y связаны отношением эквивалентности, а не следования. Поэтому формальный вывод должен выглядеть так:
(x  y)x  y = xy  y = x’+y’+y = 1
(x  y)y  x = xy  x = x’+y’+x = 1
Задача 2.2.6.
Если нельзя получить воду, то неверно, что имеется в наличии водород и
оксид магния. Если имеется углерод, но углекислого газа получить не удалось,
то не было в наличии кислорода. Если имеется углекислый газ и вода, то можно получить углекислоту. Можно ли получить углекислоту, если имеется в наличии оксид магния, кислород, водород и углерод.
Решение.
X – нет воды,
Y – есть водород и оксид магния,
Z – есть углерод,
U – есть углекислый газ,
V – есть кислород,
W – есть углекислота.
(x  y’)(zu’  v’)(ux’  w)  (yvz  w) = (x’+y’)(z’+u+v’)(u’+x+w) 
(y’+v’+z’+w) = xy+zu’v+ux’w’+y’+v’+z’+w = 1.
Это означает, что углекислоту получить можно.
Задача 2.2.7.(18)
Он сказал, что придёт, если не будет дождя.(а на его слова можно полагаться). Но идёт дождь. Значит, он не придёт.
Решение.
X – он придёт,
Y – нет дождя.
(y  x)y’  x’ = (y’+x)y’  x’ = y’  x’ = y+x’  1.
Задача 2.2.8.(19)
Джонс утверждает, что не встречал этой ночью Смита. Если Джонс не
встречал этой ночью Смита, то либо Смит был убийцей, либо Джонс лжёт. Если
Смит не был убийцей, то Джонс не встречал его этой ночью, а убийство было
совершено после полуночи. Если убийство было совершено после полуночи, то
либо Смит был убийцей, либо Джонс лжёт. Следовательно, убийцей был Смит.
Решение.
X – Джонс не встречал Смита,
X’ – Джонс лжёт, т.е. он встречал этой ночью Смита,
Y – Смит – убийца,
Z – убийство было совершено после полуночи.
61
62
(x  ( y+x’))(y’  xz)(z  (y+x’))  y = (x’+y)(y+xz)(z’+y+x’)  y =
xy’+y’(x’+z’)+xy’z+y = 1.
Задача 2.2.9.(23)
Если элементарная частица имеет античастицу или не относится к числу
стабильных, то она имеет массу покоя. Следовательно, если элементарная частица не имеет массы покоя, то она относится к числу стабильных.
Решение.
X – наличие античастицы,
Y – частица нестабильна,
Z – наличие массы покоя.
((x+y)  z)  (z’  y’) = (x’y’+z)  (z+y’) = (x+y)z’+z+y’ = xz’+yz’+z+y’ = 1.
Задача 2.2.10.(26)
Прямые a и b или параллельны, или пересекаются, или скрещиваются.
Если прямые a и b лежат в одной плоскости, то они не скрещиваются. Прямые
a и b лежат в одной плоскости и не пересекаются. Следовательно, прямые a и
b параллельны.
Решение.
X – прямые параллельны,
Y – прямые пересекаются,
Z – прямые скрещиваются,
U – прямые лежат в одной плоскости.
(xy’z’+x’yz’+x’y’z)(u  z’)uy’  x = (xy’z’+x’yz’+x’y’z)(u’+z’)uy’  x =
(xy’z’+x’yz’+x’y’z)’+uz+u’+y+x = 1.
Эта задача может быть упрощена за счёт того, что z = (x+y)’:
(u  (x+y))uy’  x = (u’+x+y)uy’  x = xy’u  x = x’+y+u’+x = 1
Дополнительно решим ещё одну задачу из геометрии:
M = (y  u)y’ = (y’+u)y’ = y’
M(u) = 1, т.е. нельзя сказать ничего определённого относительно плоскостей в том случае, когда прямые не пересекаются: « Возможно, прямые лежат в
одной плоскости».
Задача 2.2.11.(28)
Если философ – дуалист, то он не материалист. Если он не материалист,
то он диалектик или метафизик. Он не метафизик. Следовательно, он диалектик или дуалист.
Решение.
X – дуалист,
Y – материалист,
Z – диалектик,
U – метафизик.
(x  y’)(y’  (z+u))u’  (z+x) = (x’+y’)(y+z+u)u’(x+z) = xy+u’y’z’+u+x+z  1.
Следовательно, заключение неверно. А каков же правильный ответ? По
алгоритму «Импульс – С» получим следующие результаты.
M = (x  y’)(y’  (z+u))u’ = (x’+y’)(y+z+u)u’.
M’ = xy+u’y’z’+u.
Из карты Карно получим M = u’y’z+u’x’y. Откуда выводятся правильное заключение: f(x,y,z) = x’y+y’z , т.е. философ – материалист или диалектик или то
62
63
и другое вместе.
Задача 2.2.12.(34)
Перед последним туром футбольного чемпионата сложилась турнирная
ситуация, позволяющая утверждать следующее. Если «Динамо» проиграет
свой последний матч, то в случае выигрыша «Спартака» он станет чемпионом.
Если же «Спартак» выиграет матч и станет чемпионом, то «Торпедо» займёт
второе место. В последнем туре первыми стали известны результаты встреч с
участием «Динамо» и «Спартака»: «Динамо» проиграло, а «Спартак» выиграл.
Можно ли в этом случае, не дожидаясь результатов других встреч, утверждать,
что «Спартак» стал чемпионом, а «Торпедо» заняло второе место?
Решение.
A – выиграет «Динамо»,
B – выиграет “Спартак”,
C – “Спартак” – чемпион,
D – “Торпедо” на втором месте.
(a’b  c)(bc  d)a’b  cd = ( a+b’+c)(b’+c’+d)a’b +cd = 1, т.е. «Спартак»
стал чемпионом, а «Торпедо» заняло второе место.
Задача 2.2.13.(37)
Докажите следующую теорему: если прямая l, принадлежащая плоскости
P, не перпендикулярна прямой n, то она не перпендикулярна проекции m прямой n на плоскость P, если верна следующая теорема: если прямая l принадлежит плоскости P и перпендикулярна проекции m прямой n на плоскость P, то
прямая l перпендикулярна прямой n.
Решение.
X – l перпендикулярна m,
Y – l перпендикулярна n.
(x  y)  (y’  x’) = (x’+y)  (y+x’) = 1.
Мы доказали теорему, не привлекая никаких познаний из стереометрии и
даже не зная о её существовании.
Задача 2.2.14.(38)
Известно, что, если данный многоугольник правильный, то в него можно
вписать окружность.
1. Данный многоугольник правильный, следовательно, в него можно вписать окружность.
2. В данный многоугольник нельзя вписать окружность, следовательно,
он неправильный.
3. В данный многоугольник можно вписать окружность, следовательно,
он правильный.
Проверить эти утверждения.
Решение.
X – многоугольник правильный,
Y – в многоугольник можно вписать окружность.
1. (x  y)x  y = (x’+y)x  y = xy  y x’+y’+y = 1.
2. (x  y)y’  x’ = (x’+y)y’  x’ = x’y’+x’ x+y+x’ = 1.
3. (x  y)y  x = (x’+y)y  x = y  x y’+x  1, т.е. третье утверждение
ложно. Это легко докажет школьник, знающий геометрию, но нам эти
познания не потребовались.
63
64
Задача 2.2.15.(39)
Если число делится на 4, то оно чётное. Число – чётное. Значит,оно делится на 4.
Решение.
X – число делится на 4,
Y – число чётное.
(x  y)y  x = (x’+y)y  x = y  x = y’+x  1.
Задача 2.2.16.
Если целое число больше 1, то оно простое или составное. Если целое
число больше 2 и чётное, то оно не является простым. Следовательно, если
если целое число больше 2 и чётное, то оно составное(здесь присутствует
скрытая посылка).
Решение.
x – число больше 1
y – число простое
z – число составное
u – число больше 2 и чётное.
Скрытая посылка зыключена в том, что число может быть или простым,
или составным, третьего не дано,т.е. y’ = z.
(x  (y+z))(u  y’)(y’=z)  (u  z) = (x’+y+z)(u’+y’)(y’=z)  (u’+z ) =
xy’z’+uy+yz+y’z’+u’+z = 1
Задача 2.2.17.
Если бы он не пошёл в кино, то он не получил бы двойки. Если бы он подготовил домашнее задание, то не пошёл бы в кино. Он получил двойку. Значит,
он не подготовил домашнее задание.
Решение.
x – пошёл в кино
y – получил двойку
z – подготовил домашнее задание.
(x’  y’)(z  x’)y  z’ = (x+y’)(z’+x’)y  z’ = x’y+xz+y’+z’ = 1.
Задача 2.2.18.
Я люблю Бетти или я люблю Джейн. Если я люблю Бетти, то я люблю
Джейн. Следовательно, я люблю Джейн.
Решение.
х – люблю Бетти
у – люблю Джейн
(x+y)(x  y)  y = (x+y)(x’+y)  y = y  y = y’+y = 1.
Задача 2.2.19.
Если аргументы некоторого рассуждения истинны, а его тезис не является таковым, то рассуждение не является правильным. Данное рассуждение
правильно и его аргументы истинны. Следовательно, его тезис является истинным.
Решение.
64
65
X – аргументы верны
Y – тезис верен
Z – рассуждение верно.
(xy’  z’)xz  y = (x’+y+z’)xz  y = xyz  y = x’+y’+z’+y = 1.
Задача 2.2.20.
Докажите, что если натуральное число оканчивается на 0 и сумма цифр
кратна 3, то само это число кратно 15. Используйте при этом следующие посылки: если число оканчивается на 0, то оно кратно 5; если сумма цифр числа
кратна 3, то число кратно 3; если число кратно 3 и кратно 5, то оно кратно 15.
Решение.
X – число кратно 5
Y – число кратно 3
Z – число кратно 15
U – число оканчивается на 0
V – сумма цифр числа кратна 3.
(u  x)(v  y)((xy  z)  (uv  z) = (u’+x)(v’+y)(x’+y’+z)  (u’+v’+z) =
ux’+vy’+xyz’+u’+v’+z = 1.
Задача 2.2.21.
Если студент знает логику, то он сможет проверить выводимость формулы из посылки. Если студент не знает логику, но он прослушал курс "Логика" и
освоил математический анализ в логике суждений, то он также сможет установить выводимость формулы. Значит, если студент или знает логику, или прослушал курс "Логика" и освоил матанализ в логике суждений, то он может проверить выводимость формулы из посылок.
Решение.
X – знает логику
Y – сможет проверить выводимость формулы из посылки
Z – прослушал курс логики и освоил матанализ в логике суждений.
(x  y)(x’z  y)  ((x+x’z)  y) = (x’+y)(x+z’+y)  (x’z’+y) =
xy’+x’zy’+x’z’+y = 1.
Задача 2.2.22.
Если каждое действительное число есть алгебраическое число, то множество действительных чисел счётно. Множество действительных чисел несчётно. Следовательно, не каждое действительное число есть алгебраическое
число.
Решение.
X – действительное число
Y – алгебраическое число
Z – счётное множество чисел.
((x  y)  (x  z))(x  z)’  (x  y)’ = ((x’+y)  (x’+z))(x’+z)’  (x’+y)’ =
(xy’+x’+z)(x’+z)’  xy’ = (x’+y)xz’+x’+z +xy’ = xyz’+x’+z+xy’ = 1.
Задача 2.2.23.
Курс акций падает, если процентные ставки растут. Большинство владельцев акций разоряется, если курс акций падает. Следовательно, если процентные ставки растут, то большинство владельцев акций разоряется.
65
66
Решение.
X – курс акций падает
Y – процентные ставки растут
Z – акционеры разоряются.
(y  x)(x  z)  (y  z) = (y’+x)(x’+z)  (y’+z) = x’y+xz’+y’+z = 1
Задача 2.2.24.
Если капиталовложения останутся постоянными, то возрастут правительственные расходы или возникнет безработица. Если правительственные расходы не возрастут, то налоги будут снижены. Если налоги будут снижены и капиталовложения останутся постоянными, то безработица не возрастёт. Следовательно, правительственные расходы не возрастут.
Решение.
X – капиталовложения постоянны
Y – правительственные расходы растут
Z – растёт безработица
U – снижаются налоги.
(x  (y+z))(y’  u)(ux  z’)  y’ = (x’+y+z)(y+u)(u’+x’+z’)  y’ =
xy’z’+y’u’+xzu+y’  1.
Следовательно, заключение неверно.
Задача 2.2.25.
Проверьте правильность рассуждения средствами логики суждений: "Если человек осуждён судом, то он лишается избирательных прав. Если человек
признан невменяемым, то он также лишается избирательных прав. Следовательно, если человек обладает избирательным правом, то он здоров и не был
осуждён судом".
Решение.
X – осуждён судом
Y – лишён избирательных прав
Z – невменяем.
(x  y)(z  y)  (y’  x’z’) = (x’+y)(z’+y)  (y+x’z’) =
xy’+zy’+y+x’z’ = 1.
Задача 2.2.26.
Если Джон - автор этого слуха, то он глуп или беспринципен. Следовательно, если Джон не глуп или не лишён принципов, то он не является автором
этого слуха.
Решение.
X – Джон – автор слуха
Y – Джон глуп
Z – Джон беспринципен.
(x  (y+z))  ((y’+z’)  x’) = (x’+y+z)  (yz+x’) = xy’z’+yz+x’  1, т.е. Джон даже
в этом случае может распускать слухи.
Задача 2.2.27.
Если в параллелограмме один угол прямой, то диагонали такого параллелограмма равны. Следовательно, при несоблюдении этого требования диаго-
66
67
нали параллелограмма не равны.
Решение.
X – в параллелограмме один угол прямой;
Y - диагонали
параллелограмма равны.
(x  y)  (x’  y’) = (x’+y)  (x+y’) = xy’+x+y’ = x+y’  1, т.е. мы утверждаем,
что заключение неверно. Однако любой школьник, любящий геометрию, скажет, что мы ошибаемся. И он будет прав: дело в том, что прямоугольники и
параллелограммы с равными диагоналями соединены не причинноследственными связями, а функцией эквивалентности. Нельзя применять логику бездумно. Поэтому решение должно быть таким:
(x  y)(x’  y’)=(x’y’+xy)(x+y’)=xy’+x’y+x+y’ = 1, что и требовалось доказать.
Надеюсь, что такая логика понравится даже тем учащимся, которые не
любят математику,грамматику,физику, химию и другие науки, поскольку логика
легко и просто решает задачи всех научных дисциплин.
67
68
Глава третья
Силлогистика.
Употребляйте с пользой время.
Учиться надо по системе.
Сперва хочу вам в долг вменить
На курсы логики ходить.
Ваш ум, не тронутый доныне,
На них приучат к дисциплине,
Чтоб взял он направленья ось,
Не разбредаясь вкривь и вкось.
Что вы привыкли делать дома
Единым махом наугад,
Как люди пьют или едят,
Вам расчленят на три приема
И на субъект и предикат.
В мозгах, как и в мануфактуре,
Есть ниточки и узелки.
Посылка не по той фигуре
Грозит запутать челноки.
(Гете "Фауст")
В этом фрагменте из «Фауста» как в капле воды отразилась вся классическая силлогистика, вся логика Аристотеля. Этот раздел посвящён так называемому обобщённому(интегрированному) анализу и синтезу силлогизмов. Едва ли
подобные интегрированные оценки потребуются при решении проблем искуственного интеллекта (ИИ), поэтому интегрированную силлогистику можно
просмотреть «по диагонали».
Под силлогистикой понимается раздел логики, занимающийся анализом и
синтезом силлогизмов. Силлогизм – это логическая конструкция, состоящая из
двух посылок, связанных общим термином, и следующего из этих посылок заключения. Классический пример силлогизма с общим(средним) термином «люди»:
Все люди смертны.
Сократ – человек.
Сократ смертен.
В жизни такие силлогизмы встречаются чрезвычайно редко. Гораздо чаще
мы сталкиваемся с такими наборами посылок, из которых вывести заключение
значительно сложнее. Рассмотрим некоторые примеры подобных силлогизмов.
В книге Бахтиярова К.И. "Логические основы компьютеризации умозаключений" приводится тест Ф.Джонсон-Лэрда и М.Стидмена:
Ни один химик не есть пчеловод.
Некоторые пчеловоды - художники.
-------------------------------------------Некоторые художники - не химики.
Такое заключение должно следовать, по мнению авторов, из данных посылок. Тестирующие весьма огорчились, что с этим простым заданием справились лишь 8 человек из 20. На самом же деле задачку не решил никто, в том
числе и тестирующие профессора. Ответ совершенно иной. Западные препо-
68
69
даватели в принципе не могли решить данный силлогизм.
Бертран Рассел в своей работе «История западной философии» (М.:2000
–768с.) на стр.194 решает силлогизм:
Все люди разумны.
Некоторые животные – люди.
Некоторые животные – разумны.
«Провокационный» силлогизм автора.
Все люди смертны.
Некоторые люди неграмотны.
-----------------------------------------Некоторые смертные неграмотны.
В соответствующих разделах мы рассмотрим и проверим все вышеприведённые примеры.
Троичная логика.
При аналитическом описании базисов силлогистики приходится использовать троичную логику. Эту логику представим следующими базисными операциями : инверсией, конъюнкцией и дизъюнкцией [3].
Таблица базисных функций 3-значной логики
Базисные функции определяются следующии соотношениями :
XY = min(X,Y)
X+Y = max(X,Y)
Минимизация логических функций от двух аргументов в троичной логике
несущественно отличается от аналогичной операции в булевой алгебре. Используя свойство 1+i=1, мы, например, имеем право приводить выражения типа
xy+i(x’+y’) к виду xy+i.
Базисы силлогистики.
69
70
Современная логика суждений давно вызывает неудовлетворенность как
своим несоответствием Аристотелевой логике,так и нечеткостью описания с
точки зрения математической логики. Введение кванторов не разрешило этих
проблем, поскольку кванторы являются просто мнемоникой. Это называется
«поменяли шило на мыло»: вместо силлогистических функторов А, I ввели
квантор всобщности и квантор существования.
Рассмотрим вначале логику непосредственных умозаключений[9]. Для
выражения любого умозаключения или посылки достаточно двух конструкций
(в скобках представлена краткая форма записи суждений):
1)Все X суть Y(Axy);
2)Некоторые X суть Y(Ixy);
Однако традиционно в логике используются 4 базовых суждения (силлогистических функтора):
1)Все X суть Y(Axy);
2)Ни один X не есть Y(Exy);
3)Некоторые X суть Y(Ixy);
4)Некоторые X не суть Y(Oxy).
Из диаграмм Венна с помощью таблиц истинности на основе классического
синтеза логических функций могут быть тривиально получены следующие соотношения [23]:
Axy = x'+y (1)
Exy = x'+y' (2)
Эти соотношения не вызывают сомнений, тем более, что подтверждение
тому можно найти при внимательном прочтении фундаментальной, основополагающей работы Порецкого П.С.[34]. Не знать её или не разобраться в ней
для логика(для математика тем более) так же постыдно, как для школьника не
знать таблицу умножения. Используя метод представления общеутвердительного функтора как пересечения множеств Х и Y по – Порецкому, получим следующий результат:
Axy ≡ (x = xy) = xy + x’(xy)’ = xy + x’(x’ + y’) = xy + x’ = x’ + y.
Аналогично выводится и соотношение для Exy:
Exy ≡ (x = xy’) = xy’+x’(xy’)’ = xy’+x’(x’+y) = xy’+x’ = x’+y’.
Кстати говоря, из соотношения Axy = x'+y = x → y следует и объяснение физического смысла импликации. Поскольку высказывание «Все Х суть Y» эквивалентно импликации «Из истинности Х следует истинность Y», постольку эквивалентны и их аналитические представления. Действительно, высказывания
«Все люди талантливы» и «Если ты человек, то ты талантлив» с точки зрения
здравого смысла означают одно и то же. Отсюда же следует и вывод о бессмысленности разделения логики на силлогистику и логику суждений.
Что касается суждений Ixy, Oxy,то здесь сложилась спорная ситуация.
Во-первых, ни в одном источнике нет аналитического представления силлогистического функтора (квантора[32]) Ixy, т.е. фактически нет аналитического
описания базиса силлогистики. Это и понятно: для решения данной задачи требуется многозначная логика. В классической силлогистике все авторы стремились использовать двузначную логику. Во-вторых, здравый смысл и булева
алгебра утверждают, что Oxy =(Ixy)', а в традиционной логике Oxy = (Axy)' и Ixy
= (Exy)', что отнюдь не бесспорно и не убедительно. Однако примем на веру
эти формулы, поскольку именно их рекомендуют для запоминания студентам.
На этом основании мы получим следующие формулы для Ixy,Oxy:
Ixy = (Exy)' = xy (3)
70
71
Oxy = (Axy)' = xy'
Прежде всего эти соотношения противоречат друг другу. По определению
"Некоторые Х суть Y" и "Некоторые Х не суть Y" взаимно инверсны, т.е. Ixy =
(Oxy)', Oxy = (Ixy)'. А из приведённых формул следует эквивалентность суждений "Некоторые Х не суть Y" и "Некоторые Х суть не-Y", что совсем не соответствует действительности. Кроме того, частноотрицательное суждение вообще не имеет самостоятельного смысла, поскольку является тривиальным
отрицанием частноутвердительного высказывания.
Выборочная проверка при помощи кругов Эйлера "правильных" модусов
EIO 1-й - 4-й фигур, EAO, OAO 3-й фигуры и AAI, EAO 4-й фигуры также подтвердила всю несостоятельность соотношений Ixy, Oxy. Аналитический метод
контроля силлогизмов дал такие же результаты.
Попытаемся прояснить содержательный смысл соотношения (3), из которого следует, что безусловно существуют лишь ситуация x=y=1. Поскольку логические аргументы представляют собой скаляры, максимальная
длина которых не может превышать "полной единицы" (универсума), т.е.
x+x'=1, введем понятие скалярных диаграмм и заменим ими круги Эйлера.
Необходимо отметить, что впервые геометрическую интерпретацию (интервальный метод изображения множеств ) силлогистических функторов применил Иоганн Генрих Ламберт(1728-1777гг. ), немецкий философ, математик, физик и астроном. Однако, он допустил ряд ошибок, главной из которых явилось
отсутствие фиксации универсума. Эта ошибка на несколько столетий похоронила идею математической силлогистики.
Из рисунка видно, что такая "логика" не имеет никакой практической ценности. "Бытовой" логике, вероятно, более соответствует нижеприведённая скалярная диаграмма.
Скалярная диаграмма не только определяет суждение Ixy как пересечения
множеств X и Y, но и отмечает различные ситуации этого пересечения. Все
аналитические соотношения получены на основе трёхзначной логики.
B аристотелевой силлогистике под Ixy понимается любая комбинация понятий x,y, лишь бы пересечение этих понятий не было пустым[1,35]. Аристотелевой трактовке этого суждения соответствуют следующие скалярные диаграммы.
71
72
Вновь введенные скалярные диаграммы отличаются от диаграмм Ламберта[36] следующими принципиальными характеристиками:
1)наличие фиксации универсума;
2)размещение силлогистического функтора Еxy на двух, а не на
одном уровне;
3)возможность "дробного" (разрывного) представления понятия в
пределах универсума;
4)возможность графической и аналитической интерпретации результатов
анализа и синтеза силлогизмов.
Наличие даже одного из перечисленных отличий привело к переименованию
кругов Эйлера в диаграммы Венна. Вполне естественно, что вновь введённые
скалярные диаграммы получили название диаграмм Лобанова. Справедливости ради следует отметить, что скалярные диаграммы впервые применил Лейбниц[12, стр.601], но как и его ученик Ламберт не сумел их использовать для
аналитического описания функторов и синтеза заключений в силлогизмах.
На рисунке показан процесс перехода от диаграмм Венна к диаграммам Лобанова и синтез по ним аналитического описания силлогистических функторов
Axy, Exy, Ixy.
72
73
С аристотелевским определением частного суждения Ixy не согласны многие логики. В работе [5] автор утверждает, что "научное употребление слова
"некоторые" совпадает с общеразговорным", т.е. с бытовым, а не аристотелевским. Кроме того, Васильев Н.А. считает,что Ixy и Oxy должны считаться
одним суждением. Он также заявляет: "В математике так называемые частные
суждения сводятся ... к общим, и она прекрасно обходится без этого нелепого в
совершенной науке слова "некоторые". К этому же должна стремиться и всякая
наука... Частное суждение нужно рассматривать вовсе не как какой-то вывод из
общего суждения, а как особый вполне самостоятельный вид суждения, вполне
координированный с общими суждениями, исключающий их и исключаемый
любым из них…Частноутвердительное и частноотрицательное суждение суть
одно суждение, а не два.". С точкой зрения такого известного ученого трудно не
согласиться. Да и здравый смысл просто бунтует против Аристотелевой трактовки частноутвердительного и частноотрицательного суждений.
Имеет некоторый практический смысл и такая трактовка суждения Ixy, как
представленная на скалярной диаграмме.
73
74
Под базисом силлогистики будем понимать всевозможные варианты представления суждений Axy, Exy, Ixy. Суждение Oxy получается автоматически из Ixy,
поскольку является его отрицанием.
3.1. Все x суть y(Axy).
1.Традиционное представление этого суждения изображено на скалярной
диаграмме, по которой заполнена таблица истинности.
По таблице истинности синтезируем логическую функцию Axy:
Axy = (xy')' = x'+y = Ay'x' = Exy' = (xy) = (y'x')
Здесь уместно сделать одно замечание. Много копий было сломано при
выяснении физической сущности импликации. Из таблицы истинности этот
смысл не вырисовывался и вызывал недоумение. Но ведь x  y = x’ + y = Axy.
Да и в жизни импликация и общеутвердительный квантор эквивалентны. Мы
можем сказать: «Во всяком равнобедренном треугольнике углы при основании
равны». То же значение имеет и импликативное утверждение: «Если треугольник равнобедренный, то углы при его основании равны».
2.Традиционное представление Axy не исчерпывает все
комбинация аргументов x,y представлена на диаграмме.
74
ситуации. Вторая
75
Ситуация, представленная на рисунке под символом Y2, может быть проиллюстрирована следующим высказыванием: "Все люди смертны". Это справедливо при условии, что "мир"(универсум) - все живые существа,т.к.все живое-смертно. С учетом вышеизложенного выражение для функции Axy примет
вид:
Axy = y+ix'y'
С точки зрения здравого смысла, учитывая то обстоятельство, что аргументами во всех силлогистических функторах(кванторах) являются множества, не
может множество Y быть одновременно и равно множеству X, и больше этого
множества. Возможно, Аристотель пытался искать заключения в силлогизмах
для случаев полного отсутствия информации о мощности аргументовмножеств. При решении задач ИИ такая ситуация недопустима.
3.Третий вариант суждения Axy изображен на скалярных диаграммах. По
cравнению со 2-м вариантом здесь добавлено суждение "y эквивалентно
универсуму".
Для ситуации на рисунке под символом Y3 справедливо высказывание "Все
люди владеют словом". Если весь "мир" - живые существа, то понятия "люди" и
"говорящие живые существа" эквивалентны. Из таблицы получаем следующее
соотношение:
75
76
Axy = xy+ix'
Эти три варианта базиса для Axy не исчерпывают всех ситуаций, но в силлогистике оставшиеся за пределами рассмотрения комбинации аргументов не
являются решающими.
3.2. Ни один x не есть y(Exy).
1.Классическое представление Exy изображено на скалярных диаграммах.
Из таблицы имеем:
Exy = (xy)' = x'+y' = Axy' = Ayx' = Eyx = (xy') = (yx')
По методу Порецкого [34] с использованием формулы равнозначности
получим:
Exy = (x = xy’) = xy’+x’(xy’)’ = xy’+x’ = x’+y’.
2.Второй вариант суждения Exy представлен на рисунке.
Для иллюстрации диаграммы рисунка под символом Y2 подходит высказывание "Ни один живой не есть мертвый".
Из таблицы имеем:
Exy = x'y+xy'+ix'y'
76
77
3.3. Некоторые x суть y.
Лобачевский Н.И. создал "воображаемую геометрию". По образу и подобию
великого русского геометра не менее великий русский логик Васильев Н.А.
разработал "воображаемую логику". Мы попробуем разобраться хотя бы в общеразговорной(бытовой) логике, тем более что в [5] частному суждению Ixy
уделено недостаточное внимание.
1.Первый вариант суждения Ixy представлен на рисунке.
Иллюстрацией для этого варианта служит высказывание "Некоторые люди(x) мудрые люди(y)"("мир" - люди). Из таблицы получим соотношение:
Ixy = x
2.Второй вариант суждения Ixy представлен на рисунке.
Из таблицы получим соотношение:
Ixy = x+y+ix'y'.
После минимизации формула примет вид Ixy = x+y+ix' = x+y+iy'.
Здесь метод Порецкого бессилен, т. к. он расчитан лишь на описание общеутвердительных или общеотрицательных суждений.
77
78
3.Третий вариант суждения Ixy представлен на рисунке. Этот базис соответствует Аристотелевскому [36].
Из таблицы получим соотношение:
Ixy = xy+i(x'+y') = xy+i.
4.Четвёртый вариант суждения Ixy представлен на рисунке.
Этот базис получил название несимметричного.
Ситуация на рисунке под символом Y1 иллюстрируется высказыванием
"Некоторые юристы(x) - выпускники юридических вузов(y)"(не-юристов юридические вузы не выпускают).
Из таблицы получим соотношение:
Ixy = x+y'+ix'y = x+y'+iy
78
79
5.Пятый вариант суждения Ixy представлен на рисунке.
Ситуация на рисунке под символом Y3 иллюстрируется высказыванием
"Некоторые люди(x) суть неговорящие существа(y)" (не - люди тем более не
разговаривают). Универсум - "живые существа".
Из таблицы получим соотношение:
Ixy = x+ix' = x+i.
6.Шестой вариант суждения Ixy представлен на рисунке.
Из таблицы получим соотношение:
Ixy = x+y
7. Седьмой вариант функтора Ixy выглядит так:
79
80
После минимизации получим Ixy = y+i.
9. Восьмой вариант функтора Ixy (базис Васильева Н. А.).
Этот вариант удовлетворяет всем требованиям Васильева Н.А.:
Ixy = Ix’y = Ixy’ = Ix’y’.
9.Девятый вариант суждения Ixy представлен на рисунке.
Из таблицы получим соотношение:
Ixy = xy+x'y'+i(xy'+x'y) = xy+x'y'+i
80
81
Вопрос о выборе базиса должен решаться отдельно для каждого конкретного силлогизма. Нередко частноутвердительное суждение бездумно употребляется вместо общеутвердительного. Если для суждения "Некоторые животные - млекопитающие" мы будем использовать любой симметричный базис, то
придем к абсурдному заключению "Некоторые млекопитающие - животные",
поскольку на самом деле исходное суждение должно иметь вид "Все млекопитающие - животные". Именно такую ошибку дважды допустили преподаватели
Кэмбриджа и Оксфорда, авторы хорошего учебного пособия по философии, на
стр.170 и 174[37].
Для указания используемого базиса автор применяет нумерацию, состоящую из вариантов суждений в порядке Axy-Exy-Ixy.Например, для анализа
силлогизмов в общем (неконкретном) виде автор когда-то предпочитал общеразговорный базис 1-1-2, который описывается следующими соотношениями:
Axy = (xy')' = x’+y
Exy = (xy)' = x’+y’
Ixy = x+y+ix'y' = x+y+i.
В настоящее время автор считает единственно правильным базисом только.
базис здравого смысла 1-1-8. Этот базис назван автором базисом Васильева,
т.к. он удовлетворяет требованиям русского логика Васильева Н.А. относительно научного и общеразговорного смысла силлогистического функтора Ixy.
81
82
Заключение.
1.Анализ современного состояния логики показал полное отсутствие аналитического представления базиса силлогистики, а также несостоятельность
классического силлогистического базиса который не является ни Аристотелевским, ни общеразговорным (бытовым).
2.Впервые показано, что даже общие суждения имеют неоднозначную структуру и аналитическое описание.
3.Впервые представлено все многообразие базиса частноутвердительного
суждения и дано его аналитическое представление.
4.Впервые найдено аналитическое выражение для частноутвердительного
суждения, удовлетворяющего критерию Васильева.
82
83
Глава четвёртая
Силлогистика Аристотеля - Жергонна.
В [36] приведены так называемые "жергонновы отношения". С помощью
этих отношений Ж.Д.Жергонн(1771-1859) представил все классы суждений
(силлогистические функторы), выделенные Аристотелем, на языке теории
множеств. Автор пока не может дать однозначного заключения о корректности
проделаннной Жергонном операции. Поэтому данная силлогистика носит двойное имя.
Переведем "жергонновы отношения" на язык скалярных диаграмм [24].
По скалярным диаграммам были построены соответствующие таблицы
истинности.
Из таблиц истинности получаем следующие соотношения:
"Все X суть Y"
: Axy = xy+x'y'+ix'y
"Ни один X не есть Y" : Exy = x'+y'= (xy)'
"Некоторые X суть Y" : Ixy = xy+i(xy)'
"Некоторые X не суть Y": Oxy = xy'+i(xy')'
Полученные соотношения позволяют построить силлогистику без кванто83
84
ров [22]. Очень интересные решения этой проблемы имеются в [5,26]. Известны попытки решения задач силлогистики с помощью кванторного аппарата исчисления предикатов[32]. Однако, судя по современному состоянию силлогистики, такие попытки успеха не имели, да и иметь не могли: мнемоника не может быть исчислением. Это обстоятельство ставит под сомнение здравомыслие современных математиков, до сих пор не отказавшихся от термина «кванторное исчисление». С помощью формул для силлогистических функторов A, E,
I, O можно
выполнять все операции над силлогизмами, т.е. находить аналитическое решение задач, связанных с силлогизмами. Все задачи этого раздела, посвящённого силлогистике Аристотеля решаются в базисе АристотеляЖергонна. Для того, чтобы проверить силлогизм, нужно выполнить алгоритм
"Осташ-Т" [24].
4.1. Алгоритм "Осташ-Т" (тест, анализ)
1.Заменить посылки и заключение выражениями в соответствии с
формулами для функторов A, E, I, O.
2.Получить выражение в виде конъюнкции всех посылок, имплицирующей заключение.
3.Проверить это выражение на тождественность единице, занеся его
в карту Карно (КК). Если выполняется тождественность единице, то заключение истинно. Если хотя бы одна из посылок или заключение являются частным
суждением, то силлогизм является истинным даже при получении модальной
единицы (т.е. в некоторых клетках КК проставлены символы модальности i)
при условии, что m=1 или m'=1 (в этом случае строка m или соответственно
m' должна содержать не менее 3-х целых единиц и только одну составную,
т.е.1=i+j). В противном случае заключение не имеет места.
Для синтеза заключения по заданным посылкам также можно использовать алгоритм "Осташ-Т", несколько изменив его.
Алгоритм "Осташ-С" (синтез)
1.Заменить посылки выражениями в соответствии с формулами
для функторов A,E,I,O.
2.Получить выражение в виде конъюнкции всех посылок и проинвертировать его. Занести полученное выражение в карту Карно (КК).
3.Доопределить полученную функцию одним из выражений для силлогистических функторов A, E, I, O таким образом, чтобы получить тождественую
или модальную единицу. При доопределении иметь в виду, что из частной
посылки должно следовать частное заключение. Перед доопределением в
одной строке КК(m или m') должно быть не менее 2-х, а после доопределения
не менее 3-х целых единиц. Доопределяемое заключение должно содержать
минимально необходимое количество единиц. Функция доопределения является искомым заключением. Если в доопределяемой строке КК имеется 2 полных
единицы и 2 значения j, то доопределение невозможно.
4.Если вышеуказанное доопределение невозможно, то из данных посылок нельзя вывести никакого заключения.
Синтез посылок от синтеза заключений отличается лишь тем, что доопределение КК выполняется в этом случае для отрицания посылки.
84
85
Аналитические методы на основе алгоритмов "Осташ-Т" и "Осташ-С"
дополняются графическим методом на базе скалярных диаграмм. Алгоритм
ТВАТ (Тушинский вечерний авиационный техникум) прост и нагляден.
4.2. Алгоритм «ТВАТ» (графический синтез силлогизмов).
1.Изобразить все возможные ситуации для исходных посылок с помощью скалярных диаграмм Лобанова.
2.Занести в таблицу истинности все значения f(x,y) для входных наборов xy: 00,01,10,11.
3.Выполнить минимизацию логической функции заключения f(x,y) в
трёхзначной логике.
4.Полученный результат представить в виде силлогистического функтора в соответствии с известным базисом.
Пример 4.2.1.
Ни один x не есть m
Некоторые m суть y
Найти f(x,y)
Решение.
Будем считать, что частно-утвердительное суждение представлено в базисе Аристотеля-Жергонна. По алгоритму ТВАТ получим:
4.3. Алгоритм «РЕДАН» (синтез недостающей посылки).
1.Изобразить все возможные ситуации для исходной посылки и заключения с помощью скалярных диаграмм.
2.Занести в таблицу истинности все значения f(m,y) для входных наборов
my: 00,01,10,11.
3.Выполнить минимизацию логической функции заключения f(m,y) в трёхзначной логике.
4.Полученный результат представить в виде силлогистического функтора
в соответствии с известным базисом.
Пример 4.3.1.
85
86
Найти недостающую посылку в силлогизме
Amx & f(m,y)  Ixy(3).
Решение.
Из диаграммы видно, что заключение описывается формулой
Fz(x,y) = xy + i = Ixy(3), т.е. все условия задачи соблюдены. Однако это не
единственное решение.
Во второй скалярной диаграмме заключение также описывается формулой Fz(x,y) = xy + i = Ixy(3), но вторая посылка выглядит иначе.
F(m,y) = m’ + y = Amy
Пример 4.3.2.
Найти недостающую посылку в силлогизме
Emx & f(m,y)  Exy.
Решение.
86
87
Из диаграммы видно, что заключение описывается формулой
f(m,y) = x’y’+i = Ix’y’(3).
На самом деле здесь нужно раздельно рассматривать 3 заключения: Emy,
(m~y), Imy с вероятностями P(Emy) = P(m~y) = 1/6, P(Imy) = 2/3.
4.4. Алгоритм «НИИДАР» графического нахождения исходных посылок.
1. По СДНФ полной единицы системы М построить сокращённую таблицу
истинности для неё.
2. По сокращённой таблице истинности построить скалярные диаграммы,
разбив интервал универсума на части, количество которых равно числу наборов в таблице истинности для М. Каждая часть универсума изображается соответствующим набором из таблицы истинности для М.
3.
Из скалярных диаграмм выбрать (N – 1) логических функций от
двух переменных, где N – число аргументов.
Пример 4.4.1.
Дано: M = m’x’+my’.
Найти все исходные посылки силлогизма.
Решение.
По полной единице системы М строим сокращённую таблицу истинности, а
по ней скалярные диаграммы.
87
88
Из диаграмм видно, что исходными посылками являются Axm, Emy, т.е.
M = AxmEmy = (x’+m)(m’+y’) = m’x’+x’y’+my’ = m’x’+my’, что и требовалось
доказать.
4.5. Алгоритм «СГА» аналитического нахождения исходных посылок.
По полной единице системы построить n-1 посылок от двух аргументов, где n – количество терминов(аргументов).
2.
Посылки должны в совокупности охватить все аргументы.
3.
Ни одна из посылок не должна превращаться в логическую константу, равную 1, т.е. ни одна из исходных посылок не должна быть частноутвердительным суждением.
1.
Пример 4.5.1.
Дано: M = m’+x’y’.
Найти все исходные посылки силлогизма.
Решение.
По полной единице системы М строим функции M(m,x), M(m,y).
M = M(m,x)M(m,y) = (m’+x’)(m‘+y’) = EmxEmy.
Это и есть исходные посылки силлогизма, полученные чисто аналитически.
Пример 4.5.2.
Дано: M = ab+cd.
Найти все исходные посылки сорита.
Решение.
По полной единице системы М строим функции M(a,c), M(a,d), M(b,c).
M(a,c) = a+c.
M(a,d) = a+d
M(b,c) = b+c.
M = M(a,c)M(a,d)M(b,c) = (a+c)(a+d)(b+c) = ab+cd.
Если бы мы взяли в качестве аргументов a,b , то получили бы
M(a,b) = ab+1 = 1 = Iab, что не позволило бы восстановить М по трём по-
88
89
сылкам.
Простота графического алгоритма анализа и синтеза силлогизмов наводит на мысль о том, что и скалярные диаграммы, и алгоритм могли быть открыты 25 веков назад Аристотелем. Во всяком случае, скаляры были известны Евклиду.
Алгоритмы «Осташ» и «ТВАТ» дают одинаковые по полноте и корректности результаты. Существует более простой и эффективный аналитический метод, позволющий получать корректные, но для некоторых частных силлогизмов
не всегда полные результаты. Этот метод оформлен автором в виде алгоритма
«ИЭИ» (Ивановский энергетический институт). Предпочтительная область применения данного алгоритма - силлогистика здравого смысла, т.е. русская и общеразговорная. Кроме того, алгоритм «ИЭИ» незаменим при аналитическом
синтезе соритов (многопосылочных силлогизмов).
И всё же графические методы анализа и синтеза силлогизмов и соритов,
т.е. с помощью скалярных диаграмм Лобанова, самые наглядные и корректные.
4.6. Алгоритм "ИЭИ "(аналитический синтез заключения)
1. Заменить посылки выражениями в соответствии
с формулами
для функторов A,E,I,O.
2. Получить выражение для полной единицы М системы в виде конъюнкции всех посылок.
3. Получить из М функцию М(х,у), заменив средний член m или m' на 1.
Если средний член m/m' входит в силлогизм автономно, то заменить его на i.
Полученная функция М(х,у) является заключением силлогизма. Если в М
встречается терм im или im’, то заключения не существует.
Алгоритм «ИЭИ» можно считать частным случаем алгоритма «Селигер»
для решения логических уравнений.
Пример 4.6.1.
Все m суть х
Все m суть y
Найти f(x,y)
Решение.
По алгоритму ИЭИ получим:
M = AmxAmy = (x+m’)(m’+y) = m’+xy
Если это выражение представить в виде таблицы истинности M(m,x,y), а
из неё получить таблицу M(x,y) = f(x,y), то выражение для искомого заключения
примет вид: f(x,y) = xy+i = Ixy(3). Этот процесс представлен на рисунке. Из рисунка становится ясно, почему при автономном вхождении среднего термина m
в формулу для полной единицы системы M(m,x,y) средний термин нужно заменять не на 1, а на i.
89
90
Пример 4.6.2.
Ни один x не есть m
Некоторые m суть y
Найти f(x,y)
Решение.
По алгоритму ИЭИ получим:
M = ExmImy(3) = (x’+m’)(my+i) = mx’y+ix’+im’
F(x,y) = x’y+i = Ix’y(3)
По алгоритму ТВАТ получим:
В классической логике[9] при синтезе заключений для конкретного силлогизма в качестве шаблона используются фигуры(1 – 4), представленные на рисунке, и модусы. Считается, что с помощью таких шаблонов-ходуль для инвалидного мышления можно придти к правильным выводам.
90
91
Приведём так называемые «правильные» модусы[9].
Фигура 1: AAA, EAE, AII, EIO.
Фигура 2: EAE, AEE, EIO, AOO.
Фигура 3: AAI, IAI, AII, EAO, OAO, EIO.
Фигура 4: AAI, AEE, IAI, EAO, EIO.
Развёрнутая запись модуса AAA для первой фигуры, например, выглядит
так: AmxAym  Aym.
Используя приведённые методы, проверим некоторые модусы для 4-х
фигур категорического силлогизма в базисе Аристотеля - Жергонна. Синтез
силлогизмов проведём графическим методом в связи с его простотой и наглядностью. В результате получим следующие заключения. Здесь и далее под обозначением N.n понимается номер фигуры и номер модуса в данной фигуре.
Например, 1.6 означает 6-й модус первой фигуры.
Фигура 1.
1.1. AmxAym -> f(x,y) = mx'+jm'x+m'y+jmy'+f(x,y) = 1
Алгоритм «ТВАТ» и алгоритм "Осташ-С" дали одинаковый результат:
f(x,y) = xy+x'y'+ixy' = Ayx.
Для алгоритма «ИЭИ» получим:
M = AmxAym = (m’x’+mx+im’x)(y’m’+ym+iy’m) = m’x’y’+ixy’+mxy
M(x,y) = x’y’+xy+iy’x = Ayx
Таким образом, все три алгоритма дали одинаковый результат, который
совпал с «правильным» модусом AAA. В дальнейшем синтез силлогизмов будем выполнять по самым простым и прозрачным алгоритмам ИЭИ и ТВАТ.
91
92
1.6. EmxEym -> f(x,y).
По алгоритму «ИЭИ»
M = EmxEym = (m’+x’)(y’+m’) = m’+x’y’
M(x,y) = x’y’+i = Ix’y’.
Фигура 2.
2.4. AxmOym -> f(x,y) = m'x+jmx'+j(m'y)'+f(x,y) = 1(i)
По алгоритму «ИЭИ»
M = AxmOym = (x’m’+xm+ix’m)(ym’+iy’+im) = m’x’y+im+ix’y’
M(x,y) = x’y+i = Ix’y
Фигура 3.
3.2. AmxEmy -> f(x,y) = mx'+jm'x+my+f(x,y) = 1(i)
92
93
Фигура 4.
4.1.AxmAmy -> f(x,y) = m’x+jmx’+my’+jm’y+f(x,y) = 1
У Аристотеля этому модусу соответствует заключение Ixy, что не согласуется ни со здравым смыслом, ни с формальным выводом. Кроме того, из
анализа фигур 1 и 4 видно, что они идентичны, а следовательно должны давать
одинаковые модусы. Например, модусу AII 1-й фигуры должен соответствовать
модус IAI 4-й фигуры, модусу EIO 1-й фигуры – модус IEO 4-й фигуры. Таких
несоответствий между модусами 1-й и 4-й фигур насчитывается не менее четырёх. Указанные несоответствия можно было бы заметить 24 века назад, поскольку для этого не требуется ничего, кроме начального образования.
4.5. ExmAmy -> f(x,y) = mx+my'+jm'y+f(x,y) = 1(i)
В результате полной проверки традиционных 64-х силлогизмов получим
следующие правильные модусы:
93
94
1-я фигура: AAA,AEO,AII,EAE,EEI,EII,IEO,OEI.
2-я фигура: AAI,AEE,AOI,EAE,EEI,EII,IEI,OAI.
3-я
фигура:
AAI,
AEI,
AII,
AOI,
EAI,
EEI,
EII,EOI,IAI,IEI,OAI,OEI.
4-я фигура: AAA, AEE, EAO, EEI, EIO, EOI, IAI, IEI.
Кстати, на самом деле проверять нужно было бы 256 модусов даже для
случая двухфункторной (A,I) силлогистики.
Полученные результаты очевидны, однако в большей своей части
данные модусы являются абсолютно новыми для аристотелевой силлогистики[18].Кроме того, аристотелевский модус AAI в 4-й фигуре является некорректным.
Проверим теперь традиционную логику[9] с помощью алгоритмов
«Осташ». Её базис явно отличается от базиса Аристотеля-Жергонна. Попробуем описать этот базис аналитически. Из логического квадрата[9] следуют
традиционные соотношения:
Axy = (Oxy)',Exy = (Ixy)'.
Поскольку Axy = (xy')',то Oxy = xy'.Для Ixy определяем формулу,исходя из того, что Exy = (xy)'.Откуда получаем Ixy = xy.
Разумеется, подобный базис никакого отношения к здравому смыслу не
имеет. Тем не менее проверим на основе этого базиса некоторые традиционные "правильные" модусы. Проверку проведем в соответствии с алгоритмом
"Осташ-Т".
1-я фигура
EIO: (mx)'my -> xy' = mx+m'+y'+xy'  1
2-я фигура
EIO:(mx)'ym -> xy' = mx + m'+y'+xy'  1
3-я фигура
EAO:(mx)'(my')' -> xy' = mx+my'+xy'  1
OAO:mx'(my')' -> xy' = m'+x+my'+xy'  1
EIO:(mx)'my -> xy' = mx + m'+y'+xy'  1
4-я фигура
AAI:(xm')'(my')' -> xy = xm'+my'+xy  1
EAO:(xm)'(my')' -> xy' = mx+my'+xy'  1
Аналитическая и графическая проверки выбранных "правильных" модусов выявили некорректность последних. Соотношения (1) - (4) описывают аристотелевскую логику, которая не соответствует требованиям, предъявленным
русским ученым Васильевым Н.А.[5] к частным суждениям с научной точки
зрения и с позиции логики здравого смысла.
Автор с глубочайшим уважением относится к Аристотелю, впервые в истории человечества предложившему формальные методы анализа и синтеза
силлогизмов. Однако нельзя признать, что логика Аристотеля является логикой
здравого смысла, а его «правильные» модусы исчерпывают все достоверные
ситуации силлогистики. Поэтому логика Аристотеля-Жергонна представляет
интерес с чисто научно-исторической точки зрения.
Проиллюстрируем применение алгоритма «Редан» на простом примере.
Пусть задан тривиальный силлогизм:
Все люди(m) талантливы(x).
Все студенты(y) – люди(m).
94
95
Все студенты(y) талантливы(x).
Казалось бы, если нам известны первая посылка и заключение, то мы
легко найдём вторую посылку, и она будет иметь вид Aym, т.е. “Все студенты –
люди. Проверим наши рассуждения с помощью алгоритма «Редан».
Все люди(m) талантливы(x).
F(m,y) = ?
Все студенты(y) талантливы(x).
Решение.
Для универсума «живые существа» получим такие диаграммы.
Наряду с этим необходимо подчеркнуть пассивную роль кванторного исчисления, предназначенного, казалось бы для защиты аристотелевой силлогистики. В [32] приводится пример элегантного доказательства достоверности
первого модуса первой фигуры (AmxAym -> Ayx) с применением кванторного
исчисления. Однако этот модус самый примитивный из всех, и легко доказывается даже в обычной двоичной логике без привлечения кванторов («лишних
сущностей» по Оккаму). Кванторный механизм создавался, в первую очередь,
для того, чтобы проверить силлогистику Аристотеля. Однако до сих пор такой
проверки не произошло. Отсюда можно сделать следующий вывод: либо кванторным исчислением матлогики не владеют настолько, чтобы доказать или
опровергнуть правоту Аристотеля, либо само кванторное исчисление является
ущербным. Автор склоняется ко второму выводу, поскольку кванторное исчисление – примитивная мнемоника и ничего более.
Некоторые дополнительные аспекты проблем современной силлогистики изложены в [21].
4.7. Ошибки Аристотеля.
Важнейшим разделом классической логики является силлогистика, основные
положения которой были разработаны Аристотелем. Решение задач силлогистики
95
96
опирается на аристотелевы фигуры, модусы и 4 основных правила посылок[9].
Задача 1.
Проверить корректность 1-го правила посылок классической силлогистики.
Решение.
Это правило формулируется так [9, стр.133]: «Хотя бы одна из посылок
должна быть утвердительным суждением. Из двух отрицательных посылок заключение с необходимостью не следует». Подберём контр-пример на 1-е правило посылок.
Ни один человек(m) не является бессмертным(x).
Ни один человек(m) не является счастливым(y).
F(x,y) = ?
В данном силлогизме универсумом(U) является множество существ. По
алгоритму ИЭИ получим следующий результат. Примем априори, что счастливых меньше, чем бессмертных.
По алгоритму ТВАТ получим графическое решение. Здесь Y1 – Y4 – различные ситуации распределения множеств счастливых существ. Предполагается, что Боги тоже могут быть несчастны.
F(x,y) = y’+i = Ixy’(7), т.е. “Некоторые бессмертные несчастливы”. Результаты графического синтеза заключения совпали со здравым смыслом и опровергли 1-е правило посылок. Здесь и далее апостроф обозначает инверсию, а
цифра в скобках – номер базиса.
Приведу здесь задачку проф. Белорусского Государственного Университета
Беркова В.Ф.:
Ни один ребёнок (х) – не юноша (m).
Ни один юноша (m) – не взрослый мужчина (y).
F(x,y) = ?
Казалось бы, она по Аристотелю полностью совпадает с предыдущей.
Следовательно, заключение должно быть аналогичным. Однако аналитический
метод требует скрупулёзного учёта всех условий. Поэтому в данном силлогизме будут не две посылки, а по меньшей мере три. Причём эта третья сразу
сделает задачку Беркова бессмысленной: придётся указать, что универсум
96
97
мужчин состоит из трёх непересекающихся множеств юношей, детей и взрослых мужчин. Аналитика (алгоритм ИЭИ) лишь подтвердит очевидность.
M = EmxEym & (mx’y’+m’xy’+m’x’y) = (m’+x’)(y’+m’)(mx’y’+m’xy’+m’x’y) =
(x’y’+m’)(mx’y’+m’xy’+m’x’y) = m’xy’ + m’x’y + mx’y’.
F(x,y) = xy’ + x’y + x’y’ = x’ + y’ = Exy.
Значительно проще и безопаснее пользоваться графо-аналитическим алгоритмом ТВАТ: он страхует от неучёта дополнительных условий. Все условия
в графике изображаются автоматически, машинально.
Из этого рисунка и без таблицы истинности видно, что «Ни один ребёнок –
не взрослый мужчина». Главная ошибка Аристотеля как раз и заключается в
том, что он не принимает во внимание содержание терминов и универсума.
Оппоненты иногда возражают, что в моих силлогизмах появляются скрытые
дополнительные посылки. Это вызвано лишь требованиями здравого смысла:
не может быть одновременно множество X больше, меньше и равно множеству
Y.
Поскольку Аристотель игнорирует требования рассудка, то будем играть по
его правилам. В этом случае опровержение 1-го правила посылок будет выглядеть таким образом: EmxEmy → f(x,y).
97
98
Мы получили заключение «Некоторые не-Х суть не-Y» в третьем базисе, т.е. в
базисе Аристотеля. В этом случае опровержение Аристотеля выполнено без
привлечения скрытых посылок.
Задача 2.
Проверить корректность 2-го правила посылок классической силлогистики.
Решение.
Это правило формулируется так [9, стр.134]: «Если одна из посылок – отрицательное суждение, то и заключение должно быть отрицательным». Контрпример для этого случая может быть таким.
Все люди(m) – животные(x).
Ни один человек(m) не имеет хвоста(y).
F(x,y) = ?
В качестве универсума(U) примем множество существ, в том числе и Богов (бесхвостых). Наиболее наглядным является графическое решение по алгоритму ТВАТ.
Из скалярных диаграмм видно, что заключение является общеутвердительным: «Все хвостатые существа – животные», что опровергает 2-е правило
посылок.
98
99
Опять сыграем по правилам Аристотеля, т.е. пренебрежём здравым
смыслом: у нас Y одновременно и меньше, и больше Х. Найдём заключение
для следующих посылок: АmxEmy → f(x,y).
Полученное заключение прочитывается так: «Некоторые Х суть не-Y».
Можно ли считать это отрицательным заключением? Едва ли. Если Yбесхвостые, а Х – животные, то результат выглядит так: «Некоторые животные
имеют хвосты». Если под отрицательными суждениями иметь в виду только
общеотрицательные функторы, то тогда неправота Аристотеля абсолютна.
Задача 3.
Проверить корректность 3-го правила посылок классической силлогистики[9, стр.134].
Решение.
Это правило формулируется так: «Хотя бы одна из посылок должна быть
общим суждением. Из двух частных посылок заключение с необходимостью не
следует». Рассмотрим контр-пример:
Некоторые люди (m) неграмотны (x).
Некоторые люди (m) бескультурны (y).
F(x,y) = ?
Пусть U – множество животных и богов. Предположим, что культурным
(вежливым, например) может быть и неграмотный, т.е. примем, что некультурных меньше, чем неграмотных. Животные по определению не могут быть ни
культурными, ни грамотными. Боги могут быть и невежами, и невеждами. Вновь
воспользуемся алгоритмом ТВАТ.
99
100
f(x,y) = x+i = Ixy(5), т.е. «Некоторые неграмотные бескультурны». Это соответствует математике и здравому смыслу, что ставит под сомнение корректность 3-го правила посылок. Если принять, что без образования не может быть
культуры, то мы сразу получим тривиальное заключение «Все неграмотные
бескультурны». И это общеутвердительное заключение получено абсолютно
корректно в полном соответствии со здравым смыслом при двух частноутвердительных посылках.
Однако проверим это утверждение, пренебрегая здравомыслием, т.е.
опять строго по-Аристотелю. Получим следующую картину при невыполнимом в
реальной жизни условии, что Y одновременно и меньше, и больше Х.
Проведём синтез силлогизма ImxImy → f(x,y).
100
101
Да, действительно для человека с больным рассудком 3-е правило посылок Аристотеля неопровержимо.
Задача 4.
Проверить 4-е правило посылок на примере синтеза силлогизма:
Все люди (m) смертны (x)
Некоторые люди (m) неграмотны (y)
-----------------------------------------------f(x,y) = ?
Решение.
Конкретизируем рассматриваемый силлогизм.
В храме Аполлона находятся 2 жреца, 3 жертвенных животных и сам бог
Аполлон. Известно, что неграмотных четверо.
Универсум состоит из 6 «душ»: жрецов, животных и бога. Следовательно,
по алгоритму ТВАТ возможно одно единственное заключение: «Все неграмотные смертны». Мы не можем считать Аполлона неграмотным: пришлось бы
увеличить количество безграмотных до 5 единиц.
Такое заключение перечёркивает 4-е правило посылок[9,стр.135]:” Если
одна из посылок – частное суждение, то и заключение должно быть частным”.
Однако вновь вернёмся к правилам игры Аристотеля. Вновь по алгоритму
ТВАТ проведём синтез силлогизма. Пусть это будет силлогизм EmxImy →
f(x,y).
101
102
Мы подтвердили 4-е правило посылок, но нужно иметь в виду, что частноутведительный функтор Аристотеля не «вписывается ни в какие ворота», ему
по утверждению Васильева[5] нет места в науке.
Следовательно, мы доказали, что с точки зрения здравого смысла все правила посылок и все модусы некорректны. Даже для человека с больным воображением, пользующегося базисом Аристотеля, первая половина всех правил
посылок ущербна.
Одновременно мы доказали, что на заключение влияют не только характер посылок, но и количественные характеристики всех терминов-множеств.
Таким образом, все логические построения Аристотеля оказались хрупкими
костылями для интеллектуальных инвалидов.
Итак, мы убедились, что все правила силлогистики некорректны. Рассматривать после этого “правильные” модусы Аристотеля уже не имеет смысла.
Наиболее очевидная ошибка Аристотеля связана с первым модусом 4-й фигуры. Здравый смысл и математика убеждают нас в том, что от перестановки
посылок заключение не изменяется. Однако все логики вслед за Аристотелем
повторяют, что 1-й фигуре соответствует модус ААА, а 4-й – AAI. Приведём
результаты синтеза этого модуса в базисе Аристотеля по алгоритму ТВАТ:
102
103
Мы доказали, что первые модусы 1-й и 4-й фигуры ничем не отличаются
друг от друга, т.е. строго математически подтвердили правоту здравого смысла. Наиболее грубая, невежественная ошибка Аристотеля заключается в том,
что он в своих модусах не учитывает ни содержание терминов, ни их количественные характеристики. Это невежество тиражируется мировой наукой, преподаванием безграмотной болтологики в средних и высших учебных заведениях России. Невежество современных математиков заключается не только в
том, что они проигнорировали предостережение Ф. Бэкона, который ещё в
1620г. заявил о бесполезности и даже вредности логики Аристотеля, но и в
том, что эти «так называемые логики» (по выражению Кэрролла) не сумели за
120 лет освоить трудов выдающихся математиков П.С. Порецкого и Л. Кэрролла. Аналитическое представление кванторов Axy и Exy впервые разработал в
1881 г. гениальный русский логик П.С. Порецкий, а вслед за ним к таким же результатам пришёл талантливый английский писатель и учёный Л. Кэрролл. До
сих пор ни в одном учебнике по математической логике вы не встретите этих
формул, однако будете всюду натыкаться на кванторное исчисление, которое
ничего не исчисляет, и алгебру множеств, которая является обычной алгеброй
логики.
Заключение
1.Предложены простые и надежные способы графической и аналитической проверки силлогизмов и синтеза заключений или посылок для любых
базисов.
2.Применение предложенных методов избавляет от необходимости
запоминания множества логических правил и законов.
3.Предложенные методы ставят крест на исчислении предикатов,
кванторный аппарат которого не справился, да и не мог по определению справиться, с задачами анализа и синтеза силлогизмов, поскольку является не исчислением, а примитивной мнемоникой.
4.Впервые аналитически описан базис логики Аристотеля-Жергонна.
5.Впервые на основе базиса Аристотеля-Жергонна разработана силлогистика, существенно отличающаяся от классической.
6.Впервые проверены все 64 модуса силлогистики АристотеляЖергонна. Доказано, что аристотелев модус AAI в 4-й фигуре не является правильным.
7.Впервые доказано, что ни силлогистика Аристотеля-Жергонна, ни
классическая силлогистика не укладываются в прокрустово ложе 19 «правильных» модусов.
8.Доказано, что ни классическая силлогистика, ни силлогистика Аристотеля-Жергонна не имеют никакого отношения к логике здравого смысла.
9. Доказано, что все 4 правила посылок с точки зрения здравого
смысла некорректны.
103
104
Глава пятая
Атомарная силлогистика.
Внимательный анализ силлогизмов приводит к выводу о том, что даже базисы логики здравого смысла не всегда корректно выражают содержание посылок. Проиллюстрируем это следующим силлогизмом [11].
Все солдаты (х) храбрые(m)
Некоторые англичане(y) храбрые(m)
---------------------------------Некоторые англичане – солдаты
Решение.
Представим 2-ю посылку в русском базисе.
Правомерно ли использование во второй посылке русского базиса[27]?
По меньшей мере, допущена некорректность по отношению к англичанам и
нарушена достоверность посылки. Исходя из скалярной диаграммы для Imy(2)
и полагая универсумом все человечество, приходим к выводу, что возможны
ситуации, когда все трусы - англичане. Это несправедливо. Правильным в этом
случае будет использование базиса Васильева. Рассмотрим посылку, которая
не вписывается ни в один из базисов. Суждение "Все люди (х) смертны (у)"
при условии, что универсумом являются живые существа, описывается следующей формулой: Axy = y. Посылка "Ни один живой человек(x) не есть труп(y)"
также имеет нестандартное аналитическое представление: Exy = xy'+x'y. Многообразие базисов приводит к мысли о том, что разумнее иметь некий элементарный базис, на основе которого можно как из кирпичиков (атомов) строить
описание любой посылки. Автор предлагает следующий "атомарный" базис.
Все Х суть Y.
a)
Иллюстрация: "Все квадраты(x) суть прямоугольники(y)".В данном случае
универсум - параллелограммы.
104
105
b)
Иллюстрация: "Все люди(x) смертны(y)" при условии, что универсум – смертные существа.
Ни один X не есть Y.
a)
Иллюстрация: "Ни один круг(x) не есть квадрат(y)" Универсум(U) - геометрические фигуры.
b)
Иллюстрация: "Ни один живой (х) не есть труп (у)"
Некоторые X суть Y.
105
106
a)
Иллюстрация: " Некоторые студенты (х) отличники (у)". U – учащиеся.
b)
Иллюстрация: "Некоторые люди (х) неграмотны (у)". Универсум – смертные
существа.
На основе атомарного базиса может быть построен любой другой. Например, функтор Ixy(2)
представляет
собой
объединение Ixy(a), Ixy(b).
Функтор Axy(3)
является
комбинацией функторов Axy(a), Axy(c). Все эти
объединения легко выполняются с помощью скалярных диаграмм. Для фиксации и компактного описания введём операцию сцепления (конкатенации) функторов, обозначив ее символом ||. Тогда вышеприведенные словесные описания могут быть представлены в виде следующих выражений.
Ixy(2) = Ixy(a) || Ixy(b)
Axy(3) = Axy(a) || (x=y)
Можно ли сделать атомарный базис более компактным, более элементарным? Да, безусловно. Необходимо произвести следующие замены.
Axy(b) = Axy(a)Ax'y(a);
Axy(c) = (y=x) - равнозначность;
Exy(a) = Axy'(a);
Exy(b) = (y=x') - неравнозначность;
Ixy(b) = Ax'y(a).
Таким образом, элементарный атомарный базис в качестве фундамента
имеет всего лишь два силлогистических функтора:
Axy = x'+y,
Ixy = x+y+x'y' = 1
Опишем на основе этих формул все базисы здравого смысла и базис Аристотеля.
Русский базис.
Axy(2) = Axy = x'+y
106
107
Exy(2) = Axy' = x'+y'
Ixy(2) = Ixy || Ax'y = x+y+ix’y' = x+y+i
Базис Васильева.
Axy(8) = Axy = x'+y
Exy(8) = Axy' = x'+y'
Ixy(8) = Ixy = x+y+x'y' = 1
Базис Аристотеля-Жергонна.
Axy(3) = Axy || (x=y) = xy+x'y'+ix'y = xy+x'y'+iy
Exy(3) = Axy' = x'+y'
Ixy(3) = Ixy || Ax'y || Axy || Ayx || (x=y) = xy+i(x'+y') = xy+i
Oxy(3) = Ixy || Ax'y || Axy' || Ayx = xy'+i(x'+y) = xy’+i = Ixy'(3)
Для синтеза силлогизмов в атомарном базисе пригодны все разработанные
автором алгоритмы: "Осташ", "ИЭИ", "ТВАТ" . Самым простым и надёжным является графический алгоритм «ТВАТ».
Пример 1.
Все люди(m) смертны (х)
Некоторые люди(m) неграмотны (у)
_______________________________
Найти f(x,y)
Решение.
В данном случае универсум - существа.
M = Amx(b)Imy(b) = x(m+y) = xm+xy
f(x,y) = xy+x = x = Ayx(b)
Число в скобках (индекс) указывает вариант базиса. Базис заключения
может быть не только атомарным, но и смешанным (русский, общеразговорный, Аристотеля и т.д.). Базис посылок, как правило, должен быть атомарным.
Рассмотрим синтез соритов, т.е. многопосылочных силлогизмов. Никаких проблем здесь не существует, если логик хорошо знает карту Карно или метод
обобщенных кодов для минимизации логических функций[13,14]. При
числе посылок более 10 разумнее использовать программы минимизации на
основе метода обобщённых кодов Мавренкова для любого ПК.
Пример 2.
Пусть в атомарном базисе в варианте "a" задан сорит из 6 посылок:
M = AabAbcAcdAdeAexExy = (ab')'(bc')'(cd')'(de')'(ex')'(xy)'.Найти заключения
для различных комбинаций аргументов.
Решение.
Перемножать все эти функторы слишком утомительно. Инженерная логика в
таких ситуациях использует формулу Моргана и работает с M'.
M' = ab'+bc'+cd'+de'+ex'+xy.
Заполнив карту Карно на 7 переменных для М', сразу из нее получим выражение для М:
M = a'b'c'd'(e'x'+xy') + dexy'(a'b'+bc).
Отсюда можем получить заключение для любых аргументов. Вся операция
занимает не более 5 мин при условии, что под рукой бланки карт Карно на 6-8
переменных. Однако не мешает проверить истинность полученного для М выражения. Делается это просто: нужно вывести из М все исходные посылки. Для
107
108
чего нужно прсто заменить на логическую единицу все «лишние» переменные.
Например, для M(a,b) получим:
M(a,b) = a’b’+a’b’+b = a’+b = Aab, что точно соответствует первой посылке
заданного сорита. Остальные посылки читатель может проверить самостоятельно.
Аналогично могут быть получены заключения(функции) для любых других аргументов. Это метод Порецкого и здесь он намного превзошёл Кэрролла, который из каждого сорита мог вывести лишь одно заключение.
М(a,y) = a'+a'y'+y'a'+y' = a'+y' = Eay
М(a,x) = a'x'+a'x+xa'+x = a'+x = Aax
М(b,d) = b'd'+db'+db = b'+d = Abd и т.д.
Все заключения получены в атомарном базисе (вариант "а").
Пример 3.
Пусть первые 5 посылок сорита заданы в атомарном базисе, а шестая - в
русском.
M = AabAbcAcdAdeAexIxy
Найти заключение f(a,y).
Решение.
Используя решение предыдущего примера для М(a,x),получим:
M = AabAbcAcdAdeAexIxy = AaxIxy = (a'+x)(x+y+ix'y') =x+a'y+ia'x'y'
M(a,y) = a'y+i = Ia'y(3).
Заключение получено в 3-м (Аристотелевом) базисе. Скалярные диаграммы
подтверждают полученные результаты.
Пример 4.
Все добрые люди – честные
Все недобрые люди – агрессивные
Найти заключение f(x,y).
Решение.
Добрые люди – m.
Честные люди – x.
Агрессивные люди – y.
Люди – универсум U.
По алгоритму «ИЭИ»
M = AmxAm’y = (m’+x)(m+y) = mx+m’y.
F(x,y) = x+y = Ixy(6) = Ax’y = Ay’x.
F(x,y) = x+y = Ixy(6) = Ax’y = Ay’x, т.е. результаты всех методов синтеза совпали.
108
109
Пример 5.
На конференциях, семинарах и лекциях я часто подбрасывал слушателям
силлогизм:
Все люди(m) смертны(x).
Некоторые люди(m) неграмотны(y).
-----------------------------------------Некоторые смертные неграмотны.
Я заранее предупреждал испытуемых, что все их попытки решения задачи
обречены на провал. "Корифеи" возмущались, но справиться с силлогизмом не
смог никто. Это в принципе невозможно без знания Русской логики. Она дисциплинирует мышление, заставляет конкретизировать посылки, вкладывая строго
определённый смысл в каждый термин, требует чёткого определения универсума. По канонам классической логики заключение должно выглядеть так: Некоторые смертные неграмотны". На самом деле здесь возможны несколько вариантов решения в зависимости от универсума и конкретного наполнения терминов, почему и не может решить силлогизм ни один академик. Одно из возможных заключений имеет вид:
Все неграмотные смертны.
Это вопиюще противоречит законам классической логики, но вполне согласуется со здравым смыслом, если мы в качестве универсума примем множество смертных и бессмертных существ и будем считать всех животных неграмотными, а богов - грамотными.
5.1. Практикум по силлогистике.
В своей книге “Логика для студентов” О. А. Солодухин приводит большое
количество задач. Это первый гуманитарий, который пытается привлечь математику для анализа силлогизмов. Проверим эти задачи алгоритмами ИЭИ и
ТВАТ.
В дальнейшем все примеры будут построены на базисе Васильева,поскольку именно он более всего отражает логику здравого смысла. Напомним,
что этот базис имеет следующее аналитическое представление:
Axy = x'+y
Exy = x'+y'
Ixy(8) = x+y+x'y' = 1, где в скобках указан номер базиса для частноутвердительного суждения, а апостроф означает отрицание.
Для частно-утвердительного суждения были получены следующие выражения:
1. Ixy = x
2. Ixy = x+y+ix’y’ – русский базис
3. Ixy = xy + i(x’+y’) – базис Аристотеля
109
110
4.
5.
6.
7.
8.
Ixy = x+y’+ ix’y
Ixy = x+ix’
Ixy = x+y
Ixy = y+iy’
Ixy = x+y+x’y’ = 1 – базис Васильева
Следующие задачи созданы Кэрроллом[11].
Задача 1[11]
Только философы эгоисты.
Нет циника, который не был бы эгоистом.
Следовательно, все циники – философы.
Решение.
Пусть x – философы, y – циники, m – эгоисты. Универсум – люди. Тогда
по алгоритму ИЭИ получим:
M = AmxAym = (m’+x)(y’+m) = m’y’+xy’+mx
F(x,y) = y’+x = Ayx, т.е. наш результат подтвердил истинность заключения.
Проверим решение по алгоритму ТВАТ.
F(x,y) = y’+x = Ayx, т.е. результаты по алгоритмам ИЭИ и ТВАТ совпали.
Задача 2[11]
Лишь глупые люди верят в конец света.
Тот, кто верит в гармонию мира, не верит в конец света.
Всегда найдётся глупец, который не верит в гармонию мира.
Решение.
Пусть х – глупые люди, m – верящие в конец света, у – верящие в гармонию мира. Универсум – люди.
M = AmxEym = (m’+x)(y’+m’) = m’+xy’
f(x,y) = xy’+i = Ixy’(3)
F(x,y) = xy’+i = Ixy’(3).
110
111
Если трактовать заключение как “Все глупцы не верят в гармонию мира”,
то такой вывод ошибочен.
Задача 3[11]
Каждого, кто верит в себя, можно считать Человеком.
Никто, ни один Человек не верит политикам.
Все, кто верит политикам, не верит в себя.
Решение.
Пусть х – кто верит в себя, m – Человек, у – кто верит политикам. Универсум – люди.
M = (x  m)Emy = (xm+x’m’)(m’+y’) = x’m’+xmy’
f(x,y) = x’+y’ = Exy.
Задача 4[11,стр.151]
Нет таких членов парламента, которые не участвовали бы в законотворчестве.
Только 12% членов парламента составляют юристы.
Не все, кто создают законы, являются юристами.
Решение.
Пусть x – законотворцы, m – члены парламента, y – юристы. Универсум –
люди.
M = AmxImy(8) = (m’+x)&1 = m’+x
F(x,y) = x+i = Ixy(5).
F(x,y) = x+i = Ixy(5), т.е. алгоритмы ИЭИ и ТВАТ дали одинаковые результаты,формально не подтверждающие заключение Кэрролла, поскольку в
111
112
нём не указан базис.
Задача 5[11]
Среди юристов имеются профессиональные бизнесмены.
Настоящий бизнесмен не боится инфляции.
Некоторые юристы не опасаются инфляции.
Решение.
Пусть x – юристы, m – бизнесмены, y – не боящиеся инфляции предприниматели. Универсум – люди.
M = IxmAmy = 1*(m’+y) = m’+y
F(x,y) = y+i = Ixy(7).
Опять формальное несовпадение исходного заключения с полученными
результатами, поскольку в заключении не указан базис. По умолчанию в
классической логике используется базис Аристотеля, т.е. 3-й базис.
Задача 6[11]
Только политики верят в пользу насилия.
Не всякий любитель насилия любит собственных детей.
Некоторые политики не любят своих детей.
Решение.
Пусть x – политики, m – любители насилия, y – не любящие своих детей
родители.Универсум – люди.
M = AmxImy(8) = (m’+x)&1 = m’+x
F(x,y) = x+i = Ixy(5)
112
113
Опять формальное несовпадение результатов с исходным заключением
Кэрролла.
Задача 7[11]
Только в споре рождается истина.
Никто не станет спорить, кроме глупца или мошенника.
Лишь глупец или мошенник могут достичь истины.
Решение.
Пусть x – “родители истины”, m – спорщики, y – глупец или мошенник.
Универсум – люди.
M = AxmAmy = (x’+m)(m’+y) = m’x’+x’y+my
F(x,y) = x’+y = Axy.
Задача 8[11,стр.151]
Боязливый к прекрасному полу – боязлив и в жизни.
Тот, кто знает логику, не боится женщин.
Трус не разбирается в логике.
Решение.
Пусть x – боязливый в жизни, m – боящийся женщин, y – знающий логику.
Универсум – мужчины.
M = AmxEym = (m’+x)(y’+m’) = m’+xy’,
F(x,y) = xy’+i = Ixy’(3).
В данном случае исходное заключение кардинально ошибочно. Должно
быть в 3-м базисе: «Некоторые трусы не разбираются в логике» .
Задача 9[11]
Среди болтунов нет логиков.
Только болтун может стать политиком.
113
114
Ни один логик не станет политиком.
Решение.
Пусть x – логик, m – болтун, y – политик. Универсум – люди.
M = EmxAym = (m’+x’)(y’+m) = m’y’+x’y’+mx’
F(x,y) = x’+y’ = Exy.
Задача 10[11]
Иногда проходимец может оказаться ясновидцем.
Если ты ясновидец, то не должен лгать.
Существуют проходимцы, которые обязаны говорить правду.
Решение.
Пусть x – проходимец, m – ясновидец, y – честный. Универсум – люди.
M = IxmAmy = 1&(m’+y) = m’+y
F(x,y) = y+i = Ixy(7)
Опять Кэрролл получил заключение в 3-м базисе, а должно быть в 7-м.
Задача 11[1,стр.152]
Лишь двоечник по убеждению – лентяй.
Ни один студент не любит получать двойки.
Значит, среди студентов нет лентяев.
Решение.
Пусть x – лентяй, m – двоечник, y – студент.Универсум – учащиеся.
M = AxmEym = (x’+m)(y’+m’) = x’y’+my’+m’x’
F(x,y) = x’+y’ = Exy.
114
115
Задача 12[11]
Лишь в правовом государстве реализуются права граждан.
Только демократическое государство может быть правовым.
Права граждан могут быть реализованы лишь в демократическом государстве.
Решение.
Пусть x – реализующее права граждан государство, m – правовое государство, y – демократическое государство. Универсум – государство.
M = AxmAmy = (x’+m)(m’+y) = m’x’+x’y+my = m’x’+my
F(x,y) = x’+y = Axy.
Особый класс рассуждений составляют логические конструкции, в которых
вместо связки «есть»(«суть») используется любой другой глагол. В книге Вагина В.Н. «Дедукция и обобщение в системах принятия решений» – М.: Наука,
1988 на стр.44 приводится пример 2.18:
Некоторые студенты(m) любят(z) всех преподавателей(x).
Ни один студент(m) не любит(z) ни одного невежду(y).
Следовательно, ни один преподаватель не является невеждой.
Этот силлогизм(?!) якобы анализируется с помощью “кванторного исчисления”, которое ничего кроме мнемоники из себя не представляет. На двух
страницах приводится “доказательство” истинности заключения. Однако 5 минут здравого размышления дают совершенно иной ответ. Поэтому проверим
результат с позиций Русской логики.
Вариант 1.
Не очень обоснованно, но будем считать глагол “любить” эквивалентом
обычной связки “есть”. Тогда по алгоритму ИЭИ получим:
M = ImxEmy = m’+y’.
F(x,y) = y’+i = Ixy’(7).
115
116
Поскольку обоснованность замены глагола “любить” связкой “есть” весьма
сомнительна, то проверим заключение по варианту 2.
Вариант 2.
Учтём глагол «любить» как ещё одну логическую переменную z. Тогда по
алгоритму ИЭИ получим:
M = Im(zx)Em(zy) = m’+(zy)’ = m’+z’+y’.
F(x,y) = i+i+y’ = y’+i = Ixy’(7), т.е. “Некоторые преподаватели – не невежды”,
что и требовалось доказать.
5.2. Практикум по решению соритов.
Сорит – это умозаключение, в котором из нескольких посылок выводится, как
правило, одно заключение. Посылки в сорите, за редчайшим исключением, являются общеутвердительными или общеотрицательными. На самом деле реально посылки могут быть как общего, так и частного характера. Но самое
главное, что заключений в сорите может быть огромное количество. Оно определяется как число сочетаний из числа посылок по 2, т.е.
K = С(n, 2) = n(n-1)/2, где
К – число заключений, n – число терминов в посылках. Количество абсолютно
новых заключений меньше К на число исходных посылок. Если же рассматривать искомые заключения, как функции от трёх и более переменных, то К значительно возрастает. Однако при этом теряется прозрачность полученных результатов. Алгоритм «Осташков» для решения соритов достаточно прост. Он
является следствием из алгоритмов «ИЭИ» (синтез силлогизмов) и «Селигер»(решение логических уравнений) [25]. Аббревиатуры СДНФ (совершенная
дизъюнктивная нормальная форма) и МДНФ (минимальная дизъюнктивная
нормальная форма) являются традиционными в классической логике, поэтому
не требуют пояснений.
Алгоритм «Осташков» синтеза соритов.
1. Привести систему уравнений к нулевому виду (исходная система).
2. Заполнить карту Карно нулями в соответствии с термами левых частей
исходной системы уравнений, а в оставшиеся клетки вписать единицы. Эти
единичные термы представляют собой СДНФ полной единицы системы М.
3. Произвести минимизацию совокупности единичных термов. Полученное соотношение представляет МДНФ уравнения полной единицы системы М.
4. Получить из М все заключения сорита как функции от двух заданных
переменных, заменяя на 1 все «лишние» переменные.
5. Представить результаты в виде скалярных диаграмм.
Пример 1.
«Энциклопедия - Россия-Он-Лайн» излагает пример решения сорита клас116
117
сическим методом. Далее это решение приводится в виде текста, выделенного
курсивом.
Алгебра множеств является подразделом булевых алгебр,
впервые возникших в трудах Дж.Буля (1815–1864). В аксиомах булевой алгебры
отражена аналогия между понятиями «множества», «событие» и «высказывания».
Логические высказывания можно записать с помощью множеств и
проанализировать с помощью булевой алгебры.
Даже не вдаваясь в детальное изучение законов булевой алгебры, мы можем
получить представление о том, как она используется на примере одной из
логических задач Льюиса Кэрролла. Пусть у нас имеется некоторый набор
утверждений:
1. Не бывает котенка, который любит рыбу и которого нельзя научить всяким
забавным штукам;
2. Не бывает котенка без хвоста, который будет играть с гориллой;
3. Котята с усами всегда любят рыбу;
4. Не бывает котенка с зелеными глазами, которого можно научить забавным
штукам;
5. Не бывает котят с хвостами, но без усов.
Какое заключение можно вывести из этих утверждений?
Рассмотрим следующие множества (универсальное множество I включает в
себя
всех котят): A – котята, любящие рыбу; B – котята, обучаемые забавным
штукам; D – котята с хвостами; E – котята, которые будут играть с
гориллой; F – котята с зелеными глазами и G – котята с усами. Первое
утверждение гласит, что множество котят, которые любят рыбу, и дополнение
множества котят, обучаемых забавным штукам, не имеют общих элементов.
Символически это записывается как
1. AC(B) = O.
Аналогичным образом остальные утверждения можно записать так:
2. C(D)E = O;
3. G М A;
4. BF = O;
5. D М G.
Принимая во внимание теоретико-множественный смысл символов (или
воспользовавшись законами булевой алгебры), мы можем переписать
утверждения 1, 2 и 4 в виде
1. A М B;
2. E М D;
4. B М C(F).
Таким образом, мы переформулировали исходные утверждения в следующие:
1. Котят, которые любят рыбу, можно обучить забавным штукам;
2. У котят, которые будут играть с гориллой, есть хвосты;
4. У котят, которых можно обучить забавным штукам, глаза не зеленые;
Теперь можно расположить символические записи утверждений в таком порядке,
чтобы последний символ предыдущего утверждения совпадал с первым символом
следующего (этому условию удовлетворяет расположение утверждений в по-
117
118
рядке
2, 5, 3, 1, 4). Возникает цепочка включений E М D М G М A М B М C(F), из
которой можно сделать вывод, что E М C(F) или «Не бывает котенка с
зелеными глазами, который будет играть с гориллой». Такое заключение едва
ли очевидно, если рассматривать пять исходных утверждений в их словесной
формулировке.
Как несложно убедиться, классическая логика при синтезе соритов громоздка и однобока (даёт одно единственное заключение). Решим этот сорит в
соответствии с алгоритмом «Осташков». Используем все обозначения и универсум из цитируемой энциклопедии.
Тогда наши посылки будут описаны с помощью силлогистических функторов следующим образом:
1. Aab.
2. Aed.
3. Aga.
4. Ebf.
5. Adg.
Для перевода мнемонических записей на язык математики воспользуемся Руской логикой[26]: Axy = x’+y; Exy = x’+y’; Ixy(8) = 1. Здесь и далее во всех аналитических выражениях апостроф представляет инверсию аргумента или функции. Переходим к выполнению алгоритма “Осташков”. Вначале находим полную единицу системы М как логическое произведение всех исходных посылок.
1. M = AabAedAgaEbfAdg = (a’+b)(e’+d)(g’+a)(b’+f’)(d’+g).
Поскольку перемножать 5 двучленов утомительно, то переходим к M’ с помощью правила Де Моргана:
M’ = ab’+d’e+a’g+bf+dg’
2 и 3. После заполнения карты Карно и проведения минимизации[13] получим:
M = a’b’d’e’g’+bd’e’f’g’+abd’e’f’+abdf’g
4. Перебирая все комбинации из шести переменных по 2 получим 15 заключений:
f1(a,b) = a’b’+b+ab+ab = a’+b = Aab;(Все котята-“рыболюбы” обучаются забавным штукам)
f2(a,d) = a’d’+d’+ad’+ad = a+d’ = Ada;(Все котята с хвостами любят рыбу)
f3(a,e) = a’e’+e’+ae’+a = a+e’ = Aea;(Все играющие с гориллой любят рыбу)
f4(a,f) = a’+f’+af’+af’ = a’+f’ = Eaf;(Все зеленоглазые не любят рыбу)
118
119
f5(a,g) = a’g’+g’+a+ag = a+g’ = Aga;(Все усатые любят рыбу)
f6(b,d) = b+d’ = Adb;(Все хвостатые обучаются забавным штукам)
f7(b,e) = b+e’ = Aeb;(Все играющие с гориллой обучаются забавным штукам)
f8(b,f) = b’+f’ = Ebf;(Зеленоглазые не обучаются забавным штукам)
f9(b,g) = b+g’ = Agb;(Все усатые обучаются забавным штукам)
f10(d,e) = e’+d = Aed;(Все играющие с гориллой имеют хвосты)
f11(d,f) = d’+f’ = Edf;(Все зеленоглазые – бесхвостые)
f12(d,g) = d’+g = Adg;(Все хвостатые – с усами)
f13(e,f) = e’+f’ = Eef;(Зеленоглазые не будут играть с гориллой)
f14(e,g) = e’+g = Aeg;(Все играющие с гориллой имеют усы)
f15(f,g) = g’+f’ = Efg.(Зеленоглазые – без усов).
Поскольку универсум – котята, то во всех заключениях речь идёт только о них.
Отобразим исходные посылки на скалярных диаграммах в таком порядке:
AabAgaAdgAedEbf. Из диаграмм легко получаются все 15 заключений.
Для разнообразия построим ещё одно заключение в виде функции от трёх
переменных.
f16(a,b,d) = a’b’d’+bd’+abd’+abd = a’d’+ab =(a+d)’+ab = A(a+d)(ab), т.е. “Все
рыболюбы или обучаемые забавным штукам суть хвостатые рыболюбы”. Такое
заключение подтверждается и скалярными диаграммами. Кстати, диаграммы
дают более разнообразные заключения. Кроме полученного из М аналитически
f16(a,b,d) из диаграмм можно вывести заключение f17(a,b,d) = A(ad)b и т.д.
119
120
Из анализа результатов можно сделать следующие выводы:
1. Полученные функции f1(a, b),f5(a, g),f8(b, f),f10(d, e),f12(d, g) соответствуют
исходным посылкам 1,3,4,2,5, что подтверждает правильность результатов
синтеза.
2. Даже все синтезированные заключения не дают наглядного представления
о взаимном соотношении множеств a,b,d,e,f,g. С этой задачей могут справиться
лишь скалярные диаграммы.
Рассмотренный пример чрезвычайно прост. Такой примитивностью грешат все сориты (по определению), поскольку они представляют «цепочки»
вложенных друг в друга посылок, когда из одной посылки легко выводится другая.
Попробуем решить более сложную задачу, когда посылки не укладываются в прокрустово ложе традиционного сорита.
Пример 2.
Пусть заданы 4 суждения: Aa’c, Aa’d, Ab’c, Ab’d. Если исходные посылки
из предыдущего примера можно было сразу представить в виде скалярных диаграмм и тем самым получить готовое решение сорита, то в данном примере так
не получится. Решение по алгоритму «Осташков» выглядит следующим образом.
M = Aa’c Aa’d Ab’c Ab’d = (a+c)(a+d)(b+c)(b+d).
M’ = a’c’+a’d’+b’c’+b’d’.
После занесения в карту Карно и минимизации получим:
M = ab+cd.
f1(a,b) = ab+1 = 1 = Iab(8);
f2(a,c) = a+c = Aa’c;
f3(a,d) = a+d = Aa’d;
f4(b,c) = b+c = Ab’c;
f5(b,d) = b+d = Ab’d;
f6(c,d) = 1+cd = 1 = Icd(8).
Полученные функции f2 – f5 совпали с исходными посылками, что подтвердило корректность синтеза, но впредь лишнюю работу делать не обязательно:
можно было построить лишь f1, f6. Пример 2 впервые показывает, что заключение сорита может быть частно-утвердительным. По результатам синтеза построим скалярные диаграммы. Поскольку такой процесс эвристического построения несколько затруднителен, то предлагается использовать с этой целью
сокращённую таблицу истинности для М и формализовать синтез скалярных
диаграмм.
120
121
Как несложно догадаться, скалярные диаграммы представляют собой двоичные коды рабочих наборов полной единицы системы М.
Иногда возникает задача восстановить по известной полной единице системы М исходные посылки. Алгоритм разложения логического уравнения на
исходные посылки прост.
Алгоритм графического нахождения исходных посылок.
1. Построить сокращённую таблицу истинности для М.
2. По сокращённой таблице истинности построить скалярные диаграммы.
3. Из скалярных диаграмм выбрать C(N,2) логических функций от двух переменных, где N – число аргументов, а C(N,2) – число сочетаний из N по 2.
Пример 3.
В задаче Порецкого о птицах получена полная единица системы:
M = sy+gx’. Найти минимальное количество возможных посылок.
Построим сокращённую таблицу истинности для М.
По полученной таблице истинности нарисуем скалярные диаграммы.
121
122
По скалярным диаграммам выберем наиболее простые логические функции от двух переменных:
f1(g,s) = g+s = Ag’s;
f2(g,y) = g+y = Ag’y;
f3(s,x) = s+x’ = Axs;
f4(y,x) = x’+y = Axy.
После перемножения полученных посылок определим M:
M = (g+s)(g+y)(x’+s)(x’+y) = (g+sy)(x’+sy) = sy+gx’, что совпадает с исходными
данными. Кстати, у Порецкого вместо 4-х посылок использованы 5. Т.е. для
описания логической системы от n переменных достаточно n двухаргументных
посылок. Однако это одно из возможных решений задачи: в результате мы можем получить f5(g,x) = Egx. Поэтому правильным решением будет полный перебор всех двухаргументных посылок. Из М следует, что f5(g,x) = 1 = Ixy(8), но
никак не Egx.
Алгоритм аналитического отыскания исходных посылок.
По заданной полной единице системы построить C(N,2) посылок сорита как
функций от двух переменных, заменяя на 1 все «лишние» переменные. Здесь N
– число аргументов.
Проверить полученные результаты логическим перемножением посылок и
сравнением
с заданной полной единицей системы.
Пример 4.
Пусть задано M = m’+xy. Найти исходные посылки.
f1(m, x) = m’+x = Amx;
f2(m, y) = m’+y = Amy.
M = (m’+x)(m’+y) = m’+xy, что и требовалось доказать. Однако данный пример
не так прост, как кажется на первый взгляд. Здесь кроется подвох, связанный с
отысканием f3(x,y). Поэтому из М находим третью посылку f3(x,y) = 1 = Ixy(8).
Именно эти три посылки однозначно определяют всю систему М.
При графическом методе по заданной М нужно построить таблицу истинности, а по ней нарисовать скалярные диаграммы.
Из скалярной диаграммы видно, что на самом деле M = AmxAmyIxy(8). Если не использовать графический алгоритм поиска посылок, то можно было бы
получить f3(x,y) = Axy, f4(x,y) = Ayx и т.д.
122
123
Пример 5
Если Бог существует, то он всемогущ и всеблаг. Бог или бессилен предотвратить зло, или он не желает предотвращать его(зло существует на Земле).
Если Бог всемогущ, то неверно, что он бессилен предотвратить зло. Если Бог
всеблаг, то неверно, что он не желает предотвращать зло. Вывести все возможные заключения.
Решение.
X – Бог всемогущ,
Y – Бог всеблаг,
Z – Бог существует,
U – зло существует,
V – Бог бессилен против зла,
W – Бог желает предотвратить зло.
Рассматривая эту задачу в разделе «Логика суждений», мы пришли к выводу о невозможности существования Бога(при условии, что все посылки корректны). Однако, этот вывод далеко не единственный из заданных посылок.
Чтобы найти все 15 двуаргументных заключения, необходимо вначале получить
полную единицу системы:
M = (z  xy)u(u  (v+w’))(x  v’)(y  w) =
= (z’+xy)u(u’+v+w’)(x’+v’)(y’+w).
Чтобы не перемножать все посылки, воспользуемся формулой де Моргана.
M’ = z(x’+y’)+u’+uv’w+xv+yw’.
После занесения нулей в карту Карно в соответствии с M’ и заполнения
оставшихся пустыми клеток карты Карно единицами получим в результате минимизации:
M = x’y’z’uv + y’z’uv’w’ + x’z’uvw.
Из М выведем все двуаргументные заключения:
F1(x,y) = x’y’+y’+x’ = x’+y’ = Exy;
F2(x,z) = x’z’+z’ = z’;
F3((x,u) = x’u+u = u;
F4(x,v) = x’v+v’ = x’+v’ = Exv;
F5(x,w) = x’+w+x’w = x’+w’ = Exw;
F6(y,z) = z’;
F7(y,u) = y’u+u = u;
F8(y,v) = y’v+y’v’+v = y’+v = Ayv;
F9(y,w) = y’+y’w’+w y’+w Ayw;
F10(z,u) = z’u = (Auz)’, т.е. «Неверно, что всё зло от Бога»;
F11(z,v) = z’v+z’v’+z’v = z’;
F12(z,w) = z’+z’w’+z’w = z’;
F13(u,v) = uv+uv’+uv = u;
F14(u,w) = u+uw’+uw = u;
F15(v,w) = v+v’w’+vw = v+w’ = Awv.
Пример 6.
Дано: M = A(a+b)c & A(c+d)e.
Найти все незаданные логические функции от двух переменных.
Решение.
123
124
M = A(a+b)c & A(c+d)e = (a’b’+c)(c’d’+e) = a’b’c’d’+a’b’e+ce.
Отсюда легко могут быть получены все функции от двух переменных
(см.алгоритм «Осташков» и работу Порецкого [34]). Однако в таком решении
нет наглядности, оно непрозрачно. Поэтому построим таблицу истинности, а по
ней – мои скалярные диаграммы.
Из диаграмм видны все соотношения между множествами (логическими
переменными a – e).
Пример 7.
Это задача Акимова О.Е. [1, №24, с.58]. Вот её текст.
Уменьшение температуры приводит к снижению давления и уменьшению
объёма. Увеличение объёма приводит к росту скорости потока. Повышение
давления приводит к падению уровня, если при этом уменьшать температуру.
Снижение скорости приводит к уменьшению давления или росту температуры.
Технолог Иванов рассудил так: «Мне надо повысить давление при одновременном снижении скорости потока, поэтому я должен увеличить объём и температуру».
Автор утверждает, что истинным утверждением является такое: «Уменьшение температуры и увеличение давления ведут к уменьшению объёма».
Решение.
Введём обозначения:
a – уменьшение температуры.
b – снижение давления.
c – уменьшение объёма.
d – снижение скорости.
e – падение уровня.
По алгоритму «Импульс» получим следующее решение.
(a→bc)(c’→d’)(b’a→e)(d→(b+a’)) → (a’c’→b’d) = a(b’+c’)+c’d+ab’e’+ab’d+a+ c
+ b’d = c’d’+a+c+b’d ≠ 1, т.е. технолог Иванов ошибается.
Чтобы проверить Акимова О.Е. [1,с.64], заменим правую часть нашего
выражения:
(a→bc)(c’→d’)(b’a→e)(d→(b+a’)) → (a’b→c) = a(b’+c’)+c’d+ab’e’+ab’d+a+b’+
+c = c’d’+a+b’+c ≠ 1, т.е. автор примера не прав. Однако, это скорее всего опечатка Акимова, поскольку словесная формулировка заключения переводится на
язык логики иначе: (ab’→c).
124
125
В этом случае заключение по алгоритму «Импульс» получается достоверным:
(a→bc)(c’→d’)(b’a→e)(d→(b+a’)) → (ab’→c) = a(b’+c’)+c’d+ab’e’+ab’d+a’+b+
+c = 1.
Но не будем торопиться с выводами. Проверим решение задачи с помощью алгоритма «Осташков». Полная единица системы выглядит так:
M = (a→bc)(c’→d’)(b’a→e)(d→(b+a’)) = (a’+bc)(c+d’)(b+a’+e)(d’+b+a’).
Перемножать все эти выражения в скобках утомительно – воспользуемся
формулой де Моргана:
M’ = a(b’+c’)+c’d+ab’e’+ab’d = ab’+ac’+c’d.
Занесём M’ нулями в карту Карно – получим в результате:
M = a’(c+d’)+bc.
Найдём заключение в виде f(a,b,c) = M(a,b,c) = a’c+a’+bc = a’+bc = a→bc.
Для проверки этого абсолютно правильного и единственного заключения
представим полную единицу системы в графическом виде.
Посмотрим, возможно ли заключение Акимова в виде (ab’→c), что эквивалентно A(ab’)c. Из диаграмм Лобанова видно, что пересечение множеств ab’
пусто, т.е. исходная посылка ложна. А из ложной посылки можно вывести всё,
что угодно. Следовательно, решение Акимова безграмотно. Работа [1] насыщена примерами и задачами, что говорит о высоком профессионализме автора
и его любви к математике. Однако, в области математической логики – дремучее невежество и вопиющая безграмотность. Это общая беда всех матлогиков
и тем более логиков-гуманитариев.
Какие ещё выводы можно было бы сделать из диаграмм? Ну, например,
A(ac)b = ac→b. Как это понимать? Заключение a→bc не единственное? Нет,
единственное: просто заключение ac→b вторично, является производным из
исходного a→bc. Дело в том, что здесь проявляются импликативные законы.
Импликативно-силлогистические законы и их связь с силлогистикой.
1. Законы умножения.
1.1. Левую часть импликации можно логически умножить на любую логическую переменную.
(a→b) → (ac→b) = (a’+b) → (a’+c’+b) = ab’+a’+c’+b = 1, или
Aab → A(ac)b
1.2. Обе части импликации можно логически умножить на одну и ту
же логическую переменную.
(a→b) → (ac→bc) = (a’+b) → (a’+c’+bc) = ab’+a’+c’+bc = 1, или
125
126
Aab → A(ac)(bc)
1.3. Нельзя сокращать обе части импликации на общий множитель.
(ac→bc) → (a→b) = (a’+c’+bc) → (a’+b) = ac(b’+c’)+a’+b ≠ 1.
В этом случае правильная импликация выглядит так: A(ac)(bc) → Iab(8).
1.4. Любой логический сомножитель правой части импликации можно
переносить в левую.
(a→bс) → (ac→b) = (a’+bc) → (a’+c’+b) = a(b’+c’)+a’+c’+b = 1, или
Aa(bc) → A(ac)b
(a→bс) → (ab→c) = (a’+bc) → (a’+b’+c) = a(b’+c’)+a’+b’+c = 1, или
Aa(bc) → A(ab)c
1.5. Нельзя в правой части импликации вводить любой сомножитель.
(a→b) → (a→bc) = (a’+b) → (a’+bc) = ab’+a’+bc ≠ 1, или
Aab → Aa(bc) ≠ 1
Правильная импликация в этом случае: Aab → Ia(bc) (3).
2. Законы сложения.
2.1. Левую и правую части импликации можно логически сложить с одной и той же логической переменной.
(a→b) → ((a+c)→(b+c)) = (a’+b) → (a’c’+b+c) = ab’+a’c’+b+c = 1, или
Aab → A(a+c)(b+c).
2.2. К правой части импликации можно добавлять любое логическое
слагаемое.
(a→b) → (a→(b+c)) = (a’+b) → (a’+b+c) = ab’+a’+b+c = 1, или
Aab → Aa(b+c).
2.3. Из левой части импликации можно удалять любое логическое слагаемое.
((a+c)→b) → (a→b) = (a’c’+b) → (a’+b) = (a+c)b’+a’+b = 1, или
A(a+c)b → Aab, A(a+c)b → Acb.
2.4. Нельзя исключать общие логические слагаемые из левой и правой
частей импликации.
((a+c)→(b+c)) → (a→b) = (a’c’+b+c) → (a’+b) = b’c’(a+c)+a’+b ≠ 1, или
A(a+c)(b+c) → Aab ≠ 1.
В этом случае правильная импликация выглядит так: A(a+c)(b+c) →
Iab(8).
Импликативные законы хорошо иллюстрируются скалярными диаграммами, подтверждая лишний раз единство логики суждений и силлогистики.
126
127
Все вышеперечисленные «аксиомы», законы и правила приведены не для
запоминания, а в качестве иллюстрации простоты доказательства этих законов,
в качестве иллюстрации возможностей созданной в России Русской логики, т.е.
математической теории доказательств.
127
128
Выводы.
1. Анализ силлогистик здравого смысла (русской и общеразговорной) привел
к выводу о том, что наряду с использованием этих силлогистик необходимо
построение атомарной силлогистики.
2. Впервые разработана атомарная силлогистика и даны методы синтеза
атомарных силлогизмов и примеры их использования для решения конкретных
задач.
3. Впервые представлены методы синтеза соритов.
4. Показано, что для каждой содержательной посылки нужно использовать
свой конкретный базис.
128
129
Глава шестая
Естественный вывод и кванторы.
В главе под таким названием в [32] излагается вывод умозаключений из
нескольких посылок. Это может быть непосредственное умозаключение, простой категорический силлогизм или сорит. Но суть не в названии, а в методах
получения результатов. В [32] для анализа умозаключений (доказательства
корректности формулы) применяются кванторы. Автор при доказательстве
применяет вспомогательные выводы с достаточно обременительными правилами. Приведём пример одного такого доказательства[32,стр.299].Необходимо
проверить формулу:
x(A(x)  B(x)) & x A(x)  x B(x)
Цепочка вспомогательных выводов выглядит следующим образом.
x(A(x)  B(x)) & x A(x)
A(c1)
A(c1)  B(c1)
B(c1)
x B(x)
x(A(x)  B(x)) & x A(x)  x B(x)
Во-первых, сложно, а во-вторых не очевидно. Поскольку здесь налицо
простой категорический силлогизм (две посылки и одно заключение), то можно
применить алгоритм «Осташ-Т». Для экономии заменим А(х) на a и В(х) на b.
Не применяя кванторов, получим в русском базисе следующее выражение.
Ax(a  b)Ixa  Ixb = x(a  b)’ + jx’a’ + x + b + ix’b’ = 1(i), что доказывает
истинность исходной формулы. Более очевидным является доказательство в
обычной логике суждений.
M = (a  b) & ia  ib = (a’+b)ia  ib = iab  ib = (iab)’+ ib = a’+b’+jab+ib = 1
Без кванторов также можно анализировать сориты, т.е. умозаключения с
тремя и более посылками. Из [32,стр.301] позаимствуем для доказательства
формулу, которая без кванторов примет вид:
Ax(a+b)Ix(a  c)Ax(b  c)  Ixc = x(a+b)’+jx’(a’+c)’+x(b’+c)’+x+c+ix’c’ =
= x+c+x’ac’+ix’ac’ = 1(i).
Полученные по алгоритмам «Осташ-Т» и «ТВАТ» результаты подтверждают достоверность анализируемого сорита. Поскольку каждый сорит, в конце
концов, приводится к силлогизму, то анализ и синтез соритов можно проводить
129
130
по алгоритмам «Осташ», «ИЭИ» и «ТВАТ». В данном сорите после приведения
его к силлогизму средним термином является переменная a.
Доказательство ложности непосредственного умозаключения «поскольку
все люди - мужчины или женщины, то все люди - мужчины или все люди - женщины» сопровождается в [32,стр.300] сложными вспомогательными выводами
и пространными рассуждениями, что отнюдь не делает доказательство убедительным. Более того, подобные попытки обречены на неудачу, поскольку в
данной ситуации требуется не двоичная, а комплементарная логика. Словесная
формулировка данного умозаключения чрезвычайно аморфна. Это неотъемлемая черта любого естественного языка, с которой приходится мириться. Поэтому для анализа умозаключения прежде всего необходимо корректно аналитически представить посылку и заключение, для чего изобразим посылку на
скалярной диаграмме. Здесь x - люди, m - мужчины, g - женщины.
Дело в том, что в посылке на основе здравого смысла предполагается
исключение ситуации, когда человек является одновременно и мужчиной и
женщиной (гермафродит). Кроме того, человек не может быть одновременно не
мужчиной и не женщиной. И уж тем более не может быть никогда мужчины или
женщины не-человека. Поэтому в таблице истинности данные ситуации отмечены как невозможные. Отсюда получаем выражение для посылки f:
f = x(mg’+m’g)+x’m’g’
На самом деле в этой задаче условие и доказательство должны были
выглядеть так:AmxAgx  Amx+Agx = (Amx)’+(Agx)’+Amx+Agx = 1
В примере 11.2.3.4[32, стр.301] требуется доказать кванторное соотношение:
x(A(x) + B(x)) & x (A(x)  C(x)) &x(B(x)  C(x))  x C(x).
На основе русской силлогистики получим следующее доказательство:
A(a+b)x Ix(ac) A(bc)x  Ixc = (a+b)x’+jx’ac’+(b’+c)x’+x+c+i = x’+x+c+i = 1
На основе инженерной логики суждений доказательство выглядит ещё
проще:
(a+b) i(ac) (bc)  ic = a’b’+ac’+j(a’+c)+bc’+ic = 1.
В примере 11.2.3.1[32, стр.301] заменим кванторное выражение
x (A(x)B(x))  x (A(x)) x (B(x)) на бескванторное и проведём доказательство:
iab  ia ib = iab  iab = 1.
Проведём аналогичные замены в примерах 11.2.3.2 – 11.2.3.6[32]. Получим следующие доказательства.
130
131
11.2.3.2. x(A(x) + B(x)) & x(A(x))’  xB(x)
(a+b) ia’  ib = a’b’+a+ja’+ib = 1.
11.2.3.3. x (A(x) + B(x)) & x(A(x))’  xB(x)
i(a+b) a’  b = (i(a+b))’+a+b = a’b’+j(a+b)+a+b = 1.
11.2.3.5. x(A(x) + B(x)) & x(A(x)  C(x)) & x(B(x)  D(x)) 
x(C(x)+D(x)).
(a+b)(ac)(bd)  (c+d) = a’b’+ac’+bd’+c+d = 1.
11.2.3.6. xA(x)+xB(x)  x (A(x)+B(x))
ia+ib  i(a+b) = i(a+b)  i(a+b) = 1.
В книге В. Ф. Беркова “Логика: задачи и упражнения” (М. : 1998, стр. 122)
приведена задача из логики отношений, которую предлагается решать с помощью многоместных предикатов. Попытаемся её решить без привлечения кванторного исчисления.
Задача 8б.
Выведите заключение из следующих посылок:
Иван дружит с Марьей, Марья дружит с Петром.
Решение.
Примем в качестве универсума множество дружественных отношений(круг друзей). Введём следующие обозначения: m – множество друзей Марьи, x – множество друзей Ивана, y – множество друзей Петра.
Тогда по алгоритму ТВАТ получим следующие скалярные диаграммы.
Кстати, по алгоритму ИЭИ мы получим такой же результат.
M = Ixm(3)Imy(3) = (mx+im’+ix’)(my+im’+iy’) = mxy+im’+ix’y’
f(x,y) = i.
131
132
Следовательно, никакого заключения из этих посылок сделать невозможно.
На скалярных диаграммах изображены не все возможные «дружественные»
ситуации, но даже представленных скаляров хватило для корректного решения
задачи. Решение могло быть получено лишь при заданных количественных характеристиках для терминов силлогизма.
132
133
Заключение.
Автор не считает предложенные методы, алгоритмы и полученные по
ним результаты истиной в последней инстанции. Однако эти результаты хорошо согласуются со здравым смыслом. Автор видит пути ревизии изложенных
методов и собирается критически переосмыслить их при более благоприятных
обстоятельствах. Но некоторые итоги не вызывают сомнения:
- силлогистика Аристотеля не является полной;
многие «правильные» модусы Аристотеля ошибочны (наиболее очевидная ошибка - модус AAI 4-й фигуры);
- правила посылок некорректны;
- модусы не имеют смысла, поскольку не учитывают универсум, конкретное содержание посылок и количественные характеристики терминов;
- аналитическое представление силлогистических функторов Axy,Exy
впервые дано русским логиком П. С. Порецким;
- кванторы не решают проблем анализа и синтеза силлогизмов;
133
134
Глава седьмая
Логика П.С.Порецкого.
Платон Сергеевич Порецкий родился 3 октября 1846 г. в Елизаветграде
Херсонской губернии в семье военного врача[36]. В 1870 г. закончил физматфак Харьковского университета. Был оставлен профессорским стипендиатом
на кафедре астрономии. С 1876 г. избирается астрономом-наблюдателем Казанского университета. За 1876-79 гг. Порецкий опубликовал 2 тома наблюдений на меридианном круге. Несмотря на слабое здоровье участвует в общественной жизни университета, являясь секретарем секции физматнаук, казначеем, а затем и пожизненным членом. Редактирует либеральную газету "Телеграф".
За астрономические исследования в 1886 г. ему присуждается ученая
степень доктора астрономии и звание приват-доцента.
Принимал заочное участие в ряде международных научных конгрессов,
вел активную переписку как с русскими, так и иностранными учеными.
П.С.Порецкий умер 9 августа 1907 г. в с.Жоведь Гродненского уезда
Черниговской губернии, куда переехал из Казани в 1889 г., будучи уже тяжелобольным. Смерть застала его за неоконченной статьей по логике.
Логикой занимается с 1880 г. В 1881 г. выходит его работа "Изложение
основных начал мат.логики ...". В 1884 г. издает свой большой труд "О способах решения логических равенств и об обратном способе математической логики"[34], где излагает теорию логических равенств, закон форм посылок, закон
замещения системы посылок одной посылкою, закон разложения посылок на
элементы, закон исключения терминов из посылок, закон умозаключений(синтез), закон причин.
В этой работе Платон Сергеевич решил поставленную Лейбницем проблему создания логического исчисления. Сам Лейбниц связывал с идеями заложенного им логического исчисления неосуществимую мечту о времени, когда
вместо того, чтобы спорить, люди возьмут карандаши и будут вычислять. Какой-нибудь конкретной потребности в логическом исчислении как таковом в
эпоху Лейбница ещё не было. Независимо от Лейбница идеи алгебры логики,
или исчисления классов, равносильного логике Аристотеля, были развиты
наряду со многими другими исчислениями, созданными в XIX столетии, А. де
Морганом, Булем, Джевонсом, Пирсом, Шредером. Венцом этого периода в истории математической логики были работы русского логика, астронома и математика, собрата Н. И. Лобачевского по Казанскому университету Платона Сергеевича Порецкого. Переходя в своей известной «Алгебре логики» к изложению
метода П. С. Порецкого, Л. Кутюра •писал: «Буль и Шредер преувеличивали
аналогию алгебры логики с обыкновенной алгеброй. В логике различие терминов известных и неизвестных является искусственным и почти бесполезным:
все термины в сущности известны, и речь идёт только о том, чтобы из данных
между ними отношений вывести новые отношения (т. е. отношения неизвестные или неявно известные)». Такова цель метода П. С. Порецкого.
П. С. Порецкий и сам сознавал значение созданного им метода. В предисловии
к своей первой большой работе по математической логике (1884) «О способах
решения логических равенств и об обратном способе математической логики»
134
135
он писал: «Обращаясь к нашему сочинению, предлагаемому ныне на суд читателя, мы должны сказать, что: 1) оно заключает в себе первый опыт (не только
в нашей, но и в иностранной литературе) построения полной и вполне законченной теории качественных умозаключений и 2) оно представляет собой (за
исключением немногих страниц, посвящённых изложению приёмов других авторов) вполне самостоятельную работу, имеющую тем большее значение, что
самые общие формулы и приёмы этой теории получены впервые только нами.
Целая же часть этой теории (переход от умозаключений к посылкам) вполне и
безраздельно принадлежит нам, как по приёмам, так и по самой идее о возможности решения этой задачи».
Порецкий далёк от претензии построить универсальное логическое исчисление. В предисловии к [34] он чётко заявляет, что развиваемое им исчисление
пригодно лишь для «качественных» умозаключений(«качество» в понимании
Порецкого соответствует одноместному предикату). В логических равенствах
Порецкий использует суждения только общего характера(утвердительные или
отрицательные). Более того, можно утверждать, что в случае получения частного заключения эти методы не работают
Работа П.С.Порецкого "Из области математической логики"(1902) является обобщением классической силлогистики. Синтезируется несколько заключений из заданных посылок(элиминация), что даёт возможность доказать отсутствие каких-либо других следствий, помимо следствий искомого вида. Элиминацию до сих пор не освоила современная логика.
Аксиоматика Порецкого.
В [36] утверждается, что аксиоматика Порецкого имеет вид:
a  a,
((a  b)(b  c))  (a  c),
(ab)  a,
(ab)  b,
((a  b)(a  c))  (a  (bc)),
((a  b)(b  a))  (a = b),
(a = b)  (a  b),
(a = b)  (b  a).
Непонятно, почему все эти соотношения называются аксиомами, поскольку они легко и просто доказываются с помощью алгоритма «Импульс».
Воспользуемся алгоритмом «Импульс» для доказательства того, что все
аксиомы Порецкого являются теоремами:
1) a  a = a’ + a = 1,
2) ((a  b)(b  c))  (a  c)=((a’+b)(b’+c))  (a’+c)=ab’+bc’+a’+c = 1,
3) (ab)  a = a’+b’+a = 1,
4) (ab)  b = a’+b’+b = 1,
5) ((a  b)(a  c))(a  (bc)) = ((a’+b)(a’+c))  (a’+bc) = ab’+ac’+a’+bc = 1,
6) ((a  b)(b  a))  (a=b)=((a’+b)(b’+a))  (a=b)=ab’+ba’+ab+a’b’=1,
7) (a = b)  (a  b) = ab’+ba’+a’+b = 1,
8) (a = b)  (b  a) = ab’+ba’+b’+a = 1.
Стяжкин Н.И.[36] приводит исчисление Порецкого в виде длинного списка
из более чем 20 аксиом и правил:
(1A) e = e – принцип тождества;
(2П) (e=c)  (c=e) – симметричность равенства;
135
136
(3П) ((e=c)&(c=b))  (e=b) – транзитивность равенства;
(4A) ee = e – идемпотентность умножения;
(4*A) e+e = e – идемпотентность сложения;
(5A) ec = ce – коммутативность умножения;
(5*A) e+c = c+e – коммутативность сложения;
(6A) (ec)b = e(cb) – ассоциативность умножения;
(6*A) (e+c)+b = e+(c+b) – ассоциативность сложения;
(7A) e(e+c) = e – принцип поглощения;
(7*A) e+ec = e – принцип поглощения;
(9П) (e=c)  (e+b=c+b);
(9*П) (e=c)  (eb=cb);
(10A) e(c+b) = ec+eb;
(11A) e+e’ = 1;
(11*A)e&e’ = 0;
(12A) e&0 = 0;
(12*A)e&1 = e.
Нет нужды доказывать, что весь этот набор аксиом и правил на самом деле является набором теорем, которые легко выводятся по алгоритму «Импульс». Более того, на стр.377 [36] долго и многословно поясняется, как с помощью аксиом и правил можно доказать одну из теорем логических следствий
Порецкого. Покажем, как просто это делается по алгоритму «Импульс»(здесь
переменная e1 заменена на c):
(e=ec)  (e=e(c+x)) = e(ec)’+e’ec+ec+ex+e’(e’+c’x’) = ec’+ec+ex+e’ = e+e’ = 1.
Главные задачи Порецкого рассмотрены в разделе, посвящённом решению логических уравнений. Здесь лишь необходимо подчеркнуть, что аналитическое описание силлогистических функторов Axy, Exy впервые в мире ввёл
Платон Сергеевич Порецкий, а через 12 лет после него к таким же результатам
пришёл Л.Кэрролл. Современная логика до сих пор об этом не догадывается.
Если внимательно изучать его работу[34], то становится очевидным, что
функтор Axy Порецкий воспринимал как пересечение множеств X и Y. Таким
образом по-Порецкому имеем:
Axy  (xxy) = xy + x’(x’+y’) = xy+x’ = x’+ y.
Ayx  (yxy) = xy + y’(x’+y’) = xy+y’ = y’+x.
Exy  (xxy’) = xy’ + x’(x’+y) = xy’+x’ = x’+y’.
Таким образом, вышеприведённые аналитические представления общеутвердительного и общеотрицательного функторов были получены гениальным
русским логиком сто двадцать лет назад, а мировая беспомощная наука до сих
прозябает в невежестве.
136
137
Глава восьмая
Логика Л.Кэрролла.
Прошло более 100 лет после выхода в свет математических трудов великого английского математика и писателя Льюиса Кэрролла. В предисловии к «Истории с узелками» [11] проф. Я.А. Смородинский отмечает многогранность таланта этого учёного. Анализируя книги и статьи о Л. Кэрролле, он замечает, что
одни авторы склонны видеть в нём лишь поэта, автора детских сказок об Алисе, другие – посредственного математика, не разобравшегося с традиционной
логикой. В конце концов историки науки признали, что логические работы Кэрролла намного опережали своё время [11]. Но в это признание трудно поверить: в прекрасном учебнике «История логики» под редакцией добротного педагога В.Ф. Беркова нет ни слова о великом логике. Молчит о нём и английская
наука: нет пророка в своём отечестве. В наше время ни один логик не рискнёт
признаться в незнании его работ. Однако мало прочесть работы Кэрролла, их
нужно ещё и понять. А вот с этой задачей не справился ни один учёный. Таким
образом, великий логик опередил не только своё время, но и наше. Саркастическое отношение Кэрролла к этим «так называемым логикам» можно распространить и на наших современников.
В предисловии Ю. Данилова к книге Л.Кэрролла «Логическая игра» высказывается мысль об искусстве правильного (логичного) рассуждения, об умении
получать правильные заключения даже из несколько необычных суждений.
«Например, из странных посылок
Ни одно ископаемое животное не может быть несчастно в любви.
Устрица может быть несчастна в любви.
следует вполне здравое, и, что самое главное, правильное, заключение: «Устрица – не ископаемое животное», - утверждает Ю. Данилов [11]. Однако это
далеко не так. Проведём синтез заданного силлогизма по алгоритму ТВАТ [28].
Вторая посылка модальна, следовательно устрица может быть как несчастной
в любви, так и счастливой. Поэтому появляются три ситуации, представленные
скалярами Y1, Y2, Y3. Введём следующие обозначения:
U - универсум, состоящий из живых существ.
M – несчастные в любви существа.
X – ископаемые животные.
Y – устрица.
F(x,y) = y’+i = Ixy’(7), т.е. «Некоторые ископаемые животные – не устрицы». Мы
137
138
получили частно-утвердительное заключение в 7-ом базисе [28]. Здесь и далее
апостроф обозначает отрицание. Это так называемая интегрированная, обобщённая оценка. В жизни не может быть ситуаций Y1 – Y3 одновременно: не
может быть одна и та же устрица ископаемой и неископаемой. Поэтому действительное заключение выглядит так: «Вероятно, устрица – неископаемое животное». Судя по скалярным диаграммам эта вероятность составляет 2/3. Величина вероятности определяется объёмами множеств-терминов U,m,x,y.
У Кэрролла есть одна слабость: он любит формулировать посылки какнибудь поизощрённее, считая, что такие задачи представляют повышенную
сложность для «нервически припадочных логиков». Это невежественное заблуждение: просто в результате подобных изысков зачастую чрезвычайно некорректно формулируется условие задачи. Постановка задачи должна быть
абсолютно прозрачной, всегда нужно стремиться к предельной простоте посылок. Не нужно пугаться отрицательных форм суждений, но заменять утвердительную форму на отрицательную просто по прихоти – дурной тон в математике. Во-первых, в данном силлогизме во второй посылке нужно убрать модальность. Во-вторых, в этой же посылке выбрать один из вариантов: либо «Всякая
устрица несчастна в любви», либо «Некоторые устрицы несчастны в любви». В
первом случае заключение будет простым: «Устрица – не ископаемое животное». Во втором по алгоритму ТВАТ получим следующий результат.
F(x,y) = x’+i = Ix’y(5), т.е. «Некоторые неископаемые животные – устрицы».
Заключение получено в 5-ом базисе. Как видно из данного примера, посылки
могут быть предельно простыми и прозрачными, а синтез заключения оказывается сложным. Неинтегрированное заключение выглядит так: «Вероятнее всего
устрица – неископаемое животное». Для М = 0,5U, x = 0,25U эта вероятность
составит 0,75. Возможно, вычисление вероятности окажется более сложным
процессом, учитывающим распределение всех ситуаций Y1 – Y4, но для
школьников можно воспользоваться приблизительным методом оценки. Главное, чтобы студенты и учащиеся могли находить все значимые ситуации при
синтезе силлогизма. Кстати, вовсе не обязательно давать интегрированные
заключения, поэтому школьники могут обходиться без таблиц истинности и
трёхзначной логики. Останется, как и просил Лейбниц, одна прозрачная гео-
138
139
метрия с арифметикой.
Кэрролл прекрасно понимал, что фигуры и модусы Аристотеля не справляются ни с анализом, ни с синтезом силлогизмов. К тому же он, возможно, читал
Ф. Бекона, утверждавшего, что логика Аристотеля вредна. Поэтому талантливый мыслитель искал инструмент для решения поставленных логических задач.
И такой инструмент был им создан: это диаграммы Кэрролла. С помощью диаграмм [11] он сумел реализовать синтез огромного массива силлогизмов, не
прибегая к бесполезным терминам субъекта и предиката, большей и меньшей
посылки, к традиционным некорректным правилам, фигурам и модусам. Однако
не все силлогизмы поддавались анализу и синтезу с помощью диаграмм Кэрролла. В связи с этим в его работе [11] появилась глава, посвящённая логическим ошибкам. На основе своих диаграмм Кэрролл приходит к выводу, что существуют посылки, которые не ведут ни к какому логическому заключению, тем
самым как бы подтверждая мысль Аристотеля в отношении неправильных модусов. Для иллюстрации этого утверждения он приводит следующий силлогизм
[11]:
Все солдаты (х) храбрые (m).
Некоторые англичане (у) храбрые (m).
------------------------------------------------Некоторые англичане – солдаты.
«Выглядит это весьма похоже на силлогизм, и менее опытный логик вполне
мог бы принять такое рассуждение за силлогизм», - заявляет Кэрролл. Однако
проведём синтез по алгоритму ТВАТ и докажем, что это силлогизм. Изобразим
на диаграмме все значимые ситуации. Универсум – множество людей.
F(x,y) = x’+i = Ix’y(5), т.е. «Некоторые не-солдаты – англичане». Это интегрированное заключение отнюдь не противоречит здравому смыслу. Раздельный
анализ изображённых на диаграмме ситуаций даст следующие заключения:
«Некоторые солдаты – англичане» (8-й базис), «Все солдаты – англичане» и
«Ни один солдат – не англичанин». Второе и третье заключения противоречат
действительности, поскольку армии имеются во всех странах мира, в том числе
и в Англии. Следовательно, остаётся лишь одно заключение «Некоторые солдаты – англичане», что совпадает с гипотетическим заключением Л.Кэрролла,
поскольку частно-утвердительный функтор в 8-ом базисе симметричен. Как
видим, интегрированное заключение отличается от неинтегрированного, но последнее было получено с использованием дополнительной информации об армиях государств. Тем не менее триада Кэрролла является силлогизмом без
всяких натяжек: великий английский логик проявил здесь элементарную бестолковость.
139
140
Льюис Кэрролл видел недостатки своих диаграмм, поэтому он продолжал
поиски формальных методов анализа и синтеза силлогизмов и соритов. В результате этих поисков был создан «метод индексов»[11, с.262], который является ничем иным как обычной математической логикой. Впервые в западной
логике появляется аналитическое описание общеутвердительного и общеотрицательного функторов [11, с.263]:
Axy = (xy’)’ = x’+y;
Exy = (xy)’ = x’+y’.
Неважно, что эти соотношения были представлены «карточной» символикой, важно, что именно с них начинается истинно математическая силлогистика
Европы. Задолго до Кэрролла (в 1884г.) точно такие же результаты были получены гениальным русским логиком Платоном Сергеевичем Порецким [34]. Это
нисколько не умаляет заслуг Кэрролла, поскольку он был самоучкой и безусловно не знал о работах русского учёного, который тоже не оказался пророком в своём отечестве. Мировая математическая силлогистика, конечно же,
начинается с П.С.Порецкого. Однако до сих пор ни в одном учебнике по логике
вы не найдёте этих основополагающих формул.
Сделав такой выдающийся шаг в формализации логики, Кэрролл тут же совершает ряд ошибок. «Теперь я возьму три различные формы, которые могут
принимать пары силлогизмов, и с помощью диаграмм раз и навсегда выведу из
них заключения…», - заявляет великий логик [11, с.265]. Здесь он повторяет
заблуждения Аристотеля, считавшего, что заключение силлогизма не зависит
от объёма терминов .
В переводе на современную символику эти три фигуры Кэрролла описываются соотношениями:
1. ExmAym  Exy
2. AmxIym  Ixy
3. AmxAmy  Ixy.
Бесспорной здесь является лишь 1-я фигура. Для 2-й фигуры заключением
является Ixy(2), для 3-й – Ixy(3), т.е. совершенно разные формы частноутвердительного функтора. Для 2-й фигуры при мощности множеств u=3, m=2,
x=3, y=2 получим заключение Ayx. Для 3-й фигуры при u, m, x, y = 4, 2, 3, 4 соответственно имеем заключение Axy. Это грубейшая ошибка Кэрролла.
Однако никто не заметил, что на стр.265 своих «Узелков» выдающийся логик Запада вслед за Порецким напрочь отметает все бесполезные термины
вроде субъекта, предиката, большей и меньшей посылок и прочей наукообразной чепухи.
Что касается соритов, то здесь достижения Кэрролла более чем скромны.
Он выбирает самые простые сориты для синтеза всего лишь одногоединственного заключения, тогда как П.С.Порецкий решает сложные сориты с
выводом многих заключений.
Задачи Л.Кэрролла.
В своей книге «История с узелками» [11] Льюис Кэрролл приводит огромное количество изящных и остроумных логических задач. В отличие от современных академиков-«логиков» выдающийся английский математик не боится
уронить свой авторитет, применяя совершенно новые методы для анализа и
синтеза силлогизмов и соритов. В этих примерах восхищают яркость таланта
140
141
учёного и писателя, юмор и увлекательность изложения чрезвычайно серьёзной науки. За сто двадцать лет на логическом небосклоне не появилось ни одной звезды, сопоставимой по гениальности с такими учёными, как Порецкий
П.С. и Л. Кэрролл. Более того, все современные «авторитеты» от логики не доросли даже до освоения научного наследия своих великих предшественников и
сделали всё, чтобы превратить науку о мышлении в болтологику. Автор с огорчением констатирует, что классическая логика деградировала по сравнению с
концом 19-го столетия.
Мы вместе с читателем пройдёмся по всем задачам величайшего английского гения и проверим корректность их решения на основе Русской логики.
Общеизвестна страсть Л.Кэрролла к «инверсной силлогистике». Вместо того,
чтобы просто сказать, что «Все y суть m”, знаменитый учёный обязательно всё
вывернет наизнанку и заявит, что «Ни один m’ не есть y». Простим Кэрроллу
эту слабость и не будем корректировать его силлогизмы. Подобные уловки ещё
имеют смысл в классической логике, которая приходит в замешательство от
инверсных терминов, но в Русской логике такие выверты просто смешны. Кроме того, остроумный логик зачастую так закрутит текст посылки, что понять её
смысл становится просто невозможно. Это уже слишком: условие задачи должно быть абсолютно прозрачным и математически жёстким, иначе такая постановка воспринимается как недомыслие. Однако следует подчеркнуть высочайшую дисциплину мышления гениального логика: он в каждой задаче оговаривает универсум и чётко формулирует содержание терминов. Современные «логики» сплошь и рядом даже не догадываются о необходимости соблюдать эти
требования.
Автор заранее извиняется за нарушение некоторых грамматических норм.
Вызвано это стремлением сократить длинноты в суждениях при сохранении
математической точности. Например, вместо фразы «Некоторые мучные изделия, не являющиеся сдобными булочками, не суть пышные» будет записано
«Некоторые не-сдобные булочки не пышны». Дефис перед прилагательным
«сдобные» означает логическое отрицание всего термина «сдобные булочки».
Произвести синтез и анализ силлогизмов([11], стр. 289) на основе алгоритмов ИЭИ и ТВАТ. Частноутвердительное суждение Ixy задаётся в базисе Васильева. Нумерация задач соответствует [11].
8.1
Ни одно m не есть x’.
Все m’ суть y.
Решение.
M = Emx’Am’y = (m’+x)(m+y) = mx+m’y.
F(x,y) = x+y = Ax’y = Ay’x = Ex’y’.
141
142
F(x,y) = x+y = Ax’y = Ay’x = Ex’y’.
Ответы по [11] и по алгоритмам ИЭИ, ТВАТ совпали.
8.2.
Ни одно m’ не есть x.
Некоторые m’ суть y’.
Решение.
M = Em’xIm’y’ = m+x’.
F(x,y) = x’+i = Ix’y(5).
Ответы по [11] и по алгоритмам ИЭИ, ТВАТ не совпали. У Кэрролла F(x,y)
= Ix’y’(3), что не соответствует скалярным диаграммам.
8.3.
Все m’ суть x.
Все m’ суть y’.
Решение.
M = Am’xAm’y’ = (m+x)(m+y’) = m+xy’.
F(x,y) = xy’+i = Ixy’(3).
142
143
F(x,y) = xy’+i = Ixy’(3).
Ответы совпали.
8.4.
Ни один x’ не есть m’.
Все y’ суть m.
Решение.
M = Em’x’Ay’m = (m+x)(m+y) = m+xy.
F(x,y) = xy+i = Ixy(3).
Ответы по [11] и по алгоритмам ИЭИ, ТВАТ не совпали. У Кэрролла
нет заключения, что не соответствует скалярным диаграммам.
8.5.
Некоторые m суть x’.
Ни один y не есть m.
Решение.
M = Imx’Eym = m’+y’.
F(x,y) = y’+i = Ixy’(7).
143
144
F(x,y) = y’+i = Ixy’(7).
Ответы по [11] и по алгоритмам ИЭИ, ТВАТ не совпали. У Кэрролла
заключение f(x,y) = Ix’y’(3), что не соответствует скалярным диаграммам.
8.6.
Ни один x’ не есть m.
Ни одно m не есть y.
Решение.
M = Ex’mEmy = (x+m’)(m’+y’) = m’+xy’.
F(x,y) = xy’+i = Ixy’(3).
F(x,y) = xy’+i = Ixy’(3).
Ответы по [11] и по алгоритмам ИЭИ, ТВАТ не совпали. У Кэрролла нет
заключения, что не соответствует скалярным диаграммам.
8.7.
Ни одно m не есть x’.
Некоторые y’ суть m.
Решение.
M = Emx’Iy’m = m’+x.
F(x,y) = x+i = Ixy(5).
144
145
F(x,y) = x+i = Ixy(5).
Ответы по [11] и по алгоритмам ИЭИ, ТВАТ не совпали. У Кэрролла заключение f(x,y) = Ixy’(3), что не соответствует скалярным диаграммам.
8.8.
Все m’ суть x’.
Ни одно m’ не есть y.
Решение.
M = Am’x’Em’y = (m+x’)(m+y’) = m+x’y’.
F(x,y) = x’y’+i = Ix’y’(3).
F(x,y) = x+i = Ixy(5).
Ответы по [11] и по алгоритмам ИЭИ, ТВАТ не совпали. У Кэрролла заключение f(x,y) = Ixy’(3), что не соответствует скалярным диаграммам.
8.9.
Некоторые x’ суть m’.
Ни одно m не есть y’.
Решение.
M = Im’x’Emy’ = m’+y. F(x,y) = y+i = Ixy(7).
145
146
F(x,y) = y+i = Ixy(7).
Ответы по [11] и по алгоритмам ИЭИ, ТВАТ не совпали. У Кэрролла отсутствует заключение, что не соответствует скалярным диаграммам.
8.10.
Все x суть m.
Все y’ суть m’.
Решение.
M = AxmAy’m’ = (x’+m)(m’+y) = my+m’x’.
F(x,y) = x’+y = Axy.
Поскольку алгоритм ИЭИ при получении общеутвердительного или общеотрицательного заключения работает безукоризненно, то в подобных случаях алгоритм ТВАТ можно не использовать.
Ответы по [11] и по алгоритму ИЭИ не совпали. У Кэрролла заключение
выглядит несколько иначе: f(x,y) = AxyAy’x’. Здесь Кэрролл что называется перемудрил, поскольку Axy = Ay’x’ = x’+y. Поэтому решение Кэрролла является
простой тавтологией.
8.11.
Ни одно m не есть x.
Все y’ суть m’.
Решение.
M = EmxAy’m’ = (m’+x’)(m’+y) = m’+x’y.
F(x,y) = x’y+i = Ix’y(3).
F(x,y) = x’y+i = Ix’y(3).
Ответы по [11] и по алгоритмам ИЭИ, ТВАТ не совпали. У Кэрролла отсутствует заключение, что не соответствует скалярным диаграммам.
146
147
8.12.
Ни один x не есть m.
Все y суть m.
Решение.
M = ExmAym = (x’+m’)(m+y’) = m’y’+mx’.
F(x,y) = x’+y’ = Exy.
8.13.
Все m’ суть x.
Ни один y не есть m.
Решение.
M = Am’xEym = (x+m)(m’+y’) = my’+m’x’.
F(x,y) = x+y’ = Ayx.
8.14.
Все m суть x.
Все m’ суть y.
Решение.
M = AmxAm’y = (x+m’)(m+y) = m’y+mx.
F(x,y) = x+y = Ay’x =Ax’y = Ex’y’.
8.15.
Ни один x не есть m.
Ни одно m’ не есть y.
Решение.
M = ExmEm’y = (x’+m’)(m+y’) = m’y’+mx’.
F(x,y) = x’+y’ = Exy = Axy’ = Ayx’.
8.16.
Все x суть m’.
Все y суть m.
Решение.
M = Axm’Aym = (x’+m’)(m+y’) = m’y’+mx’.
F(x,y) = x’+y’ = Exy.
8.17.
Ни один x не есть m.
Все m’ суть y.
Решение.
M = ExmAm’y = (x’+m’)(m+y) = m’y+mx’.
F(x,y) = x’+y = Axy.
8.18.
Ни один x не есть m’.
Ни одно m не есть y.
Решение.
M = Exm’Emy = (x’+m)(m’+y’) = my’+m’x’.
F(x,y) = x’+y’ = Exy.
8.19.
Все m суть x.
Все m суть y’.
Решение.
M = AmxAmy’ = (m’+x)(m’+y’) = m’+xy’.
147
148
F(x,y) = xy’+i = Ixy’(3).
F(x,y) = xy’+i = Ixy’(3).
8.20.
Ни одно m не есть x.
Все m’ суть y.
Решение.
M = EmxAm’y = (m’+x’)(m+y) = mx’+m’y.
F(x,y) = x’+y = Axy.
Приняв каждую из следующих пар конкретных суждений за посылку
силлогизма , вывести заключение[11стр.290].
8.21.
Я совершил прогулку.
Я чувствую себя лучше.
Решение.
Введём следующие обозначения:
Универсум u - люди, m – я, x - совершившие прогулку, y – чувствующие себя лучше.
F(x,y) = y+i = Ixy(7), т.е. «Некоторые из тех, кто совершил прогулку, чувствуют себя лучше».
8.22.
Никто не читал этого письма, кроме Джона.
Никто из тех, кто не читал этого письма, не знает его содержания.
Решение.
Введём следующие обозначения:
Универсум u - люди, m – прочитавшие письмо, x - Джон,
y – знающие содержание письма.
M = (m  x)(m’  y’) = (mx+m’x’)(my+m’y’) = mxy+m’x’y’.
148
149
F(x,y) = xy+x’y’ = (y  x).
Здесь Л.Кэрролл допускает по меньшей мере 2 ошибки: подменяет эквивалентность терминов посылок общеотрицательными функторами и оперирует
с единичным множеством как с общим.
F(x,y) = xy+x’y’ = (x  y), т.е. “Джон и только Джон знает содержание этого
письма”.
8.23.
Те, кто не стар, любят ходить пешком .
Ни вы, ни я не стары.
Решение.
Введём следующие обозначения:
U - люди, m – старые, x - любящие пешую ходьбу, y – вы и я.
M = Am’xEym = (m+x)(m’+y’) = my’+m’x.
F(x,y) = x+y’ = Ayx, т.е. “Вы и я любим ходить пешком”.
8.24.
Ваш курс всегда честен.
Ваш курс – лучшая политика.
Решение.
Введём следующие обозначения:
Универсум u - курсы, m – ваши, x - честные, y – курсы, являющиеся лучшей политикой.
M = AmxAmy = (m’+x)(m’+y) = m’+xy.
F(x,y) = xy+i = Ixy(3).
F(x,y) = xy+i = Ixy(3), т.е. «Честный курс – иногда лучшая политика».
8.25.
Ни одно жирное животное не может бегать быстро.
149
150
Некоторые гончие бегают быстро.
Решение.
Введём следующие обозначения:
Универсум u - животные, m – быстрые, x - жирные, y – гончие.
M = ExmIym(8) = (m’+x’) & 1 = m’+x’.
F(x,y) = x’+i = Ix’y(5).
F(x,y) = x’+i = Ix’y(5), т.е. «Некоторые гончие не жирные». Казалось бы, ответ совпал с результатом Л. Кэрролла, однако Кэрролл не оговорил базис, а
следовательно, он ошибся: в классической силлогистике используется лишь
базис Аристотеля.
8.26.
Некоторые из тех, кто достоин славы, получают награду.
Лишь тот, кто храбр, достоин славы.
Решение.
Введём следующие обозначения:
Универсум u - люди, m – достойные славы, x – получающие награду, y –
храбрые.
M = ImxEy’m(8) = (m’+y) & 1 = m’+y. F(x,y) = y+i = Ixy(7).
F(x,y) =y+i = Ixy(7), т.е. «Некоторые храбрецы получают награду». Вновь
результат Л.Кэрролла некорректен, хотя в словесной формулировке заключения идентичны: великий логик в принципе был не в состоянии определить базис.
150
151
8.27.
Конфеты сладкие.
Некоторые сласти очень нравятся детям.
Решение.
Введём следующие обозначения:
Универсум u - лакомства, m – сладости, x – конфеты, y – любимые детьми
лакомства.
M = AxmImy(8) = (x’+m) & 1 = x’+m.
F(x,y) = x’+i = Ix’y(5).
F(x,y) =x’+i = Ix’y(5), т.е. «Некоторые не-конфеты – любимые детьми лакомства». Л.Кэрролл ошибочно утверждает, что заключение вывести нельзя.
8.28.
Джон находится в этом доме.
Все , кто находится в этом доме , больны.
Решение.
Введём следующие обозначения: универсум u - люди, m – находящиеся в
этом доме, x – Джон, y – больные.
M = AxmAmy = (x’+m)(m’+y) = m’x’+my.
F(x,y) = x’+y = Axy,т.е.» Джон болен». Синтез по алгоритму ТВАТ даёт такой же результат, хотя аналитические операции с одиночными множествами
далеко не всегда приводят к корректным заключениям.
8.29.
Зонтик – очень нужная вещь в путешествии.
Отправляясь в путешествие , всё лишнее следует оставлять дома.
Решение.
Введём следующие обозначения:
Универсум u - вещи, m – нужные в путешествии вещи, x – зонты, y – вещи,
которые следует оставлять дома.
M = AxmAm’y = (x’+m)(m+y) = x’y+m.
F(x,y) = x’y+i = Ix’y(3).
151
152
F(x,y) =x’+i = Ix’y(3), т.е. «Некоторые не-зонты следует оставлять дома».
Вновь Кэрролл не в ладах с базисом. Кроме того, великий логик опять не уточнил: лишнее – это ненужное или нужное, но не для путешествия. Иначе ответ
будет таким: «Зонтик нельзя оставлять дома».
8.30.
Музыка , которую можно услышать , вызывает колебания воздуха .
Музыка , которую нельзя услышать, не стоит того , чтобы за неё платили
деньги.
Решение.
Введём следующие обозначения:
Универсум u - музыка, m – слышимая музыка, x – вызывающая колебания
воздуха, y – стоящая того, чтобы за неё платили деньги.
M = AmxAm’y’ = (m’+x)(m+y’) = m’y’+mx.
F(x,y) = x+y’ = Ayx, т.е. “ Вся музыка, которая стоит того, чтобы за неё платить деньги, вызывает колебания воздуха”.
8.31.
В некоторые праздничные дни идёт дождь.
Дождливые дни навевают тоску.
Решение.
Введём следующие обозначения:
Универсум u - дни, m – дождливые, x – праздничные, y – тоскливые.
M = IxmAmy = m’+y.
F(x,y) = y+i = Ixy(7).
152
153
F(x,y) =y+i = Ixy(7), т.е. «Некоторые праздничные дни тоскливы». Вновь
Кэрролл не в ладах с базисом.
8.32.
Ни один француз не любит пудинга.
Все англичане любят пудинг.
Решение.
Введём следующие обозначения:
Универсум u -люди, m – любящие пудинг, x – французы, y – англичане. M =
EmxAym =(m’+x’)(m+y’) = m’y’+mx’.
F(x,y) = x’+y’ = Exy, т.е. «Ни один француз – не англичанин».
8.33.
Ни одну фотографию, на которой девушка хмурится или неестественно
улыбается, нельзя считать удачной.
Ни один фотограф не может удержаться, чтобы не снять девушку нахмуренной или неестественно улыбающейся.
Решение.
Введём следующие обозначения:
Универсум u – портреты девушек, m – портреты нахмуренных или неестественно улыбающихся девушек, x – удачные, y – фотолюбительские. M =
EmxAym =(m’+x’)(m+y’) = m’y’+mx’.
F(x,y) = x’+y’ = Exy, т.е. «Ни одну любительскую фотографию девушки
нельзя считать удачной».
8.34.
Все бледные люди флегматичны.
Ни о ком нельзя сказать что у него поэтическая внешность, если он не
бледен
Решение.
Введём следующие обозначения:
Универсум u – люди, m – бледные, x – флегматичные, y – с поэтической
внешностью.
M = AmxEym’ =(m’+x)(m+y’) = m’y’+mx.
F(x,y) = x+y’ = Ayx, т.е. «Все поэтические натуры флегматичны».
8.35.
Ни один старый скряга не жизнерадостен.
Некоторые старые скряги тощи.
Решение.
Введём следующие обозначения:
Универсум u - люди, m – старые скряги, x – жизнерадостные, y – тощие. M
= EmxImy = m’+x’.
F(x,y) = x’+i = Ix’y(5).
153
154
F(x,y) =x’+i = Ix’y(5), т.е. «Некоторые нежизнерадостные особы -тощие».
Вновь Кэрролл не в ладах с базисом.
8.36.
Те,кто сохраняет самообладание, не вспыльчивы.
Некоторые судьи вспыльчивы.
Решение.
Введём следующие обозначения:
Универсум u - люди, m – вспыльчивые, x – сохраняющие самообладание, y
– судьи.
M = Axm’Iym = m’+x’.
F(x,y) = x’+i = Ix’y(5).
F(x,y) =x’+i = Ix’y(5), т.е. «Некоторые судьи теряют самообладание». Вновь
Кэрролл не в ладах с базисом.
8.37.
Все свиньи жирные.
Ни одно животное, вскормленное на ячвенном отваре, не жирно.
Решение.
Введём следующие обозначения:
Универсум u - животные, m – жирные, x – свиньи, y – вскормленные на ячменном отваре.
M = AmxEym = (m+x’)(y’+m’) = m’x’+my’.
F(x,y) = x’+y’ = Exy,т.е. »Ни одна свинья не вскормлена на ячменном отваре».
8.38.
Все непрожорливые кролики черные.
Ни один старый кролик не склонен к воздержанию в пище.
Решение.
Введём следующие обозначения:
Универсум u - кролики, m – прожорливые, x – чёрные, y – старые.
M = Am’xEym’ = (m+x)(y’+m) = xy’+m.
F(x,y) = xy’+i = Ixy’(3).
154
155
F(x,y) =xy’+i = Ixy’(3), т.е. «Некоторые чёрные кролики не старые».
8.39.
Некоторые картины свидетельствуют о зрелости их автсров.
Незрелый художник не пишет ничего подлинно ценного.
Решение.
Введём следующие обозначения:
Универсум u – произведения искусства, m – зрелые произведения, x – картины, y – представляющие подлинную ценность.
M = ImxEm’y = y’+m.
F(x,y) = y’+i = Ixy’(7).
F(x,y) =xy’+i = Ixy’(3), т.е. «Некоторые картины не представляют подлинной
ценности». У Л.Кэрролла нет заключения.
8.40.
Я никогда не пренебрегаю важными делами.
Ваше дело не имеет особой важности.
Решение.
Введём следующие обозначения:
Универсум u – дела, m – важные, x – пренебрегаемые, y – ваше.
M = EmxEmy = (m’+x’)(y’+m’) = m’+x’y’.
F(x,y) = x’y’+i = Ix’y’(3).
155
156
F(x,y) =y’+i = Ixy’(7), т.е. «Некоторые дела, которыми я пренебрегаю, не
включают ваше дело». Здесь по алгоритму ТВАТ получено более корректное
заключение, чем по алгоритму ИЭИ, т.к. учтены особенности единичного множества. У Л.Кэрролла нет заключения.
8.41.
Некоторые уроки трудны.
То, что трудно, требует особого внимания.
Решение.
Введём следующие обозначения:
Универсум u – предметы, m – трудные, x - уроки, y – требующие особого
внимания.
M = IxmAmy = m’+y.
F(x,y) = y+i = Ixy(7).
F(x,y) =y+i = Ixy(7), т.е. «Некоторые уроки требуют особого внимания». У
Л.Кэрролла такое же заключение, но по умолчанию предполагается 3-й базис,
т.е. базис Аристотеля, что неверно.
8.42.
Все умные люди пользуются всеобщей любовью.
Все обязательные люди пользуются всеобщей любовью.
Решение.
Введём следующие обозначения:
Универсум u – люди, m – любимые, x - умные, y – обязательные.
156
157
M = AxmAym(x’+m)(y’+m) = m+x’y’.
F(x,y) = x’y’+i = Ix’y’(3).
F(x,y) =y+i = Ix’y’(3), т.е. «Некоторые неумные - необязательные». У
Л.Кэрролла нет заключения, что неверно.
8.43.
Невнимательному человеку ничего не стоит допустить оплошность.
Ни один внимательный человек не забывает о своём обещании.
Решение.
Введём следующие обозначения:
Универсум u – люди, m – внимательные, x – допускающие оплошность, y –
забывающие свои обещания.
M = Am’xEmy = (x+m)(y’+m’) = my’+m’x.
F(x,y) = x+y’ = Ayx, т.е. «Все забывчивые допускают оплошность».
Остальные задачи этого параграфа у Л.Кэрролла даны без решений и ответов, поэтому мы их оставим для самостоятельной проработки. Однако задача
5.34 представляется любопытной, посему сделаем для неё исключение.
8.44.
Ничто разумное никогда не ставило меня в тупик.
Логика ставит меня в тупик.
Решение.
Введём следующие обозначения:
Универсум u – науки, m – ставящие в тупик, x – разумные, y – логика.
M = EmxAym = (x’+m’)(y’+m) = m’y’+mx’.
F(x,y) = x’+y’ = Ayx’, т.е. «Вся логика неразумна». Весьма симптоматичное
заявление маститого логика. С этим мнением нельзя не согласиться, если
иметь в виду классическую логику и классических “логиков”.
1. Проверить, являются ли следующие тройки абстрактных суждений
силлогизмами [11,стр.296].
Все посылки будем считать заданными в базисе Васильева, а частноутвердительные заключения – в базисе Аристотеля(по классической традиции).
6.1. Некоторые x суть m. Ни одно m не есть y’. Некоторые x суть y.
Решение.
157
158
M = IxmEmy’ = m’+y.
F(x,y) = y+i = Ixy(7).
F(x,y) =y+i = Ixy(7). Вновь Кэрролл не в ладах с базисом.
6.2. Все x суть m. Ни один y не есть m’. Ни один y не есть x’.
Решение.
M = AxmEym’ = (x’+m)(y’+m) = x’y’+m.
F(x,y) = x’y’+i = Ix’y’(3).
F(x,y) =x’y’+i = Ix’y’(3). Следовательно, исходное заключение неверно.
6.3. Некоторые x суть m’. Все y’ суть m. Некоторые x суть y.
Решение.
M = Ixm’Ay’m = y+m.
F(x,y) = y+i = Ixy(7).
158
159
F(x,y) =y+i = Ixy(7). Следовательно, исходное заключение неверно по базису.
6.4. Все x суть m. Ни один y не есть m. Все x суть y’.
Решение.
M = AxmEym = (x’+m)(y’+m’) = my’+m’x’.
F(x,y) = y’+x’ = Exy.
6.5.Некоторые m’ суть x’. Ни одно m’ не есть y. Некоторые x’ суть y’.
Решение.
M = Ix’m’Em’y = y’+m.
F(x,y) = y’+i = Ixy’(7).
F(x,y) =y’+i = Ixy’(7). Следовательно, исходное заключение неверно по базису и по семантике(смыслу).
6.6. Ни один x’ не есть m. Все y суть m’. Все y суть x’.
Решение.
M = Ex’m’Aym’ = (x+m’)(y’+m’) = xy’+m’.
F(x,y) = xy’+i = Ixy’(3).
F(x,y) =xy’+i = Ixy’(3). Следовательно, исходное заключение неверно по семантике.
6.7. Некоторые m’ суть x’. Все y’ суть m’. Некоторые x’ суть y’.
Решение.
M = Im’x’Ay’m’ = y+m’.
F(x,y) = y+i = Ixy(7).
159
160
F(x,y) =y+i = Ixy(7). Следовательно, исходное заключение неверно по семантике.
6.8. Ни одно m’ не есть x’. Все y’ суть m’. Все y’ суть x.
Решение.
M = Em’x’Ay’m’ = (m+x)(y+m’) = m’x+my.
F(x,y) = y+x = Ax’y = Ay’x = Ex’y’.
Следовательно, исходное заключение не единственное.
6.9. Некоторые m суть x’. Ни одно m не есть y. Некоторые x’ суть y’.
Решение.
M = Ix’mEym = y’+m’.
F(x,y) = y’+i = Ixy’(7).
F(x,y) =y’+i = Ixy’(7). Следовательно, исходное заключение неверно.
6.10. Все m’ суть x’. Все m’ суть y. Некоторые y суть x’.
Решение.
M = Am’x’Am’y = (x’+m)(y+m) = m+x’y.
F(x,y) = x’y+i = Ix’y(3).
160
161
F(x,y) = x’y+i = Ix’y(3).
6.11. Все x суть m’. Некоторые y суть m. Некоторые y суть x’.
Решение.
M = Axm’Iym = x’+m’.
F(x,y) = x’+i = Ix’y(5).
F(x,y) = x’+i = Ix’y(5). Кэрролл ошибся в базисе.
6.12.Ни один x не есть m. Ни одно m’ не есть y’. Ни один x не есть y’.
Решение.
M = ExmEm’y’ = (x’+m’)(m+y) = mx’+m’y
F(x,y) = x’+y = Axy = Exy’.
6.13. Ни один x не есть m. Все y’ суть m. Все y’ суть x.
Решение.
M = ExmAy’m = (x’+m’)(m+y) = mx’+m’y
F(x,y) = x’+y = Axy = Exy’.
В решении Кэрролла допущена ошибка.
6.14. Все m’ суть x’. Все m’ суть y. Некоторые y суть x’.
Решение.
M = Am’x’Am’y = (x’+m)(m+y) = x’y+m.
F(x,y) = x’y+i = Ix’y(3).
161
162
F(x,y) = x’y+i = Ix’y(3).
6.15. Некоторые m суть x’. Все y суть m’. Некоторые x’ суть y’.
Решение.
M = Imx’Aym’ = m’+y’.
F(x,y) = y’+i = Ixy’(7).
F(x,y) = y’+i = Ixy’(7). Кэрролл ошибся в базисе и семантике.
6.16. Ни один x’ не есть m. Все y’ суть m’. Некоторые y’ суть x.
Решение.
M = Ex’mAy’m’ = (x+m’)(m’+y) = xy+m’.
F(x,y) = xy+i = Ixy(3).
F(x,y) = xy+i = Ixy(3). Кэрролл ошибся в базисе.
162
163
6.17. Ни одно m’ не есть x. Все m’ суть y’. Некоторые x’ суть y’.
Решение.
M = Em’xAm’y’ = (x’+m)(m+y’) = x’y’+m.
F(x,y) = x’y’+i = Ix’y’(3).
F(x,y) = x’y’+i = Ix’y’(3).
6.18. Ни один x’ не есть m. Некоторые m суть y. Некоторые x суть y.
Решение.
M = Ex’mImy = x+m’.
F(x,y) = x+i = Ixy(5).
F(x,y) = x+i = Ixy(5). Кэрролл ошибся в базисе.
6.19. Некоторые m суть x. Все m суть y. Некоторые y суть x’.
Решение.
M = ImxAmy = m’+y.
F(x,y) = y+i = Ixy(7).
163
164
F(x,y) = y+i = Ixy(7). Кэрролл ошибся в базисе и семантике.
6.20.Ни один x’ не есть m’. Некоторые m’ суть y’.Некоторые x суть y’.
Решение.
M = Ex’m’Im’y’ = m+x.
F(x,y) = x+i = Ixy(5).
F(x,y) = y+i = Ixy(5). Кэрролл ошибся в базисе и семантике.
7. Проверить, являются ли следующие тройки конкретных суждений
силлогизмами[13,стр.296].
В дальнейшем все задачи по анализу и синтезу силлогизмов будут решаться на основе алгоритма “ИЭИ” и только в случае расхождения результатов, полученных по алгоритмам “ИЭИ” и “ТВАТ” будут приводиться скалярные
диаграммы. Во всех задачах универсум обозначается через U. Замечания по
решению задач Л.Кэрроллом будут приводиться лишь при несовпадении результатов, полученных по алгоритмам Русской логики и методам Л.Кэрролла.
7.1. Ни об одном враче нельзя сказать , что он восторженная натура.
Вы натура восторженная.
Вы не врач.
Решение.
U – люди.
M – восторженные.
X – врачи.
Y – вы.
M = ExmAym = (x’+m’)(m+y’) = mx’+m’y’.
F(x,y) = x’+y’ = Exy.
164
165
7. 2. Словари полезны.
Полезные книги высоко ценятся.
Словари ценятся.
Решение.
U – книги.
M – полезные.
X – словари.
Y – ценные.
M = AxmAmy = (x’+m)(m’+y) = m’x’+my.
F(x,y) = x’+y = Axy.
7. 3.Ни один скряга не альтруист.
Никто, кроме скряг, не станет собирать скорлупу от яиц.
Ни один альтруист не собирает скорлупу от яиц.
Решение.
U – люди.
M – скряги.
X – альтруисты.
Y – сборщики скорлупы.
M = Emx & (m  y) = (x’+m’)(m’y’+my) = mx’y+m’y’.
F(x,y) = x’+y’ = Exy.
Несмотря на совпадение результатов необходимо отметить, что зачастую
Л.Кэрролл путает общеутвердительный функтор с эквивалентностью(см. также
задачу 7.5).
7. 4.Некоторые эпикурейцы не отличаются щедростью.
Все мои дядюшки щедры.
Мои дядюшки не эпикурейцы.
Решение.
U – личности.
M – щедрые.
X – эпикурейцы.
Y – мои дядюшки.
M = Ixm’Aym = y’+m.
F(x,y) = y’+i = Ixy’(7), т.е. «Некоторые эпикурейцы не мои дядюшки». Л.
Кэрролл ошибся в базисе.
7. 5. Золото тяжелое.
Ничто, кроме золота, не сможет заставить его замолчать.
Ничто легкое не сможет заставить его замолчать.
Решение.
U – предметы.
M – золотые.
X – тяжёлые.
Y – те, что заставят его замолчать.
M = Amx & (m  y) = (m’+x)(m’y’+my) = mxy+m’y’.
F(x,y) = y’+x = Ayx
7. 6. Некоторые здоровые люди тучны.
Ни один нездоровый человек не силен.
Некоторые тучные люди не сильны.
Решение.
U – люди.
165
166
M – здоровые.
X – тучные.
Y – сильные.
M = ImxEm’y = m+y’.
F(x,y) = y’+i = Ixy’(7), т.е. «Некоторые тучные люди не сильны».
У Кэрролла нет заключения.
7. 7. Я почерпнул эти сведения из газеты, не гнушающейся слухами.
Все газеты, не гнушающиеся слухами, распространяют небылицы.
Это была небылица.
Решение.
U – печатные издания.
M – газеты.
X – прочитанная мною газета.
Y – распространяющие небылицы.
M = AxmAmy = (x’+m)(m’+y) = m’x’+my.
F(x,y) = x’+y = Axy, т.е. «Прочитанная мною газета распространяет небылицы».
7. 8.Некоторые галстуки безвкусны.
Все, сделанное со вкусом, приводит меня в восторг.
Я не в восторге от некоторых галстуков.
Решение.
U – вещи.
M – безвкусные.
X – галстуки.
Y – приводящие в восторг.
M = ImxAm’y = m+y.
F(x,y) = y+i = Ixy(7), т.е. «Некоторые галстуки приводят меня в восторг».
У Кэрролла нет заключения.
7. 9.Он никогда не поет больше часа.
Если пение продолжается более часа, окружающим надоедает слушать.
Его пение не надоедает слушать.
Решение.
U – пение.
M – пение более часа.
X – его пение.
Y – надоедливое пение.
M = Axm’Amy = (x’+m’)(m’+y) = x’y+m’.
F(x,y) = x’y+i = Ix’y(3), т.е. «Некоторое не его пение надоедливо». У Кэрролла нет заключения.
7. 10. Некоторые свечи дают очень мало света.
Свечи для того и предназначены, чтобы давать свет.
Некоторые вещи, предназначенные для того, чтобы давать свет, дают его
очень мало.
Решение.
U – вещи.
M – свечи.
X – дающие мало света.
Y – предназначенные светить.
166
167
M = ImxAmy = y+m’.
F(x,y) = y+i = Ixy(7), т.е. заключение верно по смыслу, но некорректно по
базису.
7. 11. Все, кто всерьез хочет учиться, должны упорно работать.
Некоторые из этих мальчиков работают упорно.
Некоторые из этих мальчиков всерьез хотят учиться.
Решение.
U – личности.
M – работающие упорно.
X – желающие учиться.
Y – эти мальчики.
M = AxmIym = x’+m.
F(x,y) = x’+i = Ix’y(5), т.е. «Некоторые из этих мальчиков не хотят учиться».
У Л.Кэрролла нет заключения.
7. 12.Все львы свирепы.
Некоторые львы не пьют кофе.
Некоторые живые существа, пьющие кофе, не свирепы.
Решение.
U – живые существа.
M – львы.
X – свирепые.
Y – не пьющие кофе.
M = AmxImy = x+m’.
F(x,y) = x+i = Ixy(5), т.е. «Некоторые свирепые существа не пьют кофе».
Кэрролл ошибся в базисе.
7. 13. Ни один скряга не щедр.
Некоторые старики скупы.
Некоторые старики – скряги.
Решение.
U – люди.
M – щедрые.
X – скряги.
Y – старики.
M = ExmIym’ = x’+m’.
F(x,y) = x’+i = Ix’y(5), т.е. «Некоторые старики не скряги». У Кэрролла нет
заключения.
7. 14.Ни одно ископаемое животное не может быть несчастно в любви.
Устрица может быть несчастна в любви.
Устрицы – не ископаемые животные.
Решение.
U – животные.
M – несчастные в любви.
X – ископаемые.
Y – устрицы.
M = ExmAym = (x’+m’)(y’+m) = mx’+m’y’.
F(x,y) = x’+y’ = Exy.
7. 15. Необразованные люди обо всем судят поверхностно.
167
168
Все студенты – народ образованный.
Ни один студент не судит обо всем поверхностно.
Решение.
U – люди.
M – образованные.
X – поверхностные.
Y – студенты.
M = Am’xAym = (x+m)(y’+m) = m+xy’.
F(x,y) = xy’+i = Ixy’(3), т.е. «Некоторые поверхностные люди не студенты».
7. 16. Все козлята прыгают.
Ни одно молодое животное не здорово, если оно не прыгает.
Все козлята здоровы.
Решение.
U – животные.
M – прыгающие.
X – козлята.
Y – здоровые.
M = AxmAm’y’ = (x’+m)(y’+m) = m+x’y’.
F(x,y) = x’y’+i = Ix’y’(3), т.е. «Некоторые нездоровые животные не козлята».
У Кэрролла нет заключения.
7. 17. Плохо управляемые предприятия не приносят прибыли.
Железными дорогами никогда не управляют плохо.
Все железные дороги приносят прибыль.
Решение.
U – предприятия.
M – плохо управляемые.
X – приносящие прибыль.
Y – железные дороги.
M = Amx’Aym’ = (x’+m’)(y’+m’) = m’+x’y’.
F(x,y) = x’y’+i = Ix’y’(3), т.е. «Некоторые предприятия, не являющиеся железными дорогами, не приносят прибыль».
7. 18. Ни один профессор не невежествен.
Все невежественные люди тщеславны.
Ни один профессор не тщаславен.
Решение.
U – люди.
M – невежды.
X – профессора.
Y – тщеславные.
M = ExmAmy = (x’+m’)(y+m’) = m’+x’y.
F(x,y) = x’y+i = Ix’y(3), т.е. «Некоторые тщеславные люди – не профессора».
7. 19. Благоразумный человек избегает встречи с гиеной.
Ни одного банкира нельзя обвинить в неблагоразумии.
Ни один банкир не упустит случая избежать встречи с гиеной.
Решение.
168
169
U – люди.
M – благоразумные.
X – избегающие встречи с гиеной.
Y – банкиры.
M = AmxEym’ = (x+m’)(y’+m) = m’y’+mx.
F(x,y) = x+y’ = Ayx = Eyx’, т.е. «Ни один банкир не упустит случая избежать
встречи с гиеной».
7. 20. Все осы злы.
Ни один щенок не зол.
Щенки – не осы
Решение.
U – живые существа.
M – злые.
X – осы.
Y – щенки.
M = AxmEym = (x’+m)(y’+m’) = my’+m’x’.
F(x,y) = x’+y’ = Eyx, т.е. «Щенки – не осы».
7. 21. Ни один бездельник не станет знаменитостью.
Некоторые художники – не бездельники.
Некоторые художники станут знаменитостями.
Решение.
U – личности.
M – бездельники.
X – знаменитости.
Y – художники.
M = EmxIym’ = x’+m’.
F(x,y) = x’+i = Ix’y(5), т.е. «Некоторые художники – не знаменитости». У
Л.Кэрролла нет заключения.
7. 22. Все эти конфеты – шоколадные помадки.
Все эти конфеты восхитительны на вкус.
Шоколадные помадки восхитительны на вкус.
Решение.
U – лакомства.
M – эти конфеты.
X – шоколадные помадки.
Y – восхитительно вкусные.
M = AmxAmy = (x+m’)(m’+y) = xy+m’.
F(x,y) = xy+i = Ixy(3), т.е. «Некоторые шоколадные помадки восхитительно
вкусны».
7. 23. Ни одна горячая сдоба не полезна.
Все булочки с изюмом неполезны.
Булочки с изюмом – не сдоба.
Решение.
U – мучные изделия.
M – полезные.
X – горячая сдоба.
Y – булочки с изюмом.
169
170
M = ExmAym’ = (x’+m’)(m’+y’) = x’y’+m’.
F(x,y) = x’y’+i = Ix’y’(3), т.е. «Некоторые не булочки с изюмом являются не
горячей сдобой». У Л.Кэрролла нет заключения.
7. 24.Некоторые анонимные сообщения ложны.
Все сообщения, авторы которых известны, заслуживают доверия.
Некоторые ложные сообщения не заслуживают доверия.
Решение.
U – сообщения.
M – анонимки.
X – ложные.
Y – заслуживающие доверия.
M = ImxAm’y = y+m.
F(x,y) = y+i = Ixy(7), т.е. «Некоторые ложные сообщения заслуживают доверия». У Л.Кэрролла нет заключения.
7. 25. Некоторые подушки мягкие.
Ни одна кочерга не мягкая.
Некоторые кочерги не подушки.
Решение.
U – домашняя утварь.
M – мягкая.
X – подушки.
Y – кочерёжки.
M = IxmEym = y’+m’.
F(x,y) = y’+i = Ixy’(7), т.е. «Некоторые подушки – не кочерёжки». У
Л.Кэрролла 3-й базис(аристотелев) вместо 7-го.
7. 26. В неправоподобные истории трудно поверить.
Ни одна из его историй не правдоподобна.
Ни в одну из его историй не легко поверить.
Решение.
U – истории.
M – неправдоподобные .
X – истории, в которые верится с трудом.
Y – его истории.
M = AmxEym’ = (m’+x)(y’+m) = mx+m’y’.
F(x,y) = y’+x = Ayx, т.е. заключение правильно.
7. 27. Ни один вор не является честным человеком.
Некоторых нечестных людей уличают в неблаговидных поступках.
Некоторых воров уличают в неблаговидных поступках.
Решение.
U – люди.
M – честные.
X – воры.
Y – уличаемые в неблаговидных поступках.
M = ExmIm’y = x’+m’.
F(x,y) = x’+i = Ix’y(5), т.е. «Некоторых не-воров уличают в неблаговидных
поступках». У Л.Кэрролла нет заключения.
7. 28. Ни одна сдобная булочка не полезна
170
171
Все, что выпечено из теста и пышно, не полезно.
Все сдобные булочки пышны.
Решение.
U – мучные изделия.
M – полезные.
X – сдобные булочки.
Y – пышные.
M = ExmAym’ = (x’+m’)(y’+m’) = x’y’+m’.
F(x,y) = x’y’+i = Ix’y’(3), т.е. «Некоторые не-сдобные булочки не пышны». У
Л.Кэрролла нет заключения.
7. 29. Ни одна птица, кроме павлина, не гордится своим хвостом.
Некоторые птицы, гордящиеся своим хвостом, не могут петь
Некоторые павлины не могут петь.
Решение.
U – птицы.
M – гордящиеся своим хвостом.
X – павлины.
Y – певчие.
M = (x m)Imy’ = x’m’+mx.
F(x,y) = x’+x = 1 = Ixy(8), т.е. «Некоторые павлины могут петь». У
Л.Кэрролла 3-й базис(аристотелев) вместо 8-го.
7. 30. Тепло успокаивает боль.
Ничто из того,что не успокаивает боли, не полезно при зубной боли.
Тепло полезно при зубной боли.
Решение.
U – лечебные процедуры.
M – успокаивающие боль.
X – тепло.
Y – полезные при зубной боли.
M = AxmEm’y = (x’+m)(m+y’) = x’y’+m.
F(x,y) = x’y’+i = Ix’y’(3), т.е. «Некоторые не-тепловые процедуры не полезны
при зубной боли». У Л.Кэрролла нет заключения.
7. 31. Ни один банкрот не богат.
Некоторые купцы – не банкроты.
Некоторые купцы богаты.
Решение.
U – деловые люди.
M – банкроты.
X – богатые.
Y – купцы.
M = EmxIym’ = x’+m’.
F(x,y) = x’+i = Ix’y(5), т.е. «Некоторые купцы не богаты». У Л.Кэрролла нет
заключения.
7. 32. Скучные люди невыносимы.
Ни одного скучного человека не упрашивают остаться, когда он собирается уходить из гостей.
Ни одного невыносимого человека не упрашивают остаться, когда он собирается уходить из гостей.
Решение.
U – люди.
171
172
M – скучные.
X – невыносимые.
Y – те, кого просят остаться.
M = AmxEmy = (x+m’)(m’+y’) = xy’+m’.
F(x,y) = xy’+i = Ixy’(3), т.е. «Некоторых невыносимых людей не упрашивают
остаться, когда они собираются уходить из гостей».
7. 33. Все разумные люди ходят ногами.
Все неразумные люди ходят на голове.
Ни один человек не ходит на голове и ногах.
Решение.
U – люди.
M – разумные.
X – ходящие ногами.
Y – ходящие на голове.
M = AmxAm’y = (x+m’)(m+y) = mx+m’y.
F(x,y) = x+y = Ax’y = Ay’x = Ex’y’, т.е. «Все не-ходящие на ногах ходят на голове, и все не-ходящие на голове ходят на ногах». Заключение Л.Кэрролла «Ни
один человек не ходит ни вниз головой, ни вверх ногами« не следует из посылок, хотя и соответствует здравому смыслу.
7. 34. Ни одна ручная тележка не комфортабельна.
Ни один некомфортабельный экипаж не пользуется популярностью.
Ни одна ручная тележка не пользуется популярностью.
Решение.
U – экипажи.
M – комфортабельные.
X – ручные тележки.
Y – популярные.
M = ExmEm’y = (x’+m’)(m+y’) = m’y’+mx’.
F(x,y) = x’+y’ = Exy, т.е. заключение правильно.
7. 35. Ни одна лягушка не имеет поэтической внешности.
Некоторые утки выглядят прозаично.
Некоторые утки – не лягушки.
Решение.
U – живые существа.
M – с поэтической внешностью.
X – лягушки.
Y – утки.
M = ExmIym’ = m’+x’.
F(x,y) = x’+i = Ix’y(5), т.е. «Некоторые утки – не лягушки». Казалось бы, заключение противоречет здравому смыслу. Это связано с тем, что нам известно
содержание терминов «лягушка» и «утка», и оно никак не задействовано в посылках. Если вместо них ввести «злокую кудру» и «бокрёнка», то всё сразу
встанет на свои места. У Л.Кэрролла нет заключения.
7. 36. Ни один император не зубной врач.
Всех зубных врачей боятся дети.
Ни одного императора дети не боятся.
Решение.
U – личности.
172
173
M – дантисты.
X – императоры.
Y – личности, которых боятся дети.
M = ExmAmy = (m’+x’)(m’+y) = x’y+m’.
F(x,y) = x’y+i = Ix’y(3), т.е. «Некоторых не-императоров боятся дети».
7. 37. Сахар сладкий.
Соль несладкая.
Соль – не сахар.
Решение.
U – бакалейные товары.
M – сладкие.
X – сахар.
Y – соль.
M = AxmAym’ = (m+x’)(y’+m’) = my’+m’x’.
F(x,y) = x’+y’ = Exy, т.е. заключение верно, а у Л.Кэрролла вновь «перебор»: «Заключение неполно: пропущено суждение «Сахар – не соль». Что в
лоб, что по лбу.
7. 38. Каждый орёл умеет летать.
Некоторые свиньи не умеют летать.
Некоторые свиньи – не орлы.
Решение.
U – живые сущетва.
M – летающие.
X – орлы.
Y – свиньи.
M = AxmIym = m+x’.
F(x,y) = x’+i = Ix’y(5). ». У Л.Кэрролла 3-й базис вместо 5-го.
8.
Предположив , что каждый из приводимых далее наборов абстрактных суждений является набором посылок сорита, найти заключение.
Поиск заключений соритов будем вести по алгоритму «Осташков».
8.1
Ни одно c не есть d.
Все a суть d.
Все b суть c.
Решение.
M = EcdAadAbc = (c’+d’)(a’+d)(b’+c). По формуле де Моргана получим M’ =
cd+ad’+bc’. В соответствии с M’ занесём нули в карту Карно, а в пустые клетки
запишем единицы. После минимизации полученной полностью определённой
логической функции зафиксируем результат
M = a’b’c’+a’cd’+b’c’d. Отсюда по алгоритму «Осташков» найдём все возможные заключения.
F1(a,b) = a’+b’ = Eab, что совпадает с результатом Л.Кэрролла. Далее
определим оставшиеся два заключения, которых нет у знаменитого логика. Во
всех своих соритах Л.Кэрролл всегда находил лишь одно заключение, что сви-
173
174
детельствует как о недостатках его методов, так и о недостаточности воображения. У Порецкого П.С. таких просчётов нет.
F2(a,c) = a’+c’ = Eac.
F3(b,d) = b’+d’ = Ebd.
Разернув М в СДНФ, или выписав СДНФ из карты Карно, заполним сокращённую таблицу истинности для М, а по ней построим скалярную диаграмму.
Скалярная диаграмма весьма наглядна: она не только даёт возможность
вычислить все заключения, но и позволяет проверить исходные посылки, что
повышает «помехоустойчивость» синтеза и достоверность полученных результатов.
Для соритов алгоритм «Осташков» может быть значительно упрощен и
заменён алгоритмом «Суздаль»: можно начать синтез непосредственно с построения скалярных диаграмм, предварительно выстроив посылки в определённом, «любимым» Кэрроллом, порядке. Он сам говорит о этом своём пристрастии в одной из задач по синтезу соритов:
«Если я решаю логическую задачу без ворчанья, то можно быть уверенным, что она мне понятна.
Посылки в этих соритах расположены не в том порядке, как в привычных мне задачах.
Ни одна легкая задача не вызывает у меня головной боли.
Я не могу понять задач, в которых посылки расположены не в том порядке, к которому я привык.
Я никогда не ворчу на задачу, если от нее у меня не болит голова.»
В данной задаче этот «любимый» Кэрроллом порядок выглядит так: AadEcdAbc. Такая последовательность посылок позволяет без труда однозначно
выстроить скалярные диаграммы. Такой подход весьма эффективен при большом(более 6) количестве аргументов.
174
175
8.2.
Все d суть b.
Ни одно a не есть c’.
Ни одно b не есть c.
Решение.
M = AdbEac’Ebc = (d’+b)(a’+c)(b’+c’) = AdbAacEbc.
M’ = b’d+ac’+bc.
M = a’c’d’+a’bc’+b’cd’.
F1(a,d) = a’+d’ = Ead, что совпадает с результатом Л.Кэрролла.
F2(a,b) = a’+b’ = Eab.
F3(c,d) = c’+d’ = Ecd.
По алгоритму “Суздаль” получим:
AdbEbcAac.
8.3.
Все b’ суть a.
Ни одно a не суть d.
Все b суть c.
Решение.
M = Ab’aEadAbc = (a+b)(a’+d’)(b’+c).
M’ = a’b’+ad+bc’.
M = ab’d’+acd’+a’bc.
F1(c,d) = c+d’ = Adc, что совпадает с результатом Л.Кэрролла.
175
176
F2(a,c) = a+c = Aa’c.
F3(b,d) = b+d’ = Adb.
8.4.
Ни одно c не есть d.
Все b суть c.
Ни одно a не есть d’.
Решение.
M = EcdAbcEad’ = (c’+d’)(b’+c)(a’+d).
M’ = cd+ad’+bc’.
M = ab’c’+a’cd’+b’c’d.
F1(a,b) = a’+b’ = Eab, что совпадает с результатом Л.Кэрролла.
F2(a,c) = a’+c’ = Eac.
F3(b,d) = b’+d’ = Ebd.
8.5.
Все d суть e.
Все c суть a.
Ни одно b не есть d’.
Все e суть a’.
Решение.
По алгоритму «Суздаль» освободимся от лишних инверсий:
M = AdeAcaEbd’Aea’ = AdeAcaEbd’Eae.
«Цепочка» получится в виде: M = AbdAdeEaeAca.
По ней строим скалярные диаграммы сорита.
Непосредственно из скалярных диаграмм видны все возможные заключения. Их число равно 5*4/2 – 4 = 6.
F1(b,c) = Ebc, что совпадает с результатом Л.Кэрролла.
F2(a,b) = Eab.
F3(a,d) = Ead.
F4(b,e) = Abe.
F5(c,d) = Ecd.
F6(c,e) = Ece.
8.6.
176
177
Все c суть b.
Все a суть e.
Все d суть b’.
Все a’ суть c.
Решение.
По алгоритму «Суздаль» освободимся от лишних инверсий:
M = AcbAaeAdb’Aa’c = AcbAaeEbdAa’c.
«Цепочка» получится в виде: M = AcbEbdAa’cAae.
По ней строим скалярные диаграммы сорита.
Непосредственно из скалярных диаграмм видны все возможные заключения. Их число равно 5*4/2 – 4 = 6.
F1(d,e) = Ade, что совпадает с результатом Л.Кэрролла.
F2(a,b) = Aa’b.
F3(a,d) = Ada.
F4(b,e) = Ab’e.
F5(c,d) = Ecd.
F6(c,e) = A’ce.
8.7.
Ни одно b не есть c.
Все e суть h.
Все a суть b.
Ни одно d не есть h.
Все e’ суть c.
Решение.
По алгоритму «Суздаль» имеем:
M = EbcAehAabEdhAe’c.
«Цепочка» получится в виде: M =AehEdhAe’cEbcAab.
По ней строим скалярные диаграммы сорита.
177
178
F1(a,d) = Ead получаем непосредственно из скалярных диаграмм. Аналогично могут быть получены остальные 9 заключений.
8.8.
Ни одно d не есть h’.
Ни одно c не есть e.
Все h суть b.
Ни одно a не есть d’.
Ни одно b не есть e’.
Решение.
По алгоритму «Суздаль» освободимся от лишних инверсий:
M = Ed’EceAhbEad’Ebe’ = AdhEceAhbAadAbe.
«Цепочка» получится в виде: M = AadAdhAhbAbeEce. По ней строим скалярные диаграммы сорита.
Из скалярных диаграмм непосредственно получаем F1(a,c) = Eac, что совпадает с результатом Л.Кэрролла. Аналогично могут быть получены остальные
9 заключений.
8.9.
Все h’ суть k’.
Ни одно b’ не есть a.
Все c суть d. 12
Все e суть h’.
178
179
Ни одно d не есть k’.
Ни одно b не есть c’.
Решение.
По алгоритму «Суздаль» освободимся от лишних инверсий:
M = Ah’k’Eb’aAcdAeh’Edk’Ebc’ = AkhAabAcdEehAdkAbc.
«Цепочка» получится в виде: M = AabAbcAcdAdkAkhEeh.
По ней строим скалярные диаграммы сорита.
Из скалярных диаграмм непосредственно получаем F1(a,e) = Eae, что совпадает с результатом Л.Кэрролла. Аналогично могут быть получены остальные
14 заключений.
8.10.
Все a суть d.
Все k суть b.
Все e суть h.
Ни одно a’ не есть b.
Все d суть c.
Все h суть k.
Решение.
По алгоритму «Суздаль» освободимся от лишних инверсий:
M = AadAkbAehEa’bAdcAhk = AadAkbAehAbaAdcAhk.
«Цепочка» получится в виде: M = AehAhkAkbAbaAadAdc.
По ней строим скалярные диаграммы сорита.
179
180
Из скалярных диаграмм непосредственно получаем F1(e,c) = Aec, что совпадает с результатом Л.Кэрролла. Аналогично могут быть получены остальные
14 заключений.
8.11.
Ни одно e не есть k.
Ни одно b’ не есть m.
Ни одно a не есть c’.
Все h’ суть e.
Все d суть k.
Ни одно c не есть b.
Все d’ суть l.
Ни одно h не есть m’.
Решение.
По алгоритму «Суздаль» освободимся от лишних инверсий:
M=EekEb’mEac’Ah’eAdkEbcAd’lEhm’=EekAmbAacAh’eAdkEbcAd’lAhm
«Цепочка» получится в виде: M = AhmAmbEbcAacAh’eEekAdkAd’l.
По ней строим скалярные диаграммы сорита.
180
181
Из скалярных диаграмм непосредственно получаем F1(a,l) = Aal, что совпадает с результатом Л.Кэрролла. Аналогично могут быть получены остальные
27 заключений.
8.12.
Все n суть m.
Все a’ суть e.
Ни одно c’ не есть l.
Все k суть r’.
Ни одно a не есть h.
Ни одно d не есть l’.
Ни одно c не есть n.
Все e суть b.
Все m суть r.
Все h суть d.
Решение.
По алгоритму «Суздаль» освободимся от лишних инверсий:
M = AnmAa’eAlcEkrEahAdlEcnAebAmrAhd.
«Цепочка» имеет вид:M=EahAhdAdlAlcEcnAnmAmrAa’eAebEkr.
По ней строим скалярные диаграммы сорита.
181
182
Из скалярных диаграмм непосредственно получаем F1(b,k) = Akb, что совпадает с результатом Л.Кэрролла. Аналогично могут быть получены остальные
заключения. Построенные диаграммы можно оспорить, поскольку в данном
случае мы имеем дело не с соритом, а с полисиллогизмом. Это одно из возможных решений. В данной ситуации нужно было воспользоваться алгоритмом
“Осташков”, однако с картой Карно от 11 переменных возиться не захотелось, а
подходящей программы минимизации на ПК под рукой не оказалось.
9. Предположив , что каждый из приводимых далее наборов конкретных
суждений является набором посылок сорита , найти заключение.
9.1
Малые дети неразумны.
Тот, кто может укрощать крокодилов, заслуживает уважения.
Неразумные люди не заслуживают уважения.
Вселенная –“люди” , a = способные укротить крокодилов, b = малые дети,
c = не заслуживающие уважения, d = разумные.
Решение.
По алгоритму «Осташков» определим полную единицу системы М:
M = Abd’Aac’Ad’c = (b’+d’)(a’+c’)(d+c).
M’ = bd+ac+c’d’.
Заполним карту Карно нулями в соответствии с М’, а в оставшиеся клетки
впишем единицы. После минимизации получим:
M = a’b’d+b’c’d+a’cd’.
F(a,b) = a’+b’ = Eab.
Выпишем рабочие наборы из карты Карно в виде сокращённой таблицы истинности и в соответствии с п.5 алгоритма «Осташков» построим диаграммы.
182
183
Из диаграмм также f(a,b) = Eab, т.е. «Ни один ребёнок не способен укротить крокодила». Все остальные соотношения между терминами сорита легко
могут быть найдены как из М, так и из диаграмм.
9.2
Мои кастрюли – единственные из принадлежащих мне вещей , которые
сделаны из олова.
Все ваши подарки чрезвычайно полезны.
Ни от одной из моих кастрюль нет никакой пользы.
Вселенная – “мои вещи” , a = сделанные из олова, b = мои кастрюли, c =
полезные, d = ваши подарки.
Решение.
По алгоритму «Осташков» определим полную единицу системы М:
M = (b  a)EbcAdc = (ab+a’b’)(b’+c’)(d’+c).
Здесь необходимо подчеркнуть, что Кэрролл описывает первую посылку
через общеутвердительный функтор, что некорректно по сути и кроме того допускается двоякая трактовка: Aab и Aba из-за аморфности формулировки суждения. Автор обязан абсолютно точно ставить “техническое задание”. Этот недостаток Кэрролла чрезвычайно серьёзен.
M’ = (ab’+a’b)+bc+c’d).
Заполним карту Карно нулями в соответствии с М’, а в оставшиеся клетки
впишем единицы. После минимизации получим:
M =a’b’(c+d’)+abc’d’.
F(a,d) = a’+d’ = Ead, т.е. “Ни один из ваших подарков – не оловянный”.
Поскольку совокупность посылок удалось описать в виде сорита, то можно
сразу изобразить его в виде диаграмм.
Из диаграмм также f(a,d) = Ead.
9.3
183
184
Ни одна из молодых картофелин не была поджарена.
Все картофелины на этой тарелке съедобны.
Ни одна жареная картофелина не съедобна.
Вселенная – “картофелины”, a = жареные, b = съедобные, c = на этой тарелке, d = молодые.
Решение.
По алгоритму «Осташков» определим полную единицу системы М:
M = EdaAcbEab = (a’+d’)(b+c’)(a’+b’) = a’b+a’c’+b’c’d’.
Полученное выражение описывает полисиллогизм, поскольку однозначую
диаграмму в этом случае нарисовать невозможно. Тем не менее попробуем
всё-таки представить этот полисиллогизм на диаграммах. Вначале изобразим
суждения Eab, затем Acb, а потом представим все ситуации, возможные в этом
полисиллогизме для Eda.
Из диаграмм и таблицы истинности получим f(c,d) = Icd(3), т.е. «Некоторые картофелины не на этой тарелке – не молодые». Мы получили полное решение полисиллогизма, хотя по М можно было сразу получить одно из частных
решений. Кстати все частные решения отражены на диаграммах Лобанова:
Adc, Acd, Icd(8), Ecd. Л.Кэрролл в принципе не мог получить правильного результата, поскольку он не умеет решать полисиллогизмы.
9.4
Ни одна утка не танцует вальс.
Ни один офицер не откажется протанцевать вальс.
У меня нет другой птицы, кроме уток.
Вселенная – “живые существа”, a = утки, b = моя домашняя птица, c =
офицеры, d = желающие танцевать вальс.
Решение.
По алгоритму «Осташков» определим полную единицу системы М:
184
185
M = EadEcd’Aba = (a’+d’)(c’+d)(b’+a) = AbaEadAcd.
Данное выражение является соритом, поскольку можно выстроить “цепочку Кэрролла”: AbaEadAcd. Поэтому сразу построим диаграммы Лобанова.
Из диаграмм также f(b,c) = Ebc, т.е. «Ни одна моя домашняя птица не является офицером». Ответы совпали.
9.5
Всякий, кто находится в здравом уме, может заниматься логикой.
Ни один лунатик не может быть присяжным заседателем.
Ни один из ваших сыновей не может заниматься логикой.
Вселенная – “люди”, a = способные заниматься логикой, b = те, кто может
быть присяжным заседателем, c = находящиеся в здравом уме, d = ваши сыновья.
Решение.
По алгоритму «Осташков» определим полную единицу системы М:
M = AcaEc’bEda = (c’+a)(c+b’)(d’+a’) = AcaAbcEad.
M’ = a’c+bc’+ad.
Из карты Карно получим:
M = a’b’c’+ab’d’+acd’. Отсюда f(b,d) = b’+d’ = Ebd.
Данное выражение является соритом, поскольку можно выстроить “цепочку Кэрролла”: AcaAbcEad. Поэтому сразу построим диаграммы Лобанова.
Из диаграмм также f(b,в) = Ebв, т.е. «Ни один мой сын не является присяжным заседателем». Разногласий с Кэрроллом нет.
9.6
В этой коробке нет моих карандашей.
Ни один из моих леденцов – не сигара.
Вся моя собственность, не находящаяся в этой коробке, состоит из сигар.
185
186
Вселенная – “мои вещи”, a = сигары, b = в этой коробке, c = карандаши, d =
леденцы.
Решение.
По алгоритму «Осташков» определим полную единицу системы М:
M = EbcEdaAb’a = (b’+c’)(a’+d’)(a+b) = Ab’aEdaEbc.
Данное выражение является соритом, поскольку мы сумели выстроить
“цепочку Кэрролла”: Ab’aEdaEbc. Поэтому сразу построим диаграммы Лобанова.
Из диаграмм f(c,d) = Ecd, т.е. «Ни один из моих карандашей не леденец».
Разногласий с Кэрроллом нет. Однако, если мы не поленимся и выведем соотношение между сигарами и карандашами, то получим f1(a,c) = Aca, т.е. «Все
карандаши – сигары». В этом проявляется небрежность Кэрролла как составителя сорита, неумение синтезировать все возможные заключения и отсутствие
наглядности в символическом методе великого логика.
9.7
Ни одного опытного человека нельзя считать некомпетентным.
Дженкинс всегда допускает грубые ошибки в работе.
Ни один компетентный человек не допустит грубых ошибок в работе.
Вселенная – “люди”, a = всегда допускающие грубые ошибки в работе, b =
компетентные, c = опытные, d = Дженкинс.
Решение.
По алгоритму «Осташков» определим полную единицу системы М:
M = Ecb’AdaEba = (c’+b)(d’+a)(b’+a’) = AcbEbaAda.
Данное выражение является соритом, поскольку мы сумели выстроить
«цепочку Кэрролла». Поэтому сразу построим диаграммы Лобанова.
186
187
Из диаграмм также f(c,d) = Ecd, т.е. «Дженкинс неопытен». Разногласий с
Кэрроллом нет.
9.8
Ни один терьер не блуждает среди знаков Зодиака.
То, что не блуждает среди знаков Зодиака, не может быть кометой.
Только у терьера хвост колечком.
Вселенная – “предметы”, a = кометы, b = имеющие хвост колечком, c = терьеры, d = блуждающие среди знаков Зодиака.
Решение.
По алгоритму «Осташков» определим полную единицу системы М:
M = (c  b)EcdAd’a’ = (c  b)EcdAad.
Данное выражение является соритом, поскольку мы сумели выстроить
«цепочку Кэрролла». Поэтому сразу построим диаграммы Лобанова.
Из диаграмм также f(a,b) = Eab, т.е. «Ни у одной кометы нет хвоста колечком». Разногласий с Кэрроллом нет.
9.9
Никто не станет выписывать газету “Таймс”, если он не получил хорошего
образования.
Ни один дикобраз не умеет читать.
Те, кто не умеет читать, не получили хорошего образования.
Вселенная – “живые существа”, a = умеющие читать, b = дикобразы, c =
выписывающие газету “Таймс”, d = получившие хорошее образование.
Решение.
По алгоритму «Осташков» определим полную единицу системы М:
M = AcdEbaAa’d’= AcdAdaEba.
Данное выражение является соритом, поскольку мы сумели выстроить
«цепочку Кэрролла». Поэтому сразу построим диаграммы .
187
188
Из диаграмм также f(b,c) = Ebc, т.е. «Ни один дикобраз не выписывает газету «Таймс». Разногласий с Кэрроллом нет.
9.10
Все пудинги вкусны.
Это блюдо – пудинг.
Ни одно вкусное иблюдо не полезно.
Вселенная - <<блюда>>, a = вкусные, b = пудинги, c = блюдо, d = полезные.
Решение.
По алгоритму «Осташков» определим полную единицу системы М:
M = AbaAcbEad = AcbAbaEad .
Данное выражение является соритом, поскольку мы сумели выстроить
«цепочку Кэрролла». Поэтому сразу построим диаграммы .
Из диаграмм также f(c,d) = Ecd, т.е. «Ни один дикобраз не выписывает газету «Таймс». Разногласий с Кэрроллом нет.
9.11
Когда мой садовник рассуждает на военные темы, его стоит послушать.
Никто не может помнить битву при Ватерлоо, если он не очень стар.
Того, кто не помнит битву при Ватерлоо, не стоит слушать, когда он рассуждает на военные темы.
Вселенная - <<люди>>, a = те, кто может помнить битву при Ватерлоо, b = мой садовник, c = тот, кого стоит слушать, когда он рассуждает о
войне.
Решение.
По алгоритму «Осташков» определим полную единицу системы М:
M = AbcEad’Aa’c’ = AbcAcaAad .
188
189
Данное выражение является соритом, поскольку мы сумели выстроить
«цепочку Кэрролла». Поэтому сразу построим диаграммы .
Из диаграмм также f(b,d) = Abd, т.е. «Мой садовник стар». Разногласий с
Кэрроллом нет.
9.12
Все колибри имеют яркое оперение.
Ни одна крупная птица не питается нектаром.
Птицы,которые не питаются нектаром, имеют неяркое оперение.
Вселенная – “птицы”, a = колибри, b = крупные, c = питающиеся мёдом, d =
с ярким оперением.
Решение.
По алгоритму «Осташков» определим полную единицу системы М:
M = AadEbcAc’d’ = AadAdcEbc .
Данное выражение является соритом, поскольку мы сумели выстроить
«цепочку Кэрролла». Поэтому сразу построим диаграммы .
Из диаграмм также f(a,b) = Eab = Aab’, т.е. «Все колибри невелики». Разногласий с Кэрроллом нет.
9.13
Все утки в этой деревне, имеющие метку “Б”, принадлежат миссис Бонди.
Утки в этой деревне не носят кружевных воротничков, если не принадлежат миссис Бонди.
У миссис Бонди в этой деревне нет серых уток.
Вселенная – “утки в этой деревне”, a = принадлежащие миссис Бонди, b =
имеющие метку “Б”, c = серые, d = носящие кружевные воротнички.
Решение.
189
190
По алгоритму «Осташков» определим полную единицу системы М:
M = AbaAdaEca = (b’+a)(d’+a)(c’+a’).
M’ = a’b+a’d+ac. Из карты Карно получим: M = ac’+a’b’d’.
Данное выражение является полисиллогизмом. Поэтому построим таблицу истинности для М.
Из диаграмм также f1(c,d) = Ecd, т.е. «Ни одна серая утка не носит кружевных воротничков». Разногласий с Кэрроллом нет. Однако, если найти соотношение f2(b,d) = Ibd(8), то окажется, что ,во-первых, Кэрролл не смог бы определить это заключение, а во-вторых, графический метод синтеза полисиллогизмов даёт более жёсткий результат: f2(b,d) = Ibd(3).
9.14
Вся старая посуда на этой полке имеет трещины.
Ни один горшок на этой полке не новый.
Всё, что стоит на этой полке, пригодно для хранения воды.
Вселенная – “посуда на этой полке”, a = не протекающая, b = имеющая
трещины, c = горшки, d = старые.
Решение.
190
191
Третья посылка в этом полисиллогизме некорректна, поскольку на полке
стоят старые горшки, не пригодные для хранения воды. Не будем фантазировать за Кэрролла, и простим ему эту небрежность.
9.15
Все незрелые фрукты неполезны.
Все эти яблоки созрели.
Ни один фрукт, выросший в тени, не зрелый.
Вселенная - <<фрукты.>>, a = выросшие в тени, b = зрелые, с = эти яблоки,
D = полезные.
Решение.
По алгоритму «Осташков» определим полную единицу системы М:
M =Ab’d’AcbEab = (b+d’)(c’+b)(a’+b’) = AdbAcbEab.
M’ = b’d+b’c+ab.
M = a’b+b’c’d’
F1(c,d) = 1 = Icd(8).
F2(a,c) = a’+c’ = Eac.
F3(a,d) = a’+d’ = Ead.
Данное выражение является полисиллогизмом, поскольку мы не сумели выстроить «цепочку Кэрролла. Поэтому найдём частное решение. Выпишем рабочие наборы из карты Карно в виде сокращённой таблицы истинности и в соответствии с п.5 алгоритма «Осташков» построим диаграммы.
.
Из диаграмм также
F1(c,d) = 1 = Icd(8).
F2(a,c) = a’+c’ = Eac, т.е. «Эти яблоки выросли на солнце».
F3(a,d) = a’+d’ = Ead.
Разногласий с Кэрроллом нет.
9.16
Щенок, не желающий лежать спокойно, всегда будет вам благодарен,
Если вы предложите ему скалку.
Хромой щенок не скажет вам спасибо, если вы предложите ему скалку.
Никто, кроме хромых щенят, не станет ткать.
Вселенная - <<щенята>>, a = те, кто станет ткать, b = те, которые благодарные
За скалку, с = хромые, d = желающие лежать спокойно.
Решение.
По алгоритму «Осташков» определим полную единицу системы М:
191
192
M = Ad’bAcb’Ec’a = (d+b)((c’+b’)(c+a’) = EbcAacAd’b.
Данное выражение является соритом, поскольку мы сумели выстроить
«цепочку Кэрролла». Поэтому сразу построим диаграммы .
Из диаграмм также f(a,d) = Aad, т.е. «Все «ткачи» - лежебоки». Разногласий с Кэрроллом нет.
9.17
Ни одно имя в этом списке не годится для героя романа.
Имена, начинающиеся с гласной, всегда мелодичны.
Ни одно имя не годится для героя романа, если оно начинается с согласной.
Вселенная - <<имена>>, a = начинающиеся с гласной, b = стоящие в этом
Списке, c = мелодичные, d = подходящие герою романа.
Решение.
По алгоритму «Осташков» определим полную единицу системы М:
M = EbdAacEa’d = (b’+d’)((a’+c)(a+d’).
M’ = bd+ac’+a’d. Из карты Карно получим:
M = a’c’d’+cd’+a’b’c.
Данное выражение является полисиллогизмом. Поэтому построим таблицу истинности для М и по таблице истинности получим частное решение в виде диаграмм Лобанова.
.
Из диаграмм также f1(b,c) = Ibc(8), т.е. «Некоторые имена из этого списка
мелодичны». У Кэрролла грубая ошибка: его заключение “Ни одно имя в этом
списке не мелодично”.
Более точное решение можно получить с помощью диаграмм, изобразив
на них все возможные ситуации.
192
193
F1(b,c) = Ib’c(3), т.е. «Некоторые имена не из списка мелодичны».
Силлогизмы Л.Кэрролла для самостоятельного решения.
Автор предлагает решать их с помощью графического алгоритма «ТВАТ».
24.Свиньи не летают.
Свиньи прожорливы.
25. Все солдаты отлично маршируют.
Некоторые дети – не солдаты.
26. Ни один свадебный пирог не полезен.
Всего, что не полезно, следует избегать.
27. Джон трудолюбив.
Ни один трудолюбивый человек не несчастен.
28. Ни один философ не тщеславен.
Некоторые тщеславные люди – не игроки.
29. Некоторые законы о налогах несправедливы.
Все законы, принятые на прошлой неделе, относятся
к налогообложению.
30. Ни один военный не пишет стихов.
Ни один из моих жильцов не штатских.
31. Ни одно лекарство не приятно на вкус.
Александровский лист – лекарство.
32. Некоторые циркуляры не доставляют удовольствия.
Ни одно письмо, в котором содержится какая – нибудь
просьба, не доставляет удовольствия.
33. Все британцы отважны.
Ни один моряк не хвастун.
35. Некоторые свиньи дикие.
Все свиньи жирные.
36. Все осы злые.
Всех злых существ необходимо остерегаться.
193
194
37. Ни один старый кролик не прожорлив.
Все черные кролики прожорливы.
38. Некоторые яйца сварены вкрутую.
Нет такого яйца, которое нельзя было бы разбить.
39. Ни одна антилопа не безобразна.
Изящные создания радуют взгляд.
40. Все канарейки, получающие достаточное количество
корма, поют громко.
Ни одна канарейка не настроена меланхолически, если она
п оет громко
41. Некоторые стихи оригинальны.
Ни одна оригинальная работа не делается без вдохновения.
42. Ни в оной из исследованных до сих стран не обитают драконы.
Неисследованные страны пленяют воображение.
43. Ни один кусок угля не бел.
Ни один негр не бел.
44. Ни один мост не сделан из сахара.
Некоторые мосты живописны.
45. Ни один ребенок не терпелив.
Ни один нетерпеливый человек не может сидеть спокойно.
46. Ни одно четвероногое не может свистеть.
Некоторые кошки – четвероногие.
47. Скучные люди невыносимы.
Вы скучный человек.
48. Некоторые устрицы молчаливы.
Ни одно молчаливое созданье не забавно.
49. Канарейки, которые не поют громко, несчастливы.
Ни одна канарейка, получающая достаточное количество корма,
не поет негромко.
50. Все мои сестры простужены.
Никто не может петь,если он простужен.
51. Все, что сделано из золота, драгоценно.
Некоторые шкатулки драгоценны.
52. Некоторые секретари – птицы.
Все секретари заняты полезным делом.
53. Все мои кузины несправедливы.
Все судьи справедливы.
54. Боль подтачивает силы.
Никакая боль не желательна.
55. Все лекарства имеют отвратительныц вкус.
Александрийский лист – лекарство.
56. Некоторые нелюбезные замечания вызывают раздражение.
Ни одно критическое замечание не любезно.
57. Ни у одного высокого человека нет курчавых волос.
У негров курчавые волосы.
58. Все философы рассуждают логично!
Человек, не умеющий рассуждать логично, всегда упрям.
59. Джон трудолюбив.
Все трудолюбивые люди счастливы.
60. Эти блюда великолепно приготовлены.
194
195
Некоторые блюда, если плохо приготовить, вредны для здоровья.
61. Книга с захватывающим сюжетом не подходит для чтения
легко возбудимым людям.
От скучных книг клонит в сон.
62. Ни одна свинья не летает.
Все свиньи прожорливы.
63. Если человек начеку, он не даст провести себя мошеннику.
Вы и я начеку.
64. Некоторые сны ужасны.
Ни один барашек не внушает ужаса.
65. Ни одному лысому созданью не нужна расческа.
Ни у одной ящерицы нет волос.
66. Все битвы сопровождаются страшным шумом.
То, что происходит без шума, может ускользнуть от внимания.
67. Все мои кузины несправедливы.
Ни один судья не несправедлив.
68. Все яйца можно разбить.
Некоторые яйца сварены вкрутую.
69. Предубежденным людям нельзя доверять.
Некоторые непредубежденные люди не пользуются симпатией у
окружающих.
70. Ни один властный человек не популярен.
Она властный человек.
71. Некоторые лысые люди носят парик.
У всех ваших детей чудесные собственные волосы.
72. Ни одного омара нельзя считать неразумным.
Ни одно разумное существо не станет ждать невозможного.
73. Ни один кошмарный сон не приятен.
Неприятные ощущения не желательны.
74. Ни один пирог со сливами не полезен
Некоторые полезные вещи вкусны.
75. Того,что вкусно, не следует опасаться.
Некоторые сорта варенья вкусны.
76. Все утки при ходьбе переваливаются с боку на бок.
То, что переваливается при ходьбе с боку на бок, не изящно.
77. Эти бутерброды вкусны.
Ничто из того, что лежит на этом блюде, не вкусно.
78. Ни один богатый человек не просит милостыню.
Тем, кто небогат, следует соразмерять расходы с доходами.
79. Пауки ткут паутину.
Некоторые существа, не ткущие паутины, - дикари.
80. В некоторых из этих магазинов немного народу.
В магазине, где много народу, неуютно.
81. Предусмотрительные путешественники всегда имеют при себе деньги
на мелкие расходы.
Непридусмотрительные путешественники теряют багаж.
82. Некоторые сорта герани красного цвета.
Все эти цветы красные.
83. Ни одна из моих кузин не справедлива.
Все судьи справедливы.
195
196
84. Занятые люди никогда не жалуются.
Недовольные люди всегда жалуются.
85. Ни одна из моих кузин не справедлива.
Ни один судья не несправедлив.
86. Все трезвенники любят сахар.
Ни один соловей не пьет вина.
87. Ни одна загадка не интересует меня, если ее можно решить.
Все эти загадки неразрешимы.
88. Все ясные объяснения удовлетворительны.
Некоторые извинения неудовлетворителоны.
89. Все пожилые леди любят поговорить.
Все добродушные леди любят поговорить.
90. Ни один добрый поступок не беззаконен.
То, что законно, можно делать без колебаний.
91. Ни один ребенок не любит прилежно заниматься.
Среди детей нет скрипачей-виртуозов.
92. Все монеты достоинством в один шиллинг круглые.
Все эти монеты круглые.
93. Ни один честный человек не мошенничает.
Ни одному нечестному человеку нельзя верить.
94. Ни один из моих мальчиков не умен.
Ни одна из моих девочек не жадна.
95. Все шутки для того и предназначены, чтобы смешить людей.
Ни один парламентский акт не шутка.
96. Ни одно богатое приключениями путешествие не останется забытым.
Путешествия без приключений не стоят того, чтобы им посвящали книги.
97. Все мои мальчики непослушны.
Все мои девочки недовольны.
98. Ни одна приятная неожиданность не вызывает у меня чувства досады.
Ваш визит для меня приятная неюжиданность.
Сориты Л.Кэрролла для самостоятельного решения.
Рекомендуется найти все возможные заключения соритов. Кэрролл существенно упростил задачу, введя символические обозначения всех терминов соритов. Попытайтесь провести синтез соритов без подсказок скзочника.
18
Все члены общин находятся в полном рассудке.
Ни один член парламента, носящий титул пэра, не станет участвовать в
скачках на мулах.
Все члены палаты лордов носят титул пэра.
Вселенная - <<члены парламента>>, a = члены палаты общин, , b = находящиеся в полном рассудке, c = те, кто может принять участие в скачках на мулах,
D = носящие титул пэра.
19
1.Ни один из товаров, который был куплен и оплачен, не находится более
в продаже в этом магазине.
196
197
Ни один из этих товаров нельзя вынести из магазина, если на нем нет ярлычка с надписью <<Продано>>.
Ни на одном из этих товаров нет ярлычка с надписью <<Продано>>, если
он не куплен и не оплачен.
Вселенная - <<товары в этом магазине >>, a = те, которые можно вынести
из магазина, b = купленные и оплаченные, c = те, на которых есть ярлычок с
надписью <<Продано>>, d = находящиеся в продаже.
20
Ни один акробатический трюк, не объявленный в программе циркового
представления, никогда не исполнялся.
Ни один акробатический трюк не возможен, если он включает в себя четверное сальто.
Ни один невозможный акробатический трюк никогда не стоит в программе
циркового представления.
Вселенная - <<акробатические трюки>>, a = оьъявленные в программе
циркового представления, b = исполняемые в цирке, c = включающие в себя
четверное сальто, d = возможные .
21
Никто из тех, кто действительно ценит Бетховена, не станет шуметь во
время исполнения <<Лунной сонаты>>.
Морские свинки безнадежно невежественны в музыке.
Те, кто безнадежно невежествен в музыке, не станут соблюдать тишину во
время исполнения <<Лунной сонаты>>.
Вселенная - <<живые существа >>, a = морские свинки, b = безнадежно
невежественные в музыке, c = соблюдающие тишину во время исполнения
<<Лунной сонаты>>, d = действительно ценящие Бетховена.
22
Яркие цветы всегда благоухают.
Я не люблю цветы, выросшие не на открытом воздухе.
Ни один цветок, выросший на открытом воздухе, не имеет бледной окраски.
Вселенная - <<цветы>>, a = яркие, b = выросщие на открытом воздухе,
с = благоухающие.
23
Ораторы, рассчитывающие на внещний эффект, слишком много думают о
себе.
Находиться в обществе хорошо информированных людей приятно.
Находиться в обществе людей, которые слишком много думают о себе,
неприятно.
Вселенная - <<люди>>, a = люди, в обществе которых приятно находиться,
b = хорошо информированные, c = ораторы, , бьющие на внешний эффект,
d = слишком много о себе думающие.
24
Ни одного мальчика моложе 12 лет не принимают в эту школу на полный
пансион.
У всех прилежных мальчиков рыжие волосы.
Ни один из мальчиков, приходящих в школу только на занятия, не учит
греческий язык.
Никто, кроме мальчиков моложе 12 лет, не любит бить баклуши.
197
198
Вселенная - <<мальчики, учащиеся в этой щколе>>, a = зачисленные на
полный пансион, b = прилежные, c = изучающие греческий язык,
d = рыжие, e = моложе 12 лет.
25
Мой доктор разрешает мне есть лишь не очень калорийные блюда.
То, что я могу есть, вполне подходит на ужин.
Свадебные пироги всегда очень калорийны.
Мой доктор разрешает мне есть все, что подходит для ужина.
Вселенная - <<продукты питания>>, a = что я могу есть, b = то, что разрешает мне есть доктор, c = подходящие для ужина,
d = очень калорийные, e = свадебный пирог.
26
Дискуссии в нашем клубе вряд ли разбудят британского льва, если брать
их под контроль сразу же, как только они становятся слишком щумными.
Неумело направленные дискуссии угрожают спокойствию в стенах нашего
клуба.
Дискуссии, проходящие под председательством Томкинса, вполне могут
разбудить британского льва.
Умело направленные дискуссии в нашем клубе неизменно берутся под
контроль, как только они становятся слишком шумными.
Вселенная - <<дискуссии в нашем клубе>>, a = те, которые берутся
Под контроль, когда они становятся слишком шумными.
Вселенная - <<дискуссии в нашем клубе,
a = те, корые берутся под контроль, когда они становятся слишком шумными,
b = угрожающие спокойствию астенах нашего клуба,
c = проходящие под председательством Томкинса,
d = вполне cпособные разбудить британского льва,
e = умело направляемые.
27
Все мои сыновья стройны.
Никто из моих детей не здоров, если он не делает утренней зарядки.
Все обжоры среди моих детей страдают ожирением
Ни одна из моих дочерей не делает утренней зарядки.
Вселенная - <<мои дети> ,
a = страдающие ожирением,
b = обжоры,
c = здоровые,
d = сыновья,
e = делающие утреннюю зарядку.
28
Вещи, продаваемые на улице, не имеют особой ценноссти
Только дрянь можно купить за гроши.
Яйца большой гагарки представляют большую ценность.
Лишь тю, что продается на улице, и есть настоящая дрянь.
Вселенная - <<вещи>>,
a = вещи, которым грош цена,
b = яйца большой гагарки,
c = дрянь,
d = продаваемые на улице,
198
199
e = имеющие большую ценность.
29
Ни у одной продаваемой здесь книги, кроме тех книг,которые выставлены
на витрине, нет золочёного обреза.
Все авторские издания снабжены красным ярлычком.
Все книги с красными ярлычками продаются по цене от 5 шиллингов и
выше.
Лишь авторские издания выставляются на витрине.
Вселенная – “продаваемые здесь книги”,
a = авторские издания,
b = с золочёным обрезом ,
c = с красным ярлычком,
d = выставленные на витрине,
e = продаваемые по цене от 5 шиллингов и выше.
30
Кровоостанавливающие средства, действие которых нельзя проверить,
сплошное шарлатанство.
К настойке календулы не следует относиться с презрением.
Все лекарства, способные остановить кровотечение, когда вы порежете
палец, полезны.
Все шарлатанские кровоостанавливающие средства достойны презрения.
Вселенная – “кровоостанавливающие средства”,
a = способные остановить кровотечение,
b = достойные презрения,
c = шарлатанские,
d = настойка календулы,
e = полезные в тех случаях, когда вы порежете палец.
31
Ни один из встреченных в море, но оставшихся незамеченным предметов
– не русалка.
Встреченные в море предметы, о которых делается запись в вахтенном
журнале, стоят того, чтобы их запомнить.
В моих путешествиях мне никогда не доводилось видеть ничего такого, что
стоило бы запомнить.
О встреченных в море и замеченных предметах делается запись в вахтенном журнале.
Вселенная – “встреченные в море предметы”,
a = те, о которых делается запись в судовом журнале,
b = русалки,
c = виденные мной,
d = замеченные,
e = стоящие того, чтобы их запомнить.
32
Единственные книги в этой библиотеке, которые я не рекомендую читать,
безнравственны по своему содержанию.
Все книги в твёрдых переплётах обладают выдающимися литературными
достоинствами.
Все романы вполне нравственны по своему содержанию.
Я не рекомендую вам читать ни одну из книг в мягкой обложке.
199
200
Вселенная – “книги в этой библиотеке”,
a = в твёрдом переплёте,
b = нравственного содержания,
c = рекомендуемые мной для чтения,
d = романы,
e = обладающие выдающимися литературными достоинствами.
33
Ни одна птица, кроме страуса, не достигает 9 футов роста.
В этом птичнике нет птиц, которые принадлежали бы кому-нибудь, кроме
меня.
Ни один страус не питается пирогами с начинкой.
У меня нет птиц, которые бы достигали 9 футов роста.
Вселенная – “птицы”,
a = находящиеся в этом птичнике,
b = питающиеся пирогами с начинкой,
c = мои,
d = 9 футов роста,
e = страусы.
34
Ни одна интересная поэма не останется не признанной людьми с тонким
вкусом.
Ни одна современная поэма не свободна от аффектации.
Все ваши поэмы написаны о мыльных пузырях.
Ни одна аффектированная поэма не находит признания у людей с тонким
вкусом.
Ни одна древняя поэма не написана о мыльных пузырях.
Вселенная – “поэмы”,
a = аффектированные,
b = древние,
c = интересные,
d = написанные о мыльных пузырях,
e = получившие признание у людей с тонким вкусом,
h = написанные вами.
35
Все плоды на этой выставке, которые не будут удостоенынаграды,являются Собственностью организационного комитета.
Ни один из представленных мной персиков не удостоен награды.
Ни один из плодов, распроданных после закрытия выставки, не был незрелым.
Ни один из спелых плодов не был выращен в теплице.
Все плоды, принадлежащиеорганизационному комитету выставки, были
рспроданы после ее закрытия.
Вселенная - <<плоды, представленные на этой выставке,
a = принадлежавшие организационному комитету,
b = удостоенные награды,
c = выращенные в теплице,
d = мои персики,
e = спелые,
h = распроданные после закрытия выставки.
36
200
201
Те, которые нарушают свои обещания, не заслуживают доверия.
Любители выпить очень общительны.
Человек, выполняющий свои обещания, честен.
Ни один трезвенник не ростовщик.
Тому, кто очень общителен, всегда можно верить.
Вселенная - <<люди>>,
a = честные,
b = ростовщики,
c = нарушающие свои обещания,
d = заслуживающие доверия,
e = очень общительные,
h = любители выпить.
37
Котёнок, который любит рыбу, поддаётся дрессировке.
Котёнок без хвоста не станет играть с гориллой.
Котята с усами всегда любят рыбу.
У котёнка, поддающегося дрессировке, не бывает зелёных глаз.
Если у котёнка нет хвоста, то у него нет и усов.
Вселенная – “котята”,
a = с зелёными глазами,
b = любящие рыбу,
c = с хвостами,
d = поддающиеся дрессировке,
e = с усами,
h = котята, которые станут играть с гориллой.
38
Все выпусники Итона в этом колледже играют в крикет.
Никто, кроме преподавателей, не обедает за верхним столом.
Ни один з тех, кто играет в крикет, не умеет грести.
Все мои друзья в этом колледже – выпусники Итона.
Все преподаватели – прекрасные гребцы.
Вселенная - <<люди этого колледжа>>,
a = играющие в крикет,
b = обедающие за верхним столом,
c = выпусники Итона,
d = мои друзья,
e = прекрасные гребцы,
h = преподаватели.
39
Ни один из имеющихся здесь моих ящиков я не рискну открыть.
Мой письменнй стол сделан из палисандрового дерева.
Все мои ящики, за исключением тех, которые находятся здесь, покрыты
лаком.
Нет ни одного моего ящика, который я бы не рискнул открыть, если только
он не полон живых скорпионов.
Все мои ящики из палисандрового дерева покрыты лаком.
Вселенная - <<мои ящики>>,
a = ящики, которые я рискну открыть,
b = полные живых скорпионов,
c = находящиеся здесь,
201
202
d = сделанные из палисандрового дерева,
e = покрытые лаком.,
h = письменные столы.
40
Все авторы литературных произведений, постигшие природу человека,
умные люди.
Ни одного автора нельзя считать истинным поэтом, если он не способен
волновать сердца людей.
Шекспир написал <<Галета>>.
Ни один автор, не постигший природу человека, не способен волновать
сердца людей.
Только истинный поэт мог написать <<Гамлета>>.
Вселенная - <<авторы литературных произведений,
a = способные волновать сердца людей,
b = умные,
c = Шекспир,
d = истинные поэты,
e = постигшие природу человека,
h = автор <<Гамлета>>.
41
Я с отвращением отношусь ко всему тому, что не может служить мостом.
Все, что можно воспеть в стихах, для меня приятный подарок.
Радуга не выдержит веса тачки.
Все, что может служить мостом, выдержит вес тачки.
Я бы н е принял в качестве подарка то, что вызывает у меня отвращение.
Вселенная - <<предметы,
a = способные выдержать вес тачки,
b = то, что я приму в подарок,
c = вызывающие у меня отвращение,
d = радуги,
e = то, что может служить мостом,
h = то, что можно воспеть в стихах.
42
Если я решаю логическую задачу без ворчанья, то можно быть уверенным,
что она мне понятна.
Посылки в этих соритах расположены не в том порядке, как в привычных
мне задачах.
Ни одна легкая задача не вызывает у меня головной боли.
Я не могу понять задач, в которых посылки расположены не в том порядке,
к которому я привык.
Я никогда не ворчу на задачу, если от нее у меня не болит голова.
Вселенная - <<логические задачи, которые я рещаю>>,
a = задачи, в которых посылки расположены в привычном мне порядке,
b = легкие,
c = задачи, на которые я ворчу,
d = вызывающие у меня головную боль,
e = эти сориты,
h = понятные мне задачи. .
43
202
203
Любая моя мысль, которую нельзя выразить в виде силогизма, поистинне
смешна.
Моя мечта о сдобных булочках не стоит того, чтобы ее записывать на бумаге.
Ни одну мою несбыточную мечту нельзя выразить в виде силлогизма.
Мне не приходило в голову ни одной действительно смешной мысли, о которой бы я не сообщил своему поверенному.
Я только и мечтаю, что о сдобных булочках.
Я никогда не высказывал своему поверенному ни одной мысли, если она
не стоила того, чтобы её записать на бумаге.
Вселенная - <<мои мысли>> ,
a = те из них, которые можно выразить в виде силлогизма ,
b = мечты о сдобных булочках,
c = сбывшиеся,
d = мои мечты,
e = поистине смешные,
h = мысли, о которых я сообщаю своему поверенному,
k = мысли, стоящие того, чтобы их записать на бумагу.
44
Ни одна из представленных здесь картин, кроме батальных, не представляет ценности.
Ни одна из картин, вывешенных без рам, не покрыта лаком.
Все батальные картины написаны маслом.
Все распроданные картины представляют ценность.
Все картины английских мастеров покрыты лаком.
Все картины, которые были вывешены в рамах, проданы.
Вселенная – “представленные здесь картины”,
a = батальные,
b = принадлежащие кисти английских мастеров,
c = в рамах,
d = написанные маслом,
e = проданные,
h = представляющие ценность, покрытые лаком.
45
Животные, которые не брыкаются, всегда невозмутимы.
У осла нет рогов.
Буйвол всегда может перебросить вас через ограду.
Животных, которые не брыкаются, не легко проглотить.
Животное, у которого нет рогов, не может перебросить вас через ограду.
Все животные, кроме буйвола, легко приходят в ярость.
Вселенная – “животные”,
a = животные,которые могут перебросить вас через ограду,
b = буйволы,
c = ослы,
d = животные, которых легко проглотить,
e = легко приходящие в ярость,
h = с рогами,
k = брыкающиеся.
46
Никто не забудет причесаться, если он отправляется на бал.
203
204
Нельзя сказать, что человек выглядит превосходно, если он неопрятен.
Курильщики опиума утрачивают контроль над собой.
Причёсанный человек выглядит превосходно.
Никто не наденет белых лайковых перчаток, если он не отправляется на
бал.
Человек всегда неопрятен, если он утратил контроль над собой.
Вселенная – “люди”,
a = собирающиеся на бал,
b = причёсанные,
c = сохраняющие контроль над собой,
d = превосходно выглядящие,
e = курильщики опиума,
h = опрятные,
k = надевшие белые лайковые перчатки.
47
Ни один муж, дарящий жене новые платья, не может быть несговорчивым.
Аккуратный муж всегда возвращается домой к чаю.
Жене нелегко содержать в порядке одежду мужа, если он имеет обыкновение вешать свою шляпу на газовый рожок.
Хороший муж всегда дарит своей жене новые платья.
Ни один муж не может не быть несговорчивым, если жена не следит за его
одеждой.
Неаккуратный муж всегда вешает свою шляпу на газовый рожок.
Вселенная – “мужья ”,
a = всегда возвращающиеся домой к чаю,
b = всегда дарящие своим жёнам новые платья,
c = несговорчивые,
d = хорошие,
e = вешающие шляпу на газовый рожок,
h = мужья, за одеждой которых жена следит,
k = аккуратные.
48
Все, что не слишком безобразно, можно держать в гостиной.
То, что покрыто налетом соли, никогда не бывает абсолютно сухим.
То, что покрыто влагой, не следует держать в гостиной.
Купальные кабинки у моря всегда покрыты налётом соли.
Ничто, сделанное из перламутра, не может быть слишком безобразным.
Все, что стоит у самого моря, покрывается налётом соли.
Вселенная - <<вещи>>,
a = слишком безобразные,
b = купальные кабинки,
c = покрытые налётом соли,
d = стоящие у самого моря,
e = сделанные из перламутра,
h = абсолютно сухие,
k = вещи, которые можно держать в гостиной.
49
Я не называю день <<несчастливым>>, если Робинсон вежлив со мной.
Среды всегда бывают пасмурными днями.
Если люди берут с собой зонты, день никогда не бывает солнечным.
204
205
Единственный день недели, когда Робинсон невежлив со мной, - среда.
Всякий возьмет с собой зонт, если идет дождь.
Мои <<несчастливые >> дни неизменно оказываются солнечными.
Вселенная - <<дни>>,
a = дни, которые я называю <<счастливыми>>,
b = пасмурные,
c = дни, когда берут с собой зонты,
d = дни, когда Робинсон вежлив со мной,
e = дождливые,
h = дни, которые оказываются солнечными,
k = среды.
50
Ни одна акула не сомневается, что она прекрасно вооружена.
К рыбе, не умеющей танцевать менуэт, относятся без почтения.
Ни одна рыба не будет вполне уверена в том, что она прекрасно вооружена, если у нее нет трех рядов зубов.
Все рыбы, кроме акул, очень добры к детям.
Ни одна крупная рыба не умеет танцевать менуэт.
К рыбе, имеющей три ряда зубов, следует относиться с почтением.
Вселенная - <<рыбы>>,
a = умеющие танцевать менуэт,
b = вполне уверенные, что они прекрасно вооружены,
c = рыбы, к которым относятся без почтения,
d = имеющие три ряда зубов,
e = большие рыбы,
h = добрые к детям,
k = акулы.
51
Все человечество, за исключением моих лакеев, обладает известной долей здравого смысла.
Лишь дети могут питаться одними сладостями.
Лишь тот, кто играет в <<классы>>, знает, что такое настоящее счастье.
Ни у одного ребенка нет ни капли здравого смысла.
Ни один машинист не играет в <<классы>>.
Ни об одном моем лакее нельзя сказать, что он не знает, в чем заключается настоящее счастье.
Вселенная – <<человеческие существа>>,
a = машинисты,
b = обладающие здравым смыслом,
c = играющие в <<классы>>,
d = знающие, что такое настоящее счастье,
e = живущие на одних сладостях,
h = дети,
k = мои лакеи.
52
Я люблю всех животных, которые принадлежат мне.
Собаки грыызут кости.
Ни одно животное я не пускаю к себе в кабинет, если оно не <<служит>>,
когда его об этом попросят.
Все животные во дворе принадлежат мне.
205
206
Всем животным, которых я люблю, разрешается входить ко мне в кабинет.
Единственные животные, которые <<служат>>, если их попросить, - собаки.
Вселенная - <<животные>>,
a = которых я впускаю в свой кабинет,
b = животные, которых я люблю,
c = собаки,
d = грызущие кости,
e = животные во дворе,
h = мои,
k = животные, которые <<служат>>, когда их попросят.
53
Животные всегда испытывают смертельную обиду, если я не обращаю на
них внимания.
Те животные, которые принадлежат мне, находятся на той площадке.
Ни одно животное не сможет отгадать загадку, если оно не получило соответствующего образования в школе-интернате.
Ни одно животное на этой площадке не барсук.
Если животное испытывает смертельную обиду, оно носится с бешеной
скоростью и воет.
Я никогда не обращаю внимания на животных, которые не принадлежат
мне.
Ни одно животное, получившее соответствующее образование в школеинтернате, не станет носиться с бешеной скоростью и выть.
Вселенная - <<животные>>,
a =способные разгадывать загадки,
b = барсуки,
c = находящиеся на этой площадке,
d = испытывающие смертельную обиду, если не обратить на них внимания,
e = мои,
h = животные, на которых я обращаю внимание,
k = получившие соответствующее образование в школе-интернате,
l = носящиеся с бешеной скоростью и воющие.
54
Все письма в этой комнате, на которых проставлена дата отправления,
написаны наголубой бумаге
Ни одно из писем, кроме тех, которые составлены в третьем лице, не
написаны черными чернилами.
Я не регистрирую писем, которые не могу прочитать.
Ни в одном из писем, написанных на одной страничке, не пропущена дата.
Все неперечеркнутые письма написаны черными чернилами.
Все письма, написанные Брауном, начинаются со слов “Уважаемый сэр!”
Все письма, написанные на голубой бумаге, зарегистрированы мной.
Ни одно из писем, написанных более чем на одной странице, не перечёркнуто.
Ни одно из писем, начинающихся со слов “Уважаемый сэр!”, не написано в
третьем лице.
Вселенная – “письма в этой комнате”,
a = начинающиеся со слов “Уважаемый сэр!”,
206
207
b = перечёркнутые,
c = датированные,
d = зарегистрированные мной,
e = написанные чёрными чернилами,
h = составленные в третьем лице,
k = письма, которые я могу прочитать,
l = написанные на голубой бумаге,
m = на одной страничке,
n = написанные Брауном.
55
Единственные животные в этом доме – кошки.
Любое животное можно приручить, если оно любит глядеть на луну.
Если животное вызывает у меня отвращение, я стараюсь держаться от него подальше.
Ни одно животное не плотоядно, если оно не бродит по ночам.
Ни одна кошка не упустит случая поймать мышь.
Я не пускаю к себе в кабинет животных, кроме тех, которые находятся в
этом доме.
Кенгуру не поддаются приручению.
Лишь плотоядные животные ловят мышей.
Животные, которых я не пускаю к себе в кабинет, вызывают у меня отвращение.
Животные, которые бродят по ночам, любят смотреть на луну.
Вселенная – “животные”,
a = животные, от которых я стараюсь держаться подальше,
b = плотоядные,
c = кошки,
d = вызывающие у меня отвращение,
e = находящиеся в этом доме,
h = кенгуру,
k = охотящиеся на мышей,
l = любящие смотреть на луну,
m = бродящие по ночам,
n = поддающиеся приручению,
r = животные, которых я пускаю к себе.
Заключение.
1. Льюис Кэрролл своими методами мог решать лишь силлогизмы
или сориты, содержащие общеутвердительные или общеотрицательные посылки.
2. При получении частноутвердительных заключений методы Кэрролла дают как правило некорректные результаты.
207
208
Глава девятая
Вероятностная логика.
Впервые в мире о связи логики с теорией вероятности заявил
П.С.Порецкий в своей работе «Решение общей задачи теории вероятностей
при помощи математической логики»//Собрание протоколов заседаний секции
физико-математических наук об-ва естествоиспытателей при Казанском ун-те.
1887. Т.5. Он показал, как легко и просто решаются вероятностные задачи с
помощью логики. Мы будем решать обратную задачу: рассчитывать вероятностные характеристики силлогизма.
Этот раздел требует знаний основ комбинаторики. В наше время сочетания, размещения и перестановки изучали в 7-м классе. Будем обозначать число сочетаний из m элементов по n как C(m,n), а размещения – как A(m,n). Известно, что C(m,n) = A(m,n)/n!, A(m,n) = m(m-1)(m-2)...(m-n+1), C(m,n) = C(m,mn).
При синтезе заключений зачастую имеют место несколько вариантов решений. Такие силлогизмы будем называть многовариантными. Требуется определить вероятность реализации каждого заключения в многовариантном силлогизме. Сначала рассчитаем вероятности общих и частных суждений вида Axy,
Exy, Ixy.
Вероятность события Axy.
Пусть известно nx - количество элементов множества Х и ny – количество
элементов множества Y, а также n – число элементов в универсуме U. Требуется определить вероятность события «Все Х суть У», т.е. найти P(Axy). Построим скалярные диаграммы для случая n=8, nx=2, ny=4.
В 8 клетках скалярной диаграммы множество У, состоящее из 4 элементов
можно разместить различными способами, число которых определяется как
число сочетаний из n=8 по ny=4, т.е. C(n,ny) = C(8,4) = 8*7*6*5/4! = 70. Однако
при соблюдении условия Axy количество вариантов размещения элементов
множества У существенно меньше. Их число определяется из следующих соображений. Два элемента множества У должны обязательно занимать 1-ю и 2ю клетки диаграммы. Оставшиеся (ny-nx) = 4-2 = 2 элемента можно разместить
в 6 клетках с 3-ей по 8-ю включительно разными способами, число которых
определяется как число сочетаний C(n-nx,ny-nx) = C(8-2,4-2) = C(6,2) = 6*5/2! =
15.
Таким образом, вероятность P(Axy) = C(n-nx,ny-nx)/C(n,ny) = 15/70 = 3/14.
P(Axy) = C(n-nx,ny-nx)/C(n,ny)
208
209
Вероятность события Exy.
Пусть известно nx - количество элементов множества Х и ny – количество
элементов множества Y, а также n – число элементов в универсуме U. Требуется определить вероятность события «Ни один Х не есть У», т.е. найти P(Exy).
Построим скалярные диаграммы для случая n=8, nx=2, ny=4.
Общее количество вариантов размещения элементов множества У в универсуме как и в предыдущем случае равно C(n,ny) = C(8,4) = 8*7*6*5/4! = 70.
Количество вариантов размещения элементов множества У при соблюдении
условия Exy определяется по формуле C(n-nx,ny) = C(8-2,4) = C(6,4) = C(6,2) =
6*5/2! = 15.
Таким образом, вероятность P(Exy) = C(n-nx,ny)/C(n,ny) = 15/70 = 3/14.
P(Exy) = C(n-nx,ny)/C(n,ny)
Вероятность события Ixy.
Пусть известно nx - количество элементов множества Х и ny – количество
элементов множества Y, а также n – число элементов в универсуме U. Требуется определить вероятность события «Некоторые Х суть У», т.е. найти P(Ixy).
Построим скалярные диаграммы для случая n=8, nx=2, ny=4.
Общее количество вариантов размещения элементов множества У в универсуме как и в предыдущих случаях равно C(n,ny) = C(8,4) = 8*7*6*5/4! = 70.
Для выполнения условия Ixy нужно, чтобы один элемент множества Y размещался или в клетке 1, или в клетке 2, но не в двух сразу (тогда получится Axy).
Таким образом, существуют две равновеликих группы вариантов размещения
элементов множества Y при выполнении требования Ixy. Рассчитаем количество размещений для одной группы вариантов. Оно определяется числом сочетаний
C(n-nx,ny-1) = C(8-2,4-1) = C(6,3) = 6*5*4/3! = 20.
Следовательно, общее количество вариантов размещения элементов
множества Y при выполнении условия Ixy составит 2*20 = 40.
209
210
Таким образом, вероятность P(Ixy) = C(n-nx,ny-1)/C(n,ny) = 40/70 = 4/7.
Определим сумму вероятностей P(Axy)+P(Exy)+P(Ixy) = 3/14+3/14+4/7 = 1. Следовательно,
P(Ixy) = 1 – P(Axy) – P(Exy).
Для «разминки» решим следующую задачку.
Задача 9.1.
Некоторые студенты (m) – отличники (x).
Некоторые студенты (m)– блондины (y).
------------------------------------------------
Найти f(x,y), если известно, что в компании молодёжи из 10 человек студенты составляют 20%, отличники – тоже 20%, а блондины – 40%.
Решение.
Классическая логика однозначно утверждает, что заключения не существует. Однако в Русской логике эта задача легко решается. Примем в качестве
универсума (U) всю компанию молодёжи из 10 человек, тогда получим решение
по алгоритму ТВАТ: Ixy = x'+i= Ix’y(5), т.е. «Некоторые не-отличники – блондины».
Такое интегрированное заключение не противоречит здравому смыслу, но
не имеет количественной оценки возникновения возможных ситуаций Axy, Exy,
Ixy.
Определим эти вероятности, для чего найдём количество всевозможных
способов реализации второй посылки Imy, т.е. k(Imy). Нам известны количественные характеристики: n=10, m=2, x=2, y=4. Отсюда получим, используя
формулу для сочетаний
k(Imy) = 2 x C(n-m,y-1) = 2 x C(8,3) = 2 x 56 = 112.
Аналогично найдём количество возможных вариантов для заключений Axy,
Exy, Ixy.
k(Axy) = C(n-x-1,y-x) = C(7,2) = 21.
k(Exy) = C(n-x-1,y-1) = C(7,3) = 35.
k(Ixy) = C(n-x-1,y-1) + C(n-x-1,y-2) = C(7,3) + C(7,2) = 35 + 21 = 56.
210
211
Проверка подтверждает, что k(Axy)+k(Exy)+k(Ixy) = k(Imy).
Теперь легко находятся вероятности всех вариантов заключений.
P(Axy) = k(Axy)/k(Imy) = 21/112 = 3/16.
P(Exy) = k(Exy)/k(Imy) = 35/112 = 5/16.
P(Ixy) = k(Ixy)/k(Imy) = 56/112 = ½ = 0,5.
Алгоритм «Циклон» (синтез многовариантных силлогизмов).
1.
Убедиться, что для всех терминов-множеств исходных посылок и универсума силлогизма указаны количественные характеристики (заданы мощности
множеств или хотя бы соотношения между ними).
2.
Изобразить все возможные ситуации для исходных посылок с помощью
скалярных диаграмм Лобанова.
3.
Определить вероятность каждого варианта заключения, используя формулы вычисления количества сочетаний.
4.
В том случае, когда первой посылкой является общеутвердительное или
общеотрицательное суждение, то достаточно определить вероятности заключений по одному варианту из всех возможных для первой посылки.
Необходимо отметить влияние количественной характеристики терминов
на заключение силлогизма.
Задача 9.2.
Дана полная единица системы в виде M = AxmImy. Найти заключение.
Решение.
Поскольку содержимое терминов не оговорено, то мы имеем право представить решение задачи в виде следующих скалярных диаграмм.
Из таблицы истинности выведем соотношение: f(x,y) = x'+i= Ix’y(5).
Задача 9.3.
Сохраним условие предыдущей задачи, т.е. пусть M = AxmImy. Но оговорим количественные характеристики множеств U, M, X, Y. Пусть множество
универсума содержит 5 элементов,т.е. nU = 5, а остальные характеристики соответственно nM = 3, nX = 1, nY = 2. Найти заключение.
Решение.
Диаграммы примут вид:
211
212
Из таблицы истинности выведем соотношение: f(x,y) = x'+i= Ix’y(5). Хотя
интегрированное заключение и не изменилось, но количество вариантов решения уменьшилось: здесь физически невозможна ситуация Ixy. Таким образом,
решение силлогизма зависит и от соотношения содержимых терминов, т.е. от
мощностей всех задействованных множеств. В этой задаче несложно подсчитать вероятности вариантов заключений (на скалярных диаграммах представлено лишь по одному варианту для Exy, Axy).
P(Exy) = 4/6 = 2/3,
P(Axy) = 2/6 = 1/3.
Задача 9.4.
Пусть M = AxmAym и nU = 5, nM = 3, nX = 2, nY = 1. Найти заключение.
Решение.
212
213
F(x,y) = y’ + i = Ixy’(5), т.е. «Некоторые Х суть не-У» в 5-м базисе. Вероятностные характеристики различных вариантов заключений легко находятся из
диаграмм.
P(Exy) = 1/3.
P(Ayx) = 2/3.
Задача 9.5.
Пусть M = AxmImy и nU = 5, nM = 3, nX = 2, nY = 3. Найти заключение.
Решение.
Диаграммы примут вид:
Из таблицы истинности выведем соотношение: f(x,y) = x'+y+i= Ix’y(2).
Определим вероятностные характеристики.
n = n(Imy) = C(3,1)*C(2,2)+C(3,2)*C(2,1) = 3*1+3*2 = 9.
n(Axy) = 1.
n(Ixy) = 9-1 = 8.
P(Axy) = n(Axy)/n = 1/9.
P(Ixy) = n(Ixy)/n = 8/9.
Задача 9.6.
Пусть M = AxmAym и nU = 6, nM = 4, nX = 2, nY = 2. Найти заключение.
Решение.
Диаграммы примут вид:
Из таблицы истинности выведем соотношение: f(x,y) = x'y’+i= Ix’y’(3).
Определим вероятностные характеристики.
213
214
n = n(Aym) = C(4,2)=4* 3/2 = 6.
n(Exy) = 1.
n(x=y) = 1.
n(Ixy) = 6-(1+1) = 4(на рисунке представлен лишь один вариант из 4-х).
P(Exy) = n(Exy)/n = 1/6.
P(x=y) = 1/6.
P(Ixy) = n(Ixy)/n = 4/6 = 2/3.
Задача 9.7.
Пусть M = AxmAym и nU = 6, nM = 4, nX = 2, nY = 3. Найти заключение.
Решение.
Диаграммы примут вид:
Из таблицы истинности выведем соотношение: f(x,y) = x'+y+i= Ix’y(2).
Определим вероятностные характеристики.
n = n(Aym) = C(4,3)=4* 3*2/6 = 4.
n(Axy) = 2.
n(Ixy) = 4 - 2 = 2.
P(Axy) = 2/4 = 1/2.
P(Ixy) = n(Ixy)/n = 2/4 = 1/2.
Задача 9.8.
Пусть M = AxmAym и nU = 6, nM = 5, nX = 3, nY = 2. Найти заключение.
Решение.
Диаграммы примут вид:
Из таблицы истинности выведем соотношение: f(x,y) = x'+y+i= Ix’y(2).
Определим вероятностные характеристики.
n = n(Aym) = C(5,2)=5* 4/2 = 10.
214
215
n(Exy) = 1.
n(Ayx) = C(3,2) = 3*2/2 = 3
n(Ixy) = 10 – (1+3) = 6.
P(Exy) = 1/10.
P(Ayx) = 3/10.
P(Ixy) = n(Ixy)/n = 6/10 = 3/5.
Задача 9.9.
Пусть M = AxmImy и nU = 8, nM = 5, nX = 2, nY = 3. Найти заключение.
Решение.
Диаграммы примут вид:
Из таблицы истинности выведем соотношение: f(x,y) = x'+i= Ix’y(5). Определим вероятностные характеристики.
n = n(Iym) = C(5,1)*C(3,2) + C(5,2)*C(3,1) = 5* 3 + 10*3 = 45.
n(Exy) = C(3,1)*C(3,2) + C(3,2) * C(3,1) = 18.
n(Axy) = C(3,1) = 3.
n(Ixy) = 45-(18+3) = 24.
P(Exy) = n(Exy)/n = 18/45 = 2/5.
P(Axy) = 3/45 = 1/15.
P(Ixy) = n(Ixy)/n = 24/45 = 8/15.
Задача 9.10.
Пусть M = AxmImy и nU = 8, nM = 5, nX = 2, nY = 3. Найти заключение задачи 9.9 при смене мест посылок.
Решение.
Диаграммы примут вид:
215
216
Из таблицы истинности выведем соотношение: f(x,y) = x'+i= Ix’y(5), т.е. от
перестановки посылок заключение не изменилось. Определим вероятностные
характеристики.
n = n(Axm) = C(5,2) = 5* 4/2 = 10.
n(Exy) = C(3,2) = 3.
n(Axy) = 1.
n(Ixy) = 10-(1+3) = 6.
P(Exy) = n(Exy)/n = 3/10.
P(Axy) = 3/45 = 1/10.
P(Ixy) = n(Ixy)/n = 6/10 = 3/5.
Мы получили совершенно иные вероятностные характеристики, чего
быть не может. Это связано с тем, что при частной посылке, стоящей на первом месте необходимо рассматривать не один вариант Imy, а все
n = n(Iym) = C(5,1)*C(3,2) + C(5,2)*C(3,1) = 5* 3 + 10*3 = 45, и находить
среднее значение вероятностных характеристик. Поэтому для упрощения расчётов нужно на первое место ставить общеутвердительную или общеотрицательную посылку.
Задача 9.11.
Для задачи 9.9 M = AxmImy и nU = 8, nM = 5, nX = 2, nY = 3. Найти заключения при различных вариантах первой общеутвердительной посылки.
Решение.
Таких вариантов будет C(5,2) = 10. Для первого варианта диаграммы
примут вид:
Из таблицы истинности выведем соотношение: f(x,y) = x'+i= Ix’y(5). Определим вероятностные характеристики.
n = n(Iym) = C(5,1)*C(3,2) + C(5,2)*C(3,1) = 5* 3 + 10*3 = 45.
n(Exy) = C(3,1)*C(3,2) + C(3,2) * C(3,1) = 18.
n(Axy) = C(3,1) = 3.
216
217
n(Ixy) = 45-(18+3) = 24.
P(Exy) = n(Exy)/n = 18/45 = 2/5.
P(Axy) = 3/45 = 1/15.
P(Ixy) = n(Ixy)/n = 24/45 = 8/15.
217
218
218
219
Все 10 вариантов диаграмм для данного силлогизма дают одинаковые
вероятностные характеристики заключений. Это означает, что в том случае,
когда первой посылкой является общеутвердительное или общеотрицательное
суждение, то достаточно определить вероятности заключений по одному варианту из всех возможных.
Задача 9.12.
Пусть M = AmxAmy и nU = 5, nM = 1, nX = 2, nY = 3. Найти заключение.
Решение.
Из скалярных диаграмм видно, что
n(Amy) = C(4,2) = 6, n(Axy) = C(3,1) = 3, n(Ixy) = C(3,2) = 3.
P(Axy) = n(Axy)/n(Amy) = 3/6 = 0,5.
P(Ixy) = n(Ixy)/n(Amy) = 3/6 = 0,5.
Задача 9.13.
Пусть M = AmxAmy и nU = 5, nM = 2, nX = 3, nY = 4. Найти заключение.
Решение.
Из скалярных диаграмм получим такие результаты.
n(Amy) = C(3,2) = 3, n(Axy) = C(2,1) = 2, n(Ixy) = 1.
P(Axy) = n(Axy)/n(Amy) = 2/3.
P(Ixy) = n(Ixy)/n(Amy) = 1/3.
Задача 9.14.
219
220
Пусть M = AmxAmy и nU = 6, nM = 2, nX = 3, nY = 4. Найти заключение.
Решение.
Из скалярных диаграмм получим такие результаты.
n(Amy) = C(4,2) = 6, n(Axy) = C(3,1) = 3, n(Ixy) = 6-3 = 3.
P(Axy) = n(Axy)/n(Amy) = 3/6 = 0,5.
P(Ixy) = n(Ixy)/n(Amy) = 3/6 = 0,5.
Решение в общем виде для ситуации nu>(nx+ny-nm), ny>nx, nx>nm :
n(Amy) = C(nu-nm,ny-nm), n(Axy) = C(nu-nx,ny-nx), n(Ixy) = n(Amy)-n(Axy).
P(Axy) = C(nu-nx,ny-nx)/ C(nu-nm,ny-nm),
P(Ixy) = n(Ixy)/ C(nu-nm,ny-nm) = [C(nu-nm,ny-nm) - C(nu-nx,ny-nx)]/ C(nu-nm,nynm).
Задача 9.15.
Пусть M = EmxEmy и nU = 3, nM = 1, nX = 1, nY = 1. Найти заключение.
Решение.
Найдём интегрированное заключение по алгоритму ИЭИ.
M = EmxEmy = (m’+x’)(m’+y’) = m’+x’y’
F(x,y) = x’y’ + i = Ix’y’(3).
Вероятностные оценки двухвариантного заключения:
P(Exy) = 0,5; P(x ~ y) = 0,5.
Задача 9.16.
Пусть M = AmxAmy и nU = 4, nM = 1, nX = 2, nY = 3. Найти заключение.
220
221
Решение.
Интегрированное заключение f(x,y) = y+i = Ixy(7).
Вероятностные характеристики двухвариантного заключения:
P(Axy) = 2/3; P(Ixy) = 1/3.
Задача 9.17
Пусть M = ImxImy и nU = 6, nM = 3, nX = 2, nY = 3. Найти заключение.
Решение.
Интегрированное заключение: f(x,y) = x’+i = Ix’y(5).
Задача 9.18
Пусть M = ImxImy и nU = 5, nM = 3, nX = 2, nY = 3. Найти заключение.
Решение.
221
222
Интегрированное заключение: f(x,y) = x’y+i = Ix’y(3).
Задача 9.19
Пусть M = ImxImy и nU = 4, nM = 2, nX = 2, nY = 2. Найти заключение.
Решение.
Интегрированное заключение: f(x,y) = i , т.е. нет заключения.
Вероятностные характеристики 3-вариантного заключения:
P(Exy) = ¼; P(x~y) = ¼, P(Ixy) = ½.
Результаты решения трёх последних примеров ярко высвечивают зависимость заключения не только от объёма терминов и универсума, но и от соотношения этих объёмов.
Задача 9.20.
Вернёмся к вышеприведённому тесту Ф.Джонсон-Лэрда и М.Стидмена:
222
223
Ни один химик не есть пчеловод.
Некоторые пчеловоды - художники.
-------------------------------------------Некоторые художники - не химики.
Решение.
Пусть универсум состоит из химиков, пчеловодов и художников, причём
n=4, m=2, x=1, y=2. Решение представлено на диаграммах ЛВИ.
Из диаграмм видно, что заключение двухвариантно: Exy, Axy. Определим
вероятности этих вариантов: P(Exy), P(Axy).
N(Imy) = C(2,1)*C(2,1) = 2*2 = 4
N(Exy) = C(2,1)*C(1,1) = 2
N(Axy) = C(2,1)*C(1,1) = 2
P(Exy) = n(Exy)/n(Imy) = 2/4 = 0,5
P(Axy) = n(Axy)/n(Imy) = 2/4 = 0,5.
Поскольку авторы силлогизма не имели ни малейшего представления о вероятностной силлогистике, то они в принципе не имели права тестировать студентов. Кроме того сам тест задан некорректно: не указаны количественные
характеристики терминов и не определён универсум.
Аналогично, вероятностным методом, решается задача нахождения недостающей посылки.
Алгоритм «Комета» вероятностного синтеза недостающей посылки
(вероятностный графический синтез недостающей посылки).
1. Изобразить на диаграммах Лобанова исходную посылку и все варианты
заданного заключения.
2. Определить вероятность каждого варианта искомой посылки.
Задача 9.21.
Дано: Axm & f(m,y) → Exy, n=6, m=3, x=1, y=2.
Найти f(m,y).
Решение.
По п.1 алгоритма «Комета» строим диаграммы Лобанова и определяем,
что в этом случае искомая посылка трехвариантна.
223
224
По п.2 алгоритма «Комета» находим
K(Exy) = C(5,2) = 20/2 = 10.
K(Emy) = C(3,2) = 3.
P(Emy) = 0,3.
K(Aym) = 1.
P(Aym) = 0,1.
K(Imy) = 10-3-1 = 6.
P(Imy) = 0,6.
Аналитический метод дал бы единственный результат: Emy.
224
225
Глава десятая
Дисциплина мышления.
Человеческое мышление по своей природе хаотично, неорганизованно,
аморфно, недисциплинированно. Автор в этом отношении не является исключением из общего правила. Стоит ли огорчаться по данному поводу? Вероятно,
с этим нужно смириться как с неизбежностью. Ведь мы не бьём тревогу относительно того, что не в силах состязаться с ЭВМ в шахматах и прочих рутинных
вычислительных операциях. Человек – это изумительное по совершенству создание, его предназначение состоит в решении творческих, эвристических задач, где «неорганизованность» мышления, возможно, играет главную роль.
Заставлять человека играть в шахматы – это то же самое, что забивать микроскопом гвозди. Однако вооружить человека инструментом, дисциплинирующим
мышление, можно и нужно. Эта задача значительно сложнее и важнее повальной компьютеризации. Зачастую компьютеризация превращает нас в «мартышек с арифмометром», а дисциплинирование мышления такой катастрофой не
грозит. К тому же если «знание – это сила», то «мышление – это могущество».
Поэтому игра стоит свеч. В качестве такого «мыслительного инструмента» выступает Русская логика.
Проиллюстрируем её возможности на конкретном примере. Бертран Рассел
в своей работе «История западной философии» (М.:2000 –768с.) на стр.194
приводит силлогизм:
Все люди разумны.
Некоторые животные – люди.
Некоторые животные – разумны.
Покажем на этом примере недостатки мышления Б.Рассела. Во-первых,
отсутствие дисциплины мышления проявляется в отсутствии универсума, хотя
даже 100 лет назад Льюис Кэрролл[11] не позволял себе такого невежества.
Определим, например, в качестве универсума весь животный и растительный
мир. Во-вторых, последняя посылка по утверждению Васильева Н.А. и с позиции русской логики просто безграмотна: в силу симметрии частноутвердительного функтора мы должны считать, что некоторые люди – животные, а остальные - растения или ещё что-нибудь неодушевлённое. В соответствии с русской логикой и здравым смыслом вторую посылку необходимо заменить суждением «Все люди – животные». В-третьих, по теории великого русского физиолога И.П. Павлова разумными могут быть люди и только люди, т.е.
«люди» и «разумные существа» – эквивалентные понятия.. Следовательно, и
первая посылка некорректна. Отредактировав Б.Рассела, получим следующие
посылки.
Все люди(m) и только люди разумны(x).
Все люди(m) – животные(y).
F(x,y) = ?
Решение.
Пусть x – разумные существа, m – люди, y – животные. Универсум – животный и растительный мир.
M = (xm)Amy = (xm+x’m’)(m’+y) = m’x’+xmy+x’m’y = m’x’+xmy
225
226
F(x,y) = x’+y = Axy.
Таким образом мы получили правильное заключение «Все разумные – животные», что вполне согласуется со здравым смыслом.
Рассмотренные примеры демонстрируют не только дремучее невежество
Б.Рассела, но и его бестолковость. Маститый академик и Нобелевский (так и
хочется сказать Шнобелевский) лауреат шаблонно использовал при решении
задачи фигуры и модусы (хрупкие костыли Аристотеля для интеллектуальных
инвалидов типа телевизионных «знатоков»), которые не учитывают содержание
терминов силлогизма и универсума.
«Сыграем в поддавки» с Б.Расселом: он пытался использовать фигуры и
модусы Аристотеля. Подгоним силлогизм под Аристотеля:
Все люди(m) разумны(x).
Некоторые люди(m) вежливы(y).
----------------------------------------------F(x,y) = ?
Если в качестве универсума примем множество людей, богов(разумных и
вежливых) и животных, то получим заключение: «Все вежливые – разумны»,
что опять не совпадает с заключением именитого академика.
Б.Рассел в монографии «Искусство мыслить»(М.:1999) на с. 38 приводит
такой силлогизм: «Если А находится вне В и В находится вне С, то А находится
вне С». Данный силлогизм – образец вопиющей безграмотности и бестолковости. По алгоритму ТВАТ построим диаграммы.
Кстати, вся аморфность мышления Б. Рассела, как и любого другого
«мыслителя», сразу проявляется при прорисовке скалярных диаграмм. Именно
они принудительно дисциплинируют мышление.
226
227
Не блещут дисциплиной мышления и преподаватели Оксфордского и Кембриджского университетов, самых престижных вузов Запада. В своей книге
"Философия"(М.:1997) на стр. 172 Д. Тейчман и К. Эванс проявили не только
оголтелую славянофобию ("Все поляки - маньяки"), но и вопиющую безграмотность. Вместо того, чтобы сформулировать посылку в виде "Все олени - животные", они заявляют "Некоторые животные - олени"(стр.170). Из такой посылки
следует абсолютно абсурдное заключение: “Некоторые олени – животные”.
Или совсем уж бестолковый перл: "Некоторые солдаты - люди"(стр.174). Таких
ляпсусов отечественные логики всё-таки не допускают.
Рассмотрим ещё один силлогизм:
Все животные (m) смертны(х).
Некоторые животные(m) неграмотны(y).
F(x,y) = ?
В этом случае могут быть несколько вариантов универсума. Например:
1. U = животные + растения.
2. U = животные + растения + неживая природа(НП).
3. U = животные + растения + неживая природа+боги.
Тогда для первого варианта получим следующие скалярные диаграммы:
Из скалярных диаграмм видно, что f(x,y) = x = Ayx & Ay’x, т.е. “Все неграмотные и все грамотные смертны”.
Скалярные диаграмы для второго варианта универсума имеют вид:
Заключение в этом случае получается совершенно иным:
F(x,y) = x+y = Ax’y & Ay’x, т.е. “Все бессмертные неграмотны, а все грамотные
смертны".
Все эти результаты не соответствуют ни одному классическому модусу и
нарушают главный закон силлогистики о частной посылке и частном заключе-
227
228
нии, однако вполне согласуются со здравым смыслом.
Для третьего универсума диаграммы выглядят иначе:
Из таблицы истинности получаем третье заключение, также противоречащее классическим модусам (результат в 5-м базисе, а не в базисе Аристотеля):
F(x,y) = x+ix’ = Ixy(5).
Однако исходя из здравого смысла, боги не могут быть одновременно
грамотными, неграмотными и “полуграмотными”, как это представлено на скалярных диаграммах для 3-го универсума. Следовательно, силлогизм для этого
универсума должен быть построен для трёх случаев:
 боги грамотные;
 боги неграмотные;
 некоторые боги неграмотные.
Для грамотных богов решение выглядит так:
Из диаграмм видно, что f(x,y) = Ayx, т.е. «Все неграмотные – смертны».
Для варианта с неграмотными богами имеем:
228
229
Заключение в этом случае имеет вид f(x,y) = x+y = Ax’yAy’x, т.е. «Все бессмертные неграмотны, а все грамотные смертны».
Построим скалярные диаграммы для «полуграмотных» богов.
Для этого варианта заключение выглядит так: f(x,y) = 1 = Ixy(8), т.е. в базисе Васильева «Некоторые смертные неграмотны». В силу симметричности и
обратимости частно-утвердительного функтора Васильева имеем: Ixy = Ixy’ =
Ix’y = Ix’y’. Следовательно, одновременно можно утверждать, что «Некоторые
смертные грамотны», «Некоторые бессмертные неграмотны», «Некоторые бессмертные грамотны».
Силлогизмы подобного типа не могут быть решены без скалярных диаграмм, конкретизации универсума и содержания посылок. Автор и сам без скалярных диаграмм и русской логики становится беспомощным при анализе и
синтезе сложных силлогизмов. Таким образом, логика дисциплинирует мышление, тренирует ум. Это вполне согласуется с мыслью Гераклита о том, что надо
воспитывать в себе «многомыслие», а не «многознание.
В «Диалогах» Платона [33, стр.117] встречается такой вопрос: “ Скажи
мне, Клиний, те из людей, кто идёт в обучение, - они мудрецы или невежды?» И
далее утверждается, что любой ответ будет неверным. Это яркий пример терминологической путаницы: мудрец – не всезнайка, а просто умный, обогащённый жизненным опытом и знаниями многих наук(в первую очередь математических) человек. Если бы Клиний и его оппоненты определили содержание термина, то никакого диспута не возникло бы.
229
230
Глава одиннадцатая.
Логические уравнения и обратные функции.
11.1. Решение логических уравнений.
Под решением логического уравнения будем понимать преобразование
исходного уравнения к явному виду относительно одной из переменных.
Впервые в мире эту проблему сумел разрешить гениальный русский учёный
Платон Сергеевич Порецкий[34] в своей работе о логических равенствах .
Однако Порецкий П.С. допустил ряд ошибок, для уcтранения которых пришлось разработать алгебру 4-значной комплементарной логики и алгоритм
«Селигер» [6 - 8].
Эта проблема рассмотрена также в работах Н.П.Брусенцова [3].
Предлагается более простой и эффективный метод решения логических
уравнений[17, 29], основанный на применении таблиц истинности и четырёхзначной логики.
Автором впервые предлагается четырехзначная логика.Она полностью
соответствует общеразговорной,или бытовой логике.Вышеназванная логика
представлена базисными функциями. Значения этой логики имеют следующий
смысл : 0 - нет, j - не может быть никогда, i- может быть, 1 - да.
Таблица базисных функций 4-значной комплементарной логики
XY
00
0j
0i
01
j0
jj
ji
j1
X’
1
1
1
1
i
i
i
i
X&Y
0
0
0
0
0
j
0
j
X+Y
0
j
i
1
j
j
1
1
XY
i0
ij
ii
i1
10
1j
1i
11
X’
j
j
j
j
0
0
0
0
X&Y
0
0
i
i
0
j
i
1
X+Y
1
1
i
1
1
1
1
1
Следует обратить внимание на комплементарность (взаимодополняемость,взаимоинверсность) значений переменных : 0+1=1, i+j=1, 01=0, ij=0. В
связи с этим вполне естественно назвать такую логику комплементарной. Для
приведённых базисных функций комплементарной логики как и для 3-значной
логики также справедлив закон Де Моргана.
При решении системы логических уравнений вначале определяется так
называемая полная единица задачи (системы), а потом отыскивается решение
уравнения относительно одной из переменных. Под решением здесь и далее
понимается преобразование исходного уравнения к явному виду относительно
одной из переменных. Поскольку построение полной единицы системы не вызывает затруднений, рассмотрим решение логического уравнения с помощью
таблиц истинности, считая полную единицу (m) известной.
230
231
В качестве примера рассмотрим именно ту задачку, с которой автор
начинал освоение классической логики. Тогда, в 1995г.,только что получив в
подарок от Н.П.Брусенцова его книжку «Начала информатики»[3], я заявил, что
в логике нет и не может быть проблем, поскольку там всё понятно даже четверокласснику. В ответ Учитель предложил решить любое логическое уравнение.
Я ответил, что справлюсь с этим за 5 минут. При всём при том я даже не знал,
что такое «решение логического уравнения». Я взял в качестве уравнения первое, что пришло в голову: M = ab+cd. Брусенцов Н.П. заявил, что это сложное
уравнение, но мне оно таким не казалось – я справился с ним за обещанные 5
минут. Надеюсь, что Читатель тоже уложится в этот интервал.
Пример 1.
Дано : m = ab + cd = 1
Найти : d = f(a,b,c)
Решение.
На основании исходного логического уравнения полной единицы строим
таблицу истинности для разрешённых наборов, т.е. тех наборов, на которых
исходное уравнение имеет решение, т.е. разворачиваем ДНФ в СДНФ. Перенеся столбцы a,b,c из исходной таблицы в качестве значений аргументов, а столбец d - в качестве значений искомой функции, получим таблицу истинности для
d = f(a,b,c).
По полученной таблице заполним карту Карно, откуда после минимизации выведем соотношения для d = f(a,b,c). Если на некотором наборе функция
принимает значение как 0, так и 1, то в соответствующую клетку карты Карно
вписываем символ i. Если на каком либо наборе функция не определена, то в
соответствующую клетку карты Карно вносим значение j. Здесь и далее апостроф означает отрицание аргумента или функции. Применение карты Карно
не имеет принципиального значения : просто автор считает карты Карно
наиболее эффективным инструментом для минимизации булевых функций.
ba
c \ 00 01 11 10
j
j
i
j
1 1 i 1
Клетки карты Карно с координатами 011 и 111 заполнены значением i, т.к.
231
232
на этих наборах(индивидах,конституентах) d принимает значения как 0, так и 1.
Наборы 000, 001 и 010 в таблице отсутствуют, поскольку при таких значениях
аргументов исходное уравнение не имеет решения, поэтому соответствующие
карты Карно заполнены символом j.
Для трёхзначной логики в этих клетках помещается прочерк [13], т.е. символ недоопределённости. Доопределение минимизируемой функции единицами позволяет получить компактную формулу.
Для комплементарной логики имеем:
d = cb’ + ca’ + iba + j(c’b’ + c’a’)
Для трёхзначной логики это уравнение выгдядит проще:
d = b’ + a’ + iba
Но просто ещё не значит истинно. Поэтому произведём проверку полученных результатов. Кстати, эту проверку я ввёл далеко не сразу. Как её сделать? Очень просто. Если из M = ab+a’b’ мы получили решение a=b, то и из a=b
мы должны на основе формулы эквивалентности вернуться к M = ab+a’b’.
Работать с эквивалентностью в 4-значной комплементарной логике достаточно сложно, поэтому я предлагаю Читателю более простой метод обычной булевой алгебры. Дело в том, что для выражения y = f1+if2+jf3 удалось установить соответствие y = f1+yf2+y’f3. Запомните это рекурсивное соотношение:
Я предлагаю Читателю поломать голову над выводом вышеприведённого
соответствия. Кстати, заодно и над модификацией алгебры 4-значной комплементарной логики: не всё мне там нравится. Да, есть ещё одна проблема: один
студент ТВАТ на моих лекциях по Русской логике заявил, что общеразговорная
логика 5-значна: 5-е значение – «не знаю». Надеюсь, что кто-нибудь из русских
мыслителей создаст алгебру 5-значной логики. К стыду своему, фамилию этого
толкового русского студента я не запомнил. Приношу ему свои самые искрение
извинения. Кстати, за 10 прошедших лет это был единственный студент (надеюсь, будущий выдающийся учёный), который открыл 5-значную логику здравого
смысла.
А теперь приступим непосредственно к проверке полученных результатов. Начнём с 4-значной комплементарной логики.
Приведём выражение d = cb’ + ca’ + iba + j(c’b’ + c’a’) к рекурсивному виду.
Получим d = c(a’+b’)+abd+c’d’(a’+b’). Теперь найдём полную единицу системы,
т.е. M. Поиск будем вести по формуле эквивалентности M = (x=y) = xy+x’y’. Тогда M = [d = c(a’+b’)+abd+c’d’(a’+b’)] = d[c(a’+b’)+abd+c’d’(a’+b’)] +
d’[c(a’+b’)+abd+c’d’(a’+b’)]’ = cd(a’+b’)+abd+d’(a’c’d+abd’) = cd(a’+b’)+abd+abd’ =
ab+cd, что и требовалось доказать.
232
233
То, что [c(a’+b’)+abd+c’d’(a’+b’)]’ = (a’c’d+abd’), удалось выяснить с помощью карты Карно: очень скучен процесс аналитического инвертирования.
Итак, проверка решения уравнения в 4-значной комплементарной логике
закончилась благополучно.
Проведём проверку решения уравнения в 3-значной логике. Приведём выражение d = b’ + a’ + iba к рекурсивному виду. Получим d = b’+a’+dba=b’+a’+d.
Откуда M = (d = b’+a’+d) = d(b’+a’+d)+d’(b’+a’+d)’ = d+abd’ = d+ab, что не сответствует исходному значению М. Мы доказали, что решение логических уравнений возможно только в 4-значной комплементарной логике, чего не знал и не
мог знать П.С.Порецкий. Внимательно анализируя метод решения логических
уравнений великого русского логика П.С.Порецкого[3], приходишь к выводу, что
кое в чём гениальный математик ошибался. Но и на солнце бывают пятна, поэтому великим грехом эту оплошность назвать нельзя.
В связи с тем, что при решении логических уравнений приходится зачастую проводить минимизацию булевых функций от большого числа переменных, полезно ознакомиться с соответствующими алгоритмами, изложенными в
[13,14] и в диссертации автора[15].
Пример 2.
Рассмотрим 1-ю задачу Порецкого[34]. Между птицами данного зоосада существует 5 отношений:
1. Птицы певчие - крупные или обладающие качеством Y.
2. Птицы, не имеющие качества Y - или не крупные, или не имеют качества Х.
3. Птицы певчие в соединении с крупными объединяют всех птиц с качеством
Х.
4. Каждая не-крупная птица есть или певчая, или обладающая качеством Х.
5. Между птиц с качеством Х совсем нет таких птиц с качеством Y, которые не
будучи певчими, были бы крупные.
Определить, были ли птицы качества Х певчие или нет. Узнать то же в
отношении птиц качества Y.Найти, были ли среди качества Х птицы качества Y
и наоборот.
Решение.
Пусть Х - птицы качества Х.
Y - птицы качества Y.
S - певчие птицы.
G - крупные птицы.
Тогда условие задачи будет представлено следующими рекурсивными
уравнениями [34] :
1. s= (g+ у)s;
2. у’= (g’+x’)у’;
3. s+g+x’=1;
4. g’=(s+x)g’;
5. xуs’g=0.
Эти уравнения Порецкий через эквивалентность приводит к единичной
форме:
1. g+у+s’=1
2. g’+x’+у=1
3. s+g+x’=1
233
234
4. s+g+x=1
5. x’+у’+s+g’=1
Нетрудно заметить, что система уравнений Порецкого представляет из
себя сорит, содержащий посылки общего характера. Посылки частноутвердительного характера метод Порецкого обрабатывать не может.
Кстати, используя силлогистические функторы Аху и Еху, можно получить эти соотношения сразу, не прибегая к рекурсии и эквивалентности. Исходя
из вышесказанного можно утверждать, что аналитическое представление силлогистических функторов Axy, Exy было впервые в мире дано русским логиком
Порецким П.С. Правда, мировая логика не заметила этого научного достижения, как не увидела и того,что позже к аналогичному выводу пришел и
Л.Кэрролл[11]. Логика до сих пор прозябает в невежестве.
1.As(g+y) = (s(g+y)’)’ = s’+g+y = 1
2. Ay’(g’+x’) = (y’(g’+x’)’)’ = y+g’+x’ = 1
3. Ax(s+g) = (x(s+g)’)’ = x’+s+g = 1
4. Ag’(s+x) = (g’(s+x)’)’ = g+s+x = 1
5. Ex(ys’g) = (x(ys’g))’ = x’+y’+s+g’ = 1
Поэтому, видимо, целесообразно изучать решение логических уравнений
после освоения силлогистики.
Полная логическая единица всей задачи определится как конъюнкция
всех левых частей системы логических уравнений. Эту рутинную операцию
можно заменить на менее утомительную процедуру построения дизъюнкции
нулей. Получим систему:
1. g’у’s=0
2. gxу’=0
3. g’s’x=0
4. g’s’x’=0
5. gs’xу=0
Полный логический нуль системы равен дизъюнкции всех левых частей
системы логических уравнений. Проведём решение задачи Порецкого с использованием карты Карно, а потом сопоставим результаты. Заполним карту
Карно нулями в соответствии с нулевыми термами системы, а в оставшиеся
клетки впишем единицы. Тогда полная логическая единица всей задачи после
минимизации примет вид:
m=sу+gx’
xy
gs
00
01
11
10
00
01
11
10
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
234
235
Выпишем из карты Карно все единичные термы в виде таблицы истинности. По полученной таблице построим таблицы для х=f1(g, s),y=f2(g,s) и
у=f3(х). Если на каком-либо наборе функция принимает значение как 0, так и 1,
то в соответствующую клетку карты Карно вписываем i. Если какой-нибудь
набор отсутствует, то для этого набора в карту Карно вносим значение j комплементарной логики.
После минимизации получим для комплементарной логики системы
уравнений:
x = is + jg’s’
у = g’s + ig + jg’s’
у = x + ix’ = (x + ix) + ix’ = x + i
После приведения к рекурсивной форме имеем:
x = xs + x’g’s’
у = g’s + yg + y’g’s’
у=x+y
Результаты, полученные Порецким:
x = xs
у = gу + g’s
у=у+x
Сравнивая системы уравнений, можно заметить расхождение в результатах. Проверим себя и Порецкого. Полная единица системы M(g,s,x) = s+gx’. Это
следует из основной формулы M(g,s,x,y) = sy+gx’. Для комплементарной логики
имеем M(g,s,x) = (x=xs+x’g’s’) = xs+x’(xs+x’g’s’)’ = xs+x’(x’s+gs’+xs’) = xs+x’s+x’g =
s+gx’, что и требовалось доказать.
Для Порецкого проверка не увенчалась успехом. Здесь великий логик допустил ошибку:он,как и автор в своё время,не догадался о проверке - восстановлении М. Привожу проверку для x=xs:
M(g,s,x) = (x=xs) = xs+x’(xs)’ = xs+x’ = s+x’, что не соответствует заданному
M(g,s,x).
Строгим решением является лишь результат, полученный на основе
комплементарной логики.
Комплементарная логика в электронике повышает надёжность любого
235
236
устройства. Электронная система, построенная на такой логике фиксирует те
ситуации, которые не могут быть никогда. Например, в сложной системе управления своевременное обнаружение таких состояний может предотвратить аварию или отказ. Поэтому можно надеяться, что вычислительная техника (да и не
только она, но и юриспруденция тоже) будет строиться на комплементарной
логике.
Кстати, первая в мире троичная ЭВМ «Сетунь-70» была создана в России
Брусенцовым Н.П. (МГУ). Что касается 4-значной ЭВМ, то аппаратная реализация комплементарной логики на современной двоичной элементной базе
весьма несложна.
Основываясь на примерах 1 и 2, составим алгоритм решения системы
логических уравнений.
11.2. Алгоритм «Селигер» решения логических уравнений.
1. Привести систему уравнений к нулевому виду (исходная система).
2. Заполнить карту Карно нулями в соответствии с термами левых
частей исходной системы уравнений, а в оставшиеся клетки вписать единицы. Эти единичные термы представляют собой СДНФ полной единицы
системы.
3. Произвести минимизацию совокупности единичных термов. Полученное соотношение представляет МДНФ уравнения полной единицы системы.
4. Построить сокращённую (только для единичных термов) таблицу
истинности уравнения полной единицы и выписать из неё все значения входных и выходной переменных в виде частной таблицы истинности для искомой функции.
5. Произвести минимизацию полученного выражения..
6. Привести полученное выражение к рекурсивной форме, заменив i на
прямое значение искомой переменной, а j – на инверсное значение этой переменной.
7. Произвести проверку рекурсивного выражения на соответствие его
полной единице системы для задействованных аргументов.
Алгоритм «Селигер» предполагает не только графическую, но и аналитическую минимизацию методом обобщённых кодов [13, 29]. Для систем уравнений с числом аргументов не более 10 графический метод эффективнее. Минимизация в трёхзначной и комплементарной логиках для двоичных аргументов
несущественно отличается от минимизации в двузначной : нужно лишь проводить раздельное склеивание по i, j, 1 или 0.
Пример 3
Рассмотрим 2-ю задачу Порецкого.
Относительно белья в комоде известны 2 положения:
1) часть его состояла из крупных предметов, всё же остальное было тонким, причём часть этого последнего была поношена, прочая часть дёшево стоила;
2) всё бельё не тонкое, а также всё бельё не новое, но дорогое, принадлежало или к такому тонкому белью, которое не было ни крупно, ни дорого, или
236
237
же к такому крупному белью, которое частью было ново, частью же, будучи тонким, было дёшево.
Узнать, какое бельё было поношено: крупное или мелкое.
Решение.
Пусть а - тонкое, b - крупное, с - дорогое, d - новое бельё. Тогда имеем
следующую систему уравнний:
1. b + a(d’ + c’) = 1
2. (a’ + d’c) = ab’c’ + b(d + ac’)
В соответствии с алгоритмом «Селигер» получим:
1. a’b’ + b’cd = 0
2. a’b’ + a’d’ + cd’ + 0
Нулевые термы системы уравнений занесём в карту Карно, откуда получим функцию полной единицы.
M = ac’+bd.
По полученному соотношению строим сокращённую таблицу истинности
и выписываем из неё значения b и d в виде таблицы, из которой получаем логическую функцию. Из этой функции следует, что d не зависит от b, что совпадает с результатом Порецкого.
Если построить диаграммы Лобанова, то сразу становятся очевидными
все зависимости между аргументами a, b, c, d. Например, понятно, что «Всё
дорогое бельё – новое» и «Всё дорогое бельё – крупное».
237
238
238
239
11.3. Равносильные преобразования.
При решении логических уравнений иногда возникает необходимость в
равносильных преобразованиях. Эта проблема рассмотрена в [3] и решена путём введения понятий парного и непарного индивидов. Однако, чёткое определение этих понятий отсутствует.
Докажем раносильность преобразований с помощью традиционных методов. Пусть х, у - логические функции, для которых справедливо уравнение х =
у, приведённое через эквивалентность к виду.
( х = у ) = ху + х’у’
Требуется найти парный индивид z , т.е. такую функцию, добавление
(удаление) которой к обеим частям равенства х=у не нарушало бы его равносильности. Это требование записывается в виде уравнения.
x+z=у+z
Но полученное выражение через формулу эквивалентности приводится к
виду:
(x+z=у+z) = (x+z)(у+z)+(x+z)’(у+z)’ =
= xу+x’у’+z = (х=у)+z
Откуда следует, что z должен принадлежать исходному равенству, и парным индивидом для исходного уравнения х=у может быть любой терм уравнения или их комбинация, т.е. в данном случае парными индивидами являются
термы ху, х’у’, xу+х’у’.
х=у
х +ху = у + ху
х + х’у’ = у + x’у’
x + ху + x’у’ = у + xу + х’у’
Пример 4.
Пусть х+а = у+b . Найти парные термы (индивиды).
Решение.
Развернём исходное уравнение на основе формулы эквивалентности :
(x+a=у+b)=(х+а)(у+b)+(х+а)’(у+b)’ = xу+ау+bx+ab+a’b’x’у’
Парными термами в этом случае являются ху, ау, bx, ab, a’b’x’у’ и все их
комбинации, которые более наглядно можно представить на карте Карно.
Любой набор термов из единичных фигур покрытия [3] карты Карно может быть парным индивидом. Определим общее количество парных индивидов
n. Пусть u - количество переменных, входящих в уравнение f1=f2. Тогда количество конституент единицы k определится следующими соотношениями.
Для чётного u: k = 1 + [2^(u/2) - 1]^2
239
240
Для нечётного u: k = 1+(2^[(u+1)/2]-1)
Эти соотношения легко выводятся из анализа карты Карно для уравнения х+а = у+b .Общее количество парных индивидов равно сумме биноминальных коэффициентов для бинома степени k без единицы:
n = 2^k - 1
11.4. Отыскание обратных функций.
На основе метода, заложенного в алгоритме «Селигер», можно вывести
соотношения для операций, обратных конъюнкции и дизъюнкции. Поскольку
эти операции часто называются соответственно логическими умножением и
сложением, то логично обратным операциям присвоить имена логического деления и логического вычитания. Впервые формулы для логического частного и
логической разности для троичной логики получены Н.П.Брусенцовым[3, с.37].
Поскольку в троичной логике не может быть получено корректное решение, то
требуется проверка уравнений Брусенцова.
Если логическое уравнение вида z=f(x1, x2, x3 .....xi .....xn) решается относительно одной из своих переменных, например, отыскивается обратная функция x1=fi(z, x2, x3 .....xi ..... xn), то можно воспользоваться более простым алгоритмом «Селигер-С» решения задачи.
Алгоритм «Селигер-С» синтеза обратных функций.
1. Построить таблицу истинности для уравнения z=f(x1, x2 ..... xn).
2. По исходной таблице истиннсти построить таблицу истинности для обратной функции вида x1=fi(z, x2 ......xn) простой перестановкой столбцов z и х1.
3. По полученной таблице истинности построить обратную функцию
x1=fi(z, x2, ..... xn) и провести её минимизацию.
4. Проверить полученное решение, вычислив полную единицу системы М
по обратной функции.
Пример 5.
Дано: z = xу , v = x + у.
Найти: у = z/x , у = v-x .
Решение.
На основе формулы эквивалентности преобразуем исходную формулу
z=xу. Тогда получим (z=xу) = zxу + z’(x’+у’). В соответствии с пп.4, 5 алгоритма
«Селигер» получим у = xz+ix’z’+jx’z.
Решим ту же задачу посредством алгоритма «Селигер-С». Исходные
уравнения представим в виде таблицы истинности. Тогда в соответствии с п.2
алгоритма «Селигер-С» построим частные таблицы истинности для у= z/x и
у=v-x.
240
241
В соответствии с п.3 алгоритма «Селигер-С проведём минимизацию искомых функций в комплементарной логике.
Для комплементарной логики получим:
у = z/x = xz + ix’z’ + jx’z = xz+x’yz+x’y’z - уравнение логического деления.
у = u-x = x’v + iv + jxv’ = x’v+yv+xy’v’ - уравнение логического вычитания.
Проверим оба полученных результата(проверка всех 16 обратных логических функций от двух аргументов будет проведена ниже). Пусть вначале это
будет операция логического деления. В рекурсивной форме она выглядит так:
у = xz + yx’z’ + y’x’z
Найдём полную единицу системы М для полученной функции.
M = (у = xz + yx’z’ + y’x’z ) = y(xz + yx’z’ + y’x’z )+y’(xz + yx’z’ + y’x’z )’ =
= xyz+x’yz’+y’(y’z’+xz’+x’yz) = xyz+x’yz’+y’z’ = xyz+z’(x’+y’).
Она должна совпадать с исходной
M = (z=xy) = xyz+z’(xy)’ = xyz+z’(x’+y’). Налицо совпадение результатов.
Проверим формулу, полученную для логической разности. Исходная полная единица M = (v = x+y) = v(x+y) + v’(x+y)’ = xv+yv+x’y’v’.
Полная единица системы на основе логической разности
M = (y = x’v+yv+xy’v’) = x’yv+yv+y’(x’v+yv+xy’v’)’ = yv+y’(x’v’+yv’+xy’v) =
= yv+x’y’v’+xy’v = xv+yv+x’y’v’, ч.т.д.
Проверка подтвердила правильность полученных результатов.
Теперь проверим формулы, полученные Брусенцовым Н.П. [3, с.37]. Для
логического деления была получена формула: y = xz+ix’.
241
242
Приведём её к рекурсивному виду – получим y = xz+yx’. Найдём полную
единицу системы: M = (y = xz+yx’) = xyz+x’y+y’(xz+yx’)’ = xyz+x’y+y’(xz’+y’x’)’ =
xyz+x’+xy’z’ = x’+x(y=z) = x’+(y=z), что не соответствует исходной М.
Для логического вычитания Брусенцовым Н.П. построена частичная
функция [3, с.37] : y = x’z+ix. В рекурсивном виде y = x’z+yx. Найдём полную
единицу системы M = (y = x’z+yx) = x’yz+xy+y’(x’z+yx)’ = x’yz+xy+y’(x’z’+y’x) =
x’yz+xy+xy’ = x’yz+x, что не соответствует исходной М.
Как мы убедились, однозначными и строгими решениями являются лишь
уравнения комплементарной логики. Следовательно, в принципе не может быть
правильным решение логического уравнения в троичной логике.
Пример 5.
Дана система логических уравнений (В. С. Левченков «Булевы уравнения» – М.:1999 ):
ax = bc
bx = ac
Найти х.
Решение .
Напрашивается простой и “очевидный” метод решения: сложить левые и
правые части уравнений и сократить на общий множитель. В результате получим (a+b)x = (a+b)c. Откуда x = c, a = b. Ответ настораживает, тем более, что
что решение противоречит принципу отыскания парных индивидов, поэтому
проверим его на основе разработанных алгоритмов.
. Действительно, сложить левые и правые части уравнений мы имеем
право на основании правила (9П) Порецкого[34,стр,376]. Кстати, заодно и проверим это правило:
(e=c)  (e+b=c+b) = ec’+e’c+(e+b)(c+b)+(e+b)’(c+b)’ = ec’+e’c+ec+b+e’b’c’ = 1;
Да, Порецкий не ошибся. Однако относительно сокращения на общий
множитель великий русский логик нам ничего не сообщил. А так хочется это
сделать, тем более что всё очевидно, и обычная алгебра нам не запрещает
подобные операции. Проверим допустимость сокращения на общий множитель
с помощью алгоритма “Импульс”:
(cx=cy)  (x=y) = cx(cy)’+(cx)’cy+xy+x’y’ = cxy’+cx’y+xy+x’y’  1.
Оказывается, что алгебра логики не разрешает нам этакие вольности
По алгоритму “Селигер” :
M = (ax = bc)( bx = ac)
M’ = (ax  bc) + ( bx  ac) = ab’x+ac’x+a’bc+bcx’+a’bx+bc’x+acx’+ab’c.
После занесения M’в карту Карно получим
M = a’b’+abcx+c’x’.
Откуда решение системы логических уравнений в соответствии с алгоритмом «Селигер» примет вид:
x = abc+ia’b’+jc(ab’+a’b) = abc+xa’b’+x’c(ab’+a’b).
a = bcx+ic’x’+jb(cx’+c’x) = bcx+ac’x’+a’b(cx’+c’x).
Проверка этих рекурсивных уравнений по полной единице системы М дала положительные результаты.
Заданная система уравнений может быть представлена графически при
помощи скалярных диаграмм . Скалярные диаграммы построены по рабочим
наборам таблицы истинности для М.
242
243
Скалярные диаграммы дают полное представление о системе уравнений.
Подтвердим корректность метода на решении более прозрачной задачи.
Пример 6.
Дана система логических уравнений:
x=y
u=v
Найти решение системы.
Решение.
M = (x = y)(u = v) = (xy + x’y’)(uv + u’v’) = u’v’(x’y’ + xy)+uv(x’y’ + xy)
По алгоритму «Селигер» получим
y(x,u,v) = x(u = v)+j(u  v)
Для перехода к y(x) достаточно в таблице истинности для полной единицы М вынести столбец значений y в графу функций и произвести синтез y(x) по
вышеизложенным алгоритмам. В результате мы подтвердим исходное уравнение системы y(x) = x. Аналогично можно показать,что u(v) = v.
Кстати, в данном случае есть более простой способ поверки решения системы: в уравнении y(x,u,v) = x(u = v)+j(u  v) убрать «лишние» переменные,
т.е. подставить u = v = 1. Получим y(x) = x(1 = 1)+j(1  1) = х+ j0 = х, что и требовалось доказать.
Используя алгоритм «Селигер» или «Селигер-С», можно получить полную систему обратных функций для двоичной логики. В таблице приведена
полная система функций двоичной логики.
xy
z0
z1
z2
z3
z4
z5
z6
z7
z8
z9
00
01
10
11
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
z1
0
1
0
1
0
z1
1
1
0
1
1
z1
2
1
1
0
0
z1
3
1
1
0
1
z1
4
1
1
1
0
z1
5
1
1
1
1
Перестановкой столбцов у и z исходной таблицы строим таблицу истинности для полной системы обратных функций.
243
244
xz
y0
y1
y2
y3
y4
y5
y6
y7
y8
y9
00
01
10
11
I
J
I
J
i
j
0
1
i
j
1
0
i
j
j
i
0
1
i
j
0
1
0
1
0
1
1
0
0
1
j
i
1
0
i
j
1
0
0
1
y1
0
1
0
1
0
y1
1
1
0
j
i
y1
2
j
i
i
j
y1
3
j
i
0
1
y1
4
j
i
1
0
y1
5
j
i
j
i
Из таблицы обратных функций получаем полную симметричную систему
обратных функций y = f1(x,z),а по алгоритму «Селигер» – y = f2(x):
у0 = iz’+jz
y0 = j
у1 = xz+ix’z’+jx’z
y1 = x+jx’
у2 = xz’+ix’z’+jx’z
y2 = jx’
у3 = i(xz+x’z’)+j(xz’+x’z)
y3 = ix+jx’
у4 = x’z+ixz’+jxz
y4 = x’+jx
у5 = z
y5 = 1
у6 = xz’+x’z
y6 = x’
у7 = x’z+ixz+jxz’
y7 = x’+ix
у8 = x’z’+ixz’+jxz
y8 = jx
у9 = xz+x’z’
y9 = x
у10= z’
y10 = 0
у11= x’z’+ixz+jxz’
y11 = ix
у12= i(xz’+x’z)+j(xz+x’z’)
y12 = ix’+jx
у13= xz+ix’z+jx’z’
y13 = x+ix’ - импликация
у14= xz’+ix’z+jx’z’
y14 = ix’
у15= iz+jz’
y15 = i
Кстати, переход от левой системы уравнений к правой легко выполняется
простой заменой z на 1 и z’ на 0. Аналогичные результаты мы получим, если
таблицу прямых функций заменим скалярными диаграммами, а из них по алгоритму ТВАТ выведем соотношения y = f(x). Самой примечательной из полученных функций является y13 = x+ix’ – импликация. Из этого выражения легко
просматривается физический смысл импликации: y обязательно истинно, если
истинно x, но иногда y истинно даже при ложном х.
Решая 1-ю задачу Порецкого, мы заметили аналогию между рекурсивным
вхождением функции и комплементарным значением i. Резонно предположить,
что такая аналогия существует между комплементарным j и рекурсивным значением инверсии функции. Проверим это предположение на полученных одноаргументных функциях и убедимся в их обратимости с помощью формулы
эквивалентности.
0) (y = j)  (y = y')
M = (y=y') = yy'+y'y = 0
1) (y = x+jx')  (y = x+x'y') = (y = x+y')
M = (y=x+y') = y(x+y')+y'(x+y')' = xy+y'x'y = xy
2) y = jx'  x'y'
M = (y=x'y') = yx'y'+y'(x'y')' = y'(x+y) = xy'
3) y = ix+jx'  xy+x'y'
M = (y=xy+x'y') = y(xy+x'y')+y'(xy'+x'y) = xy+xy' = x
4) y = x'+jx  x'+xy' = x'+y'
244
245
M = (y=x'+y') = y(x'+y')+y'(x'+y')' = x'y
5) y = 1
M = (y=1) = y&1+y'&0 = y
6) y = x'
M = (y=x') = xy'+x'y
7) y = x'+ix  x'+xy = x'+y
M = (y=x'+y) = y(x'+y)+y'(x'+y)' = y+xy' = x+y
8) y = jx  xy'
M = (y=xy') = yxy'+y'(xy')' = x'y'
9) y = x
M = (y=x) = x'y'+xy
10)y = 0
M = (y=0) = y&0+y'&1 = y'
11)y = ix  xy
M = (y=xy) = yxy+y'(xy)' = xy+y' = x+y'
12)y = ix'+jx  x'y+xy'
M = (y=x'y+xy')=y(x'y+xy')+y'(x'y'+xy)=x'y+x'y' = x'
13)y = x+ix'  x+x'y = x+y
M = (y=x+y) = y(x+y)+y'(x+y)' = y+x'y' = x'+y
14)y = ix'  x'y
M = (y=x'y) = yx'y+y'(x'y)' = x'y+y' = x'+y'
15)y=i  y
M = (y=y) = y&y+y'&y' = y+y' = 1
После обращения были получены все 16 прямых функций от двух аргументов без какого-либо искажения. Это подтверждает правильность всех алгоритмов решения логических уравнений и корректность комплементарной логики.
А нельзя ли найти решение поставленной задачи, не прибегая к 4-значной
логике? Оказывается, можно. Автором разработан алгоритм «Волга», опирающийся только на булеву алгебру при неявном использовании 4-значной комплементарной логики.
Алгоритм «Волга» решения уравнений в двоичной логике.
1. Привести систему уравнений к нулевому виду.
2. Заполнить карту Карно нулями в соответствии с термами левых
частей исходной системы уравнений, а в оставшиеся клетки вписать единицы. Эти единичные термы представляют собой СДНФ полной единицы
системы. Минимизация СДНФ желательна.
3. Построить по СДНФ сокращённую (только для единичных термов)
таблицу истинности уравнения полной единицы и выписать из неё все значения входных и выходных переменных в виде частной таблицы истинности
для искомой функции.
4. Если на каком-либо наборе функция Y принимает как 0, так и 1, то
присвоить ей значение Y. Если существуют наборы, на которых функция Y
не определена, то на этих наборах искомой функции присвоить её инверсное
значение, т.е. Y’.
5. Произвести минимизацию полученного выражения.
6. Произвести проверку рекурсивного выражения на соответствие его
полной единице системы для задействованных аргументов, т.е. выполнить
проверку равносильности произведённых преобразований.
245
246
Алгоритмы «Селигер» и «Волга» разработаны для решения уравнений,
представленных в виде произведения многочленов. Если уравнение задано в
виде СДНФ, то пп. 1 – 2 следует опустить.
Выводы.
1. Простота метода, заложенного в алгоритме «Селигер», позволяет решать логические уравнения от большого числа переменных.
2. Минимизация логических функций в 4-значной комплементарной логике несущественно отличается от традиционных методов двузначной логики.
3. Парные термы для равносильных преобразований определяются
набором термов, полученных на основе применения формулы эквивалентности
к исходному логическому уравнению.
4. Применение метода при выводе обратных логических функций показало, что однозначное решение для двоичных аргументов может быть получено
лишь в комплементарной логике. Троичная и тем более двоичная логики не годятся для решения логических уравнений.
5.Впервые получены все 16 обратных логических функций для двух аргументов.
6. Комплементарная логика при аппаратной реализации позволяет значительно упростить решение проблемы самодиагностирования вычислительной
техники: например появление j на любом выходе может свидетельствовать о
сбое или отказе.
246
247
Заключение.
Подводя итог вышеизложенному, необходимо отметить следующее.
Никакое образование немыслимо без изучения логики. Этот предмет в качестве
основного впервые ввёл в гимназиях и Академии великий русский учёный М.В.
Ломоносов. С тех пор логику в обязательном порядке изучали в гимназиях
России и по указанию Сталина в 1946-1957 гг. в школах СССР. В связи с этим
удивляют безграмотность и бестолковость современной математики.
Перечислим основные недостатки классической логики.
1. Классическая логика не использует минимизацию логических функций с помощью карт Карно в том числе и в связи с незнанием алгоритмов, разработанных автором. Карты Карно – необходимейший
и обязательный инструмент
логика.
2. Классическая логика проявляет невежество при доказательстве законов логики суждений, поскольку не применяет аналитических методов, что катастрофически сужает круг рассматриваемых задач.
3. Отсутствие аналитического представления силлогистических функторов
лишает фундамента логику предикатов.
4. Все законы и правила силлогистики либо некорректны, либо никчёмны по
своей сути, поскольку в них не учитывается влияние универсума и конкретного
содержания терминов.
5. Все фигуры и модусы силлогистики никчёмны, поскольку нельзя анализировать и синтезировать силлогизмы в общем виде без рассмотрения конкретного
базиса, универсума и содержания каждого термина.
6. Классическая силлогистика оперирует лишь функторами Axy, Exy, Ixy, Oxy и
не охватывает подавляющее большинство суждений любого другого типа.
7. Функтор Oxy является не только лишним, но и некорректным.
8. В классической логике до сих пор не решена проблема единичного множества.
9. Нет окончательного результата в проблеме решения логических уравнений
и в синтезе обратных логических функций.
10. Искореняется всякое мышление.
11. В связи с вышеперечисленным студенты и преподаватели обречены на
унылую бестолковую зубрёжку и не умеют решать серьёзные задачи логики.
Приведём основные результаты, полученные при создании Русской логики.
1. Создана графическая алгебра логики [29].
2. Разработаны графические методы минимизации логических функций для
большого числа аргументов с помощью карт Карно(алгоритм «НИИРТА»)
[13].
3. Создана 4-значная комплементарная логика и её алгебра с методами минимизации комплементарных функций [17].
4. Разработаны простые методы решения логических уравнений (алгоритм
«Селигер») на основе комплементарной логики [17].
5. Разработан метод проверки решений логических уравнений, построенный
на восстановлении полной единицы системы М на основе функции равнозначности.
247
248
6. Применение алгоритма «Селигер-С» при выводе обратных логических
функций показало, что однозначное решение для двоичных аргументов может быть получено лишь в комплементарной логике [17].
7. Впервые получены все 16 обратных логических функций для двух аргументов,
в том числе функции логического вычитания и деления [27].
8. Комплементарная логика при аппаратной реализации позволяет значительно упростить решение проблемы самодиагностирования вычислительной
техники: например появление j на любом
выходе может свидетельствовать о сбое или отказе [26].
9. Синтезированы методы нахождения парных термов для равносильных
преобразований логических равенств [26].
10. Предложен простой математический метод анализа и синтеза законов логики суждений (алгоритм «Импульс») [28].
11. Предложены скалярные диаграммы, позволившие формализовать силлогистику и дать графическую интерпретацию алгебры логики [19].
12. Впервые создан аналитический базис силлогистики и определены его разновидности: русский, аристотелевский, базис Васильева и т.д. [18]
13. Впервые показано, что даже общие суждения имеют неоднозначную структуру и аналитическое описание [16].
14. Впервые представлено все многообразие базиса частноутвердительного
суждения и дано его аналитическое представление [28].
15. Впервые найдены аналитические выражения для всех частноутвердительных суждений, удовлетворяющих критерию Васильева [29].
16. Предложен простой и надежный способ графической и аналитической проверки силлогизмов и синтеза заключений для любых базисов (алгоритмы
«Осташ», «ИЭИ» и «ТВАТ») [28].
17. Применение предложенного метода избавляет от необходимости запоминания множества логических правил и законов.
18. Руская логика оперирует не только функторами Axy, Exy, Ixy, но и суждениями любого типа [24].
19. Впервые аналитически описан базис логики Аристотеля-Жергонна. Впервые на основе базиса Аристотеля-Жергонна разработана силлогистика,
существенно отличающаяся от классической [27].
20. Впервые проверены все 64 модуса силлогистики Аристотеля-Жергонна.
Доказано, что многие «правильные» модусы Аристотеля, в том числе и модус AAI 4-й фигуры, не корректны [18].
21. Впервые доказано, что силлогистика Аристотеля-Жергонна не укладывается
в прокрустово ложе 19 «правильных» модусов [18].
22. Разработаны графоаналитический алгоритм «Осташков» синтеза полисиллогизмов и графический алгоритм «Суздаль» синтеза соритов [29].
23. Разработан графический алгоритм «Редан» синтеза недостающей посылки.
24. Доказано, что ни силлогистика Аристотеля, ни силлогистика АристотеляЖергонна не имеют никакого отношения к логике здравого смысла [30].
25. Впервые обнаружена и учтена при синтезе силлогизмов зависимость заключения от объёма универсума и содержания терминов [29].
26. Впервые решена проблема единичного множества в силлогистике [19].
27. Доказано, что все 4 классических правила посылок ошибочны [29].
28. Показано, что фигуры и модусы не имеют смысла, поскольку не учитывают
универсум и конкретное содержание посылок [30].
248
249
29. Отмечено, что аналитическое представление силлогистических функторов
Axy, Exy впервые дано русским логиком П. С. Порецким, чего до сих пор не
поняла мировая наука [29].
30. Впервые дан анализ ошибок П.С.Порецкого при решении логических уравнений.
31. Показано, что общеразговорная логика не является двоичной [17].
32. Впервые показано, что вся силлогистика является вероятностной, поскольку
как правило заключения получаются многовариантными [29].
33. Разработаны методы определения вероятностных характеристик многовариантных заключений [30].
Подводя итог, нельзя не придти к выводу, что впервые в мире создана
истинно математическая логика, не противоречащая здравому смыслу. Фактически родилась совершенно новая наука, сделан первый шаг в осуществлении
именно научной, а не просто очередной научно-технической революции, поскольку созданы предпосылки для рационализации труда учёных. Впервые в
мире реализованы мечты Аристотеля и Лейбница. Их чаяния воплощены в
России.
Требуется скорейшее внедрение русской логики в школьное и вузовское
преподавание для искоренения недостатков и ошибок классической логики, а
также в связи с тем, что логика составляет фундамент искусственного интеллекта, главного стратегического научного направления 3-го тысячелетия, по
уровню развития которого судят о научном потенциале державы. Россия вновь
вернула себе мировое лидерство в одной из самых важных математических
наук.
249
250
ЧАСТЬ 3. Букварь разработчика цифровых устройств.
Инженерные методы разработки цифровых устройств.
Глава первая
Инженерная комбинаторика.
1.1. Синтез комбинационных схем на мультиплексорах и ПЛИС.
Мультиплексором называется такая комбинационная схема(КС), которая
реализует функцию:
Y = XiAi , где
Xi - i - й входной сигнал,
Ai - i - й адресный код.
Мультиплексор коммутирует вход Xi на выход Y, если на адресном входе
установлен код Ai . Если адресная шина мультиплексора является n - разрядной
, то синтез КС по таблице истинности от (n+1) переменных не требует дополнительных элементов. При синтезе автомата для тайного голосования(задача 1
из раздела 1.3) были получены следующие функции адресных входов мультиплексора :
A0 = 0;
A1 = A2 = A3 = A4 = A5 = A6 = X4;
A7 = 1.
Удобнее и проще синтезировать КС на базе ПЛИС(программируемых интегральных схем). К их числу относятся программируемые логические матрицы(ПЛМ), программируемая матричная логика(ПМЛ), матрицы логических ячеек(МЛЯ) и перепрограммируемые постоянные запоминающие устройства(ППЗУ).Наиболее популярные ПЛИС:
ПЛМ - К556РТ2
ПМЛ - К15556ХП4
МЛЯ - БИС фирм Xilinx, Altera
ППЗУ - К155РЕ3,К556РТ4,К573РФ5, К573РФ8.
Для ПЛМ, ПМЛ и МЛЯ требуется обязательная минимизация, для ППЗУ
необходимо приведение функции к СДНФ.
250
251
Глава вторая.
Триггеры
Триггером называется логическое устройство с двумя устойчивыми состояниями. Выходной сигнал на выходе такого устройства зависит не только от входных сигналов , действующих в данный момент , но и от сигналов , воздействовавших в предыдущий момент времени. Существует несколько видов триггеров.
Наиболее распространёнными из них являются SR- , D- , и JK- триггеры.
2.1 SR- триггеры.
SR- триггер имеет 2 управляющих входа S и R. Если S = 1 , то выход триггера
Q = 1 , если R = 1 , то Q = 0. Комбинация S = 1 и R = 1 для SR - триггера является запрещённой. На рисунках представлены две реализации SR - триггера и
его условное обозначение.
Схемы и обозначения SR-триггеров.
При синтезе схем на ПЛИС используется САПР MAX+PLUS II, которая
требует предварительной установки всех элементов памяти в строго определённое состояние. Для этого необходимо ввести хотя бы вход сброса. Простое
решение этой проблемы выглядит так.
251
252
Полученный SR-триггер работает без замечаний, что видно из приведён-
252
253
ных диаграмм. Разумеется, нельзя подавать одновременно S=R=1: это приводит к самовозбуждению.
Однако представленная схема обладает большой задержкой распространения сигнала. При построении схем с высоким быстродействием необходимо
более компактное решение. Оно может быть таким.
За быстродействие пришлось заплатить: инверсный выход триггера нельзя использовать в режиме сброса. Как и в первой схеме запрещается одновременная подача S=R=1.
253
254
2.2 D- триггеры.
D- триггер при наличии разрешающего сигнала на тактовом входе устанавливается в состояние , соответствующее потенциалу на входе D.
Таким образом , D- триггер является тактируемым элементом памяти. Тактирование может осуществляться как потенциалом , так и фронтом (передним или
задним).
Триггер, тактируемый потенциалом, может изменить своё состояние только при
наличии определённого потенциала на тактовом входе C. Триггер , тактируемый фронтом, меняет своё состояние только с приходом определённого фронта сигнала на тактовый вход C.
На рисунках представлены тактируемые потенциалом и передним фронтом Dтриггеры и их условные обозначения, а также временные диаграммы работы.
254
255
Схема и условное обозначение тактируемого потенциалом D-триггера.
Условное обозначение и диаграммы работы переднефронтового D-триггера
2.3 . JK- триггеры.
JK- триггеры являются самыми сложными из рассмотренных элементов памяти.
Они обладают большими функциональными возможностями. JK- триггеры могут быть тактируемыми и нетактируемыми. Универсальный JK- триггер может
работать во всех режимах. Например, для перевода универсального JK- триггера в нетактируемый режим достаточно на вход C подать потенциал C = 1. На
рисунке изображён тактируемый задним фронтом JK- триггер серии134
(1ТК343) и временные диаграммы его работы.
Условное обозначение и диаграммы работы заднефронтового JK-триггера.
255
256
Работает JK- триггер следующим образом. При J=1 и K= 1 тактовый импульс
переводит триггер в противоположное состояние (Qn = Qn-1’) . При J = 0 и K = 0
триггер сохраняет предыдущее состояние (Qn = Qn-1). При J = 1 и K = 0 Qn = 1 ,
при J = 0 и K = 1 Qn = 0.
Работа любого триггера может быть однозначно описана с помощью таблицы
переходов.
Таблица переходов для SR-, D- и JK- триггеров.
Вход 1
Вход 2
SR- триггер
JK- триггер
D- триггер
0
0
Qn-1
Qn-1
0
0
1
0
0
0
1
0
1
1
1
1
1
Qn-1’
1
2.4 Анализ работы схем с памятью
Анализ работы схем с памятью может быть графическим или табличным.
Наиболее удобным является табличный метод анализа, так как он позволяет
оторваться от принципиальной схемы устройства. Этот способ основан на описании функций управляющих входов , или функций возбуждения.
Задача 12
Произвести анализ работы устройства, изображённого на рисунке, табличным
способом.
Схема устройства к задаче 12.
Решение.
Опишем функции возбуждения входов SR- триггера.
S = E1(E1E2)’ = E1(E1’ + E2’) = E1E2’
R = E2(E1’ + E2’) = E1’E2
Зададим исходное состояние SR- триггера. Пусть Q0 = 0. Далее будем изменять
входные сигналы E1 и E2 , определять функции S и R , а по ним находить Qn.
Процесс анализа отражён в таблице.
E1 E2
0 0
0 1
S=E1E2’
0
0
R=E1’E2
0
1
Qn
0
0
256
Примечание
Q1=Q0 , т.е Qn=Qn-1
Q2=0
257
1 0
1 1
1
0
0
0
1
1
Q3=1
Q4=Q3 , т.е. Qn=Qn-1
Даже простой пример показывает,насколько неудобен ручной анализ работы
схем с памятью.В главе «Конечные автоматы» мы познакомимся с более эффективным методом. Однако не нужно забывать, что существует множество
САПР, позволяющих проводить анализ работы не только цифровых, но и аналоговых схем.
257
258
Глава третья
РЕГИСТРЫ И СЧЁТЧИКИ
Наиболее часто в схемах с памятью используются такие функциональные узлы, как регистры и счётчики. Регистры разделяются на два типа: параллельные (регистры памяти) и последовательные (регистры сдвига). Регистры
могут быть реализованы на любых триггерах.
3.1 Регистры памяти.
Эти регистры предназначены для хранения информации, представленной в виде двоичного кода. Регистры памяти осуществляют параллельную запись всего кода с приходом тактового импульса. Записанная информация хранится до прихода следующего тактового импульса. На рисунке представлен
один из вариантов регистра памяти, реализованного на D- триггерах, тактируемых задним фронтом. Этот регистр предназначен для записи и хранения 4разрядного кода X.
С приходом заднего фронта тактовой частоты f т регистр запишет код X и
будет хранить его до тех пор, пока код X не изменит своей величины. Но это
изменение кода X пройдёт на выход регистра только с приходом заднего фронта fт.
Схема параллельного регистра.
3..2. Регистры сдвига.
Сдвиговые регистры широко используются в цифровой технике, в частности для преобразования последовательного двоичного кода в параллельный
или наоборот. На рисунке изображён сдвиговый регистр , реализованный на
JK- триггерах.
Схема регистра сдвига.
258
259
Благодаря последовательной схеме соединения разрядов регистра каждый задний фронт fт устанавливает последующий триггер в состояние, в котором до этого находился предыдущий, осуществляя сдвиг информации на разряд вправо.
На следующем рисунке представлена ИС типа 533ИР1, которая реализует функции как 4-х разрядного регистра памяти, так и функции регистра сдвига
в зависимости от значения сигнала на входе выбора режима V2:
при V2=0 - режим сдвига,
при V2=1 - режим параллельной записи.
На рисунке :
C1- тактовый вход продвижения информации , поступающей по входу V1.
C2- тактовый вход параллельной записи.
Если смена режима для 533ИР1 происходит в процессе работы, то для
обеспечения безошибочной работы регистра необходимо выполнить условие
C1’C2’=1.
Условное обозначение универсального регистра.
259
260
3..3. Двоичные счётчики.
Двоичные счётчики могут быть синхронными и асинхронными . Двоичный
асинхронный счётчик может быть построен последовательным соединением
счётных триггеров, или JK- триггеров , у которых J=K=1.
Асинхронный и синхронный двоичные счётчики.
Недостатком асинхронных счётчиков является задержка в установлении
соответствующего кода после прихода счётного импульса. Эта задержка, в
частности, может приводить к появлению ложных кодов на выходе счётчика и
сбою дешифратора. Например, после кода 011 на выходе счётчика должен появиться код 100 (коды записаны в порядке Q3Q2Q1). В асинхронном счётчике
при последовательном срабатывании триггеров код будет меняться следующим образом
011-010-000-100, т.е. во время
переходного процесса появляются два ложных кода 010 и 000.
В двоичных синхронных счёичиках срабатывание триггеров происходит
одновременно или почти одновременно , так как все тактовые входы триггеров
запараллелены . Временная диаграмма двоичного счётчика представлена на
рисунке.
260
261
Диаграммы работы двоичного счётчика.
Для построения синхронных счётчиков с коэффициентом деления K=2n
используется n JK- триггеров, функции возбуждения которых определяются соотношением
m-1
Jm=Km=& Qi ,
i=1
где Jm, Km - соответствующие входы JK- триггера, на котором реализован
m-ый разряд счётчика.
261
262
3.4 . Десятичные счётчики.
Десятичные счётчики строят на основе четырёхразрядных двоичных. Для
понижения коэффициента пересчёта четырёразрядного счётчика с 16 до 10
вводят различные логические связи. В зависимости от вида логической связи
одним и тем же десятичным числам в различных счётчиках могут соответствовать различные четырёхразрядные двоичные коды. В этом случае говорят, что
счётчики работают в различных двоично-десятичных кодах.
Наиболее часто в счётчиках используется взвешенное кодирование. Если любое десятичное число А может быть выражено в виде суммы
n
А =  a iQ i
,
i=0
где Qi - двоичные числа (0 или 1) в соответствующих разрядах кода,
аi - некоторые постоянные числа (веса разрядов),
то кодирование, построенное на данном соотношении, называется взвешенным.
Чаще других употребляется двоично-десятичный код 8-4-2-1.Здесь и далее цифры 8, 4, 2, 1 обозначают веса разрядов двоично-десятичного кода.
Преимущество кода в его одназначности. Другие же коды неодназначны.
Например, в коде 4-2-2-1 десятичное число 4 можно представить как 1000 или
0110, поэтому существуют таблицы, однозначно закрепляющие за каждым кодом соответствующее десятичное число .
В таблице приводятся наиболее употребительные двоично-десятичные
коды. Код с избытком 3 является самодополняющимся. Для этих кодов характерно то, что при их поразрядном инвертировании получается код числа, дополняющее данное до девяти. Это свойство кода удобно при построении цифровых приборов, измеряющих знакопеременные величины.
Q4Q3Q2Q1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
код 8-4-2-1
0
1
2
3
4
5
6
7
8
9
-
Невзвешенный
код
0
1
2
3
4
5
-
262
Код с избытком 3
0
1
2
3
4
5
6
7
263
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
-
8
9
6
7
263
8
9
-
264
3.5. Элементная база для построения счётчиков.
В настоящее время промышленность выпускает ИС, реализующие асинхронные двоично-десятичные счётчики (533ИЕ2), счётчики-делители на 12
(533ИЕ4) и делитель на 16 (533ИЕ5). 533ИЕ2 имеет коэффициент деления К =
2 х 5, для 533ИЕ4 К = 2 х 6, для 533ИЕ5 К = 2 х 8.
На рисунке в поле изображения микросхемы использованы следующие
обозначения:
С1, С2 - тактовые входы соответственно для 1-го и 2-го разрядов;
R0 - вход обнуления;
R9 - вход установки счётчика в состояние 1001.
Для 533ИЕ4 выходы с весами 2, 4, 6, 12 обозначают выходы соответственно 1-го, 2-го, 3-го и 4-го разрядов, для счётчиков 533ИЕ2 и 533ИЕ5 выходы с весами 1, 2, 4, 8 обозначают выходы соответственно 1го, 2-го, 3-го и 4-го
разрядов. Двоичный и десятичный счётчики изменяют свои состояния в соответствии с натуральной последовательностью кодов. Счётчик 533ИЕ4(133ИЕ4)
изменяет своё состояние в соответствии со следующей последовательностью
десятичных кодов: 0-1-2-3-4-5-8-9-10-11-12-13.Это связано с тем, что счётчик
построен по схеме соединения делителей с коэффициентами деления 2 x 3 x 2
вместо 2 x 2 x 3 . Такую архитектуру можно объяснить лишь безграмотностью
разработчиков.
Условные обозначения ИС асинхронных счётчиков 133 серии.
264
265
Глава четвёртая
СИНТЕЗ СЧЁТЧИКОВ
Существует несколько методов синтеза счётчиков. Рассмотрим два из
них.
4.1 Синтез счётчиков с использованием установочных входов.
Суть этого метода заключается в том, что для построения счётчика с коэффициентом деления К используется n-разрядный двоичный счётчик
(n=Ilog2KC), охваченный обратной связью, которая формируется с помощью
сборки двоичного кода К и подаётся на установочные входы обнуления. Например, для построения счётчика с К=10 необходимо использовать 4-х разрядный
двоичный счётчик, а на установочные R-входы подать набор (сборку) Q4Q3’Q2Q1’. Реализация этого счётчика изображена на рисунке.
Синхронный двоичный счётчик.
На схеме этого рисунка и в дальнейшем на все незадействованные входы микросхем подавать постоянный потенциал логической 1.
Реализация асинхронного счётчика с К=10 на базе ИС 133ИЕ5 представлена на следующем рисунке. В этой схеме кроме сборки используется так
называемый триггер-защёлка. Рекомендуется использовать его для надёжного
265
266
обнуления и для повышения помехозащищённости счётчика. В силу того, что
при данном методе синтеза используется лишь часть состояний двоичного
счётчика, сборка может быть отминимизирована. Например, для счётчика с
К=10 сборка соответствует Q4Q2, для счётчика с К=9 - Q4Q1, с К=12 - Q4Q3, с
К=11 - Q4Q2Q1.
Схема десятичного счётчика на базе двоичного.
Синтез многоразрядных счётчиков на базе стандартных ИС имеет некоторую специфику. При использовании 533ИЕ2(133ИЕ2) коэффициент деления
представляется в двоично-десятичном коде и на его основе формируются обратные связи. Например, для К = 125 получаем 2/10 – код, равный 100100101.
Это соответствует установочной функции Q1Q3Q6Q9. Для счётчика
533ИЕ4(133ИЕ4) необходимо представить коэффициент деления в 2/12 – коде
с учётом специфики реализации архитектуры этой ИС. Синтез счётчика на базе ИС 533ИЕ5(133ИЕ5) наиболее прост: достаточно представить коэффициент
деления в двоичном коде, чтобы получить установочную функцию.
266
267
Выводы и рекомендации
Счётчики, реализованные с использованием установочных входов, обладают следующими недостатками:
1) низкая помехозащищённость по цепи обратной связи: если помеха вызовет сбой в этой цепи, то счётчик преждевременно обнулится;
2) при синхронной реализации из-за разброса параметров отдельных
триггеров возможно появление ложных комбинаций, которые приведут к преждевременному обнулению счётчика (например, при переходе от кода 0111 к
коду 1000 возможно кратковременное появление кода 1010, что приводит к обнулению счётчика с К=10).
Неоспоримым преимуществом таких счётчиков является их простота. Рекомендуется применение их при построении счётчиков с переменным К, а также при синтезе синхронизаторов без жёсткой привязки фронтов импульсных
последовательностей.
Задание 5.
а) Построить асинхронные делители частоты с использованием установочных входов :
5-1) К=12 на 533ИЕ5
5-2) К=8 на 533ИЕ2
5-3) К=80 на 533ИЕ2
б) Построить синхронные делители частоты с использованием установочных входов :
5-4) К=80 на JK-триггерах 533ТВ1
5-5) К=24 на JK-триггерах 134ТВ3.
267
268
4.2 Синтез счётчиков с использованием управляющих входов.
Этот метод основан на использовании таблицы входов элементов памяти, которая может быть получена из таблицы переходов. По таблице входов
можно определить, какие сигналы необходимо подать на управляющие входы,
чтобы перевести элемент памяти из одного состояния в другое. Построим таблицу входов для JK-триггера.
Из таблицы переходов следует, что для перевода триггера из состояния
0 в состояние 0 на JK-входы необходимо подать JK=00 или JK=01, т.е. для
осуществления этого перехода состояние управляющего входа К безразлично.
Условно операцию определения функций возбуждения для реализации перехода триггера из состояния 0 в состояние 0 можно записать так :
JK = 00 + 01 = 0- .
Для перевода JK-триггера из состояния 0 в состояние 1 на JK-входы
необходимо подать комбинацию
JK = 10 + 11 = 1- .
Для перевода JK-триггера из 1 в 0 должна быть подана комбинация
JK = 01 + 11 = -1 ,
а для перевода из 1 в 1
JK = 00 + 10 = -0 .
Аналогично можно получить таблицу входов для SR-триггера и Dтриггера.
Таблица входов для JK -, SR - и D -триггеров.
Qn-1
0
0
1
1
5.2.1
Qn
0
1
0
1
J K
0 1 - 1
- 0
S R
0 1 0
0 1
- 0
D
0
1
0
1
Синтез синхронных счётчиков.
Этот метод прекрасно изложен у Гутникова В.С. Для синтеза счётчика
необходимо построить совмещённую таблицу состояний и входов счётчика.
Проследим этот процесс на примере синтеза синхронного делителя на 5 (счётчик с К=5).
Совмещенная таблица счетчика с К = 5
N состояния
0
1
2
3
4
Q3Q2Q1
000
001
010
011
100
J3K3
0001-1
268
J2K2
01-0
-1
0-
J1K1
1-1
100-
269
При переходе из 0-го состояния в 1-ое триггер 1-го разряда переходит из
состояния 0 в состояние 1. Для осуществления этого перехода по таблице входов для JK-триггера определяем что должны быть поданы J1=1, K1=-, т.е. уровень сигнала К1 не влияет на выполнение перехода из 0 в 1. Для 2-го и 3-го
разрядов переход из 0-го состояния в 1-ое требует перевода триггеров 2-го и 3го разрядов из состояния 0 в состояние 0, что соответствует J2K2 = J3K3 = 0-.
Аналогично заполняются строки таблицы для 1-го, 2-го и 3-го состояний.
Для перехода из 4-го состояния в начальное (нулевое) необходимо, чтобы 1-ый и 2-ой триггеры сохранили на своих выходах 0, а 3-ий перешёл из состояния 1 в состояние 0. Для этого необходимо обеспечить J1K1 = J2K2 = 0-, a
J3K3 = -1.
Далее совмещённая таблица интерпретируется как таблица истинности
для булевых функций J1, K1 , J2, K2, J3, K3, зависящих от входных переменных
Q3Q2Q1, и синтез счётчика сводится к синтезу булевых функций возбуждения J1,
K1, J2, K2, J3, K3.
После минимизации функций возбуждения получаем результат :
J3 = Q2Q1
J2 = K2 = Q1
J1 = Q3’
K3=К1 = 1
В соответствии с этим результатом строим счётчик. Счётчики можно
строить на различных элементах памяти, при этом нужно использовать соответствующую таблицу входов.
269
270
Синхронный делитель на 5.
Задача 13.
Построить счётчик с К=3 на D-триггерах.
Решение
Строим совмещённую таблицу и синтезируем функции возбуждения D2 и
D1.
Q2
0
0
1
Q1
0
1
0
D2 = Q1
D2
0
1
0
D1
1
0
0
D1 = Q2’Q1’
Cхема счётчика представлена на рисунке.
Синхронный делитель на 3.
Весьма важным моментом является кодирование состояний счётчика.
При оптимальном кодировании удаётся получить наиболее компактную реализацию счётчика. Вопросы оптимального кодирования состояний счётчика полностью не решены. Алгоритмы, предлагаемые у Баранова С.И. для оптимального кодирования состояний микропрограммных автоматов, далеко не всегда
дают положительные результаты.
Рассмотрим влияние кодирования состояний счётчика на примере синтеза делителя на 5.
Задача 14
Построить счётчик с К=5 при невзвешенном кодировании состояний на
270
271
JK-триггерах.
Решение.
Строим совмещённую таблицу и синтезируем функции возбуждения.
Q3Q2Q1
000
001
101
111
110
J3K3
01-0
-0
-1
J2K2
001-0
-1
J1K1
1-0
-0
-1
0-
K3 = K2 = Q1’
J2 = Q3
; J3 = Q1
J1 = Q2’
;K1= Q2
Делитель на 5 при невзвешенном кодировании.
Из сравнения рисунков видно, что получившийся счётчик имеет оптимальную структуру. Можно построить, как минимум, ещё 3 различных варианта
делителей на 5, имеющих минимальную реализацию. Одна из таких реализаций приводится у Гутникова В.С. Рассмотренный делитель на 5 был синтезирован с применением так называемого соседнего кодирования, которое считается
оптимальным для построения конечных автоматов на элементах памяти с раздельными входами, типа JK- или SR-триггеров. Если для построения синхронного счётчика с К=12 применить соседнее кодирование 0000, 0001, 0011, 0010,
0110, 1110, 1010, 1011, 1001, 1000, 1100, 0100, то коэффициент сложности
счётчика, построенного на JK-триггерах, составит 26, а при использовании
взвешенного двоичного кодирования ( 0000, 0001, 0010, 0011, 0100, 0101, 0110,
0111, 1000, 1001, 1010,1011) коэффициент сложности схемы будет равен 8.
Практика построения синхронных счётчиков с большими коэффициентами пересчёта показала, что наилучшие результаты даёт взвешенное двоичное кодирование состояний счётчика.
Методы синтеза счётчиков полностью пригодны для разработки схем
различных синхронизаторов и распределителей импульсов, так как и те, и другие являются счётчиками с невзвешенным кодированием состояний.
Пример синтеза синхронизатора, используемого в цифровом фильтре,
рассмотрен в задаче 11, где Q10 - Q12 - выходы синхронизатора, а Q1 - Q9 - выходы вспомогательного счётчика с К=320. Функции возбуждения этого счётчика
271
272
не представляют интереса, так как счётчик состоит из известных делителей частоты на 32 и на 10.
272
273
4.2.2 . Синтез асинхронных счётчиков.
Синтез асинхронных счётчиков возможен при выполнении следующих
условий:
1) если хотя бы один разряд обеспечивает формирование заднего фронта для всех тех случаев, когда другой разряд изменяет своё состояние;
2) задержка, вносимая самой длинной цепью делителя от тактового входа одного разряда до входа возбуждения другого, должна быть меньше периода тактовой частоты последнего из указанных разрядов.
Синтез асинхронных счётчиков разбивается на 4 этапа :
1) находится совокупность разрядов, в которой один из разрядов мог бы
формировать тактовую частоту для других (этот разряд будем называть тактовым);
2) для тактируемых разрядов из этой совокупности совмещённая таблица
для функций возбуждения заполняется только по строкам, соответствующим
заднему фронту тактового разряда, а в остальных строках ставится прочерк;
3) д ля разрядов, на тактовый вход которых поступает основная частота
f, синтез осуществляется по синхронному методу;
4) определяется граничная частота fгр для данной реализации.
Задача 15
Построить асинхронный делитель на 6.
Решение.
Строим совмещённую таблицу.
Q3Q2Q1
000
001
010
011
100
J3K3
-0-1--
J2K2
-1--1
--
J1K1
1-1
1-1
1-
1. Разряды 1, 2, и 3 образуют совокупность, в которой 1-ый разряд может
формировать тактовую частоту для 2-го и 3-го.
2. Заполняем совмещённую таблицу в соответствии со 2-м и 3-м этапами
синтеза асинхронных счётчиков.
3. Определяем функции возбуждения :
J3=Q2, J2=Q3’, J1=K1=K2=K3=1 , по которым строим счётчик.
4. Определяем граничную частоту, считая, что счётчик реализован на
триггерах 134ТВ3 с задержкой =100 нс. Наиболее длинная цепь от выхода Q2
до выхода J2. Задержка по этой цепи составляет 100 нс. Граничная тактовая
частота для 2-го и 3-го разрядов равна 1/100 нс = 10 Мгц. Приведённая к тактовому входу 1-го разряда fгр= 20 Мгц. Реальная граничная частота будет не более 1,5 Мгц, так как это частотный предел ИС серии 134.
273
274
Асинхронный делитель на 6.
Выводы и рекомендации.
1. Счётчики, реализованные с использованием управляющих входов, не
застрахованы от появления ложных выходных наборов, но это никогда не приводит к сбою в работе счётчиков, так как изменение состояния счётчиков происходит при установившемся значении выходных наборов.
2. Синхронные счётчики указанного класса позволяют реализовать импульсные последовательности с высокой точностью привязки фронтов.
3.Если высокая степень точности привязки импульсной последовательности не требуется, то предпочтительнее асинхронная реализация счётчиков.
4. Как синхронные, так и асинхронные счётчики с использованием управляющих входов максимально защищены от сбоев по установочным входам.
Задание 6.
Построить синхронные и асинхронные делители частоты с использованием управляющих входов на JK - и D -триггерах :
6-1) К = 12
6-2) К = 14
6-3) К = 24
6-4) К = 25
4.3. Реверсивные счётчики
Реверсивные счётчики (РС) могут быть асинхронными и синхронными. И
те и другие могут быть как двоичными так и с произвольным коэффициентом
пересчёта К. На рисунке показана схема асинхронного двоичного РС без зоны
нечувствительности,т.е. такого РС, который с приходом каждого тактового импульса изменяет своё состояние.
274
275
Асинхронный и синхронный реверсивные счётчики.
Изменение направления счёта в РС происходит в зависимости от величины сигнала N. При N = 1 счётчик считает в прямом направлении, при N = 0 - в
обратном.
Асинхронный РС практически не может быть использован, так как при
изменении направления счёта может изменяться код, записанный в РС.
Например, при переходе от суммирования к вычитанию, если предыдущий
триггер находится в состоянии 1, то сигнал на входе последующего триггера
изменится с 1 на 0, что приведёт к его опрокидыванию.
Этого недостатка лишены синхронные счётчики, так как они изменяют
своё состояние по заднему фронту тактовой частоты,и изменение N в промежутке между фронтами (т.е. на протяжении периода тактовой частоты) не влияет на состояние РС. Пример синхронного двоичного РС приводится на рисунке.
Построение РС без зоны нечувствительности с произвольным К осуществляется методом синтеза счётчиков с использованием управляющих входов. Аналогично можно строить РС с зоной нечувствительности.
Задача 16.
Построить синхронный РС без зоны нечувствительности с К=3 на JKтриггерах.
Решение.
Строим совмещённую таблицу и синтезируем функции возбуждения J2,
K2, J1, K1.
Код состоян.
Q2Q1
0 0
0 1
N=1
J2K2
01
1-
N=0
J1K1
1-1
275
J2K2
10-
J1K1
0-1
276
Код состоян.
Q2Q1
1 0
N=1
J2K2
-1
N=0
J1K1
0-
J2K2
-1
J1K1
1-
С помощью карт Карно получаем :
J2 = Q1’N’ + Q1N = (Q1N’+Q1’N)’
J1 = Q2’N + Q2N’ = (Q2N+Q2’N’)’
Схема счётчика и синтез функций возбуждения представлены на рисунке.
Синхронный реверсивный счётчик с К=3 без зоны нечувствительности.
Задача 17
Построить синхронные РС с зоной нечувствительности на JK-триггерах.
К=3. При R1R2=10 РС должен считать в прямом направлении, при R1R2= 01 - в
обратном, при R1R2=00 РС не изменяет своего состояния, ситуация R1R2=11
является запрещённой.
Решение.
Строим совмещённую таблицу и синтезируем функции возбуждения.
Код сост.
Q2Q1
0 0
0 1
1 0
R1R2 = 10
J2K2
J1K1
011-1
-1
0-
R1R2 = 01
J2K2
J1K1
100-1
-1
1-
R1R2 = 00
J2K2
J1K1
000-0
-0
0-
J2’ = Q1’R2’ + Q1R1’
J1’ = Q2’R1’ + Q2R2’
K2’= R1*R2
K1’= R1’R2’
В этой задаче минимизацию функций вюзбуждения удобнее проводить по
нулям, т.е. получать минимальную форму инверсии функции возбуждения. В
этом случае удаётся применить ИС типа 2И-2ИЛИ-НЕ, что уменьшает количество корпусов ИС и снижает число связей между элементами.
Задание 7.
Построить РС без зоны нечувствительности и с зоной нечувствительно-
276
277
сти на JK-, D - и тактируемых SR - триггерах :
7-1) К = 10
7-2) К = 12
7-3) К =16
4.4.Распределители импульсов.
В инженерной практике большое значение имеет синтез распределителей импульсов (РИ). Под распределителем импульсов понимается устройство,
работа которого описывается периодической логической функцией вида
Qi = Fi(t) , где Qi – i –выход РИ, t – время.
Самым простым решением задачи будет построение РИ на основе тактового генератора (ТГ),счётчика и дешифратора. Однако полученный РИ имеет
ряд недостатков. Одним из них является искажение выходной последовательности в результате возникновения гонок. Избавиться от них можно, введя дополнительный регистр на выходе дешифратора. Однако, в случае построения
быстродействующих РИ требуется минимальное запаздывание, а дополнительный регистр противоречит предъявленным требованиям. Выходом из сложившейся ситуации служит синтез синхронного РИ в соответствии с приводимым алгоритмом. Алгоритм излагается параллельно с синтезом конкретного
РИ.
Пусть необходимо построить РИ, имеющий две выходные последовательности Q1,Q2 с периодом Тс, представленные на рисунке.
Алгоритм синтеза РИ.
1.Определить величину одной дискреты времени D как наибольший общий делитель (НОД) из длительностей импульсов Т1 и интервалов между ними
Т0 для всех Qi:
Т1: 40,20,30,20 (мкс)
Т0: 20,20,20,30 (мкс).
Из исходных данных получим:
D = НОД(Т1,Т0) = НОД(40,20,30,20,20,20,20,30) = 10мкс.
2.Импульсные последовательности Qi разбить на отрезки величиной D.
277
278
Для каждого j – го отрезка записать код вида (Q1*Q2* . . . Qm*)j, где m – количество выходов РИ. Среди m выходных последовательностей не должно быть
взаимно инверсных, т. к. инверсные последовательности получаются автоматически на инверсных выходах элементов памяти. Здесь символ * свидетельствует о том, что переменная может входить как в прямом, так и в инверсном
значении. В примере получены коды
Q1*Q2*: 11,11,11,10,00,01,11,10,00,00.
3. В множестве кодов вида (Q1*Q2* . . . Qm*) подсчитать максимальное
число К одинаковых кодов. Если одинаковых кодов нет, перейти к п. 6.
В нашем примере чаще других повторяется код 11, К = 4.
4. Определить общее количество элементов памяти N по формуле
N = m + ] log2K[
Запись ] log2K[ означает, что, если двоичный логарифм является дробной
величиной, то результат округляется до ближайшего большего целого числа.
N = 2 + ]log2 4[ = 2 + 2 = 4
5. Доопределить m – разрядные коды (Q1*Q2* . . . Qm*) до N – разрядных
таким образом, чтобы среди них не было одинаковых.
Q1Q2Q3Q4: 1100,1101,1110,1000,0000,0100,1111,1001,0001,0010.
6. Используя аппарат синтеза синхронных счётчиков, построить РИ.
278
279
4. 5. Cчётчики на сдвиговых регистрах.
При синтезе синхронных счётчиков или РИ на базе ПЛИС возникает
необходимость построения цифровых устройств с минимальной комбинационной частью за счёт некоторого увеличения количества элементов памяти. Поскольку, например, в МЛЯ Xilinx количество D-триггеров исчисляется сотнями,
то потеря даже десяти триггеров не станет ощутимой. Используя метод Девяткова В. В. , можно построить синхронный стётчик с произвольным коэффициентом деления на сдвиговом регистре(ССдР). Особенностью построения ССдР
является то, что синтезу подлежит функция возбуждения лишь одного разряда
вне зависимости от коэффициента пересчёта.
Алгоритм синтеза ССдР.
1.Выполнить П-разбиение всех состояний счётчика.
2.Записать это разбиение в виде столбца состояний младшего разряда
счётчика.
3. Произвести сдвиг этого столбца вниз на одну позицию и записать его в
виде столбца состояний очередного разряда счётчика.
4. Сравнить построчно полученные коды состояний счётчика. Выполнять
операции 3 и 4 до полного развязывания кодов состояний.
Пример.
Построить ССдР с коэффициентом пересчёта К=17.
Решение.
1.Выполняем П-разбиение 17 состояний ССдР, распределив их между
двумя группами:
0-группа - 1, (4,5,6), (11,12,13,14,15);
1-группа - (2,3), (7,8,9,10), (16,17).
№состояни
я
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Q0Q1Q2Q3Q4Q5
8-й код
D0
011000
101100
110110
011011
001101
000110
100011
110001
111000
111100
011110
001111
000111
000011
000001
30
54
66
33
15
06
43
61
70
74
36
17
07
03
01
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
279
280
16
17
100000
110000
40
60
1
0
Из таблицы истинности получаем:
D0 = Q3’Q4’Q5 + Q2’Q0’Q5’ + Q2Q3’Q4’ + Q0Q1’
D1 = Q0
D2 = Q1
D3 = Q2
D4 = Q3
D5 = Q4
Комбинационная часть ССдР получилась минимальной за счёт увеличения
разрядности регистра на единицу. Рутинная операция развязывания состояний ССдР требует тем не менее внимания, поэтому её вместе с Празбиением и формированием таблицы истинности имеет смысл реализовать
в виде простенькой программы.
program ssr;
uses crt;
type vect=array[1..2048] of word;
var
v0,v1,v :vect;
i,j,k,n:integer;
{---------------------------------------------------------}
procedure pirazb(k:integer;var v0:vect);
{Пи-разбиение для младшего разряда счетчика
с коэффициентом деления k}
var
i,j,ik,jk,l:integer;
begin
l:=1;ik:=1;jk:=2;
repeat
for i:=ik to ik+2*(l-1) do v0[i]:=0;
for j:=jk to jk+2*l-1 do v0[j]:=1;
ik:=jk+2*l;
jk:=ik+2*l+1;
l:=l+1;
until (i>k) or (j>k);
end;
{----------------------------------------------------------}
procedure sdwig(n:integer;var v0,v1:vect);
{Сдвиг исходного вектора вниз на один разряд}
var
i,v0n:integer;
begin
for i:=n downto 2 do v1[i]:=v0[i-1];
v1[1]:=v0[n];
end;
{----------------------------------------------------------}
procedure kley(n:integer;var v0,v1,v:vect);
280
281
var
i:integer;
begin
for i:=1 to n do v[i]:=v1[i]+2*v0[i];
end;
{----------------------------------------------------------}
function razwyaz(k:integer;var v:vect):integer;
label 1;
var
i,j:integer;
begin
razwyaz:=1;
for i:=1 to k-1 do
for j:=i+1 to k do
if v[i] = v[j] then
begin
razwyaz:=0;
goto 1;
end;
1:end;
{----------------------------------------------------------}
procedure formtbl(k:integer;var v0,v:vect;var n:integer);
{Развязывание кодов счётчика.
k - коэффициент пересчёта,
v0 - исходный вектор,
v1 - результирующий вектор кодов состояний счетчика,
n - количество разрядов в коде состояний счетчика,
v1,v2 - промежуточныe векторы,
f - флаг развязки.
}
var
f,i:integer;
v1,v2:vect;
begin
n:=1;
for i:=1 to k do v2[i]:=v0[i];
repeat
sdwig(k,v0,v1);
kley(k,v2,v1,v);
n:=n+1;
f:=razwyaz(k,v);
for i:=1 to k do
begin
v0[i]:=v1[i];
v2[i]:=v[i];
end;
until (f=1) or (n>16);
end;
{================================================}
281
282
begin
clrscr;
writeln('г=======================================¬');
writeln('¦ Синтез счетчиков на сдвиговых
¦');
writeln('¦ регистрах.Коэффициент деления <= 2048
¦');
writeln('¦
SSR.pas
¦');
writeln('¦
Лобанов В.И. 17-03-1999
¦');
writeln('L=======================================-');
writeln;
write('Введите k<=2048 ');
readln(k);
writeln;
pirazb(k,v0);
for i:=1 to k do
write(v0[i]:2);
writeln;
formtbl(k,v0,v,n);
for i:=1 to k do write(v[i]:8);
writeln;
if n>16 then writeln ('Переполнение разрядной сетки');
writeln('n = ',n:2);
writeln('Нажмите Enter ');
readln;
end.
Синтез счетчиков на сдвиговых регистрах(ССР) по программе ssr.pas дал
такие результаты:
Коэффициент деления: 10 20
30
40
50
60
Разрядность ССР :
4 8
10
12
14
16
Результаты работы этой программы убедительно доказывают неэффективность синтеза РИ на сдвиговых регистрах: слишком быстро растёт объём
памяти.
Глава пятая.
КОНЕЧНЫЕ АВТОМАТЫ.
5.1 Понятие о конечном автомате. Автоматы Мили и Мура.
Конечным автоматом называется устройство, задаваемое конечным
множеством из элементов :
1) множество входных сигналов (входной алфавит) х = { х1, ... , хf, ... х } ;
2) множество состояний (алфавит состояний) А = { a0,, ... , am, ... aм };
3) множество выходных сигналов (выходной алфавит) у = { у1, ... , уg , ... уG } ;
282
283
4) функция переходов -  ;
5) функция выходов -  ;
6) начальное состояние автомата - а0.
Под состоянием понимается одна из множества отличных друг от друга
ситуаций, в которой может оказаться конечный автомат. Например, счётчик с
К=5 имеет 5 различных состояний, реверсивный счётчик с К=10 имеет 10 различных состояний.
В общем виде структура конечного автомата представлена на рисунке.
Из него видно, что конечный автомат состоит из комбинационной схемы КС,
которая формирует выходной алфавит у и функции возбуждения  , и элементов памяти ЭП с выходами  .
Обобщённая схема конечного автомата.
Функции возбуждения описывают те сигналы, которые необходимо подать на управляющие входы элементов памяти.
На практике наибольшее распространение получили автоматы Мили и
Мура.
Автомат Мили задаётся уравнениями :
a(t+1) = (a(t), x(t)) ;
у(t) = (a(t), x(t)) ;
Автомат Мура описывается соотношениями:
a(t+1) = (a(t), x(t) ) ;
у(t) = (a(t)).
Из законов функционирования автоматов Мили и Мура видно, что они
отличаются только формированием выходного алфавита. Структурные схемы
автоматов Мили и Мура представлены ниже.
283
284
Схемы автоматов Мили и Мура.
284
285
5.2. Методы задания автоматов. ГСА.
Любой конечный автомат может быть представлен с помощью направленных графов, таблиц переходов и выходов, граф-схем алгоритмов (ГСА), логических схем алгоритмов (ЛСА) или матричных схем алгоритмов (МСА). Этот
перечень можно было бы продолжить.
Наиболее наглядной формой представления автомата является ГСА.
ГСА - ориентированный связный граф, содержащий вершины четырёх
типов: начальную, условную, операторную и конечную.
Условные обозначения вершин ГСА.
ГСА удовлетворяет следующим требованиям:
1. Содержит конечное число вершин.
2. Имеет одну начальную и одну конечную вершины.
3. Входы и выходы вершин соединяются дугами, направленными от выхода ко входу.
4. Каждый выход соединён только с одним входом.
5. Любой вход соединяется по крайней мере с одним выходом.
6. Для любой вершины графа существует хотя бы один путь к конечной
вершине.
7.В каждой условной вершине записывается один из элементов множества логических условий (входной алфавит).
х = { x1, .... , xf, ... xF}.
8. В каждой операторной вершине записывается оператор уt - подмножество множества выходных сигналов у.
у = { у1, ... , уg , ... уG }. Допускается уt = .
Наиболее наглядно алгоритм работы КА описывается с помощью графсхемы алгоритма (ГСА). Однако рисование ГСА – утомительный процесс, поэтому иногда используется логическая схема алгоритма (ЛСА). Ниже приведена ЛСА работы контроллера для установки режимов синтезатора частоты
(СЧ) AD9854. Здесь использованы следующие обозначения:
X1 – UDCLK с выхода СЧ,
X2 – «укороченный» ГИП,
Y1 – СБРОС для СЧ,
Y2 – разрешение записи в СЧ (EWR),
Y3 – UDCLK для фиксации записанных данных в СЧ.
285
286
A0(Y1)A1(Y1)A2(Y1)A3(21/00,Y2)A4(22/00,Y2)A5A6(Y3)A7(1D/14,Y2)A8(1E/46,Y2)
A9(1F/C6,Y2)A10(20/00,Y2)A11A12(Y3)A13(1F/03,Y2)A14A15(Y3)A16(04/1A,Y2)
A17(05/E1,Y2)
A18(06/47,Y2)
A19(07/AE,Y2)
A20(08/14,Y2)
A21(09/7B,Y2)A22A23(Y3)
1 A24(11/K4,Y2) A25(12/K3,Y2) A26(13/K2,Y2) ) A27(14/K1,Y2) ) A28(15/K0,Y2)A29
A30(Y3) A31(1A/ V2,Y2) A32(1B/ V1,Y2) A33(1C/ V0,Y2) A34A35(Y3) 2 A36x12x2
1 A0(Y1)
В скобках рядом с состояниями указаны выходные сигналы, адреса и данные для СЧ.
286
287
5.3. Синтез конечных автоматов.
Различают два метода синтеза: эвристический и формальный. Эвристический метод - метод проб и ошибок, но зачастую он приводит к весьма экономным решениям. Единственный его недостаток заключается в том, что для
получения решения эвристическим методом требуется длительное время работы высококвалифицированных специалистов. При таком подходе в век НТР
достаточно сложное устройство может морально устареть прежде, чем закончится его эвристическая разработка.
При формальном методе синтеза решение задачи получается чрезвычайно быстро, сроки разработок существенно сокращаются, а саму формальную разработку можно переложить либо на ЭВМ, либо на технический персонал.
Не следует считать, что формальный метод исключает творческий этап в
разработке цифрового устройства. От того, насколько остроумна была идея,
т.е. алгоритм устройства, целиком и полностью зависит сложность схемы прибора, изделия. Поэтому правильнее считать формальный метод формально эвристическим.
Обычно синтез конечных автоматов (цифровых устройств, микропрограммных автоматов) осуществляется по следующей схеме.
1. Проработка идеи реализации конечного автомата, выявление отдельных узлов и связей между ними. Составление структурной схемы автомата.
2. Составление ГСА, разметка ГСА.
3. Составление по ГСА обратной структурной таблицы.
4. Кодирование состояний. Для асинхронного автомата применяется противогоночное кодирование, для синхронного применяется кодирование, обеспечивающее минимизацию комбинационной части устройства.
5. Построение принципиальной схемы по обратной структурной таблице
автомата.
Кстати,именно этот формальный метод использует автор уже более четверти века как для разработки конечных автоматов на базе цифровых интегральных микросхем,так и ,введя в него некоторые дополнения, для синтеза
сложных релейных схем.Возврат к релейным схемам был связан с высокой помехоустойчивостью и радиационной стойкостью реле.Особенно это стало актуальным после Чернобыля.
Каждый из 5 пунктов требует обстоятельного разговора. Попытаемся понять суть этих вопросов на примере построения достаточно простых конечных
автоматов.
Задача 18.
Очистить от дребезга входной сигнал х, подача которого осуществляется
тумблером.
Решение.
Очистку от дребезга можно осуществить, например, с помощью синхронного конечного автомата (КА). Задача КА будет заключаться в том, чтобы по
заднему фронту тактовой частоты f выходной сигнал у принимал то же значение, что и входной сигнал х. В этой ситуации выходной сигнал не изменится на
протяжении всего периода тактовой частоты, как бы не менялся при этом х1.
287
288
Для того, чтобы дребезг входного сигнала не проявлялся на выходе, необходимо иметь тактовую частоту с периодом, превышающим длительность дребезга.
Так как дребезг тумблера длится не более 2 мс, то период тактовой частоты
должен быть не менее 2 мс. Структурная схема автомата получилась простой.
Идею обработки входного сигнала х и выдачи очищенного от дребезга
выходного сигнала у можно выразить с помощью временной диаграммы.
Из временной диаграммы видно, что при первом же совпадении заднего
фронта с х=1 автомат должен выдать у = 1, а при совпадении заднего фронта с
х = 0 автомат должен выдать у = 0.
2. Опишем логику работы автомата, т.е. зададим автомат, с помощью
ГСА . Разметим ГСА для автомата Мура, для чего рядом с каждой операторной
вершиной проставим идентификатор состояний, причём начальная и конечная
вершины ГСА отмечаются как одинаковые состояния. В начальной стадии КА
находится в начальном состоянии а0 (начальная вершина) и проверяет наличие
сигнала х. Если х=0, то КА не меняет своего состояния, что отображено связью
х=0, выходящей из первой условной вершины и входящей в конечную вершину,
которая отмечена начальным состоянием а0. В начальной и конечной вершинах
нет ни одного оператора, т.е. у=0. Если х=1, то КА оказывается в новом состоянии а1 по связи х=1, выходящей из первой условной вершины и входящей в
операторную вершину с оператором у. Если после того, как КА оказался в состоянии а1, входной сигнал х к моменту прихода заднего фронта тактовой частоты не изменил своего значения, т.е. х=1, то КА останется в состоянии а1 и
будет выдавать на своём выходе сигнал у=1 (связь из второй условной вершины). В том случае, если приход заднего фронта тактовой частоты совпадает с
х=0, то КА вернётся в начальное состояние а0. Таким образом, составление,
разметка и проверка ГСА работы КА закончены, так как мы убедились, что выходной сигнал у по заднему фронту тактовой частоты принимает то же значение, что и входной сигнал х.
288
289
3. Составим для конечного автомата обратную структурную таблицу. Обратная структурная таблица показывает, при каких входных сигналах и из каких
состояний осуществляется переход в данное состояние и какие выходные сигналы выдаются при этом переходе. В столбце состояние перехода (СП) для
автомата Мура указывается не только состояние перехода, но и выходной сигнал, который соответствует данному состоянию.
Исх.сост.
(ИС)
a0
a1
a0
a1
Код исх. сост.

0
1
0
1
Вх.сигн.
x
0
0
1
1
Сост.перех.
(СП)
a0
(-)
a1
(у)
Код СП
(КСП)
0
0
1
1
Функ.возб.
JK
0-1
1-0
4. Так как синтезируемый конечный автомат имеет только 2 состояния, то
его можно построить на одном элементе памяти.
n = ]log2N[,
где n - количество элементов памяти,необходимое для реализации КА,
имеющего N состояний.
n = ] log22[ = 1
Таким образом, коды состояний будут одноразрядными. Так как автомат
очень простой, то кодирование может быть произвольным. Кодирование состояний приведено в таблице 29. Выбираем в качестве элемента памяти JKтриггер.
Столбцы для функций возбуждения заполняются в соответствии с таблицей входов конкретного элемента памяти (в данном случае JK-триггера) для
обеспечения перехода из исходного состояния в состояние перехода.
Функции возбуждения синтезируются как логические функции, зависящие
от кода исходного состояния и входного сигнала.
J = x,
K = x’
Выходные функции зависят только от кода состояния перехода (для автомата Мура). Поэтому у = , т.е. выходной сигнал формируется на прямом выходе JK-триггера. Синтез функций возбуждения и принципиальная схема конечного автомата приводятся на рисунке.
Задачу очистки от дребезга можно было решать на любом элементе па-
289
290
мяти. В частности для D-триггера мы получили бы более компактное решение,
а именно :
D=x,
у=
Автомат очистки от дребезга.
290
291
5.4 Кодирование состояний и сложность комбинационной схемы.
При синтезе счётчика с К=5 мы видели, что сложность комбинационной
части счётчика зависит от кодирования состояний. Это утверждение справедливо для всего класса конечных автоматов.
В [3] приводятся два простых алгоритма оптимального кодирования состояний конечного автомата. Эти алгоритмы хорошо работают при синтезе автоматов, насчитывающих от нескольких десятков до нескольких сотен функций
возбуждения и несколько сотен переменных, когда классические методы минимизации булевых функций оказываются неприемлемыми.
Алгоритм
триггерах.
оптимального
кодирования состояний
автомата
на
D-
1. Каждому состоянию автомата Qm (m=1, ... , M) ставится в соответствие
целое число Nm, равное числу переходов в состояние аm.
2. Числа N1, ... , Nm, ... Nм сортируются по убыванию.
3. Состояние Qt с максимальным Nt кодируется кодом (00....0).
4. Следующие I состояний (I - число элементов памяти) в упорядоченном
в п.2 списке кодируется кодами, в которых используется одна единица в какомлибо разряде, а во всех остальных разрядах нули.
5. Для кодирования следующих I состояний используются коды, содержащие две единицы, затем три единицы и т.д., до тех пор, пока все состояния
не будут закодированы.
Суть этого алгоритма заключается в том, что мы стремимся использовать минимальное количество единиц в кодах тех состояний, переход в которые происходит чаще всего. Таким образом, функции возбуждения реже принимают значение 1, что приводит к уменьшению количества термов. Так как
классические методы минимизации при синтезе сложных автоматов не применяются, то по алгоритму кодирования мы получаем коды состояний, обеспечивающие минимальную комбинационную часть конечного автомата.
Для конечных автоматов, построенных на триггерах с раздельными входами, применяется алгоритм кодирования состояний, минимизирующий суммарное число изменений состояний элементов памяти на всех переходах автомата. Соседнее кодирование является частным случаем кодирования состояний, получаемым по указанному алгоритму.
Задача 20.
Построить 10-разрядный кодовый замок. который открывается последовательным нажатием двух определённых клавиш. Предусмотреть защиту от
посторонних. Замок должен открываться кодом 19.
Решение.
Построим замок, используя автомат Мили. ГСА кодового замка и её разметка представлены на рисунке. В этой ГСА использованы следующие обозначения :
х0 - не нажата ни одна из клавиш
х1 - нажата только клавиша №1
х2 - нажата только клавиша №9
х3 - снятие сигнализации
291
292
у1 - включить соленоид
у2 - включить сирену
По ГСА строим обратную структурную таблицу.
292
293
ГСА кодового замка.
СП
КСП
Вых.
321 Входы
000
x0x1’
a0
000
010
x2’
000
100
x1
000
000
x1
a1
001
001
x1
001
001
x1’
a2
011
011
x0
011
011
x2x0’
a3
010
у1
010
x2
010
у1
000
x1’x0’
a4
100
у2
011
x0’x2’
100
у2
100
x3’
100
у2
После применения алгоритма оптимального
раздельными входами получаем коды :
ИС
a0
a3
a4
a0
a1
a1
a2
a2
a3
a0
a2
a4
a0 - 000
293
J3K3
J2K2
J1K1
0000-1
001
0000100-0
01-0
0-0
-0
0-0
-1
0-0
о1001-1
-1
-0
00кодирования для триггеров с
294
a1 - 001
a2 - 011
a3 - 010
a4 - 100
После минимизации получим функции возбуждения :
J3 = 2’1’x1’x0’ + 21x2’x0’ ;
K3 = x3 ;
J2 = 1x1’ ;
K2 = 1’x2’ + x2’x0’ ;
J1 = 3’2’x1 ;
K1 = 2x0’ .
Выходные функции для автомата Мили :
у1 = 2x2x0’ + 21’x2 ;
у2 = 3’2’1’x1’x0’ + 31x2’x0’ + 3x3’ ;
Если бы кодовый замок был построен на автомате Мура, то выходные
функции приняли бы вид :
у1 = 21’
у2 = 3
Далеко не всегда автомат Мура даёт более компактные решения, чем
автомат Мили. Например, если часть ГСА имеет вид, представленный на нижеприведённом рисунке, то реализация этой ГСА с помощью автомата Мили позволит уменьшить число состояний, а значит, и количество элементов памяти.
294
295
5.5 . Гонки и противогоночное кодирование.
При работе автомата могут появиться гонки, вызванные разбросом параметров элементов памяти. Задержки, вносимые триггерами, имеют различные значения, поэтому одни элементы памяти изменяют свои состояния быстрее, чем другие. Такие состязания могут привести, например, к тому, что переход из состояния 011 в состояние 110 может произойти при входном сигнале х
двумя путями : 011-010-110 или 011-111-110.
Если из состояний 010 и 011 есть переход под действием сигнала х в состояние 110, то такие состязания называются некритическими, если же таких
переходов нет, то состязания называются критическими. При критических состязаниях работа автомата нарушается. Считается, что некритические состязания не опасны, но это не совсем так. Автомат, попадая в промежуточные состояния ( в нашем примере это состояния с кодами 010 и 111 ), может сформировать короткий выходной сигнал, которого окажется вполне достаточно,
например для обнуления какого-либо функционального узла, т.е. работа автомата будет искажена.
Следовательно существует проблема защиты как от критических, так и от
некритических гонок.
Существует несколько способов защиты от гонок, мы рассмотрим только
один из них - противогоночное кодирование.
Противогоночное кодирование заключается в развязывании тех пар состояний, для которых осуществляется переход под действием одного и того же
сигнала. Пусть (, ) и (, ) - две пары двоичных кодов. Пары (, ) и (, )
называются развязанными, если некоторый разряд кода принимает одно значение на паре (, ) и противоположное - на паре (, ).
Мацевитный Л.В. и Денисенко Е.Л. доказали следующую теорему: в автомате, состояния которого закодированы двоичными кодами конечной длины,
гонки отсутствуют тогда, когда для двух любых переходов (am, as) и (ak, al), as 
al . происходящих под действием одного и того же входного сигнала, пары кодов состояний развязаны. Авторы приводят алгоритм кодирования.
295
296
Алгоритм противогоночного кодирования
1. Выписать все пары переходов, подлежащие развязыванию.
2. Закодировать первую пару кодом 00, вторую - 11.
3. Доопределять следующие пары таким образом, чтобы получались коды 0011 или 1100.
4. Проверить развязку состояний и повторным применением алгоритма
добиться минимальной длины кода.
Суть этого алгоритма заключается в том, что, развязывая состояния, мы
исключаем критические состязания.
Задача 21.
Осуществить противогоночное кодирование для счётчика с К=1,5. Переходы, подлежащие развязыванию, заданы массивами М1 и М2.
Решение.
М1 (под действием сигнала х’)
M2 (под действием сигнала х)
( а0а0 )
( а0а1 )
( а5а0 )
( а2а3 )
( а1а2 )
( а4а5 )
( а2а2 )
( а3а4 )
Развязывание пар переходов в М1 начнём с первого перехода (а0а0) . Пары (а0а0) и (а5а0) развязывать не нужно, так как состояния переходов совпадают. Переходим ко второй паре. Вводим переменную 1 и образуем по этой переменной четвёрку (0011) для состояний а5, а0, а1, а2. Рассматриваемая пара
переходов развязана.
Состояния
а0
а1
а2
а3
а4
а5
1
0
1
1
0
Из таблицы видно, что развязана также пара (а5а0) и (а2а2). Приступаем к
развязыванию пары (а5а0), (а3а4).
Развязывание пары (а5а0), (а3а4).
Состояния
а0
а1
а2
а3
а4
а5
1
0
1
1
1
1
0
296
297
Из таблицы видно, что для развязывания этих пар нужно закодировать
(а3а4) кодом (11).
Пара (а1а2), (а2а2) развязывания не требует. Переходим к развязыванию
пары (а1а2), (а3.а4). Развязывание этой пары отражено в следующей таблице.
Развязывание пары (а1а2), (а3а4).
Состояния
12
а0
0а1
10
а2
10
а3
11
а4
11
а5
0Из таблицы видно, что пришлось добавить переменную 2. Добавляя переменную 3, развязываем оставшиеся пары (а0а1), (а2а3) ; (а0а1), (а4а5) и (а2а3),
(а4а5).
Развязывание пар (а0а1), (а2а3) ;
(а0а1), (а4а5) и (а2а3), (а4а5).
Состояния
а0
а1
а2
а3
а4
а5
123
000
100
101
111
110
010
Задача 22
Построить тактируемый потенциалом D-триггер.
Решение.
1. Строим ГСА, разметку ведём для автомата Мура.
В ГСА использованы обозначения :
x1 - тактовый сигнал
x2 - выходной сигнал на входе
y - выход D - триггера
297
298
ГСА и схема тактируемого потенциалом D-триггера.
2. Строим обратную структурную таблицу автомата.
ИС
а0
а1
а0
а1

0
1
0
1
СП
а0
(-)
а1
(у)
КСП
0
0
1
1
Вх.
х1’ + х2’
х1х2’
х1х2
x1’+x1x2
SR
001
10
-0
у = а1 = 
3. После минимизации получаем функции возбуждения :
S = x1x2 ; R = x1x2’ = x1x2’ + x1x1’ = x1(x2’ + x1’) = x1(x1x2)’
Задача 23
Построить синхронный JK-триггер на асинхронных SR-триггерах.
Решение.
Будем строить JK-триггер, тактируемый задним фронтом. Триггер имеет
два состояния : 0 и 1, но в силу того, что изменение этих состояний происходит
с приходом заднего фронта тактовой частоты, каждому выходному состоянию
соответствуют 2 промежуточных. Пусть х3 - сигнал тактовой частоты, тогда при
х3=0 триггер устанавливается в одно из выходных состояний, при х3=1 триггер
переходит в состояние подготовки изменения выхода. Таким образом, конечный автомат, реализующий функции синхронного JK-триггера, должен иметь 4
состояния.
1. Строим ГСА с разметкой для автомата Мура.
В ГСА использованы обозначения :
298
299
х1 - сигнал на входе J
х2 - сигнал на входе К
х3 - тактовая частота
у - выход JK-триггера
ГСА заднефронтового JK-триггера.
2. Строим обратную структурную таблицу автомата
ИС
x3x2x1
СП
КСП
S2R2
21
а0
00
0-а0
00
0а3
10
01(-)
00
01
а1
01
0-0
00
0а0
00
1-а1
01
0а1
01
1-(-)
01
0а1
01
0-1
а2
11
10
а2
11
0-(у)
11
-0
299
S1R1
0001
10
-0
-0
-0
300
а3
а2
а3
10
1 1
10
001-1--
11
10
10
а3
(у)
-0
-0
-0
10
01
0-
3. После минимизации получим :
у = а2 + а3 = 11 + 10 = 1 - = 2
S2 = 1x3’x1 ;
R2 = 1’x3’x2
S1 = 2’x3 + 2x3’x2’
R1 = 2’x3’x1’ + 2x3
Задача 24
Построить автомат, очищающий от дребезга входной сигнал х1. Длительность дребезга не более 2 мс. Передний фронт выходного сигнала формировать с задержкой, не превышающей 20 мкс. Задержка для заднего фронта не
более 8 мс. В нашем распоряжении частоты - 100 Кгц, 250 Гц, 500 Гц, 1 Кгц, 2
Кгц.
Решение.
Строим синхронный автомат, Так как задержка по переднему фронту не
должна превышать 20 мкс, то для тактирования используем частоту f =100 Кгц.
В силу того, что длительность дребезга не превышает 2 мс, используем в качестве измерителя этого интервала частоты - 250 Гц, 500 Гц, 1 Кгц и 2 Кгц.
1. Строим ГСА с разметкой для автомата Мура.
В ГСА использованы обозначения :
х1 - входной сигнал
х2 - сигнал с частотой 250 Гц
х3 - логическое произведение сигналов с частотами 250 Гц, 500 Гц, 1 Кгц
и 2 Кгц.
у - выходной сигнал.
Данная ГСА не является единственной. Вероятно, это и не лучшее решение. Но полученная ГСА не имеет ничего лишнего.Предлагается самостоятельно прорисовать временные диаграммы работы конечного автомата по заданной
ГСА для лучшего понимания процесса очистки от дребезга.
300
301
ГСА антидребезгового автомата.
2. Строим обратную структурную таблицу.
ИС
а0
а2
а0
а1
а1
а2
а1
а2
21
10
01
10
00
00
01
00
01
x3x2x1
--0
110
--1
--1
-10
--1
-00
0-0
СП
а0
(-)
а1
КСП
10
10
00
00
00
00
01
01
(у)
а2
(у)
J2K2
-0
1-1
00000-
J1K1
0-1
000-1
1-0
После минимизации получим :
у = 2’
J2 = 1x3x1’
K2 = x1
J1 = 2’x2’x1’
K1 = x3 + x1
Задача 25
Построить счётный триггер на асинхронных SR-триггерах.
Решение.
Прежде всего необходимо отметить, что Варшавский и Поспелов в своей
монографии «Апериодические автоматы» отрицают возможность формального
синтеза счётного триггера на асинхронных элементах памяти.
1. Строим ГСА, описывающую работу счётного триггера. Размечаем ГСА
301
302
для автомата Мура.
В ГСА использованы следующие обозначения :
х - входной сигнал
у - выход счётного триггера
ГСА счётного триггера.
2. Строим обратную структурную таблицу.
ИС
а0
а3
а0
а1
а1
а2
а2
а3
21
00
10
00
01
01
11
11
10
x
0
0
1
1
0
0
1
1
СП
а0
КСП
00
00
01
01
11
11
10
10
а1
а2
(у)
а3
(у)
S2R2
001
0010
-0
-0
-0
После минимизации получаем :
у = а2 + а3 = 2
S2 = 1x’ ;
R2 = 1’x’
S1 = 2’x ;
R1 = 2x
Схема счётного триггера представлена на рисунке.
302
S1R1
0010
-0
-0
-0
01
0-
303
Счётный триггер.
При синтезе цифрового фазового детектора(ЦФД) возникла задача слежения за фазой двух сигналов с частотой 10 МГц с точностью не хуже 2%. Поскольку запаздывание элементов составляло не более 2 нс, а тактовых частот
выше 10 МГц не было в распоряжении разработчика, то пришлось строить
асинхронный МПА на быстродействующей ПЛИС EP1K10TC100-1.
Первоначально ГСА МПА ЦФД состояла всего из 5 операторных вершин,
но в процессе противогоночного, соседнего кодирования пришлось добавить 6ю вершину. Этого оказалось мало: тупиковые, неиспользуемые состояния приносили немало хлопот, появляясь время от времени при симуляции ЦФД. Пришлось их тоже ввести в основной цикл ГСА. ЦФД работает без замечаний, если
разность фаз сравниваемых сигналов превышает 2 нс/100 нс * 360 = 7,2 градуса. В качестве элементов памяти были использованы быстродействующие SRтриггеры со сбросом.
303
304
304
305
Задание 8.
8-1. Построить тактируемый потенциалом JK-триггер на SR-триггерах.
8-2. Построить тактируемый фронтом D-триггер на SR-триггерах.
8-3. Построить десятиразрядный кодовый замок, срабатывающий при последовательном нажатии 3-х кнопок. Предусмотреть защиту от постороннего.
При синтезе использовать как JK-триггеры, так и D-триггеры, тактируемые
фронтом.
5.6. Синтез нечётных и дробных делителей частоты со скважностью 2.
Довольно часто приходится строить делители частоты с нечётным или
дробным(вида n+0,5) коэффициентом деления. При этом, как правило, требуется обеспечить на выходе скважность S = 2. Синхронные элементы памяти в
этом случае не годятся: приходится коммутировать фронты входной частоты.
Это не всегда удобно. Выход из ситуации заключается в применении SR – триггеров.
Для этого создаётся ГСА или ЛСА и синтезируется конечный автомат на
SR – триггерах. При этом обязательно выполняется противогоночное кодирование. Причём не просто противогоночное,а соседнее для дробных делителей
частоты (ДДЧ) по следующему авторскому алгоритму. Суть алгоритма обусловлена тем, что количество состояний ДДЧ при S = 2 обязательно чётно.
305
306
Алгоритм «Комета» соседнего кодирования состояний ДДЧ.
1. Разбить всю группу состояний ДДЧ пополам.
2. Закодировать первую половину состояний ДДЧ кодами Грэя.
3. Закодировать вторую половину состояний ДДЧ зеркальным отражением кодов первой половины, заменив старший разряд кода с 0 на
1.
Для ДДЧ с Кд = 1,5 и скважностью 2 имеем следующее кодирование 000,
001,011 – 111, 101, 100 или 0-1-3-7-5-4. Такие же коды состояний имеет и делитель на 3 с S = 2.
Задача 6.6.1.
Построить делитель частоты с Кд = 1,5 и скважностью 2.
Решение.
Решение иллюстрируется с помощью САПР MAX+PLUS II.
На нижеприведённых рисунках представлен асинхронный делитель частоты с коэффициентом деления, равным 1,5.
306
307
Задача 6.6.2.
Построить делитель частоты с Кд = 3 и S = 2.
307
308
308
309
309
310
310
311
5. 7. Синтез релейных автоматов.
Релейные автоматы (РА) и релейные схемы в наше время воспринимаются как анахронизм. Однако, после аварии на Чернобыльской АЭС выяснилось, что эта техника может работать там, где спотыкаются микропроцессоры.
Кроме того,оказалось,что не только большие интегральные схемы(БИС), но и
микросхемы среднего уровня интеграции(СИС) подвержены сбоям при воздействии жёстких промышленных помех. Даже при выполнении всех помехозащитных мероприятий сбой в компьютерной системе управления в сентябре 1998 г.
вывел из строя отечественную ракету с зарубежными спутниками на борту.
Инерционные релейные схемы обладают повышенной помехоустойчивостью.
Синтез релейных автоматов имеет некоторые особенности по сравнению с
синтезом МПА на интегральных микросхемах. Рассмотрим синтез РА на простых примерах.
Задача 26.
Построить РА «кнопочной станции». При нажатии кнопки «Пуск»(x1) РА
выдаёт сигнал управления Y, который может быть снят лишь после нажатия
кнопки «Стоп»(x2). Одновременное нажатие кнопок «Пуск» и «Стоп» недопустимо.
Решение.
Построим ГСА для «кнопочной станции».
ГСА «кнопочной станции».
ГСА для РА тривиальна. По ней построена обратная таблица переходов.
ИС
a1
a0
a0
a1

1
0
0
1
x2x1
1-0
-1
0-
СП
a0
a1
P
0
0
1
1
311
312
Поскольку ситуация x2x1 недопустима, то при различных доопределениях
можно получить как минимум два варианта функции возбуждения P:
1) P = x1 + x2’;
2) P = ( + x1)x2’.
Право на жизнь имеют оба варианта, но второй для релейщиков почему-то оказался более предпочтительным. В данном примере синтез РА ничем не отличается от синтеза МПА на базе D-триггеров, хотя автомат в данном
случае является асинхронным. Однако при разработке более сложных релейных схем необходимо учитывать возможность проявления гонок и появления
генераторного режима. Поэтому необходимо прежде всего обеспечить противогоночное кодирование. Кроме того,во избежание возникновения генераторного
режима нужно при синтезе функций возбуждения так располагать прямоугольники Карно в КК,чтобы они все взаимно перекрывали друг друга, чтобы не было
ни одного автономного прямоугольника.
Для построения помехоустойчивых РА необходимо использовать достаточно инерционные реле с временем переключения порядка 20 - 100 мс. Автор
для этой цели применял телевизионное реле КУЦ-1М.Можно строить РА на
электростатических реле, которые выпускаются в стандартных корпусах интегральных схем(ИС). Обычно синтез МПА ведётся на основе синхронных элементов памяти. Весьма желательно иметь такой элемент и для релейных схем.
Для упрощения синтеза РА построим синхронный переднефронтовой релейный D-триггер. Далее этот триггер можно будет использовать в качестве стандартного модуля, синтезируя лишь функции возбуждения и сняв проблему генераторного режима.Построим ГСА переднефронтового D-триггера.
ГСА переднефронтового D-триггера.
312
313
По ГСА переднефронтового D-триггера строим обратную таблицу переходов.
ИС
a0
a3
a0
a1
a2
a1
a2
a2
a0
a3
10
00
10
00
01
11
01
11
11
00
10
x2x1
-0
-0
11
-1
11
-0
-0
01
01
-1
СП
a0
a1
(Y)
a2
(Y)
a3
P1P2
00
00
01
01
01
11
11
10
10
10
После минимизации с учётом перекрытия прямоугольников Карно получим:
P1 = 10x2’ + 0x1’ + 0’x2’x1 + 1x2’x1 + 10’x1
P0 = 1’0 + 0x1’ + x2x1(1’ + 0)
Для автоматического обеспечения перекрытия прямоугольников Карно
предлагается алгоритм синтеза РА на базе SR-триггеров.
Алгоритм синтеза РА на базе SR-триггеров.
1. Провести формальный синтез КА на SR-триггерах, обеспечив обязательное противогоночное кодирование.
2. Заменить все SR-триггеры на эквивалентные релейные схемы, имея
в виду, что функция возбуждения реле имеет вид:
P = (S+)R', где
P - вход реле,
S, R - входы SR-триггера,
 - выход реле(нормально-разомкнутые контакты реле).
Для иллюстрации этого алгоритма построим РА кнопочной станции:
ИС
x2x1
СП
P
SR

a1
1
1a0
0
01
a0
0
-0
0
0a0
0
-1
a1
1
10
a1
1
01
-0
Cинтез функций возбуждения с учётом недопустимости ситуации x2x1 =
11 позволяет получить следующие результаты:
S = x1
R = x2
P = (x1+)x2'
Т.е. получен один из двух вариантов рабочей функции возбуждения
РА.
313
314
Поскольку от воздействия помех необходимо защищать в первую очередь элементы памяти,то всю комбинационную часть РА можно выполнить на
ПЛМ или ППЗУ,т.е. РА может быть «гибридным».Наличие электровакуумных(ламповых) триггеров не оставляет сомнений в том,что формальный синтез
МПА можно распространить и на этот класс радиационностойких приборов.
314
315
5.8.Синтез ГСА по функциям возбуждения.
В СССР в 80-е годы к сожалению возобладала технология «цельнотянутого» проектирования. Автор всегда был ярым противником такой «технологии». Если автомат построен эвристически, то «вскрыть» его значительно проще, чем формальносинтезированный. Но иногда такое вскрытие формального
автомата просто необходимо: например, при утрате ГСА даже собственных
разработок МПА. Впервые предлагается алгоритм «РоссЭко» синтеза ГСА по
известным функциям возбуждения. Функции возбуждения легко получить из
принципиальной схемы МПА.
Алгоритм «РоссЭко».
1.Занести все функции возбуждения в карты Карно так, чтобы горизонтали(строки КК) были отмечены кодами состояний МПА , а вертикали - входными
сигналами.
2.Заполнить таблицу прямых переходов (ТПП) таким образом,чтобы
одинаковым исходным состояниям и одинаковым входным сигналам соответствовало одинаковое состояние перехода.
3.По ТПП построить ГСА.
Пример.
Даны функции возбуждени РА:
P1 = 0x1’ + 10 + 1x7
P0 = 1’x7 + 1’0 + 0x7
Найти ГСА.
Решение.
Построим КК по известным функциям возбуждения.Из КК видно,что из
состояния a0 = 00 по сигналу x7’ осуществляется переход в состояние
a0.Аналогично,из a0 по x7 выполняется переход в a1 и т.д. Заполним ТПП.
ИС
a0
a0
a1
a1
10
00
00
01
01
x7x2x1
0-1---1
--0
СП
a0
a1
a1
a2
P1P0
00
01
01
11
a2
a2
a3
a3
11
11
10
10
-0-10-1--
a3
a2
a0
a3
10
11
00
10
315
316
Построение ГСА по ТПП не вызывает затруднений. Кроме основного своего
назначения ТПП позволяет проверить корректность синтеза функций возбуждения по заданной ГСА.
316
317
Глава шестая
МИКРОКОНТРОЛЛЕРЫ
6.1. Простой промышленный микроконтроллер
В настоящее время отечественная промышленность выпускает широкий
ассортимент микроконтроллеров (МК) для управления технологическими процессами. Среди них наиболее популярными являются микропроцессорные
приборы семейства «ПРОТАР» производства Московского завода тепловой
автоматики и «ЛОМИКОНТ», «РЕМИКОНТ» разработки НИИТеплоприбор и
многоцелевые контроллеры КР-300 серии «КОНТРАСТ»(г.Чебоксары). Эти
микроконтроллеры обладают большими функциональными возможностями:
позволяют обрабатывать аналоговые и цифровые входные сигналы, обеспечивают многоканальное управление. Все эти неоспоримые достоинства весьма
существенны при решении проблем управления в сложных технологических
системах. Однако применение вышеназванных МК оказывается нерентабельным при решении задач управления простыми технологическими процессами.
Таким образом, оказался неприкрытым класс простых производств так
называемого малого бизнеса, где требуется простой, надёжный, легко перепрограммируемый (т.е. фактически универсальный) и, что не менее важно, дешёвый промышленный микроконтроллер. Исходя из практики разработки и 5летней эксплуатации промышленных контроллеров данного класса, были
сформулированы следующие технические требования :
1. Количество управляющих входов
8
2. Количество каналов управления
4
3. Рабочий диапазон температур
от +5 до 40С
4. Питание от сети переменного тока
- напряжение
220 В(+22В, -33В)
- частота
50 Гц(+1 Гц, -1Гц)
5. Потребляемая мощность от сети не более 10 ВА
Наиболее простым решением данной проблемы явилась бы реализация подобного устройства на базе однокристальной микро-ЭВМ (ОМЭВМ) типа
КМ816ВЕ31 (Intel8051), КР1801ВЕ1( 4-разрядная КМОП ОМЭВМ) или «микрочип» серии РIC.
Однако у пользователя сразу возникает ряд проблем. Во-первых,
необходимо в качестве платы за «гибкость» МК иметь в наличии отладочную
систему, стоимость которой может достигать 5 тыс. долларов. Во-вторых, для
модификации программного обеспечения потребуется квалифицированный
программист. В-третьих, помехозащита МК, работающего в непосредственной
близости от магнитных пускателей и управляющего электродвигателями мощностью до 6 кВт и более при реальных условиях низкого качества промышленной сети и особенно заземления, оказалась чрезвычайно сложной проблемой
для МК на базе ОМЭВМ. Сбои в работе ОМЭВМ могут приводить к катастрофическим последствиям. И никакие «войч-доги» ситуацию не спасают.Это слишком дешёвая, а посему малоэффективная мера защиты. Опыт эксплуатации
317
318
станков с числовым программным управлением (ЧПУ) показал, что только при
создании специальной отдельной сети питания для ЧПУ можно надеяться на
нормальное функционирование МК. А это дорогостоящее мероприятие не по
карману представителям малого бизнеса. Кроме того,даже в случае принятия
дорогостоящих помехозащитных мер возможны катастрофические по своим
результатам сбои. Неудачный запуск российской ракеты с зарубежными спутниками на борту в начале сентября 1998г. был обусловлен сбоем в компьютерной системе.
Надёжность работы МК на базе ОМЭВМ можно обеспечить только за счёт
введения диагностических процессоров (ДП). ДП следит практически за каждым
шагом МК по отображению программы последнего в памяти ДП. В случае отклонения от программы ДП принудительно отправляет МК в ближайшую точку
возврата, откуда МК повторяет попытку прохождения сбойного участка с предварительным восстановлением необходимого фрагмента оперативной памяти.
В случае нескольких неудачных повторных попыток ДП выдаёт сообщение об
отказе. Однако реализация ДП в виде микропрограммного автомата для
ОМЭВМ КР1816ВЕ35 на традиционной элементной базе потребовала 67 корпусов микросхем (МС). Перевод полученного решения на матрицы логических
ячеек (МЛЯ) типа Xilinx позволил сократить количество МС до 12. Но и такая
реализация является слишком громоздкой для МК. состоящего из 3-5 МС. Кардинальным решением является разработка специализированной МС ДП. До
настоящего времени эта проблема не решена и едва ли разрешится в ближайшем будущем из-за отсутствия финансирования. Появление в последнее время
быстродействующих микропроцессоров и памяти позволяют надеяться на создание ДП в виде специализированного МК. Сбои такого ДП могут привести
только к одному «катастрофическому» последствию: к одному или нескольким
лишним обращениям в точку возврата.Опасен лишь одновременный сбой МК и
ДП, но в такой ситуации не спасает даже полное резервирование.
В связи с вышеизложенным в качестве альтернативы ОМЭВМ при создании простого и надёжного промышленного МК выступает микропрограммный
автомат (МПА). МК на базе МПА(МК-МПА) реализован на двух микросхемах:
К561ЛН2 и КМ1556ХП4. Первая МС обеспечивает генерацию тактовой частоты
и защиту с фильтрацией трёх входных сигналов, а вторая реализует собственно МПА. Возможности КМ1556ХП4 таковы, что позволяют запрограммировать
любой конечный автомат на 16 состояний. Этого вполне достаточно для реализации абсолютного большинства простейших МК. Кстати говоря, эта « простота» реализуется на традиционных МК с ОМЭВМ программой объёмом около 1
кбайта. Для индикации состояний МПА на плате предусмотрен монтаж 8 светодиодов типа АЛ307БМ. Для сопряжения с исполнительными устройствами к четырём выходам КМ156ХП4 подключены оптроны АОТ110А. Такая схема обеспечивает гальваническую развязку и возможность управления однофазными и
трёхфазными двигателями 6 кВт и более. Управляющие воздействия могут подаваться на любое промежуточное реле (например, КУЦ-1М), а затем на магнитный пускатель. Возможна замена промежуточного реле и магнитного пускателя на симисторный блок управления. МК-МПА эксплуатируется в достаточно
сложных условиях( повышенная влажность, широкий диапазон температур) в
течение 3 лет на самых различных объектах без замечаний. Области применения чрезвычайно широки: управление и позиционное регулирование в системах
водоподготовки и водоснабжения, в нефтяной, газовой и металлургической
промышленности, в энергетике, в сфере обслуживания и других отраслях
318
319
народного хозяйства.
Симисторный блок управления (СБУ) реализован идентично МК-МПА.
Эта идентичность позволяет использовать плату МК-МПА в качестве СБУ. Для
уменьшения потребления по цепям управления симисторными ключами
ТСО142-40-6 применяется импульсное воздействие на оптроны. СБУ способен
также изменять фазу отсечки, что обеспечивает возможность регулирования
мощности двигателя. В СБУ введены тепловая защита и защита от пропадания
фазы. Переход на СБУ устранил грохот от переключения магнитных пускателей, значительно снизил уровень помех, что повысило надёжность работы МКМПА. СБУ эксплуатируется без замечаний несколько лет.
Печатная плата имеет габариты 90мм х 90мм. Стоимость комплетующих
элементов чрезвычайно низкая. Во всех схемах используется только отечественная элементная база. Простота также очевидна. Надёжность подтверждена длительной эксплуатацией на промышленных объектах. Весь цикл по
созданию новой программы, «прошивке» КМ1556ХП4 и отладке МК-МПА занимает 2-3 дня. Никаких отладочных систем, кроме самого дешёвого программатора, не требуется.
319
320
6.2. Микропроцессорная техника.
Для решения задач автоматического контроля наряду с увеличением
производства существующих аналитических приборов необходимо создаватьновые универсальные измерительные системы на основе встроенных
микроконтроллеров (МК). МК участвует в расчете контролируемого свойства
вещества или параметра состава, управлении измерительным
процессом,автоматической компенсацией температурной погрешности.Кроме своих
основныхзадач измерительного характера МК может решать вопросы автоматическогоконтроля и диагностики аналитического прибора (АП). Наряду с этим
оптимально спроектированный МК может служить средством отладки вновь
разрабатываемого программного обеспечения при модификации уже существующего АП. Рассмотрим кратко в данном аспекте все проблемы и возможности МК при проектировании устройств и систем на их основе.
Архитектура микроконтроллера.
В настоящее время номенклатура МК чрезвычайно широка. Остановим
свой выбор на относительно дешевых и достаточно мощных МК семейства
MCS51.Отечественным аналогом этого МК является однокристальная микроЭВМ КМ1816ВЕ51(в дальнейшем для краткости именуемая МК51).
МК51 имеет в своем составе следующие аппаратные средства:
- процессор с 1-байтным АЛУ и схемы аппаратного умножения и деле
ния;
- стираемое ПЗУ программ емкостью 4 Кбайта;
- ОЗУ данных емкостью 128 байт;
- два 16-битных таймера/счетчика;
- программируемые схемы ввода/вывода(32 линии);
- блок двухуровневого векторного прерывания от 5 источников;
- асинхронный канал дуплексного последовательного ввода/вывода
информации со скоростью 375 Кбод;
- генератор,схема синхронизации и управления.
Структура МК51 и система команд настолько гибки, что идет постоянная модернизация МК данного семейства. MCS552 уже имеет встроенный 8канальный 10-разрядный АЦП, ПЗУ объемом 8 Кбайт,ОЗУ - 256 байт,5 восьмиразрядных портов ввода/вывода и один 8-разрядный входной порт, 3 16разрядных таймера/счетчика, структуру вложенных прерываний с 15 источниками и двумя уровнями приоритета,двойной интерфейс ЦАП на основе ШИМ,
два последовательных интерфейса, таймер "будильника"(watch-dog), режим
ожидания и режим пониженной мощности.
Порты ввода/вывода информации.
Все 4 порта МК51 предназначены для ввода или вывода информации побайтно.Выходные драйверы портов Р0 и Р2,а также входной буфер порта Р0
используются при обращении к внешней памяти(ВП).При этом через портР0
в режиме мультиплексирования сначала выводится младший байт адреса ВП,а
затем выдается или принимается байт данных.Через портР2 выводится стар-
320
321
ший байт адреса в тех случаях,когда разрядность адреса равна 16 бит.
Все выводы порта Р3 могут быть использованы для реализации альтернативных функций. Альтернативные функции могут быть задействованы путем
записи 1 в соответствующие биты регистра-защелки порта Р3.
Таймер/счетчик.
Два программируемых 16-битных таймера/счетчика(Т/С0 и Т/С1) могут быть
использованы в качестве таймеров или счетчиков внешних событий. При
работе в качестве таймера содержимоеТ/С инкрементируется в каждом машинном цикле, т.е. через каждые 12 периодов генератора тактовой частоты.При работе в качестве счетчика содержимое Т/С инкрементируется при переходе из 1 в 0 внешнего входного сигнала.
Различают 4 режима работы Т/С.
2Режим 0. 0В этом режиме на вход 8-битного таймера подключается 5битный предделитель частоты,т.е. таймер имеет разрядность 13 бит.При переполнениии Т/С устанавливается флаг прерывания TF соответствующего
Т/С.Входной синхросигнал таймера разрешен,когда управляющий бит TR0(1)
установлен в 1 и либо бит блокировки равен 0,либо либо на вход прерывания
поступает уровень 1.
2Режим 1. 0Работа Т/С в режиме 1 такая же, как в режиме 0,но таймер
имеет разрядность 16 бит.
2Режим 2. 0В режиме 2 работа организована так,что переполнение 8битного счетчика TL0(1) приводит не только к установке флага,но и перезагрузке в TL0(1) содержимого старшего байта TH0(1) таймерного регистра.При
перезагрузке содержимое TH0(1) не изменяется.
2Режим 3. 0Можно считать,что в этом режиме МК51 имеет в своем составе
три таймера/счетчика.
Последовательный интерфейс.
Через универсальный асинхронный приемопередатчик(УАПП) осуществляется прием и передача информации,представленной последовательным кодом(младшими битами вперед).В состав УАПП входят сдвигающие регистры и
специальный буферный регистр SBUF приемопередатчика.УАПП может работать в четырех режимах.
Режим 0. 0Передача и прием информации в объеме 8 бит ведется через
вывод входа приемника RXD.Через внешний вывод выхода передатчика TXD
выдаются импульсы сдвига. Частота передачи равна 1/12 частоты резонатора.
Режим 1. 2В этом режиме осуществляется обмен информацией в объеме
210 бит: старт-бит(0), 8 бит данных и стоп-бит(1).
Режим 2. 0Через TXD передаются или через RXD принимаются 11 бит информации:старт-бит,8 бит данных,программируемый 9-й бит паритета и стопбит.Частота обмена равна 1/32 или 1/64 частоты резонатора в зависимости от
SMOD.
Режим 3. 0Этот режим совпадает с предыдущим,за исключением частоты
обмена,которая задается таймером.
Программа вывода данных по каналу RS-232.
;г====================================¬
;¦ ПРОГРАММА КОНТРОЛЛЕРА 80C552
¦
321
322
;¦
Работа с RS-232
¦
;¦
¦
;¦ Лобанов В.И. tasm
22.01.99
¦
;L====================================;
;-------------------------------------¬
;¦ Символические имена ¦
;L------------------------------------x1
.equ p1.1;Датчик давления 1
x2
.equ p1.2;Датчик давления 2
y1
.equ p4.1;Вкл.ЭМК 1
y2
.equ p4.2;Вкл.ЭМК 6
;===============================================
.ORG
0000H
ljmp start;
;***********************************************
.ORG
0080H
start
lcall install ;установка режимов
setb ea;разреш.всех прерываний
setb tr1; Запуск T1
mov a,#55h;
mov p3,#0ffh;Прогр. Р3 на альтернат.ф-ции
start1 lcall spout1;Вывод информации из МКУ
; lcall spin1;Ввод информации в МКУ
lcall delay1;
ljmp start1;
;***********************************************
spout1 jnb ti,$;проверка флага ti послед.порта
clr ti;сброс флага ti
mov sbuf,a;в+дача байта
ret ;
;***********************************************
spin1 jnb ri,$;
clr ri;
mov a,sbuf;
ret ;
;***********************************************
delay mov r6,#255;
djnz r6,$ ;
ret ;
;***********************************************
delay1 mov r7,#255;
dl1
lcall delay;
djnz r7,dl1;
ret ;
;***********************************************
#INCLUDE EQU552.ASM
#INCLUDE INST51.ASM
.end
Подпрограмма инсталляции оформляется в виде отдельного файла
322
323
inst51.asm.
install nop ;
;г=======================================¬
;¦ П/П ПЕРВОНАЧАЛЬНОЙ УСТАНОВКИ 1816ve31 ¦
;L=======================================;----------------------------------------¬
;¦ PCON - управление энергопотреблением ¦
;L---------------------------------------;---------------------------------------mov pcon,#00000000b
;---------------------------------------;
I- 1- РЕЖИМ Х/Х(0.15 от номин.)
;
I-1-РЕЖИМ МИКОРОПОТРЕБЛЕНИЯ(I < 10 мкА)
;
I-ФЛАГ ОБЩЕГО НАЗН
;
I- ФОН
;
I
;
I
;
I
;
I- 1 - БИТ УДВОЕНИЯ СКОРОСТИ ПЕРЕДАЧИ
;----------------------------------------¬
;¦ TMOD - режимы таймеров ¦
;L---------------------------------------;GATE1 C/T1 M1.1 M0.1 GATE0 C/T0 M1.0 M0.0
; 7 6 5 4 3 2 1 0
;0-ТАЙМЕР, 1- СЧЕТЧИК
;0-СЧЕТ ОТ INT0 ЗАПРЕЩЕН
; Режимы счетчиков:0 - 13 бит,1 - 16 бит,
;
2 - 8 бит с автоперезагрузкой,
;
3 - 2 по 8 бит.
;---------------------------------------mov tmod,#00100001b ;Т1 во 2-м режиме,Т0 - в 1-м
;---------------------------------------;---------------------------------------------¬
;¦ TCON - управление таймерами ¦
;L--------------------------------------------;TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
;7 6 5 4 3 2 1 0
;---------------------------------------mov tcon,#00000101b
mov th0,#0c3h
mov tl1,#0
mov th1,#230 ;Частота обмена инф.=8кбод
;---------------------------------------;-----------------------------------------------------------------¬
;¦ СТРУКТУРА UART - упр-ние УАППом(RS232)¦
323
324
;+
¦
;¦
SCON REGISTER
¦
;L----------------------------------------------------------------;SM0 SM1 SM2 REN TB8 RB8 TI RI
;7 6 5 4 3 2 1 0
;---------------------------------------mov scon,#01010010b ;8-битовый УАПП на прием
;и передачу
;---------------------------------------;---------------------------------------------¬
;¦ СТРУКТУРА ПРЕРЫВАНИЙ ¦
;¦ IP REGISTER (ПРИОРИТЕТЫ)¦
;L--------------------------------------------;XXX XXX XXX PS PT1 PX1 PT0 PX0
;7 6 5 4 3 2 1 0
;PX0,PX1 - приоритет внеш.прерывания INT0,INT1
;PT0,PT1 - приоритет прерыв. по переполн. таймеров T0,T1
;PS0,PS1 - приоритет прерывания SIO0,SIO1(RS-232,I2C)
;---------------------------------------mov ip,#00010110b ;PT0,PX1,PS
;---------------------------------------;--------------------------------------------------------------------¬
;¦ IE REGISTER (РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ) ¦
;L-------------------------------------------------------------------;EA EAD ES1 ES ET1 EX1 ET0 EX0
;7 6 5 4 3 2 1 0
;EX0,EX1 - разреш.внеш.прерыв. INT0 и INT1
;ET0,ET1 - разреш.прерыв.таймера Т0 и Т1
;ES,ES1 - разреш.прерыв.УАПП(RS-232) и I2C
;EAD - разреш.прер.АЦП, EA - разреш.всех прерыв.
;---------------------------------------mov ie,#00010110b ;ET0,EX1,ES
clr tr0
clr tr1
ret ;
В виде отдельного файла equ552.asm оформляется и архитектура
80С552.
;***************************************************
; Прямо-адресуемые регистры RAM 8X552
;***************************************************
p0 .equ 080H ;Port 0 - МХ-шина адреса/данных
sp .equ 081H ;Stack pointer
dpl .equ 082H ;указатель данных
dph .equ 083H ;---- " ------
324
325
pcon .equ 087H ;управление энергопотреблением
tcon .equ 088H ;упр-ние таймерами
tmod .equ 089H ;режимы таймеров
tl0 .equ 08AH ;регистры таймеров
tl1 .equ 08BH ;----- " ----th0 .equ 08CH ;----- " ----th1 .equ 08DH ;----- " ----p1 .equ 090H ;Port 1 - захват,IIC-шина,управл.таймером Т2
scon .equ 098H ;упр-ние последоват. портом 0
sbuf .equ 099H ;буфер последоват.порта
p2 .equ 0A0H ;Port 2 - ст.байт адреса для внеш.памяти
ie .equ 0A8H ;регистр разрешения прерывания
p3 .equ 0B0H ;Port 3 - RS-232,INT0,INT1,T0,T1,RD,WR
ip .equ 0B8H ;приоритеты прерываний 0
p4 .equ 0C0H ;Port 4 - CMSR0...CMSR5,CMT0,CMT1
p5 .equ 0C4H ;Port 5 - ADC0...ADC7
psw .equ 0D0H ;слово состояния программы
s1con .equ 0D8H ;упр-ние последоват.портом 1
a
.equ 0E0H ;Accumulator
b
.equ 0F0H ;Secondary Accumulator
ip1 .equ 0F8H ;приоритеты прерываний 1
r0 .equ 00H ;РОН0
r1 .equ 01H ;РОН1
r2 .equ 02H ;РОН2
r3 .equ 03H ;РОН3
r4 .equ 04H ;РОН4
r5 .equ 05H ;РОН5
r6 .equ 06H ;РОН6
r7 .equ 07H ;РОН7
;***********************************************
;Прямо-адресуемые биты RAM
;***********************************************
p0.0 .equ 080H ;port 0 bit 0
p0.1 .equ 081H ;port 0 bit 1
p0.2 .equ 082H ;port 0 bit 2
p0.3 .equ 083H ;port 0 bit 3
p0.4 .equ 084H ;port 0 bit 4
p0.5 .equ 085H ;port 0 bit 5
p0.6 .equ 086H ;port 0 bit 6
p0.7 .equ 087H ;port 0 bit 7
p1.0
p1.1
p1.2
p1.3
p1.4
p1.5
p1.6
p1.7
.equ 090H
.equ 091H
.equ 092H
.equ 093H
.equ 094H
.equ 095H
.equ 096H
.equ 097H
;p1.0/СТ01 - вх.сигнал логики захвата
;p1.1/СТ11 - вх.сигнал логики захвата
;p1.2/СТ21 - вх.сигнал логики захвата
;p1.3/СТ31 - вх.сигнал логики захвата
;p1.4/T2 - вход внеш.такт.имп./вых.генер. Т2
;p1.5/RT2 - сигнал сброса таймера Т2 по п/ф.
;p1.6/SCL -такт.линия послед.порта IIC-шины
;p1.7/SDA - линия данных послед.порта IIC-шины
325
326
p2.0
p2.1
p2.2
p2.3
p2.4
p2.5
p2.6
p2.7
.equ
.equ
.equ
.equ
.equ
.equ
.equ
.equ
0A0H
0A1H
0A2H
0A3H
0A4H
0A5H
0A6H
0A7H
;p2 bit 0
;p2 bit 1
;p2 bit 2
;p2 bit 3
;p2 bit 4
;p2 bit 5
;p2 bit 6
;p2 bit 7
p3.0
p3.1
p3.2
p3.3
p3.4
p3.5
p3.6
p3.7
.equ
.equ
.equ
.equ
.equ
.equ
.equ
.equ
0B0H
0B1H
0B2H
0B3H
0B4H
0B5H
0B6H
0B7H
;p3.0/RxD - вход последоват. порта
;p3.1/TxD - выход последоват. порта
;p3.2/INT0 - вход внеш. прерывания 0
;p3.3/INT1 - вход внеш.прерывания 1
;p3.4/внеш.вход Т0 - вх.внеш.такт.имп. Т0
;p3.5/внеш.вход Т1 - вх.внеш.такт.имп. Т1
;p3.6/WR - строб записи во внеш. память
;p3.7/RD - строб чтения из внеш. памяти
p4.0
p4.1
p4.2
p4.3
p4.4
p4.5
p4.6
p4.7
.equ
.equ
.equ
.equ
.equ
.equ
.equ
.equ
0C0H
0C1H
0C2H
0C3H
0C4H
0C5H
0C6H
0C7H
;p4.0/SEPCLK - вых.такт.импульсов порта SEP
;p4.1/SEPDAT - вход/вых. данных порта SEP
;p4.2/ECI1 - вход внешних такт.имп. PCA1
;p4.3/C1EX0 - вх. захв.,вых.PWM/сравн.М0 PCA1
;p4.4/C1EX1 - вх. захв.,вых.PWM/сравн.М1 PCA1
;p4.5/C1EX2 - вх. захв.,вых.PWM/сравн.М2 PCA1
;p4.6/C1EX3 - вх. захв.,вых.PWM/сравн.М3 PCA1
;p4.7/C1EX4 - вх. захв.,вых.PWM/сравн.М4 PCA1
; TCON REGISTER - управление таймерами
it0
ie0
it1
ie1
tr0
tf0
tr1
tf1
.equ
.equ
.equ
.equ
.equ
.equ
.equ
.equ
088H
089H
08AH
08BH
08CH
08DH
08EH
08FH
;вид прерыв. по INT0(1-уровень,0-задн.фронт)
;флаг запроса внеш.прерыв.по INT0
;вид прерыв. по INT1(1-уровень,0-задн.фронт)
;флаг запроса внеш.прерыв.по INT1
;бит включения Т0
;флаг переполнения Т0
;бит включения Т1
;флаг переполнения Т1
; SCON REGISTER - управление последоват. портом
ri .equ 098H ;флаг прерыв. приемника
ti .equ 099H ;флаг прерыв. передатчика
rb8 .equ 09AH ;9-й бит принимаемых данных(реж.2 и 3)
tb8 .equ 09BH ;9-й бит передаваемых данных(реж.2 и 3)
ren .equ 09CH ;бит разрешения приема послед. данных
sm2 .equ 09DH ;бит разрешения многопроцессорной работы
sm1 .equ 09EH ;1-й бит определения режима работы
sm0 .equ 09FH ;0-й бит определения режима работы
326
327
; IE REREGIER - разрешение прерываний
ex0 .equ 0A8H ;внеш. прерывание INT0
et0 .equ 0A9H ;переполнение 0-го таймера
ex1 .equ 0AAH ;внеш. прерывание INT1
et1 .equ 0ABH ;переполнение 1-го таймера
es .equ 0ACH ;последоват. порт УАПП(RS-232)
es1 .equ 0ADH ;последоват. порт I2C
ead .equ 0AEH ;разреш.прерыв.АЦП
ea .equ 0AFH ;запрещение всех прерываний
; IP REGISTER - приоритеты прерываний
px0
pt0
px1
pt1
ps
pt2
.equ
.equ
.equ
.equ
.equ
.equ
0B8H
0B9H
0BAH
0BBH
0BCH
0BDH
;внеш. прерывание INT0(высш.приоритет)
;переполнение 0-го таймера
;внеш. прерывание INT1
;переполнение 1-го таймера
;последоват. порт
;переполнение 2-го таймера(низш.приоритет)
; ACCUMULATOR
acc.0
acc.1
acc.2
acc.3
acc.4
acc.5
acc.6
acc.7
.equ
.equ
.equ
.equ
.equ
.equ
.equ
.equ
0E0H
0E1H
0E2H
0E3H
0E4H
0E5H
0E6H
0E7H
;acc bit 0
;acc bit 1
;acc bit 2
;acc bit 3
;acc bit 4
;acc bit 5
;acc bit 6
;acc bit 7
; PSW REGISTER - слово состояния программы
p
ov
rs0
rs1
f0
ac
cy
.equ 0D0H ;флаг четности
.equ 0D2H ;флаг переполнения
.equ 0D3H ;выбор банка регистров
.equ 0D4H ;----- " ----.equ 0D5H ;флаг пользователя 0
.equ 0D6H ;флаг дополн. переноса
.equ 0D7H ;флаг переноса
Пример реализации блока управления и индикации .
327
328
E
r
r
o Фирма КТЦ-МК предлагает широкий выбор жидкокристаллических индикаrторов различных типов. Большой популярностью у специалистов пользуются
!алфавитно-цифровые ЖКИ-модули на базе контроллера HD44780 фирмы
Hitachi или его аналогов производства других фирм: Epson, Philips, Samsung,
Sanyo, Toshiba .
N
Контроллер HD44780 допускает подключение к микропроцессорам по четырёх
o
битному или восьми битному интерфейсу. Выбор интерфейса производится
пользователем исходя из ограничений на время, затрачиваемое на обмен данb
ными с котроллером, или количество используемых линий подключения к микроo
ЭВМ.
o
Специалистами фирмы применялись различные схемы подключения алфавитkно-цифровых ЖКИ-модулей к микрo-ЭВМ семейства AT89CX051 фирмы Atmel.
m
На Рис.1 представлена схема подключения ЖКИ-модуля на базе контроллера
aHD44780 к микро-ЭВМ семейства MCS51 в режиме работы с внешней памятью,
rпозволяющая оптимизировать процесс обмена данными по времени. Пересылка
kбайта осуществляется по командам:
MOVX A,@DPTR или MOVX A,@DPTR.
n
В этом случае в DPTR следует загружать адрес с учётом того, что младший бит
aА0 будет обозначать направление передачи (запись/чтение), а бит А1 тип переm
даваемой информации (команда/данные).
e
Ниже приведены исходные тексты подпрограммы на языке ассемблера ASM51,
g
позволяющие записывать данные, инструкции в контроллер, считывать данные.
iПриведен так же примерный текст подпрограммы инициализации контроллера в
vрежим восьми битного интерфейса, при работе с двумя строками. Отображение
eкурсора и мигание отключено. Курсор установлен в начало первой (верхней)
n
строки.
.
;г====================================¬
;¦ ПРОГРАММА КОНТРОЛЛЕРА 80C552
¦
;¦ Панель управления и индикации
¦
;¦
pui.asm
¦
;¦ Лобанов В.И. tasm
17.03.99
¦
;L====================================;
;-------------------------------------¬
;¦ Символические имена ¦
328
329
;L------------------------------------;
p5.0 - Кнопка "Старт"
;
p5.1 - Кнопка "HC/RPM"
;
p5.2 - Кнопка "Печать"
;
p5.3 - Кнопка "2/4 такт"
;
r0 хранит состояние клавиатуры
;
r1 - счетчик на 6 мс
y1
.equ p3.5 ;Звукоиндикатор
wrc_lc .equ 8000h;Адрес регистра команды wrc
rdc_lc .equ 8001h;Адрес регистра команды rdc
wrd_lc .equ 8002h;Адрес регистра данных wrd
rdd_lc .equ 8003h;Адрес регистра данных rdd
;===============================================
.ORG
0000H
ljmp start;
;***********************************************
.ORG
000BH
ljmp intt0;Внутр.прерывание от Т0
;**********************************************
.ORG
0013H
ljmp int1;Внеш.прерывание 1
;***********************************************
.ORG
0080H
start
lcall install ;установка режимов
mov r0,#0;
st1
nop
;
ajmp st1;
;***********************************************
install setb p3.3;Альтерн.ф-ция внеш.прер.INT1
setb p3.6;Альтерн.ф-ция записи в РВПД(/WR)
clr y1;Порт P3.5 на вывод
setb et0;Прерыв. от T0
mov tmod,#11h; Режим 1 для T0,T1
setb tr0; Запуск T0
setb ex1; Разреш.внеш.прерыв.INT1
setb it1;Прерывание по заднему фронту INT1(TCON),
setb ea; при этом сброс ie1 вып-ся аппаратно.
acall lcdinit;
ret ;
;***********************************************
;Инициализация HD44780
lcdinit mov a,#38h; 8 бит,2 строки,матр.5х8
acall wrc;
acall tau6 ; Ожидание готовности
mov a,#38h; 8 бит,2 строки,матр.5х8
acall wrc;
acall tau6 ; Ожидание готовности
mov a,#0ch; Вкл.диспл.,откл.курсор,выкл.мерцание
329
330
cls
acall wrc;
mov a,#06h;Перемещ.курсора вправо
acall wrc;
mov a,#01h;Очистка экрана
acall wrc;
ret ;
;Чтение данных из HD44780
rdd_lcd mov dptr,#rdc_lc;
waitdd movx a,@dptr;
jb
acc.7,waitdd;
mov dptr,#rdd_lc;
movx a,@dptr;
ret ;
;Запись данных в HD44780 из ACC
wrd
push a;
mov dptr,#rdc_lc;
waitrd movx a,@dptr;
Ожидание
jb
acc.7,waitrd; готовности
mov dptr,#wrd_lc;
pop a;
movx @dptr,a;
ret ;
;Запись команды в HD44780 из ACC
wrc
push a;
mov dptr,#rdc_lc;
waitrc movx a,@dptr;
Ожидание
jb
acc.7,waitrc; готовности
pop a;
mov dptr,#wrc_lc;
movx @dptr,a;
ret ;
;***********************************************
intt0
push psw;
mov th0,#0fdh;Прерывание по Т0
mov tl0,#00h; с частотой 1кГц
dec r1;
lcall opros1;
pop psw;
reti ;
;***********************************************
int1
push psw;
push a;
push b;
push dpl;
push dph;
mov r0,p5;Состояние клавиш в r0
lcall opros;
330
331
pop dph;
pop dpl;
pop b;
pop a;
pop psw;
reti ;
;***********************************************
opros
mov a,r0;
jb
acc.0,kl1;
jb
acc.1,kl2;
jb
acc.2,kl3;
jb
acc.3,kl4;
ajmp kl;
kl1
lcall sa1;
ajmp kl;
kl2
lcall sa2;
ajmp kl;
kl3
lcall sa3;
ajmp kl;
kl4
lcall sa4;
kl
ret ;
;***********************************************
opros1 mov a,r0;
jnb acc.1,oprend;
lcall sa2;
oprend ret ;
;***********************************************
sa1
acall cls ;
mov a,#80h;Обнуление счетчика
acall wrc; знакоместа
mov a,#43h; C
acall wrd;
mov a,#81h;
acall wrc;
mov a,#54h; T
acall wrd;
mov a,#82h;
acall wrc;
mov a,#41h; A
acall wrd;
mov a,#83h;
acall wrc;
mov a,#50h; P
acall wrd;
mov a,#84h;
acall wrc;
mov a,#54h; T
acall wrd;
ret ;
;***********************************************
331
332
sa2
nop ;
cpl y1; Звук.частота 1кГц
mov a,#80h;Обнуление счетчика
acall wrc; знакоместа
mov a,#048h; H
acall wrd;
mov a,#043h; C
acall wrd;
mov a,#02fh; /
acall wrd;
mov a,#052h; R
acall wrd;
mov a,#050h; P
acall wrd;
mov a,#04dh; M
acall wrd;
ret ;
;***********************************************
sa3
acall cls;
mov a,#80h;Обнуление счетчика
acall wrc; знакоместа
mov a,#0a8h; П
acall wrd;
mov a,#045h; Е
acall wrd;
mov a,#0abh; Ч
acall wrd;
mov a,#041h; А
acall wrd;
mov a,#054h; Т
acall wrd;
mov a,#0c4h; Ь
acall wrd;
ret ;
;***********************************************
sa4
acall cls ;
mov a,#80h;Обнуление счетчика
acall wrc; знакоместа
mov a,#032h; 2
acall wrd;
mov a,#02fh; /
acall wrd;
mov a,#034h; 4
acall wrd;
mov a,#054h; T
acall wrd;
mov a,#041h; A
acall wrd;
mov a,#04bh; K
acall wrd;
332
333
mov a,#054h; T
acall wrd;
mov a,#0c0h;Переход на 2-ю строку
acall wrc;
mov a,#0aah; Ф
acall wrd;
mov a,#0a5h; И
acall wrd;
mov a,#048h; H
acall wrd;
mov a,#0a5h; И
acall wrd;
mov a,#0ach; Ш
acall wrd;
ret ;
;***********************************************
tau6
mov r1,#06h; tau6=6 ms
t61
mov a,r1;
jnz t61;
ret ;
;***********************************************
#INCLUDE EQU552.ASM
.end
333
334
6.3. Отладочные средства.
Отладочные средства подразделяются на программные и аппаратные.К
программным относятся кросс-ассемблеры и компиляторы языков высокого
уровня(ЯВУ).К аппаратным средствам можно отнести программаторы, эмуляторы ПЗУ,внутрисхемные эмуляторы и адаптируемые отладочные системы.
6.3.1. Программные отладочные средства.
Наиболее популярным представителем этого класса является турбоассемблер TASM.Это наиболее гибкий кросс-ассемблер для MCS51.Он позволяет
настраиваться на любую систему команд. Программа пишется на ассемблере
в любом текстовом редакторе.З атем она обрабатывается турбоассемблером и
16-чный модуль загружается в эмулятор ПЗУ EMD256.Приводим один из вариантов работы с TASM.
Руководство пользователя TASM.
1.Запустить командный файл comp_51.bat с именем своего ассемблеpного
файла,но без pасшиpения.
2.Будут получены след.файлы:
<name>.lst - листинг,
<name>.obj - объектный файл,
<name>.sym - табл.символов.
3.Переименовать <name>.obj в <name>.hex и переслать его в директорию
EMD256.
4.Загрузить <name>.hex в эмулятор ПЗУ.
Для этого нужно вызвать командный файл tr.bat (name).hex в директории
EMD256.
Широко применяются также кросс-компиляторы C51 и PAS51 для ЯВУ С и
PASCAL. Особый класс отладочных средств составляют симуляторы,представляющие собой математическую модель разрабатываемого МКУ.
Недостатком такого подхода является отсутствие реального масштаба времени.
6.3.2. Аппаратные отладочные средства.
Строго говоря программаторы с большой натяжкой можно отнести к
отладочным средствам. Тем не менее при проектировании микроконтроллерных устройств (МКУ) без программаторов не обойтись.Они нужны для того,
чтобы "зашить" в ПЗУ отлаженную программу. Номенклатура программаторов
достаточно обширна. Они выпускаются различными отечественными фирмами:
"КТЦ-МК", "Фитон", "Точка опоры" и др. Среди программаторов наиболее приемлемыми по цене и функциональным возможностям нужно назвать программаторы следующих типов: "Стерх","Unipro", "picPROG+".
334
335
К апаратным отладочным средствам следует отнести также макетноотладочные платы типа EB-552,KIT-552,KIT-PIC01,KIT-PIC-03 и т.п. Эти платы
предоставляют в распоряжение пользователя аппаратное ядро разрабатываемого МКУ, избавляют его от необходимости лишних монтажных работ и "изобретения велосипеда".
Эмулятор микросхем ПЗУ ф. "КТЦ-МК" типа EMD256 предназначен для
эмуляции работы микросхем ПЗУ типа 27256 непосредственно в составе отлаживаемой схемы, как в качестве программной памяти в микропроцессорных
системах,так и памяти микропрограмм для микропрограммных автоматов.
Класс внутрисхемных эмуляторов настолько обширен, что нет смысла перечислять все типы. Как правило это узко ориентированные программноаппаратные устройства, рассчитанные на конкретный тип МК или микропроцессора (МП).Стоимость их относительно высока,поэтому большинство разработчиков обходятся эмуляторами ПЗУ.
6.3.3. Адаптируемая отладочная система для проектирования микроконтроллеров
Отладочные системы (ОС) разработки микроконтроллерных устройств
(МКУ) являются основным инструментом при проектировании и отладке цифровых устройств на базе микропроцессоров (МП) и однокристальных микроЭВМ(МЭВМ). И если внедрение микропроцессоров (МП) и микроконтроллерных
устройств считается основой научно-технической революции, то создание ОС
является основой основ этой революции. Существует несколько типов отладочных систем. Мы будем рассматривать наиболее эффективную: ОС с внутренней эмуляцией. В этой категории создаются два типа ОС: на базе специализированных чрезвычайно дорогих и как правило недоступных отладочных кристаллов или на основе серийных МП и МЭВМ. Разработчики предпочитают ОС
на серийных МП и МЭВМ. В настоящее время широкое распространение получили так называемые «микро-чипы» серии РIС. Фирменные отладочные средства стоят около 10 тыс. долларов и построены на базе отладочного кристалла,
который не поставляется отдельно. Однако данная фирма поставляет на рынок
БИС МЭВМ типа РIС 17С42. Эта БИС имеет открытую шину адреса-данных, что
позволяет разработать для всех МЭВМ данной серии адаптируемый внутрисхемный эмулятор с режимом реального времени. Выбор каналов управления
МЭВМ для обеспечения режимов отладки в традиционных схемах чрезвычайно
ограничен. В качестве таких каналов используется либо вход готовности(Readу), либо вход запроса прерывания (Int). К сожалению, вход Readу имеется далеко не у каждой МЭВМ, а использование входа Int ограничивает возможности целевого МКУ. Кроме того, существуют рMOS-динамические архитектуры, которые в принципе не допускают остановки МП и организации пошагового режима отладки.
Традиционно под каждый процессор разрабатывается своя специализированная отладочная система. Специализация затрагивает не только программное обеспечение, но и всю аппаратную поддержку Это приводит к тому,
что создание отладочных средств под новый микропроцессор затягивается на
1-2 года, а их стоимость достигает 5-10 тыс. долларов.
В связи с этим возникла задача по разработке адаптируемой отладочной
системы(АОС) для проектирования МКУ[15]. Эта АОС должна обеспечивать
335
336
достижение следующих технических результатов :
- расширение сферы применения за счёт обеспечения отладки любых
микропроцессоров, имеющих открытую шину адреса данных и хотя бы один из
входов :Readу(готовность), с(тактовый) или Int(прерывание);
- неизменность аппаратной реализации для отладки различных микропроцессоров и микро-ЭВМ при минимальном объёме корректировки программного обеспечения инструментальной ПЭВМ;
- возможность потактовой и покомандной отладки МКУ, что позволяет
диагностировать целевой процессор ;
- простота реализации.
За последние 10 лет архитектура отладочных средств с внутрисхемной
эмуляцией для проектирования микроконтроллерных устройств не претерпела
сколько-нибудь заметных изменений. Традиционно ОС строятся из трёх блоков
: блок сопряжения (БС), блок загрузки и управления (БЗУ), блок отладочной модели (БОМ).
БС выполняется либо в виде платы параллельного интерфейса, встраиваемого во внутренний канал персонального компьютера (ПК) IВМ РС, либо в
виде устройства последовательного дрступа, подключаемого к одному из
внешних СОМ-портов. Первый вариант реализации предпочтительнее. Разработка БС прекрасно изложена в периодике, однако схемные реализации здесь
грешат избыточностю. Около 10 лет автором экссплуатируется параллельный
БС на 3-х ИС средней интеграции, обепечивающий побайтовое сопряжение с
21 каналом. Габариты БС 105х115 мм. БС встраивается во внутренний канал
ПК.
Отладочная модель для каждого типа микропроцессора (МП) или однокристальной микро-ЭВМ(ОМЭВМ) должна быть уникальной. Связано это с
обеспечением режима реального времени. Однако аппаратные затраты на уникальность незначительны : всего 1-2 орпуса. БОМ включает в себя МП или
ОМЭВМ и, возможно, регистр адреса. Схема БОМ традиционна и не создаёт
проблем разработчику. Конструктивно БОМ представляет собой сменный элемент, подключённыё к выходному разъёму БЗУ. К выходному разъёму БОМ в
свою очередь подключается ленточный кабель, оканчивающийся так называемым сокетом, который вставляется в колодку на отлаживаемом МКУ вместо
целевого МП или ОМЭВМ. Такое подключение позволяет проводить отладку
МКУ в реальном масштабе времени.
БЗУ в адаптируемой отладочной системе(АОС) является универсальным
узлом. В традиционных архитектурах БЗУ уникален. БЗУ АОС содержит интерфейсы адреса-данных(ИАД) и управляющих сигналов(ИУС) для связи с инструментальной персональной ЭВМ, ОЗУ программ пользователя (ОЗУПП), ОЗУ
контрольных точек (ОЗУКТ), формирователь сигнала управления (ФСУ), коммутатор шины адреса (КША) и коммутатор шины данных (КШД), а также программируемый блок (ПБ), интезирующий сигналы управления для целевого МП или
МЭВМ.
336
337
Блок-схема АОС.
В предпочтительном варианте выполнения программируемый блок может
содержать синхронизатор(СГ), регистр(РГ) и программируемую комбинационную схему (ПКС). Вышеуказанное выполнение ПБ позволяет расширить номенклатуру отлаживамых МКУ, обеспечить адаптацию под новые типы микропроцессоров и ОМЭВМ. Причём адаптации подвергается несущественная часть
программного обеспечения, аппаратная поддержка остаётся без изменения.
Наличие программируемого блока позволяет по выбору разработчика использовать для отладки входы синхронизации, готовности или прерывания целевого
микропроцессора. Для этого разработчику необходимо лишь переписать содержимое ПКС. Наличие дублирующей выходной шины управления позволяет
в некоторых случаях обходиться без регистра и повысить быстродействие АОС.
При использовании тактового входа целевого МП для отладки для отладки МКУ
программируемый блок позволяет обеспечить как покомандное, так и потактовое исполнение программы пользователя, что делает возможной диагностику
не только МКУ, но и целевого МП.
337
338
Схема программируемого блока АОС.
Программируемый блок может быть реализован на одной микросхеме
программируемой логической матрицы (ПЛМ) типа КС1556ХП8 или КС1556ХП6,
либо на БИС матрицы логических ячеек (МЛЯ) типа Altera или Хilinx. Однако ПБ
можно выполнить и на трёх микросхемах. Для этого достаточно одного 8разрядного регистра, одной микросхемы ПКС, в качестве которой можно использовать ПЛМ типа КР556РТ2, ППЗУ КР556РТ7 или КР556РТ16, а также
РПЗУ К573РФ4 или ОЗУ любого типа ёмкостью не менее 2к х 8 бит; в качестве
синхрогенератора можно применить микросхему обычного счётчика.
Назначение блоков, узлов и шин АОС описывается следующим образом.
Блок ИАД предназначен для приёма и передачи адреса и данных от инструментальной ПЭВМ. Блок ИУС передаёт сигналы управления от инструментальной ПЭВМ на ФСУ и ПКС. Блок ОЗУПП хранит программу пользователя, а также программу выведения содержимого внутренней памяти целевого процесора,
которая загружается в ОЗУПП лишь на время её исполнения. ФСУ служит для
формирования сигналов управления работой ОЗУПП, ОЗУКТ, КША, МШД.
ОЗУКТ хранит информацию о наличии контрольных точек, что позволяет останавливать выполнение программы пользователя при достижении заранее заданных адресов. ПКС формирует функции возбуждения для регистра и выхъодные функции ДШУВых для ПБ. СГ формирует синхросигналы для Рг и
синхронизированную частоту для МКУ. КША коммутирует ШАВ от целевого
процессора на ША. ШД мультиплицирует и коммутирует ШДВ на ШД в прямом и
обратном направлении. Регистр совместно с ПКС и СГ образуют ПБ, являющийся последовательностным автоматом.
Посколку даже 8-разрядный регистр допускает построение КА на 256 состояний, то это позволяет утверждать, что практически для любого МКУ может
быть реализована своя система булевых функций для ПКС. Однако для записи
булевых функций в ПКС требуется программатор или набор сменных модулей
ПКС. Это не всегда удобно, поэтому ПКС можно выполнить на базе ОЗУ и менять набор булевых функций, переписывая их из инструментальной ПЭВМ
непосредственно в ОЗУ. Данная архитектура при управлении работой МКУ по
338
339
тактовому входу допускает также возможность неизменной системы булевых
функций в ПКС 6 для некоторых типов процессоров.
Управление работой МКУ по тактовому входу является относительно
сложным, но зачастую единственно возможным. Значительно проще управление по входам Готовность или Прерывание. Традиционные аппаратные реализации такого управления для МП и ОМЭВМ типа Iutel 8080, Iutel 8048, Z 80 и
т.п. свободно вписываются в схему ПБ.
Подобная архитектура позволяет перенастраивать ПБ под любой тип МП
или ОМЭВМ. Кроме того, для управления в пошаговом режиме не занимается
вход прерывания базового МП. Необходимости в применении специальных отладочных МП также не возникает. С помощью описанной АОС были разработаны и переданы заказчику МКУ на базе ОМЭВМ КР1814ВЕ1(р-МОП с динамической памятью), КР1806ВЕ1 (4-разрядная, КМОП), К1868ВЕ1, КР1816ВЕ51,
R6504, М6820 и др. Адаптация занимала от 2-х недель до месяца. Архитектура
АОС защищена в Роспатенте под №523 от 16.06.1995г. АОС реализована на 14
корпусах БИС в отдельном конструктиве с размерами 155х125х25 мм.
Программная часть отладочной системы написана в среде ДССП (создатель - Брусенцов Н.П., МГУ) вед.инженером Локтевым Н.М. Выбор данной cреды объясняется наличием большого опыта работы программиста в данной
среде и наличия определённых программных наработок.
Полная версия программы поддержки отладочного устройства включает в
себя следующие программные компоненты:
- так называемая базисная система, которая гораздо шире базовой системы ДССП за счёт того,что к ней пристыковано большинство из имеющихся в
составе ДССП библиотек :
- программа создания и поддержки параметров настройки и функционирования системы ;
- программа сохранения системы и авторизации доступа ;
- модуль дизассемблера ;
- модуль редактирования памяти ;
- модуль поддержки аппаратной части отладчика ;
- сервисная оболочка системы ;
- кросс-ассемблер ;
- управляющая программа аппаратной части ;
- модуль программатора ПЗУ.
Краткие технические характеристики АОС
1. Разрядность целевых процессоров, бит - 4; 8
2. Объём ОЗУ программ, кбайт
-4
3. Количество контрольных точек
- 4096
4. Количество корпусов ИМС
- 14
5. Основные режимы работы :
- отладка программ ;
- сброс всех контрольных точек ;
- распечатка справочника по системе ;
- запись любого участка ОЗУ программ на магнитный носитель в виде
файла ;
- чтение файла программы и запись его в ОЗУ программ ;
- запись-чтение внешней и внутренней памяти МКУ на магнитный искатель.
6. Режим отладки включает в себя автоматический и пошаговый режимы,
339
340
а также режим контрольных точек.
340
341
6.4. Средства контроля и диагностики.
По окончании этапа разработки даже на стадии выпуска опытной партии приборов на базе МКУ возникают проблемы организации контроля и диагностики. Ручной контроль чрезвычайно обременителен и ненадежен. Организация автоматизированного контроля требует разработки соответствующего
оборудования. Зарубежное стоит чрезвычайно дорого. Цена систем контроля достигает нескольких тысяч долларов. Поэтому значительно дешевле
разработать достаточно простые и надежные системы на базе персонального
компьютера (ПК). Такая система состоит из платы параллельного интерфейса
и блока контрольно-диагностического устройства (КДУ). КДУ для проверки любого цифрового устройства, имеющего не более 24 входов/выходов, реализован автором на 6 микросхемах среднего уровня интеграции. КДУ позволяет не
только проводить входной контроль микросхем, но и проверять готовые изделия на частотах порядка 500 кГц. Переход на более высокие частоты связан с
введением ОЗУ и не представляет сложной проблемы.
Программная поддержка проста, но громоздкая база данных потребует значительных усилий по ее наращиванию, введению данных по новой комплектации. Однако уровень программистов для пополнению этой базы данных может
быть очень низким. В принципе на основе ПК может быть создано рабочее место разработчика, включающее в себя средства отладки и контроля. Такой инженерный комплекс автоматизации разработок (ИКАР) явился бы весьма эффективным инструментом для отечественных приборостроителей. В качестве
такой универсальной контрольно-диагностической системы (УКОС) может быть
использована схема, представленная на рисунке. УКОС может работать как в
автономном режиме, так и в системе с персональным компьютером. Она легко
перепрограммируется из средства контроля в систему отладки микроконтроллеров.
341
342
БЛОК-СХЕМАУКОС - вар.15.04.2004
D
Упр
2
3
4
5
6
7
8
9
А
B
C
D
E
F
СУ
AD8138AR
C
Int1
УПР
УПР
CLK 6МГц
CЧ
(1к)
R3 510
JTG1
UDClk
R2 100
3
R1
1к
8
Согласующее устр-во
FT8U245AM
32
логические
вх/вых
74АС14ТТR
авт / ручн
ТШ
P1
Сброс
по питанию
ЖКИ 4 х 20
DV-20400S1FBLY/R
Аудио-2
I/O
JTG1
8
Аудио-1
Примечания
1.СУ - согласующее устроиство
2.Задействованы около 100 из 147 выводов пользователя
3.Для запоминания одного ТВ-поля требуется не менее
20мс/20нс = 1Мслово по 14 бит.
4.Для одного из логических вх/вых резистор R1 заменить
со 100 Ом на 510 Ом.
5.При включении питания обеспечить высокоимпедансное
состояние по выходу UDClk
6.Номинальная скорость передачи по LPT- порту 2 Мбайт/с.
7. Время записи в RAM2 равно int[4 Мслов х 18бит/слово / (2М х8)бит/с] = 5 с
R4
1к
CLK
+
-
ФНЧ
AD
8138
Int1
XTAL1
Int0
1
RDY
ТГ
75МГц
AT89C5131-S3SIL
2
USB-МК
0
КП1554АП6
(74АС245)
RDY
P4
18
+
-
CLK DLC
8
8
2
ADM
488AR
75МГц
2
Синх
AD9854ASQ
P0
EP1K100QC208-1
MPU
P3
3
RS-485
PLA1
Коммутатор
2
ST232BW
RAM - 49 кбит
users pin = 147
3
RS-232
9
8
USER
Reset 88
ТШ
10
4
P2
PLA2
Reset
VD6 +5В,-5В,
+3,3В,+2,5В
2
USB-ПЛИС
R6 100
R5
330
LPT
16
LPT
4
3 JTG1
SRAM
JTAG1
75МГц
2
14
f50
DA1
14
СУ
ADC
AD
9244
BST-40
37,5МГц
+
-
ФНЧ
AD
9755
АТТ
AD
8009
УПР
Видео
AT65-0106
50дБ,6бит,2ГГц
18
18
ADR
CE1
D1E
WE1
WE2
AD USER DE2
CE2
144
ADClk
14
AD
8138
AR
Вход аналоговый
EPC2LC20
+
-
DAC
21
А0-20
RAM1
2
JTG2
2 корп.
C
D1
D2
DA2
3
4
JTAG2
6
АТТ
3
R7
10к
RAM - 49 кбит
users pin = 147
Релейный
блок вкл.
питания
. . . . . .
EP1K100QC208-1
8
75 МГц
75 МГц
D
CE
DE
WE
21
(2кор.)
7,5нс
K7N321801M
А0-20 RAM2
2
75 МГц
2
CE
DE
WE
D
логические
входы
(2кор.)
7,5нс
K7N321801M
Для отладки схемы УКОС рекомендуется использование простого контрольно-диагностического устройства (КДУ), блок-схема которого представлена
на рис.
Блок-схема мини-КДУ - вар.15.04.04
Разъём модулятора 1
LPT-разъём
R1 100
Входы/
выходы ПК
24
D
R2
10к
ТГ
50МГц
B689-V5
Управление
R3 1к
CLK
4
4
4
ТШ
147 МГц, 2,5 нс, EPM7128SLC84-15
Занято 63 из 68 вх/вых.
PLA1
логические
вх/вых
Разъём модулятора 2
логические
вх/вых
Цепи питания
32
R6 100
внешнее
питание
Разъём связи с ОК
32
I/O
логические
вх/вых
R5
10к
Упр
+5В
Сброс
4
R4 1к
ТШ
СБР
JTAG
JTAG
R7
1к
+5В
D+5 В
Сброс
по питанию
Примечания
1.Питание +5В/1А.
2.Задействованы 63 из 68 выводов пользователя
3.Для одного из логических вх/вых(UDClk) резистор R5 заменить
со 100 Ом на 510 Ом.
4.При включении питания обеспечить высокоимпедансное
состояние по выходу UDClk
5.Внешнее питание: D+5В,D+3,3В,А+5В,А-5В,А+3,3В.
Reset
342
343
program generat;
uses crt;
var m:array[0..255] of integer;
i,n,t:integer;
{=========================================================}
begin
clrscr;
writeln('╔════════════════════════════════════════╗');
writeln('║ Программа управления "Генератор".
║');
writeln('║ Для выхода из программы нажмите "ENTER".
║');
writeln('║
Лобанов В.И. 19-03-2004.
║');
writeln('╚════════════════════════════════════════╝');
writeln;
write('Введите задержку(t в мс) и длину массива(n) ');
readln(t,n);
for i:=0 to n-1 do
m[i]:=i;
i:=0;
repeat{имитация работы 8-разрядного двоичного счётчика}
delay(t);
port[$378]:=m[i]; {посылка в порт 378h байт из массива m[]}
if i=n-1 then i:=0 else inc(i);
until keypressed;
clrscr;
end.
343
344
6.5. Синтез проверяющих тестов для комбинационных схем.
Подавляющее большинство разработчиков ограничивает свои притязания
функциональным контролем изделия. Этого безусловно недостаточно для гарантии работоспособности цифрового устройства (ЦУ). Кроме функционального существует ещё и тестовый контроль, который в свою очередь подразделяется на проверяющий и диагностический. Фундаментальные результаты в области синтеза тестов для ЦУ были получены в Институте проблем управления
(см. работы Пархоменко П.П., «Основы технической диагностики» - М.: Энергия,1978). Даже построение проверяющих тестов представляет собой весьма
сложную проблему. Поэтому ограничимся расссмотрением синтеза проверяющих тестов для комбинационных схем.
Существуют формальные методы построения проверяющих тестов, обнаруживающих кратные неисправности, существуют и программные пакеты синтеза
таких тестов. Однако в настоящее время всё это либо слишком дорого, либо не
удовлетворяет требований разработчиков. При соблюдении условий управляемости и наблюдаемости любое ЦУ может быть разбито на комбинационные
узлы и элементы памяти, к которым при использовании контролепригодных регистров типа LSSD обеспечивается непосредственный доступ. Контроль ЦУ
представляет в этом случае раздельное тестирование комбинационных схем и
элементов памяти. Здесь будут кратко рассмотрены лишь вопросы контроля
«комбинаторики». Наибольшей проверяющей способностью для комбинационных схем обладает так называемый тривиальный тест, обнаруживающий максимальное количество неисправностей. Однако длина такого теста весьма велика и составляет 2n , где n – количество входов комбинационной схемы. Для
некоторых регулярных устройств эта величина может быть существенно
уменьшена.
В 1978г. при разработке прибора 20 изделия 83В6 оборонного назначения
автором был построен тест, эквивалентный тривиальному, для многовходового
сумматора с последовательным переносом. Черновик статьи был представлен
Халчеву В.Ф. (ИПУ) и далеко не сразу встретил его понимание.
В связи с тем, что сумматор обладает регулярной структурой, имеется возможность построения короткого теста, эквивалентного тривиальному и не зависящему от разрядности объекта контроля. Для этого построим такой тест, который для каждого разряда сумматора обеспечит тривиальное тестирование. Поскольку каждый разряд сумматора имеет три входа, то длина тривиального теста не превысит 8 наборов.
Покажем на частном примере синтеза проверяющего теста для 6-разрядного
сумматора, что длина общего теста не зависит от разрядности и равна 8 наборам. Пусть вход переноса для млашего разряда сумматора обнулён, т.е. соединён с «землёй». Синтез теста иллюстрируется таблицами 1 и 2. В табл.1
представлены проверяющие наборы и их номера для 6-разрядного сумматора,
в табл.2, в левой её части расписаны наборы тривиального теста для одного
разряда сумматора, а в правой части отмечено, каким проверяющим набором
из табл.1 создаётся для данного разряда каждый набор тривиального теста. В
таблицах идентификаторы ai, bi обозначают соответственно i-ые разряды первого и второго слагаемых, а pi-1 – входной перенос i-го разряда, т.е. эти переменные описывают все входы i-го разряда сумматора. Из табл. 2 вид-
344
345
но,например, что пабором 1 из табл.1 создаётся набор 000 тривиального теста
для всех разрядов сумматора. Набор 5 создаёт набор 001 для 3-го и 5-го разрядов сумматора и набор 110 для 2-го, 4-го и 6-го разрядов сумматора. Таким
образом, для построения проверяющего теста, эквивалентному тривиальному,
необходимо, чтобы правая часть табл.2 была полностью покрыта номерами
проверяющих наборов из табл.1.
Таблица 1.
Номер
набора
1
2
3
4
5
6
7
8
aaaaaa
654321
000000
111111
000000
111111
101010
010101
111111
000001
bbbbbb
654321
000000
000000
111111
111111
101010
010101
000001
111111
Таблица 2.
Тривиальный тест
aibipi-1
000
001
010
011
100
101
110
111
Разряды
сумматора
s6s5s4s3s2s1
111111
65656333333
83838222222
77777565656
44444-
В нашем случае непокрытым оказался первый разряд на наборах
001,011,101 и 111, т.е. на тех наборах, на которых входной перенос 1-го разряда должен принять значение 1. Эти 4 набора физически нереализуемы,
т.к. вход переноса 1-го разряда соединён с «землёй». Следовательно, тест,
эквивалентный тривиальному, построен.
Очевидно, что предлагаемый подход можно применить к синтезу проверяющих тестов для сумматоров любой разрядности. В табл.3 приводится тест
для 11-разрядного сумматора, из которой видно, что изменилась только длина каждого набора, а порядок чередования нулей и единиц в наборах остался прежним. Естественно, это не единственный тест для проверки сумматора, но вполне очевидно, что длина его минимальна.
345
346
Таблица 3.
Номер
Входы a11 – a1 Входы b11 – b1
набора
1
00000000000
00000000000
2
11111111111
00000000000
3
00000000000
11111111111
4
11111111111
11111111111
5
01010101010
01010101010
6
10101010101
10101010101
7
11111111111
00000000001
8
00000000001
11111111111
В том случае, если входной перенос младшего разряда может принимать
значения 0 и 1, то длина теста может увеличиться, но не более, чем на 4
набора. Если немного подумать, то, вероятно, и для этого случая можно
найти тривиальный тест длиной 8 наборов. Синтез неоптимального тривиального теста для 3-разрядного сумматора приводится в табл.4 и табл.5.
Таблица 4.
Номер
Входы a3 – a1
набора
1
000
2
111
3
000
4
111
5
010
6
101
7
111
8
001
9
000
A
000
B
001
C
001
Таблица 5.
Тривиальный тест
aibipi-1
000
001
010
011
100
101
110
111
Входы b3 – b1
Вход p0
000
000
111
111
010
101
001
111
000
001
000
001
0
0
0
0
0
0
0
0
1
1
1
1
Разряды
сумматора
s3s2s1
111
569
333
38A
222
77B
656
44C
346
347
Анализ приводимых примеров позволяет утверждать, что предлагаемая методика обеспечивает синтез проверяющих тестов эквивалентных тривиальным в области обнаружения как минимум одиночных неисправностей, для
параллельных многоразрядных сумматоров с последовательным переносом.
Длина этих тестов не превышает 12 наборов и не зависит от разрядности
сумматора. Время построения теста вручную для 20-разрядного сумматора
не превышает 30 минут.
347
348
Глава седьмая
ПРОЕКТИРОВАНИЕ МПА НА БАЗЕ ПЛИС.
7.1. ОПТИМАЛЬНОЕ ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ СИСТЕМ
УПРАВЛЕНИЯ.
Международный валютный фонд (МВФ) потребовал от России ликвидации
ведущих технических вузов: МВТУ им. Баумана, МЭИ, МАИ, ЛПИ, НПИ и др.
(р/с «Резонанс», 23.09.2003). В настоящее время идёт медленное тотальное
уничтожение Российского образования и науки. «Вымирают» целые кафедры
технических вузов, т.е. целые, зачастую уникальные, научные направления,
Плодятся лишь псевдонаучные гуманитарные «академии» по выращиванию
болтунов и демагогов. В этих условиях минимальной задачей старшего поколения советских инженеров и учёных, проспавших Советский Союз, является
неукоснительная передача всего накопленного опыта и знаний новой генерации
инженеров и учёных. Нельзя забывать, что в «технари» даже в советские времена шла наиболее талантливая молодёжь, тем более теперь. Это будущее
России.
В связи с разгромом советской электроники все разработчики лихо набросились на зарубежную элементную базу, поскольку здесь не нужно напрягать
интеллект. Однако требования безопасности России диктуют безусловный переход на отечественную элементную базу. В цифровой и даже аналоговой
электронике такой переход возможен лишь за счёт базовых матричных кристаллов (БМК).
Мне как инженеру с 30-летним стажем хотелось бы помочь в деле проектирования молодым проектировщикам цифровой электроники. Разумеется, все
мои рекомендации следует воспринимать критически, пытаясь найти альтернативное, возможно, более приемлемое решение. Автор не претендует на истину
в последней инстанции. Разработчик – это прежде всего мыслитель, притом
талантливый.
Для начала рассмотрим работу над проектом в среде системы MAX+PLUS II
фирмы ALTERA. Приведём сокращённое описание свободно распространяемой через Internet версии САПР MAX+PLUS II Baseline, в дальнейшем изложении мы будем ориентироваться преимущественно на неё. В приложении «Краткий справочник по Русской логике и ИМРЦУ» читатель найдёт сокращённую
инструкцию (для лентяев, презирающих английский язык) по работе в САПР
MAX+PLUS II Baseline. Автор - лентяй, поэтому и создал для себя такую шпаргалку.
Название системы MAX+PLUS II является аббревиатурой от Multiple Array
MatriX Programmable Logic User System. Система MAX+PLUS II имеет средства
удобного ввода проекта, компиляции и отладки, а также непосредственного
программирования устройств.
348
349
Процедуру разработки нового проекта от концепции до завершения можно
упрощённо представить следующим образом:
1.создание нового файла проекта или иерархической структуры нескольких
файлов проекта с помощью любого сочетания редакторов в системе
MAX+PLUS II, то есть графического, текстового и сигнального редакторов;
2.задание имени файла — проекта верхнего уровня в качестве имени проекта;
3.назначение семейства ПЛИС для проекта;
4.открытие окна компилятора Compiler и выбор кнопки Start для начала компиляции проекта. По желанию пользователя можно подключить модуль извлечения временных параметров проекта Timing SNF Extractor для создания файла, используемого при временном моделировании;
5. в случае успешной компиляции возможен временной анализ, для чего следует выполнить следующее: для проведения временного анализа задержек открыть окно Timing Analyzer, выбрать режим анализа и нажать кнопку Start; для
проведения симуляции нужно сначала создать векторной тестовый вектор в
файле канала тестирования (.scf), пользуясь сигнальным редактором, или в
файле вектора (.vec), пользуясь текстовым редактором. Затем открыть окно
отладчика Simulator и нажать кнопку Start;
6.открытие окна программатора Programmer с по-следующим выбором одного
из двух способов: использование программатора MPU (Master Programming
Unit) или подключение загрузочных устройств BitBlaster, Byte-Blaster или FLEX
Download Cable к устройству, программируемому в системе;
7. выбор кнопки Program для программирования устройств с памятью типа
EPROM или EEPROM либо выбор кнопки Configure для конфигурации устройства с памятью типа SRAM.
ПО системы MAX+PLUS II содержит 11 приложений и главную управляющую
программу. Различны приложения, обеспечивающие создание проекта, могут
быть активизированы мгновенно, что позволяет пользователю переключаться
между ними щелчком мыши или с помощью команд меню. В это же время может работать одно из фоновых приложений, например, компилятор, симулятор,
анализатор синхронизации и программатор. Одни и те же команды разных приложений работают одинаково, что облегчает задачу разработки логического
дизайна.
Hierarchy Display
Обзор иерархии - отображает текущую инрархичнскую структуру файлов в виде
дерева светвями, представляющими собой подпроекты
Graphic Editor
Графический редактор - позволяет разрабатывать схемный логический проект
в формате реального отображения на экране WYSIWYG
349
350
Symbol Editor
Символьный редактор - позволяет редактировать существующие символы и
создавать новые
Text Editor
Текстовый редактор - позволяет создавать и редактировать текстовые файлылогического дизайна, написанные на языках AHDL, VHDL, Verilog HDL
Waveform Editor
Сигнальный редактор - выполняет двойную функцию: инструмент для рахработки дизайна и инструмент для ввода тестовых векторов и наблюдения результатов тестирования
Floorplan Editor
Поуровневый планировщик - позволяет графическими средствами делать
назначения контактам устройства и ресурсов логических элементов
Compiler
Компилятор - обрабатывает графические проекты
Simulator
Симулятор - позволяет тестировать логические операции и внутреннюю синхронизацию проектируемой логической цепи
Timing Analyzer
Временной анализатор - анализирует работу проектируемой логической цепи
после того, как она была синтезирована и оптимизирована компилятором
Programmer
Программатор - позволяет программировать, конфигурировать, проводить верификацию и тестировать ПЛИС фирмы ALTERA
Message Processor
Генератор сообщений - выдает на экран сообщения об ошибках, предупреждающие и информационные сообщения
Перед тем как начать работать в системе MAX+PLUS II, следует понять разницу между файлами проекта, вспомогательными файлами и проектами.
350
351
Файл проекта — это графический, текстовый или сигнальный файл, созданный
с помощью графического или сигнального редакторов системы MAX+PLUS II
или в любом другом, использующем промышленные стандарты, схемном или
текстовом редакторе либо при помощи программы netlist writer, имеющейся в
пакетах, поддерживающих EDIF, VHDL и Verilog HDL. Этот файл содержит логику для проекта MAX+PLUS II и компилируется компилятором. Компилятор
может автоматически обрабатывать следующие файлы проекта: графические
файлы проекта (.gdf); текстовые файлы проекта на языке AHDL (.tdf); сигнальные файлы проекта (.wdf); файлы проекта на языке VHDL (.vhd); файлы проекта
на языке Verilog (.v); схемные файлы OrCAD (.sch); входные файлы EDIF (edf);
файлы формата Xilinx Netlist (.xnf); файлы проекта Altera (.adf); файлы цифрового автомата (.smf).
Вспомогательные файлы — это файлы, связанные с проектом MAX+PLUS II,
но не являющиеся частью его иерархического дерева. Большинство таких файлов не содержит логики проекта. Некоторые из них создаются автоматически
приложением системы MAX+PLUS II, другие — пользователем. Примерами
вспомогательных файлов являются файлы назначений и конфигурации (.acf),
символьные файлы (.sym), файлы отчета (.rpt) и файлы тестовых векторов
(.vec).
Проект состоит из всех файлов иерархической структуры проекта, в том числе
вспомогательных и выходных файлов. Именем проекта является имя файла
проекта верхнего уровня без расширения. Система MAX+PLUS II выполняет
компиляцию, тестирование, анализ синхронизации и программирование сразу
целого проекта, хотя пользователь может в это время редактировать файлы
этого проекта в рамках другого проекта. Для каждого проекта желательно создавать отдельный подкаталог в рабочем каталоге системы MAX+PLUS II.
В системе MAX+PLUS II легко доступны все инструменты для создания проекта. Разработка проекта ускоряется за счёт имеющихся стандартных функций, в
том числе примитивов, мегафункций, библиотеки параметризованных модулей
(LPM) и макрофункций устаревшего типа микросхем 74 серии. В системе
MAX+PLUS II есть три редактора для разработки проекта: графический, текстовый и сигнальный, а также два вспомогательных редактора: поуровневый планировщик и символьный редактор.
В иерархической структуре проекта на любом уровне допускается смешанное
использование файлов с расширениями “.gdf .tdf .vhd .v .edf .sch”. Однако файлы с расширением “.wdf .xnf .adf .smf ” должны быть либо на самом нижнем
иерархическом уровне проекта, либо быть единственными.
Во всех приложениях MAX+PLUS II есть возможность с помощью команд из
меню Assign вводить, редактировать и удалять типы назначений ресурсов,
устройств и параметров, которые управляют компиляцией проекта. Пользователь может делать назначения для текущего проекта независимо от того, открыт ли какой-нибудь файл проекта или окно приложений. Доступны следующие типы назначений.
351
352
Clique assignment (Назначение клики) задаёт, какие логические функции должны оставаться вместе в одном и том же блоке логической структуры LAB, блоке
ячеек памяти EAB, в одном ряду или устройстве.
Chip assignment (Назначение кристалла) задаёт, какие логические функции
должны быть реализованы в одном и том же устройстве в случае разделения
проекта на несколько устройств.
Pin assignment (Назначение контакта) назначает вход или выход одной логической функции конкретному контакту или нескольким контактам чипа.
Location assignment (Назначение ячейки) назначает единственную логическую
функцию конкретной ячейке чипа.
Probe assignment (Назначение зонда) присваивает уникальное имя входу или
выходу логической функции.
Connected pin assignment (Назначение соединенных контактов) задаёт внешнее соединение двух или более контактов на схеме пользователя.
Local routing assignment (Назначение местной разводки) присваивает коэффициент разветвления по выходу узла логическому элементу, находящемуся в
том же блоке LAB, что и узел, или в соседнем LAB, прилежащем к узлу, с использованием общих местных разводок.
Device assignment (Назначение устройства) назначает тип ПЛИС, на которой
реализуется проект.
Logic option assignment (Назначение логической опции) управляет логическим
синтезом отдельных логических функций во время компиляции с применением
стиля логического синтеза.
Timing assignment (Назначение временных параметров) управляет логическим
синтезом и подгонкой отдельных логических функций для получения требуемых
характеристик для времени задержки tPD (вход – неподрегистренный выход),
tCO (синхросигнал – выход), tSU (синхросигнал – время установки), fMAX (частота син-хросигнала).
Можно определить глобальные опции устройства для компилятора, чтобы он
использовал их для всех устройств при обработке проекта. Для резервирования дополнительных возможностей на будущее можно задать процентное соотношение контактов и логических элементов, которые должны оставаться неиспользованными во время текущей компиляции.
С использованием команды Global Project Para-meters можно задать имена и
глобальные установки, которые будут использованы компилятором для параметров всех параметризованных функций в проекте.
При помощи команды Global Project Timing Require-ments можно ввести глобальные требования по синхронизации для поекта, задавая общие характеристики для времени задержки tPD (вход – нерегистрируемый выход), tCO (син-
352
353
хросигнал – выход), tSU (синхросигнал – время установки), fMAX (частота синхросигнала).
Команда Global Project Logic Synthesis позволяет сделать глобальные установки для компилятора в части логического синтеза проекта.
Все пять редакторов MAX PLUS II и три редактора создания дизайна (графический, текстовый и сигнальный) имеют общие функции, такие как, например, создание, сохранение и открытие файла. Кроме того, приложения редактора MAX
PLUS II имеют следующие общие функции: создание файлов символов и файлов с прототипами функций (Include-файлы); поиск узлов; траверз иерархического дерева; всплывающие окна меню, зависящего от контекста; временной
анализ; поиск и замена фрагментов текста; отмена последнего шага редактирования, его возвращения, вырезка, копирование, вставка и удаление выбранных фрагментов, обмен фрагментами между приложениями MAX PLUS II или
приложениями Windows; печать.
Графический редактор (Graphic Editor) обеспечивает проектирование в реальном формате изображения (WYSIWIG). Графические файлы проекта (.gdf) или
схемные файлы OrCAD (.sch), созданные в данном графиче-ском редакторе,
могут включать любую комбинацию символов примитивов, мегафункций и макрофункций. Символы могут представлять собой любой тип файла проекта (.gdf
.sch .tdf .vhd .v .wdf .edf .xnf .adf .smf).
Инструмент выбора (“стрелка”) облегчает разработку дизайна. Он позволяет
двигать и копировать объекты, а также вводить новые символы. Когда вы помещаете его на контакт или конец линии, он автоматически преобразуется в
инструмент рисования ортогональных линий. Если им щелкнуть на тексте, он
автоматически преобразуется в инструмент редактирования текста.
Графический редактор обеспечивает ряд других возможностей. Например,
можно увеличивать или уменьшать масштаб отображения на экране, выбирать
гарнитуру и размер шрифта, задавать стили линий, устанавливать и отображать направляющие, получать зеркальное отображение, поворачивать выделенные фрагменты на 90, 180 или 270 градусов; задавать размер и ориентацию
текущего листа схемы.
Символьный редактор (Symbol Editor) позволяет просматривать, создавать и
редактировать символ.
Символьный файл имеет то же имя, что и проект, и расширение “.sym”. Команда Creat Default Symbol меню File, которая есть в графическом, текстовом и
сигнальном редакторах, создает символ для любого файла проекта. Символьный редактор обладает следующими характеристиками: можно переопределить символ, представляющий файл проекта, создавать и редактировать выводы и их имена, используя входные, выходные и двунаправленные выводы, а
также задавать варианты ввода символа в файл графического редактора, задать значения параметров и их значения по умолчанию; сетка и направляющие
помогают выполнить точное выравнивание объектов, в символе можно вводить
комментарии.
353
354
Текстовый редактор (Text Editor) является инструментом для создания текстовых файлов проекта на языках описания аппаратуры: AHDL (.tdf), VHDL (.vhd),
Verilog HDL (.v). В этом текстовом редакторе можно работать также с произвольным файлом формата ASCII. Все перечисленные файлы проекта можно
создавать в любом текстовом редакторе, однако данный редактор имеет
встроенные возможности ввода файлов проекта, их компиляции и отладки с
выдачей сообщений об ошибках и их локализацией в исходном тексте или в
тексте вспомогательных файлов; кроме того, существуют шаблоны языковых
конструкций для AHDL, VHDL и Verilog HDL, выполнено окрашивание синтаксических конструкций. В данном редакторе можно вручную редактировать файлы
назначений и конфигурации (.acf), а также делать установки конфигурации для
компилятора, симулятора и временного анализатора. Пользуясь данным текстовым редактором, можно создавать тестовые векторы (.vec), используемые
для тестирования, отладки функций и при вводе сигнального проекта. Можно
также создавать командные файлы (.cmd — для симулятора и .edc — для
EDIF), а также макробиблиотеки (.lmf).
В текстовом редакторе MAX PLUS II обеспечивается контекстная справка.
Сигнальный редактор (Waveform Editor) служит инструментом создания описания проекта, ввода тестовых векторов и просмотра результатов тестирования.
Пользователь может создавать сигнальные файлы проекта (.wdf), которые содержат временные диаграммы, описывающие логику работы проекта, а также
файлы каналов тестирования (.scf), которые содержат входные вектора для
тестирования и функциональной отладки. Разработка описания проекта в сигнальном редакторе является альтернативой его созданию в графическом или
текстовом редакторах. Здесь можно графическим способом задавать комбинации входных логических уровней и требуемых выходов. Созданный таким образом файл WDF может содержать как логические входы, так и входы цифрового
автомата, а также выходы комбинаторной логики, счётчиков и цифровых автоматов. Способ разработки дизайна в сигнальном редакторе лучше подходит
для цепей с чётко определёнными последовательными входами и выходами, то
есть для цифровых автоматов, счётчиков и регистров. С помощью сигнального
редактора можно легко преобразовывать временные диаграммы сигналов целиком или частично, создавая и редактируя узлы и группы. Простыми командами можно создавать файл таблицы ASCII-символов (.tbl) или импортировать
файл тестовых векторов в формате ASCII (.vec) для создания файлов тестируемых каналов SCF и сигнального дизайна WDF. Можно также сохранить файл
WDF как SCF для проведения тестирования или преобразовать SCF в WDF для
использования его в качестве файла проекта. Сигнальный редактор имеет следующие отличительные черты: можно создать или отредактировать узел, задав
его тип; при разработке WDF можно задать тип логики узла, задать значения по
умолчанию в логическом узле, а также имя состояния по умолчанию в узле типа
цифрового автомата, для упрощения создания тестового вектора можно легко
добавить в файл тестируемых каналов SCF несколько узлов или все из информационного файла симулятора (.snf), существующего для полностью откомпилированного проекта, можно объединять от 2 до 256 узлов для создания новой
группы (шины) или разгруппировывать объединённые ранее в группу узлы.
Можно также объединять группы с другими группами. Значение группы может
быть отображено в двоичной, десятичной, шестнадцатеричной или восьмеричной системе счисления с преобразованием или без в код Грэя, можно копиро-
354
355
вать, вставлять, перемещать или удалять выбранную часть (“интервал”) сигнала, а также весь узел или группу. Можно также инвертировать, вставлять, переписывать, повторять, расширять или сжимать интервал сигнала любой длины с
любым логическим уровнем, тактовым сигналом, последовательностью счёта
или именем состояния, задать сетку для выравнивания переходов между логическими уровнями, в любом месте файла можно вводить комментарии между
сигналами, менять масштаб отображения.
Для облегчения тестирования можно сделать наложение любых выходов в текущем файле или наложить второй файл сигнального редактора для сравнения
сигналов его узлов и групп с соответствующими сигналами текущего файла.
Поуровневый планировщик (Floorplan Editor) предназначен для назначения ресурсов физических устройств и просмотра результатов разводки, сделанных
компилятором. В окне поуровневого планировщика могут быть представлены
два типа изображения:
Device View (Вид устройства) показывает все контакты устройства и их функции;
LAB View (Вид логического структурного блока) показывает внутреннюю часть
устройства, в том числе все логические структурные блоки (LAB) и отдельные
логические элементы.
После выполнения всех назначений и задания проекта приступают к его компиляции. Сначала компилятор извлекает информацию об иерархических связях
между файлами проекта и проверяет проект на простые ошибки ввода описания проекта.
Компилятор применяет разнообразные способы увеличения эффективности
проекта и минимизации использования ресурсов устройства. Если проект
слишком большой, чтобы быть реализованным в одном устройстве, компилятор
может автоматически разбить его на части для реализации в нескольких
устройствах того же самого семейства, при этом число соединений между
устройствами минимизируется. В файле отчёта (.rpt) затем будет отражено, как
проект будет реализован в одном или нескольких устройствах.
Кроме того, компилятор создает программирующие файлы, используемые программатором для программирования одного или нескольких устройств. У разработчика также есть возможность настроить обработку проекта. Например,
можно задать стиль логического синтеза проекта по умолчанию и другие параметры логического синтеза в рамках всего проекта, что позволит провести логический синтез в соответствии с вашими потребностями. Кроме того, вы можете ввести требования по синхронизации в рамках всего проекта, точно задать
разбиение большого проекта на части для реализации в нескольких устройствах и выбрать варианты параметров устройств, которые будут применены
для всего проекта в целом. Загрузку готового проекта в ПЛИС или конфигурационное ПЗУ выполняют с помощью программатора (Programmer).
Ниже приводится пример
МПА,представленного на ГСА.
текстового
355
файла
для
проекирования
356
356
357
TITLE "Блок связи и команд";
INCLUDE "tm1";
INCLUDE "tm2";
INCLUDE "ctc";
INCLUDE "dff";
SUBDESIGN bsc
(
f50,reset,z1,z2,z3,z4,z5,z7,z9: INPUT;
y1,y2,y3,y6,q[3..0]
y4,y5,y7,y8
: OUTPUT;
: output;
)
VARIABLE
mtm1 : tm1;
mtm2 : tm2;
mctc : ctc;
rg[3..0] : DFF;
z6,z8,z10,d[3..0] : NODE;
BEGIN
rg[].clk = f50;
rg[].clrn = reset;
rg[].d = d[];
q[] = rg[].q;
mtm1.clk = f50 & y4;
mtm1.reset = !y7;
mtm2.clk = mtm1.ct5;
mtm2.reset = !y7;
357
358
z10 = mtm2.ct0;
z6 = mtm2.ct6;
mctc.clk = y5;
mctc.reset = !y8;
z8 = mctc.ct2;
table
q[3..0],z10,z9,z8,z7,z6,z5,z4,z3,z2,z1 => d[3..0];
0 , x , 0, x, x, x, x, x, x, x, x =>
0;
1 , x , x, x, x, x, x, x, x, 1, x =>
0;
12 , x , 0, x, x, x, x, x, x, x, x =>
0;
15 , x , x, x, x, x, x, x, x, x, x =>
0;
0 , x , 1, x, x, x, x, x, x, x, x =>
1;
1 , x , x, x, x, x, x, 0, x, 0, x =>
1;
14 , x , x, 0, x, x, x, 1, x, x, x =>
1;
1 , x , x, x, x, x, x, 1, x, 0, x =>
2;
2 , x , x, x, x, x, x, 1, x, x, 1 =>
2;
9 , x , x, x, 0, x, x, x, x, x, x =>
2;
11 , x , x, 0, x, 1, x, x, 0, x, 1 => 2;
2 , x , x, x, x, x, x, 1, x, x, 0 =>
3;
7 , x , x, x, x, x, x, x, x, x, 0 =>
3;
8 , 1 , x, x, x, x, x, x, x, x, x =>
3;
11 , x , x, 0, x, 1, x, x, 1, x, x => 3;
11 , x , x, 0, x, 1, x, x, 0, x, 0 => 3;
3 , x , x, x, x, x, x, x, x, x, x =>
4;
4 , x , x, x, 0, x, 1, x, 1, x, x =>
4;
4 , x , x, x, x, x, x, x, 0, x, x =>
5;
5 , x , x, x, x, x, x, x, x, x, x =>
6;
358
359
6 , 0 , x, x, x, x, x, x, x, x, 1 =>
6;
6 , 1 , x, x, x, x, x, x, x, x, x =>
7;
7 , x , x, x, x, x, x, x, x, x, 1 =>
7;
6 , 0 , x, x, x, x, x, x, x, x, 0 =>
8;
8 , 0 , x, x, x, x, x, x, x, x, x =>
8;
4 , x , x, x, 1, x, 1, x, 1, x, x =>
9;
9 , x , x, x, 1, x, x, x, x, x, x =>
9;
4 , x , x, x, x, x, 0, x, 1, x, x =>
10;
10 , x , x, x, x, x, x, x, x, x, x =>
11;
11 , x , x, 0, x, 0, x, x, x, x, x =>
11;
11 , x , x, 1, x, x, x, x, x, x, x =>
12;
12 , x , 1, x, x, x, x, x, x, x, x =>
12;
14 , x , x, 1, x, x, x, 1, x, x, x =>
12;
2 , x , x, x, x, x, x, 0, x, x, x =>
13;
13 , x , x, x, x, x, x, x, x, x, x =>
14;
14 , x , x, x, x, x, x, 0, x, x, x =>
14;
end table;
table
q[3..0]=> y1,y2,y3,y4,y5,y6,y7,y8;
0
=> 0, 0, 0, 0, 0, 0, 0, 0;
1
=> 0, 0, 0, 0, 0, 0, 1, 1;
2
=> 0, 0, 0, 0, 0, 0, 1, 1;
3
=> 1, 0, 0, 0, 0, 0, 1, 0;
4
=> 0, 0, 0, 0, 0, 0, 0, 0;
5
=> 0, 1, 0, 0, 0, 0, 1, 0;
6
=> 0, 0, 0, 1, 0, 0, 0, 0;
7
=> 0, 0, 0, 0, 0, 0, 0, 0;
359
360
8
=> 0, 0, 0, 1, 0, 0, 0, 0;
9
=> 0, 0, 1, 0, 0, 0, 0, 0;
10
=> 0, 0, 0, 0, 1, 0, 1, 0;
11
=> 0, 0, 0, 1, 0, 0, 0, 0;
12
=> 0, 0, 0, 0, 0, 1, 0, 0;
13
=> 0, 0, 0, 0, 1, 0, 0, 0;
14
=> 0, 0, 0, 0, 0, 0, 0, 0;
15
=> 0, 0, 0, 0, 0, 0, 0, 0;
end table;
end;
Рассмотрим ещё несколько реализаций проектов ЦУ на ПЛИС ф. «Альтера».
Частотный детектор.
Частотный детектор (ЧД) сравнивает частоту на выходе синтезатора частоты
(СЧ) с эталонной частотой 10 МГц и выдаёт результат в виде сигналов
«больше», «меньше» или «равно». Схема ЧД состоит из двух счётчиков и конечного автомата (КА).
360
361
361
362
362
363
Начало
Y5
a0
0
Z0
1
Y4
a1
0
Z1
1
Y1 – «больше»,
Y2 – «меньше»,
Y3 – «равно»,
Y4 – разрешение счёта,
a21
Z0
0
Конец
363
364
Y5 – сброс счётчиков.
Фазовый детектор.
Фазовый детектор (ФД) определяет сдвиг по фазе между опорным сигналом 10
МГц и сигналом на выходе синтезатора частоты.
Для нормальной работы КА требуется высокое быстродействие ПЛИС. Поскольку необходимо отслеживать разность фаз не хуже 2нс за период 100нс, а
тактовая частота не превышает 38 МГц, то КА должен быть асинхронным. Пришлось создать предельно «отжатые» SR-триггеры со входом сброса (они представлены на рисунке). У этого триггера есть незначительный недостаток в режиме обнуления, но к нему нет претензий в рабочем режиме. Кроме того, во
избежание гонок, пришлось применить оригинальное противогоночное кодирование, когда состояния не просто развязываются по-Баранову, а обеспечивается переход в любое состояние при изменении только одного бита в кодах состояний.
364
365
365
366
366
367
367
368
Последняя диаграмма свидетельствует о срыве работы КА по причине недостаточного быстродействия ПЛИС. Если разность фаз не превышает 1нс, то
КА не успевает отслеживать переходы из одного состояния в другое.
368
a0
Началоо
369
1
Z1
0
a1
0
Z1
1
1
Z2
0
a4
1
Y1
Z2
a2
0
0
Z2
Y2
1
a5
1
a7
Z1
0
a6
a3
ГСА КА фазового детектора
Конец
a0RS-485.
Приёмопередатчик
Для обеспечения обмена информацией между ПК и КДУ-2 на рассстоянии
не менее 300 м используется интерфейс RS-485. Микроконтролер для выполнения этой задачи в режиме полудуплекса реализован на ПЛИС в САПР
MAX+PLUS II v.10(файл prmprdrs.gdf).
369
370
370
371
371
372
SUBDESIGN kars485
(
reset,z1,z2,z3 : INPUT;%сброс RG,последоват.вход,прошёл
Старт,прошли 9 имп. по 6,3 мкс%
clk
: input; % тактовая частота 1,5873 МГц с периодом 630
нс%
y1,y2
: output;%разрешение работы делителю на
10,разрешение счёта для информационного СТИ %
q[1..0]: OUTPUT; % выходы RG %
)
VARIABLE
q[1..0],qy[1..0] : DFF;
d[1..0],dy[1..0] : NODE;% D- входы RG, RGY %
BEGIN
q[].clk = clk;
q[].clrn = !reset;
q[].prn = VCC;
q[] = d[];
qy[].clk = clk;
qy[].clrn = !reset;
qy[].prn = VCC;
qy[] = dy[];
372
373
table
q[1..0], z3, z2, z1 => d[1..0];
3 , 1 , x , x => 0 ;
0 , x , x , 0 => 0 ;
0 , x , x , 1 => 1 ;
1 , x , x , 1 => 1 ; % ТОП МПА %
1 , x , x , 0 => 2 ;
2 , x , 0 , x => 2 ;
2 , x , 1 , x => 3 ;
3 , 0 , x , x => 3 ;
end table;
table
q[1..0] => dy0,dy1;
0 => 0, 0;
1 => 0, 0;% выходные функции %
2 => 1, 0;
3 => 1, 1;
end table;
y1 = qy0;
y2 = qy1;
end;
subdesign paritet
(
d[8..0] : input;
p
: output;
)
begin
p = d0 $ d1 $ d2 $ d3 $ d4 $ d5 $ d6 $d7 $ d8;
end;
373
374
374
375
SUBDESIGN trans485
(
reset,z1,z2 : INPUT;%сброс RG,Пуск,прошли 12 имп. по 6,3 мкс%
clk
: input; % тактовая частота 1,5873 МГц с периодом 630 нс%
y0,y1,y2 : output;%разрешение работы делителей на 10 и
12,загрузка,строб записи данных в сдвиговый RG %
q[1..0]: OUTPUT; % выходы RG КА %
)
VARIABLE
q[1..0],qy[2..0] : DFF;
d[1..0],dy[2..0] : NODE;% D- входы RG КА, RGY %
BEGIN
q[].clk = clk;
q[].clrn = !reset;
q[].prn = VCC;
q[] = d[];
qy[].clk = clk;
qy[].clrn = !reset;
qy[].prn = VCC;
qy[] = dy[];
table
375
376
q[1..0], z2, z1 => d[1..0];
2 , 1 , x => 0 ;
0 , x , 0 => 0 ;
0 , x , 1 => 1 ;
1 , x , x => 3 ; % ТОП МПА %
3 , x , x => 2 ;
2 , 0 , x => 2 ;
end table;
table
q[1..0] => dy0,dy1,dy2;
0 => 0 , 0 , 0 ;
1 => 0 , 1 , 0 ;% выходные функции %
3 => 0 , 1 , 1 ;
2 => 1 , 0 , 0 ;
end table;
y0 = qy0;
y1 = qy1;
y2 = qy2;
end;
Проект приёмопередатчика RS-485 занял всего 1% от объёма ПЛИС
EP1K100Qc208-1.
376
377
Телевизионный генератор испытательных сигналов.
Блок-схема ТВ-ГИС.
Структурная схема телевизионного генератора испытательных сигналов (ТВГИС) представлена на рисунке.
Выход
Сумматор
КДУКДУ-2
ФНЧ-1
УМ-1
ФНЧ-2
УМ-2
СЧ
КДУ
На схеме использованы следующие обозначения:
КДУ – контрольно-диагностическое устройство,
СЧ – синтезатор частоты,
377
378
ФНЧ – фильтр нижних частот,
УМ – усилитель мощности.
КДУ.
БЛОК: КОНФИГУРАЦИОННОЕ ПЗУ
БЛОК: ДВА МОДУЛЯТ ОРА
+3.3VD2
DD4
R76 1,8к
БЛОК: ГЕНЕРАТ ОР ЧАСТ ОТ Ы
VCC
G
OUT
AGND
FC
4
3
7
+5VA1
C5 0.1
6
7
2
R2
-5VA1
C3
0.1
+3.3VD2
3
VD1
2
4
GND
R32 51
C6
0.1
Цепь
R31
100
R5 390
R74
1,8к
XP1
Конт
1
2
3
4
5
6
7
8
9
10
R75
1,8к
R80 1,8к
XDQB4
XDQB5
XDQB6
XDQB7
XDQB8
XA8_M
XA9_M
XA10_M
XA11_M
XA12_M
XA13_M
XA14_M
XA15_M
DD3
9
11
19
3
R77
1,8к
VPP
VCC
GND
5
VCCS
14
VPPS
C9
0.1
R4
100
2
SRAM DATA
4
DCLK
8
OE
12
CASC
13
CONF
1
TDO
CS
TDI
TMS
TCK
+5B
+5 B
1
15
IDC10MS
р о зе тки пр и бо р н ые xlr
C2
0.1
R30
100
1
DA1
AD8009
R1 22
Q0
CNFDN
Q2
Q3
+3.3VD2
R79 1,8к
C4 0.1
ZQ1
2
C1
10.0x10B
+5VA1
R3
51
+5VA1
CNFDN
+5VA1
DATA0
DCLK
NSTATUS
NCONFIG
18
20
10
+5B
C14
0.1
+3.3VD2
EPC2LC20
4
0.1
+2.5VD1
+3.3VD2
XA16_M
XA17_M
XA18_M
XWE_M
XDQA1
XDQA2
XDQA3
XDQA4
CLK75
RESET_PLIS
R78
22
+5B
C7
0.1
DD1:7
+5B
14
DD1:1
1
C8
10.0x10B
7
R81
1,8к
+2.5VD1
+3.3VD2
R73
30к
DD1:2
2
3
DD1:3
4
5
6
9
R82 22
XDQA5
XDQA6
XDQA7
XDQA8
XCS_M
XA0_M
+3.3VD2
10
74AC14
74AC14
74AC14
R83
30к
XA1_M
XA2_M
XA3_M
XA4_M
+2.5VD1
Q15
Q16
NSTATUS
Q1
XA0_M
22 R29
A0_M
XWE_M
1,8к R27
XA1_M
22 R28
R6 22
A1_M
XOE_M
R7 22
R8 22
A2_M
XCS_M
R9 22
A3_M
XUB_M
R10 22
A4_M
XLB_M
R11 22
R12 22
A5_M
XA18_M
R13 22
XA17_M
R14 22
XA16_M
R15 22
R25 1,8к
R58 22
DQA1
DQA2
XDQA3
R35 22
R36 22
R37 22
R38 22
R59 22
XDQA4
LB_M
XDQA5
A18_M
XDQA7
A17_M
XDQA8
XDQB1
R60 22
DQA3
R61 22
R62 22
R63 22
R64 22
R65 22
DQA4
DQA5
A0_M
A1_M
A2_M
A3_M
A4_M
A5_M
A6_M
A7_M
A8_M
A9_M
A10_M
A11_M
A12_M
A13_M
A14_M
A15_M
A16_M
A17_M
A18_M
5
4
3
2
1
44
43
42
28
27
26
25
24
23
22
21
20
19
18
DQA6
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
A16
A17
A18
IO1
IO2
IO3
IO4
IO5
IO6
IO7
IO8
IO9
IO10
IO11
IO12
IO13
IO14
IO15
IO16
VCC
VSS
DQA7
DQA8
DQB1
OE_M
CS_M
LB_M
UB_M
WE_M
41
6
39
40
17
OE
CS
LB
UB
WE
VCC
VSS
7
8
9
10
13
14
15
16
29
30
31
32
35
36
37
38
33
DQA8
DQA7
DQA6
DQA5
DQA4
DQA3
DQA2
DQA1
A8_M
XA15_M
R39 22
XA14_M
R40 22
XDQB2
XDQB3
XDQB4
A14_M
XDQB5
XDQB6
XA13_M
R41 22
A13_M
XDQB7
R51 1,8к
A11_M
XA12_M
R42 22
F
E
R6
+3.3VD2
D
R7
DP
B
C
+2.5VD1
G
S12
S7
+3.3VD1
34
11
CLK75
+3.3VD1
12
R66 22
R67 22
+3.3VD2
Q5
Q6
S8
+3.3VD2
DQB2
DQB3
A15_M
R50 1,8к
A10_M
Q4
K6X8016T3B
A16_M
R49 1,8к
A9_M
R5
A
DQB8
DQB7
DQB6
DQB5
DQB4
DQB3
DQB2
DQB1
R48 1,8к
R24 1,8к
XA11_M
R57 22
UB_M
R47 1,8к
A7_M
R23 1,8к
XA10_M
R34 22
R46 1,8к
A6_M
R22 1,8к
XA9_M
XDQA2
XDQA6
R21 1,8к
XA8_M
CS_M
R45 1,8к
R20 1,8к
XA7_M
R33 22
R44 1,8к
R19 1,8к
XA6_M
OE_M
R43 1,8к
R18 1,8к
XA5_M
22 R55
XDQA1
R17 1,8к
XA4_M
WE_M
1,8к R53
R16 1,8к
XA3_M
22 R56
1,8к R54
1,8к R26
XA2_M
R4
R3
R0
R1
R2
DD2
A12_M
XDQB8
R68 22
R69 22
R70 22
R71 22
R72 22
DQB4
ОЗУ фирмы SAMSUNG 512Kx16 bit:
K6X8016T 3B-F в корпусе 44-T SOP2-400F
DQB5
DQB6
БЛОК: ОЗУ 512Кx16
DQB7
DQB8
R52 1,8к
S9
S11
S10
R8
RESET_PLIS
S6
+2.5VD1
S5
S4
Q7
S3
S2
S1
+3.3VD2
RD_RS
DE_RS
Q22
TD_RS
Q8
Q9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
TCK
CONF_DONE
nCEO
TDO
VccIO
GND
I/O
I/O
I/O
CLKUSR
I/O
I/O
I/O
I/O
I/O
RDYnBSY
I/O
I/O
INIT_DONE
GND
VccINT
VccIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
GND
VccINT
VccIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
VccIO
GND
I/O
I/O
I/O
I/O
VccINT
GND
TMS
TRST
nSTATUS
I/O
I/O
I/O
I/O
I/O
I/O
GND
I/O
I/O
LOCK
I/O
I/O
I/O
VccIO
I/O
I/O
I/O
I/O
I/O
VccINT
I/O
I/O
I/O
GND
Vcc_CKLK
Ded_IN1
Ded_CP1
Ded_IN2
GND_CKLK
GND
I/O
VccIO
I/O
I/O
I/O
I/O
I/O
I/O
VccINT
I/O
I/O
I/O
I/O
I/O
I/O
VccIO
I/O
I/O
I/O
I/O
I/O
I/O
nCS
CS
nWS
I/O
nRS
I/O
I/O
VccINT
I/O
I/O
I/O
I/O
I/O
I/O
VccIO
I/O
I/O
I/O
I/O
I/O
GND
I/O
Dev_OE
VccINT
Ded_IN4
Ded_CP2
Ded_IN3
GND
Dev_CLRn
I/O
VccIO
I/O
I/O
I/O
I/O
I/O
I/O
GND
I/O
I/O
I/O
I/O
DATA7
VccIO
DATA6
I/O
DATA5
DATA4
I/O
DATA3
DATA2
DATA1
DATA0
DCLK
nCE
TDI
VccINT
GND
I/O
I/O
I/O
I/O
VccIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
VccIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
VccINT
GND
I/O
I/O
I/O
I/O
VccINT
GND
I/O
I/O
I/O
I/O
VccIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
VccIO
GND
MSEL0
MSEL1
VccINT
nCONFIG
EP1K100QC208-1
378
208
207
206
205
204
203
202
201
200
199
198
197
196
195
194
193
192
191
190
189
188
187
186
185
184
183
182
181
180
179
178
177
176
175
174
173
172
171
170
169
168
167
166
165
164
163
162
161
160
159
158
157
156
155
154
153
152
151
150
149
148
147
146
145
144
143
142
141
140
139
138
137
136
135
134
133
132
131
130
129
128
127
126
125
124
123
122
121
120
119
118
117
116
115
114
113
112
111
110
109
108
107
106
105
XDQB3
XDQB2
XDQB1
XLB_M
XUB_M
XOE_M
XA7_M
+2.5VD1
XA6_M
XA5_M
DT1
DT2
XRESET-G1
XF75+2
+3.3VD2
XF75-2
XRESET-G2
XD7
XD6
XD5
XF75+2
XF75-2
+5B
-5B
XF75+1
XF75-1
XRAMP2
Q10
+2.5VD1
Q11
Q12
Q13
Q14
XRD2
+3.3VD2
XUDCLK2
XHOLD2
XWR2
XA0
XA1
XA2
XA3
XA4
XA5
XD0
XD2
+3.3VD2
XD1
XD4
XD3
XWR1
XF75+1
XF75-1
XUDCLK1
XRAMP1
DATA0
DCLK
+5B
-5B
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8
Q9
Q10
Q17
Q18
+2.5VD1
Q11
XRE8
XRE4
XRE7
XRE3
+3.3VD2
Q13
XRE6
XRE2
XRE5
XRE1
DRDY
RD
+3.3VD2
Q16
CLKI
ADC15
ADC16
ADC13
ADC14
ADC11
+2.5VD1
Q20
ADC12
ADC9
ADC10
ADC7
+2.5VD1
ADC8
ADC5
ADC6
ADC3
+3.3VD2
ADC4
ADC1
ADC2
Q19
Q20
Q21
+3.3VD2
+2.5VD1
NCONFIG
Q12
Q14
Q15
Q17
Q18
Q19
Q21
Q22
XT1
1
3
5
7
9
11
13
15
17
19
21
23
XT3
2
4
6
8
10
12
14
16
18
20
22
24
DT2
+3.3VD2
XD7
XD5
XD3
XD1
XD0
XA4
XA2
XA0
XWR2
XHOLD2
XT2
1
3
5
7
9
11
13
15
17
19
21
23
10к R218
10к R214
10к R217
10к R213
10к R212
10к R216
10к R211
10к R210
10к R215
10к R208
10к R209
10к R206
10к R205
10к R207
10к R203
10к R204
10к R198
10к R199
10к R200
10к R201
10к R219
10к R202
10к R220
1
3
5
7
9
11
13
15
17
19
21
23
2
4
6
8
10
12
14
16
18
20
22
24
+3.3VA1
XRESET-G2
XD6
XD4
XD2
XA5
XA3
XA1
XUDCLK2
XRD2
XRAMP2
XT4
2
4
6
8
10
12
14
16
18
20
22
24
DT1
+3.3VD2
XD7
XD5
XD3
XD1
XD0
XA4
XA2
XA0
XWR1
XHOLD2
1
3
5
7
9
11
13
15
17
19
21
23
2
4
6
8
10
12
14
16
18
20
22
24
+3.3VA1
XRESET-G1
XD6
XD4
XD2
XA5
XA3
XA1
XUDCLK1
XRD2
XRAMP1
379
C34
47MKF X 16B
XT 6
C36
10MKF X 16B
Конт
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
+5B
C49
1,0
НА ПЛИС
R85 22
XRE3
RE3
RE4
R89 1,8к
R86 22
XRE5
RE5
RE6
ADC10
R97 22
XRE4
RE8
R91 1,8к
R98 22
XRE6
R99 22
AD1
R109 22
R110 22
AD10
AD2
AD11
AD3
XRE8
ADC12
ADC13
R111 22
AD12
AD4
R112 22
R128 22
AD13
AD5
AD6
AD15
R115 22
ADC5
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
AD2
AD4
AD6
AD8
AD10
AD12
AD14
AD16
UDCLK4
DRDY7723
RE5
RE6
RE7
RE8
C50
0,1
-5B
L1 100мкГ
+3.3VA1
+3.3VD2
-5VA1
C35
1,0
+3.3VD2
C48
0,1
+3.3VD2
L2
1
AD7
4 SF0905 S01YS
C51
0,1
PBD-32
2
R129 22
3
ADC6
C54
1,0
R121 1,8к
R106 1,8к
ADC16
ADC4
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
R120 1,8к
AD14
R114 22
ADC3
R127 22
R119 1,8к
R113 22
ADC2
R126 22
R103 1,8к
R105 1,8к
ADC15
R125 22
R118 1,8к
R104 1,8к
ADC14
+5VA2
-5B
+3.3VA1
AD1
AD3
AD5
AD7
AD9
AD11
AD13
AD15
RD7723
RE1
RE2
RE3
RE4
R117 1,8к
R102 1,8к
R95 1,8к
ADC1
R116 1,8к
R101 1,8к
ADC11
R94 1,8к
RE7
AD9
R100 1,8к
R93 1,8к
R90 1,8к
R87 22
XRE7
ADC9
XRE2
R92 1,8к
XT 5
+5B
RE2
R124 22
R130 22
ADC7
R122 1,8к
AD16
R107 1,8к
AD8
L3
1
R131 22
ADC8
4 SF0905 S01YS
C52
0,1
R123 1,8к
2
3
C55
1,0
UDCLK4
RD7723
DRDY7723
RD
+5VA2
C61
10.0x10B
C58
0,1
CLKI
750 R135
+5VA2
22 R133
1,8к R136
22 R134
1,8к R137
+3.3VD2
БЛОК: ВНЕШНИЕАЦП
DRDY
22 R132
+5VA1
C60
10.0x10B
C57
0,1
+5B
RE1
R88 1,8к
R108 22
+3.3VA1
XRE1
R96 22
C32 10MKF X 16B
R84 22
MF-16MRB
Цепь
+3.3VD2
0.1
L4
1
SF0905 S01YS
2
3
C56
1,0
DA2
1
C15
1,0
Vin
3
5
Vout
GND
C33
4.7
4
BYPASS
+3.3VD1
C62
10.0x10B
C59
0,1
+2.5VD1
ON/OFF
2
4
C53
0,1
15
0.1
10
LP2992
C31 0,01
БЛОК: 20 КНОПОК
И СЕМИСЕГМЕНТНЫЙ
4-ХРАЗРЯДНЫЙ
ИНДИКАТОР
+5B
R154 ... R158
1,8к
R164 ... R171
1,8к
R181
1,8к
R182
1,8к
R184
1,8к
R189
1,8к
DD5:7
DD5:1
R159 100
2
DD5:2
R1
R160 100
4
R161 100
SB6
SB11
SB16
SB2
SB7
SB12
SB17
SB3
SB8
SB13
SB18
+5B
7
6
A
B
C
D
E
F
G
DP
5
SB19
SB4
SB9
SB14
SB5
SB10
SB15
DD5:4
R3
R162 100
8
9
SB20
DD5:5
R163 100
10
LPT 1
WRIT E
R139 100
S1
S8
R149 100
D7
R138 10k
D1
D2
R140 100
R141 100
S2
S3
S9
S10
R150 100
R151 100
D8
DAT AST B
WRIT E
D1
D2
D3
D4
D5
D6
D7
D8
R146 10k
D3
R142 100
S4
S11
R152 100
RESET 1
DAT AST B
R147 10k
D4
R143 100
S5
S12
R153 100
ADDRST B
R148 10k
D5
D6
R144 100
R145 100
S6
S7
RESET 1
БЛОК: LPT-порт
ADDRST B
Конт
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
R5
R6
R7
R8
11
R5
R6
R7
R190 ... R197
100
R8
C65
0,47
C63
0,47
C64
0,47
X1
Цепь
Конт
1
2
RD
3
TD
4
DT R
5
GND
6
DSR
7
RT S
8
CT S
9
DRB_9MA
INT R
WAIT
ACK
XFIAG
R166 R176
100
+5VA3
R168
DA3
1
C2+
2
GND
3
C24
V5
DOUT 1
6
DOUT 2
7
DOUT 3
8
RIN1
9
RIN2
10
DOUT 4
11
RIN3
12
DOUT 5
13
FON
14
FOFF
28
C1+
27
V+
26
VCC
25
C124
DIN1
23
DIN2
22
DIN3
21
ROUT 1
20
ROUT 2
19
DIN4
18
ROUT 3
17
DIN5
16
ROUT 1B
15
ERR
C66
0,47
1
C67
0,47
2
22
22
R188
SN75C3238
22
+5B
X2
Конт
1
2
3
4
5
6
7
8
9
DRB_9FA
R178
1к
Цепь
DAVAIL
379
R169
22
R179
100
+5VA3 DA4
8
VCC
7
B
6
A
5
GND
1
RO
2
RE
3
DE
4
DI
R185
22
R186
22
R187
22
ADM485
22
R177
R180
1к
L5
БЛОК: RS232-порт, RS485-порт.
DPY
LED
SF0905 S01YS
4
C68
0.1
3
C69
1.0
R183
A
B
C
D
E
F
G
DP
12
Dig1
9
Dig2
8
Dig3
6
Dig4
+5VA3
CEN36F
Цепь
HG1
11
7
4
2
1
10
5
3
+5B
R4
14
3
DD5:3
R2
SB1
1
+5VA3
R0
RD_RS
DE_RS
T D_RS
C70
0.1
C71
10.0x10B
380
Телевизионный цифровой синхрогенератор.
380
381
381
382
title "comparator";
constant c32=20;
constant c64=40;
SUBDESIGN cmp1
(
a[9..0],b[2..0]: input; % вход от Т64,вход от СТИ %
z2,z3,z4,z7 : output;%32мкс,64мкс,5имп.,пауза>25мкс%
)
BEGIN
z2 = (a[] > 255-c32)&(a[] < 255+c32);
z3 = (a[] > 511-c64)&(a[] < 511+c64);
z4 = (b[] == 5);
z7 = (a[] > 200);
end;
title "cmp2";
constant t4=30;% 4мкс %
constant t64=479;% 60мкс %
constant t672=5376;% 672мкс %
constant t640=5120;%640мкс %
SUBDESIGN cmp2
( a[14..0] : input; % вход от Т1280 %
z3,z4,z5,z6 : output;% 672мкс,640мкс,60мкс,4мкс%
)
382
383
BEGIN
z3 = a[] == t672;
z4 = a[] == t640;
z5 = a[] == t64;
z6 = a[] == t4;
end;
end;
TITLE "Timer";
parameters (width = 15);
assert (width >= 0)
report "Значение параметра должно быть больше чем %" width
severity error;
subdesign cnt_sum
(
clk
: input;
reset
: input;
dout[width..0] : output;
)
variable
rg[width..0] : dff;
begin
rg[].clrn = !reset;
rg[].clk = clk;
rg[].d = rg[].q+1;
dout[] = rg[].q;
end;
INCLUDE "dff";
SUBDESIGN ka1
(
reset,z1,z2,z3,z4 : INPUT;%сброс
RG,видеосмесь,32мкс,64мкс,5имп.%
z7, clk
: input; % пауза>25мкс,входная частота 8Мгц%
y1,y2,y3,y4,y5: output;%сброс Т64,имп-с счёта для СТИ,сброс
СТИ,%
% СИП-1,СИП-2%
y7,y8,q[4..0]: OUTPUT;%уст.флаг,сбросить флаг,выходы RG%
)
VARIABLE
q[4..0] : DFF;
d[4..0] : NODE;% D- входы RG %
BEGIN
q[].clk = clk;
q[].clrn = reset;
q[].prn = VCC;
q[] = d[];
table
q[4..0], z7, z4, z3, z2, z1 => d[4..0];
0 , x , x , x , x , 0 => 0;
0 , x , x , x , x , 1 => 1;
383
384
1 , x , x , x , x , 1 => 1;
1 , x , x , x , x , 0 => 2;
2 , x , x , x , x , 0 => 2;
4 , x , x , x , x , x => 2;
14 , x , x , x , x , x => 2;
2 , x , x , x , x , 1 => 3;
3 , x , x , x , x , 1 => 3;% ТОП МПА %
3 , x , x , 0 , x , 0 => 4;
3 , x , x , 1 , x , 0 => 5;
5 , x , x , x , x , x => 6;
6 , x , x , x , x , 0 => 6;
7 , x , x , x , 0 , 0 => 5;
6 , x , x , x , x , 1 => 7;
7 , x , x , x , x , 1 => 7;
7 , x , x , x , 1 , 0 => 8;
10 , x , x , x , x , 0 => 8;
8 , x , x , x , x , x => 9;
9 , x , x , x , x , 0 => 9;
9 , 0 , x , x , x , 1 => 10;
10 , x , x , x , x , 1 => 10;
9 , 1 , 1 , x , x , 1 => 11;
18 , x , x , x , x , x => 12;
12 , x , x , x , x , 0 => 12;
13 , x , 0 , x , x , 0 => 12;
12 , x , x , x , x , 1 => 13;
13 , x , x , x , x , 1 => 13;
13 , x , 1 , x , x , 0 => 14;
17 , x , 1 , x , x , 0 => 14;
9 , 1 , 0 , x , x , 1 => 15;
19 , x , x , x , x , x => 16;
16 , x , x , x , x , 0 => 16;
17 , x , 0 , x , x , 0 => 16;
16 , x , x , x , x , 1 => 17;
17 , x , x , x , x , 1 => 17;
11 , x , x , x , x , x => 18;
15 , x , x , x , x , x => 19;
end table;
table
q[4..0] => y1,y2,y3,y4,y5,y7,y8;
0 => 1, 0, 1, 0, 0, 0, 1;
1 => 1, 0, 0, 0, 0, 0, 0;
2 => 0, 0, 1, 0, 0, 0, 0;
3 => 0, 0, 0, 0, 0, 0, 0; % выходные функции %
4 => 1, 0, 0, 0, 0, 0, 0;
5 => 1, 0, 0, 0, 0, 0, 0;
6 => 0, 0, 0, 0, 0, 0, 0;
7 => 0, 0, 0, 0, 0, 0, 0;
8 => 1, 1, 0, 0, 0, 0, 0;
9 => 0, 0, 0, 0, 0, 0, 0;
10 => 0, 0, 0, 0, 0, 0, 0;
384
385
11
12
13
14
15
16
17
18
19
=> 0, 0, 1, 0, 1, 1, 0;
=> 0, 1, 0, 0, 1, 0, 0;
=> 0, 0, 0, 0, 1, 0, 0;
=> 1, 0, 0, 0, 0, 0, 0;
=> 0, 0, 1, 1, 0, 0, 1;
=> 0, 1, 0, 1, 0, 0, 0;
=> 0, 0, 0, 1, 0, 0, 0;
=> 0, 0, 0, 0, 1, 0, 0;
=> 0, 0, 0, 1, 0, 0, 0;
end table;
end;
title "FSSI";
INCLUDE "dff";
SUBDESIGN ka2
(
reset,clk,z1,z2 :INPUT;%сброс RG,вх.частота 8Мгц,СИП-1,СИП-2%
z3,z4,z5,z6
:input;% 672мкс,640мкс,60мкс,4мкс%
y1,y2,q[3..0]:output;%сброс Т1280,ССИ,вых.RG%
)
VARIABLE
q[3..0] : DFF;
d[3..0] : NODE;% D- входы RG %
BEGIN
q[].clk = clk;
q[].clrn = reset;
q[].prn = VCC;
q[] = d[];
table
q[3..0], z6, z5, z4, z3, z2, z1 => d[3..0];
0 , x , x , x , x , 0 , 0 => 0;
0 , x , x , x , x , x , 1 => 1;
1 , x , x , x , x , x , 1 => 1;
10 , x , x , x , x , x , 1 => 1;
1 , x , x , x , x , x , 0 => 2;
2 , x , x , x , 0 , x , x => 2;
2 , x , x , x , 1 , x , x => 3;
5 , x , 1 , x , x , 0 , x => 3;
3 , x , x , x , x , x , x => 4;
4 , 0 , x , x , x , x , x => 4;
4 , 1 , x , x , x , x , x => 11;
11 , x , x , x , x , x , x => 5;% ТОП МПА %
5 , x , 0 , x , x , x , x => 5;
5 , x , 1 , x , x , 1 , x => 6;
0 , x , x , x , x , 1 , 0 => 6;
6 , x , x , x , x , 1 , x => 6;
6 , x , x , x , x , 0 , x => 7;
7 , x , x , 0 , x , x , x => 7;
7 , x , x , 1 , x , x , x => 8;
10 , x , 1 , x , x , x , 0 => 8;
8 , x , x , x , x , x , x => 9;
9 , 0 , x , x , x , x , x => 9;
385
386
9 , 1 , x , x , x , x , x => 12;
12 , x , x , x , x , x , x => 10;
10 , x , 0 , x , x , x , x => 10;
end table;
table
q[3..0]
0
1
2
3
4
5
6
7
8
9
10
11
12
end table;
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
y1,y2;
1, 0;
1, 0;
0, 0;
1, 0;
0, 0;
0, 1; % выходные функции %
1, 0;
0, 0;
1, 0;
0, 0;
0, 1;
1, 1;
1, 1;
end;
Синтезатор частоты.
Синтезатор частоты (СЧ) построен на ИМС фирмы Analog Device AD9854.
Она имеет два выхода, один из них квадратурный. По двум каналам установлены ФНЧ и усилители мощности. Этот узел обладает высокой универсальностью. Он может быть использован в цифровых телевизионных и радиопередатчиках, в телевизионных генераторах испытательных сигналов (ГИС). Принципиальная схема СЧ представлена на рисунке.
386
387
C1 2*
R2 22
F75+2
XF75+2
R24 22
XF75-2
F75-2
-5V
R13 1k8
R35 1k8
L13
4 SF0905 S01YS
1
R3 22
RAMP2
XRAMP2
XA5
R14 1k8
R4 22
HOLD2
XD0
R15 1k8
R6 270
XD1
XUDCLK2
XD2
XD3
R7 22
XWR2
XD4
XA0
XD5
XA1
XD6
XA2
XD7
XA3
XRESET-G
R12 22
D4
R30 22
D3
R31 22
D6
R32 22
R33 22
XA4
R34 22
D0
D1
D2
D3
D4
D5
D6
D7
8
7
6
5
4
3
2
1
A0
A1
A2
A3
A4
A5
19
18
17
16
15
14
UDCLK2
WR2
RD2
HOLD2
D5
F75-2
F75+2
D7
R44 1k8
R21 1k8
A4
D1
R29 22
R43 1k8
R20 1k8
R11 22
A3
R28 22
R42 1k8
R19 1k8
R10 22
A2
RESET_G
RAMP2
D0
D1
D2
D3
D4
D5
D6
D7
20
21
22
29
70
69
68
64
71
30
RESET_G
1
3
2
XF75-2
AGND
+5V
-5V
1
3
5
7
9
11
13
15
17
19
21
23
2
4
6
8
10
12
14
16
18
20
22
24
C11
12pF
IOT2
IOT2B
VOUT
VINN
VINP
DACR
C15
8.2pF
C5
27pF
C9
47pF
2.2pF
52
R53
50
51
43
42
56
C6
27pF
C12
12pF
L4 68nH
C10
47pF
C17
22pF
C16
DT
D+3.3V
XD7
XD5
XD3
XD1
XD0
XA4
XA2
XA0
XWR2
XHOLD2
1
3
5
7
9
11
13
15
17
19
21
23
2
4
6
8
10
12
14
16
18
20
22
24
R57 50
AGND
кабель рд-50-0.87-21
AGND
C14
39pF
+5V
L14
22pF*
C19
R54 50
C18
27pF
C20
0.1
1
4
2
3
SF0905 S01YS
C43
0.1
A1+5V
AGND
A1+5V
C44
1.0
C21
0.1
C45
0.1
C46
10.0x10B
AGND
A1-5V
AGND
AGND
R48 100 *
R49 100 *
C24
2.2pF
C28
12pF
C32
8.2pF
2
AGND
C3 0.1
55
D+3.3V
A1+5V
R50 3k9 *
A+3.3V
R58
50
L9 68nH
7
L15
DA3
AD8009
1
R63 50
6
L11 68nH
3
7
4
C22
27pF
C26
47pF
C30
39pF
C34
22pF
61
R61
50
D1+3.3V
2
кабель рд-50-0.87-21
3
C48
1.0
AGND
A1-5V
4 SF0905 S01YS
C47
0.1
6
C49
0.1
C50
10.0x10B
R62 120 *
R46
1k3
C25
C4 0.01
2.2pF
L8 82nH
A+3.3V
R59
50
C23
27pF
C29
12pF
L10 68nH
C27
47pF
C33
8.2pF
L12 68nH
C31
39pF
C36
R60 50
22pF*
A1+5V
AGND
C35
27pF
C37
0.1
C38
0.1
C7 ... C12
D+3.3V
AGND
A1-5V
A+3.3V
XRESET-G
XD6
XD4
XD2
XA5
XA3
XA1
XUDCLK2
XRD2
XRAMP2
C42
10.0x10B
4
5
A1-5V
8.2pF
L6 68nH
XT2
AGND
R55
50
R47 50
L7 82nH
PLLF
C13
39pF
C41
0.1
DA2
AD8009
3
R56 120 *
C8
49
36
7
6
L5 68nH
48
R51 3k9 *
DACBR
L3 68nH
4
L2 82nH
AD9854ASQ
C2 0.1
IOT1
IOT1B
UDCLK
WRB
RDB
FSK
S/P
CLKA
CLK
CLKB
CLKEN
MASR
SK
R45 1k8
D+3.3V
XF75+2
DAC
A0
A1
A2
A3
A4
A5
R22 1k8
XT1
R52
50
DA1
R41 1k8
R18 1k8
R9 22
2.2pF
2
D2
R40 1k8
R17 1k8
R8 22
A1
C7
L1 82nH
R27 22
3
C40
1.0
A1+5V
D0
R39 1k8
R23 3k6
A0
R26 22
R38 1k8
R1 3k6
WR2
A1-5V
2
R37 1k8
XRD2
R16 1k8
UDCLK2
C39
0.1
A5
R36 1k8
XHOLD2
R5 22
RD2
R25 22
AGND
0.1
6
C57
10.0x10B
DD1
DT
D1+3.3V
1
3
2
DG
# t°C
VCC
GND
DS1822
C13 ... C20
A+3.3V
0.1
8
C66
10.0x10B
AGND
Power Table
Ref Des Device(Type)
Package
GND
DA1
AD9854ASQ LQFP_ED-80 78,77,76,75,72,28,27,
26,12,11
387
D+3.3V
80,79,74,73,25,24,23,
10,9
AGND
67,66,62,59,53,47,46,
45,41,40,39,34,33
A+3.3V
65,60,54,50,44,38,37,
32,31
388
Особенности создания проекта для БМК.
Прежде, чем приступать к проектированию цифрового устройства (ЦУ) на
БМК, необходимо разработать его на основе ПЛИС. Поскольку у меня есть
опыт работы с ПЛИС лишь ф. Altera, то речь будет идти о комплектующих и инструментарии этой фирмы. Для относительно несложных проектов вполне достаточно САПР MAX+PLUS II. Если в вашем ЦУ предполагается использование
нескольких быстродействующих процессоров, то, учитывая требования технологии «система на кристалле» (System on Chip – SoC), следует отдать предпочтение САПР Excalibur.
Проект должен быть выполнен в тексто-графическом формате [26], что
обеспечит его «прозрачность». Разработка ЦУ является микропрограммированием, т.е. ей присущи все недостатки мини-, миди- и макропрограммирования
(ассемблеры и языки высокого уровня): невозможно создать «прозрачную» текстовую программу, особенно, если её листинг превышает сотню страниц. Тексто-графическое исполнение облегчает выполнение требований по структурированному программированию. Кстати, обязательное требование размещения
любого блока, модуля и т.п. в одном экране. Это облегчит восприятие проекта в
целом.
В качестве языков микропрограммирования используются AHDL, VHDL,
VeryLog. Самым простым и самым популярным из них является AHDL. Автор
также отдаёт предпочтение этому языку (чем проще, тем талантливее). Однако
в качестве стандарта принят VHDL. Фирмы, владеющие технологиями БМК,
весьма неохотно берут проекты, выполненные на AHDL. Фирма «Ангстрем»,
наиболее серьёзное предприятие, имеющее многолетний опыт разработок на
основе БМК, разместила информацию о своих возможностях на сайте
http://www.angstrem.ru.
388
389
389
390
Прежде, чем передавать проект для реализации на БМК, рекомендуется
проверить его в макетном исполнении на ПЛИС. И только при остром цейтноте
можно пропустить этот этап. Перевод проекта из системы MAX+PLUS II в OrCAD представляет дополнительную головную боль. Правда, если вам удастся
договориться с ф. «Ангстрем», то эту неблагодарную работу за дополнительную плату фирма возьмёт на себя. Полная верификация проекта с учётом реальных задержек также выполняется в OrCAD. Вполне возможно, что после верификации вам придётся заняться подгонкой схемы под заданное быстродействие.
При бортовом исполнении проекта следует обратить самое пристальное
внимание на радиационную стойкость: этот параметр должен быть 2У, во всяком случае не хуже 1У.
Контролепригодность.
Появление стандарта на контролепригодность ПЛИС, БМК и т.п. предопределило введение тестового порта с сигналами: CLK (тактовая частота тестирования), TMS (разрешение тестирования), TDI (вход тестовых данных) и
TDO (выход тестовых данных).
Схема одного из вариантов тестируемого триггера представлена на рисунке 1, счётчик на основе этого триггера изображён на рис. 2.
390
391
Рис.1. Схема тестируемого D-триггера.
391
392
Рис.2. Схема тестируемого счётчика.
На рис.1 использованы следующие обозначения: С (рабочая частота тактирования), ТC (тактовая частота тестирования), TЕ (разрешение тестирования), D (вход рабочих данных), TI (вход тестовых данных) и TDO (выход тестовых данных), NR (активно-низкий сброс).
Разумеется, на основе тестируемого триггера можно построить не только
счётчик, но и любой микропрограммный автомат (МПА). Однако, пока не будет
создана соответствующая библиотека стандартных тестируемых элементов с
оптимальной топологией, все усилия разработчика по обеспечению контролепригодности будут тщетны.
Использование сквозной линии : CLK и TMS требует использование глобальных связей. Такая возможность предусмотрена в ПЛИС ф. “Altera”, но её
нет в БМК ф. «Ангстрем». Кроме того, в САПР «Ангстрем» до сих пор в библиотеке стандартных элементов нет контролепригодных элементов памяти (ЭП). С
большим трудом удалось доказать безусловную необходимость таких программ. Такая «недальновидность» характерна для всех известных мне отечественных разработчиков. Всё, что реализовано на БМК с использованием ЭП
(более 100 проектов), неконтролепригодно. Кстати, это в первую очередь должен знать Заказчик, поскольку в противном случае все заверения разработчика
о том, что он гарантирует хоть какую-то полноту контроля, являются блефом.
Обычно наш Заказчик требует 80%-полноту контроля. САПР моделирования
неисправностей и проверки полноты контроля типа CAMELOT не всем по кар-
392
393
ману, поэтому мы всю жизнь обманывали друг друга. Заказчик же делал вид,
что нам верил. В настоящее время такое положение вещей недопустимо.
Раньше мы оправдывали свою беспомощность большими аппаратными затратами, теперь этого «козыря» у разработчиков нет.
Несколько слов о JTAG-интерфейсе. Несмотря на все его достоинства, он
не обеспечивает входной контроль БМК. Поэтому, получив БМК от изготовителя, вы не сумеете убедиться в его исправности, если не выполните все те требования, о которых говорилось выше.
До сих пор все разработки с точки зрения контролепригодности вопиюще
безграмотны. При проектировании топологии заказных КМОП БИС даже не
рассматривается структура тестируемого триггера (“Chip News, №2, 2003, с.513). Разработки на БМК даже у профессионалов советской выучки грешат подобными недостатками. Поэтому я настоятельно рекомендую руководителям
разрабатывающих подразделений введение аттестации цифровиков хотя бы в
объёме «Азбуки разработчика цифровых устройств» [26]. Более того, вполне
допустим анализ уровня исполнения проекта внешними разработчикамипрофессионалами. Требуется введение вневедомственной ревизионной службы по контролю технического уровня исполнения проекта (цифровой и аналоговой части, помехозащите, стыковке ПЛИС и БМК с МП и т.п.), в том числе и по
контролепригодности с полнотой тестирования.
Вслед за контролепригодностью возникает проблема синтеза тестов.
Имея контролепригодную схему, можно автоматизировать в определённой степени синтез тестов. Для этого САПР должна уметь на основе введённой схемы
строить тест для заранее заданных наборов сигналов на входах определённого
элемента схемы. Теоретически можно построить тест, эквивалентный тривиальному, т.е. со 100% - полнотой контроля. Длина такого теста может быть
вполне разумной. Одновременно с решением вопросов контролепригодности,
необходимо предусмотреть и самодиагностируемость(LSSD, BILBO). Все эти
проблемы подробно рассмотрены в прекрасной книге Беннетса , перевод которой выполнил профессионал в области диагностики, проф. ХПИ Леонид Викторович Дербунович.
393
394
7.2. О недостатках САПР MAX+PLUS II.
Широкое внедрение ПЛИС фирмы Altera в практику цифровых разработок связано не только с достоинствами этих микросхем, но и не в последнюю
очередь с появлением отечественной литературы по данному вопросу. Десять
лет тому назад появление САПР ПЛИС Xilinx сопровождалось такими сложностями, что применять эту систему в практических разработках не было ни малейшего желания. В прекрасном практическом курсе Антонова не только разобран весь процесс проектирования, но ещё и приложен компакт-диск с самой
САПР. Это уже выше всех ожиданий, поскольку покупка MAX+PLUS II обошлась
бы разработчику в $1000. Более подробный перечень литературы по данной
тематике приведен в книге Антонова А.П. «Язык описания цифровых устройств
AHDL».
Но как же поступают наши и зарубежные разработчики, получив в руки такое
мощное оружие. Очень просто: они рисуют схемы в графическом редакторе. В
МИФИ такой подход называют вентильным мышлением. Я называю подобный
метод технологией мартышки с арифмометром. Обиднее всего то, что данную
«технологию» используют безусловно талантливые и высокопрофессиональные разработчики с прекрасной математической подготовкой.
Слабым утешением может служить тот факт, что зарубежные цифровики
ещё более безграмотны. У отечественных разработчиков начинает просыпаться интерес к синтезу микропрограммных автоматов, хотя это и происходит спустя 30 лет после выхода в печать популяризаторских работ[13].
А «передовой Запад» демонстрирует своё невежество даже в таком суперважном программном продукте как MAX+PLUS II. На рис. 1 представлен
файл ka2.tdf(в оригинале moore2.tdf) микропрограммного автомата(МПА), позаимствованный из фирменных материалов. После трансляции файла ka2.tdf и
симуляции файла ka2.scf были получены временные диаграммы работы этого
МПА(рис.2). Если не полениться и вручную проверить работу описанного в
файле ka2.tdf МПА, то мы получим иные временные диаграммы (рис.3). Кстати,
пришлось вначале формально построить МПА, а потом нарисовать его схему в
графическом редакторе (рис.4). Симулятор и в данном случае подтвердил промашку фирмы. После анализа огрехов фирмы Altera был найден способ автоматического решения проблемы. Это фундаментальная ошибка, поскольку она
не позволяет использовать формальный синтез МПА. Подобная оплошность
свидетельствует не только о беспомощности разработчиков фирмы, но и о безграмотности западных цифровиков, т.к. вопиющая ошибка не была обнаружена
за рубежом вплоть до появления САПР в России, т.е. в течение по меньшей
мере 5 лет.
SUBDESIGN ka2
(
clk : INPUT;
reset : INPUT;
y : INPUT;
394
395
z : OUTPUT;
)
VARIABLE
ss : MACHINE WITH STATES (s0,s1,s2,s3);
zd : NODE;
BEGIN
ss.clk = clk;
ss.reset = reset;
z = DFF(zd, clk, VCC, VCC);
TABLE
%
current
current
next
%
state
input
state
output %
ss,
y
=>
ss,
zd ;
s0,
0
=>
s0,
0;
s0,
1
=>
s2,
1;
s1,
0
=>
s0,
0;
s1,
1
=>
s2,
1;
s2,
0
=>
s2,
1;
s2,
1
=>
s3,
0;
s3,
0
=>
s3,
0;
s3,
1
=>
s1,
1;
END TABLE;
END;
Рис. 1
395
next %
396
Рис. 2
Рис. 3
396
397
Рис.4
Проверим работу САПР на примере минимизации логической функции
от 8 переменных. Функция У задана таблицей истинности в виде 10-чных и
397
398
двоичных наборов z(10), z(2) соответственно.
Z(10)
Z(2)
1
00000001
17
00010001
64
01000000
208
11010000
144
10010000
48
00110000
96
01100000
240
11110000
Y
1
1
1
1
1
0
0
0
После минимизации по методу обобщённых кодов[13, 26] получаем результат:
Y = z5’, где апостроф означает инверсию, что в 25 раз проще функции, выданной САПР MAX+PLUS II.
Дополнительный недостаток САПР заключается ещё и в том, что некоторые мегафункции некорректно работают в определённых ситуациях(например,
LPM_COUNTER в проектах fssi.gdf, fsip.gdf). Приходится заменять их на стандартные счётчики. Иногда и эта мера не спасает – приходится менять алгоритм
работы автомата, вводя лишний, ничем не мотивированный сброс.
398
399
399
400
400
401
401
402
Кроме того, реализация SR-триггера на элементах ИЛИ-НЕ также привела к непредсказуемым эффектам. Пришлось заменить на стандартный SRтриггер из библиотеки элементов(см. fsip.gdf).
Вызывает нарекания пользователей и работа с двухпортовой памятью(см. probaram.tdf). При трансляции, например, запрашивается количество
выводов ПЛИС.
Мой опыт работы с САПР MAX+PLUS II относительно невелик. Однако он
не помешал в течение одной недели выловить глобальную погрешность САПР
ф. Altera. Это говорит, во-первых, о простоте AHDL и САПР в целом, а вовторых, о жёсткой необходимости владения инструментом формального синтеза МПА. Общий стаж цифровых разработок составляет более четверти века,
что позволяет мне высказать некоторые рекомендации.
Во-первых, профессионал – это не тот, кто всё знает, а тот специалист,
кто умеет ориентироваться в море информации и осваивать новые перспективные направления.
Во-вторых, при освоениии новых технологий, дабы не превратиться в
мартышку с арифмометром, нужно знать азбуку своей профессии. Для цифровика эта азбука заключается в следующем:
1. Алгебра логики.
2. Карты Карно на 8 - 12 переменных как наиболее эффективный способ ручной минимизации Булевых функций.
3. Метод обобщённых кодов как наиболее эффективный машинный метод минимизации Булевых функций от большого числа переменных(32 и более).
402
403
4. Формальный синтез МПА.
5. Эвристические методы синтеза последовательностных схем.
Без знания этих основ цифровик не имеет права на звание инженера.
Синтез МПА фундаментально и элегантно изложен у Баранова С.И. Однако
эта элегантность и математическая строгость не позволили подавляющему
большинству инженеров освоить формальный синтез. Эвристические методы
прекрасно и просто описаны у Гутникова.
Метод обобщённых кодов был разработан в конце 60-х годов на
21-й кафедре Академии им. Дзержинского д. т. н. Мавренковым Леонидом
Трофимовичем. Дальнейшее развитие метода и доведение его до инженерных
методик было выполнено сотрудниками этой кафедры к.т.н. Кустенко А.С., к.т.н.
Кузнецовым Н.В. и к.т.н. Салтыковым Ю.А.(см. "Вопросы оборонной техники",
1972 г.).
Все 5 пунктов «цифрового букваря» достаточно просто изложены в техническом руководстве по материалам лекций, прочитанных автором в 1976г.
для ведущих специалистов НИИРТА[13], а также в “Азбуке разработчика цифровых устройств”[26].
Кроме вышеперечисленного ликбеза разработчику-цифровику необходимо осваивать и классическую логику. Связано это с тем, что 21 век называют
веком искусственного интеллекта (ИИ). Задачи ИИ будут решать цифровики. Но
фундаментом ИИ являются логика суждений и силлогистика. Классическая мировая логика в этом плане дремуче невежественна. Проблемы этих дисциплин
с инженерной точки зрения абсолютно прозрачны и впервые решены в России[16 – 31, 34], а также на сайте http://ruslogic.narod.ru], посему их результатами первыми должны воспользоваться российские инженеры.
На вышеприведённом рисунке представлен проект цифрового фильтра второго
403
404
порядка. После трансляции он занял 25% объёма ПЛИС EPF10K20. После добавления к нему аналогичного фильтра FLTR1.GDF, т.е. тоже 25% объёма
EPF10K20, была получена схема:
404
405
Вместо ожидаемых 50% транслятор выдал сообщение о нехватке памяти. После замены EPF10K20 на ACEX1K(EP1K30TC144-1)
трансляция прошла
успешно.
** DEVICE SUMMARY **
Chip/
POF
filtr
Device
Input Output Bidir Memory Memory
Pins Pins Pins Bits % Utilized LCs % Utilized
EP1K30TC144-1
User Pins:
§
Project Information
32
32
53
53
0
3008
12 %
452
0
d:\lvi\altera\project\redan\filtr\filtr.rpt
405
26 %
LCs
406
Из распечатки файла filtr.rpt видно, что проект занял бы не более 50% ПЛИС
EPF10K20.
Работа 2-портового ОЗУ вызывает много вопросов(см. ramridp в otv81int, we &
!clk = we & clk)
Групповые операции присвоения тоже иногда приводят к неожиданностям.
406
407
SUBDESIGN karam1
% контроллер динамической памяти %
(
z1,z2,z3,z4,z5
: input;% RESET,прошли 4096 тактов,2
тактa,WRITE,READ %
z6,z7,z8,clk
: input;% прошли 3 тактa,прошли 507 тактов,kr %
y1,y2,y3,y4,y5,y6,y8 : output;%
nWE,nRAS,nCAS,nCS,DQM,CKE,запуск таймера %
y9,y10,y11,y12,y13,y14 : output; % A10,READY - готовность к работе,выдать адрес 0227h,выдать AdrStr,выдать AdrBank,выдать AdrStlb %
y15,y16,y17,y18,y19 : output; % сигнал готовности данных для записи в ОЗУ,EOW-End of Write,EOR-End of Read,A[10..9]/A[1..0],Fcta %
q[5..0]
: output;% вых. регистра КА %
)
VARIABLE
q[5..0],qy[19..1] : DFF;
d[5..0],dy[19..1],f[19..1] : NODE;% d - входы RG %
BEGIN
q[].clk = clk;
q[].clrn = !z1;
q[].prn = VCC;
q[].d = d[];
qy[].clk = clk;
qy[].clrn = !z1;
407
408
qy[].prn = VCC;
qy[].d = dy[];
table
q[5..0],z8,z7,z6,z5,z4,z3,z2,z1 => d[5..0];
11 , x, x, x, x, x, x, x, 1 => 0;
0 , x, x, x, x, x, x, x, 1 => 0;
0 , x, x, x, x, x, x, x, 0 => 1;
1 , x, x, x, x, x, x, 0, x => 1;
1 , x, x, x, x, x, x, 1, x => 2;
2 , x, x, x, x, x, x, x, x => 3;
3 , x, x, x, x, x, x, x, x => 4;
4 , x, x, x, x, x, 0, x, x => 4;
4 , x, x, x, x, x, 1, x, x => 5;
5 , x, x, x, x, x, x, x, x => 6;
6 , x, x, x, x, x, 0, x, x => 6;
6 , x, x, x, x, x, 1, x, x => 7;
7 , x, x, x, x, x, x, x, x => 8;
8 , x, x, x, x, x, x, x, x => 9;
9 , x, x, x, x, x, x, x, x => 10;
10 , x, x, x, x, x, 0, x, x => 10;
10 , x, x, x, x, x, 1, x, x => 11;
11 , x, x, x, 0, 0, x, x, 0 => 11;
18 , x, x, x, x, x, x, x, x => 11;
37 , x, x, x, x, x, x, x, x => 11;
11 , x, x, x, 0, 1, x, x, 0 => 12;
12 , x, x, x, x, x, x, x, x => 13;
13 , x, x, x, x, x, 0, x, x => 13;
13 , x, x, x, x, x, 1, x, x => 14;
14 , x, x, x, x, x, x, x, x => 15;
15 , x, x, x, x, x, x, x, x => 16;% ТОП МПА %
16 , x, x, x, x, x, x, x, x => 17;
17 , x, x, x, x, x, 0, x, x => 17;
17 , x, x, x, x, x, 1, x, x => 18;
11 , x, x, x, 1, x, x, x, 0 => 19;
19 , x, x, x, x, x, x, x, x => 20;
20 , x, x, x, x, x, 0, x, x => 20;
20 , x, x, x, x, x, 1, x, x => 21;
21 , x, x, x, x, x, x, x, x => 22;
22 , x, x, x, x, x, x, x, x => 23;
23 , x, x, x, x, x, x, x, x => 24;
24 , x, x, x, x, x, x, x, x => 25;
25 , x, 0, x, x, x, x, x, x => 25;
25 , x, 1, x, x, x, x, x, x => 26;
30 , 0, 1, x, x, x, x, x, x => 26;
26 , x, x, x, x, x, x, x, x => 27;
27 , x, x, x, x, x, x, x, x => 28;
28 , x, x, x, x, x, x, x, x => 29;
29 , x, x, x, x, x, x, x, x => 30;
30 , x, 0, x, x, x, x, x, x => 30;
30 , 1, 1, x, x, x, x, x, x => 31;
408
409
31
32
32
33
34
35
36
, x, x, x, x, x, x, x, x => 32;
, x, x, x, x, x, 0, x, x => 32;
, x, x, x, x, x, 1, x, x => 33;
, x, x, x, x, x, x, x, x => 34;
, x, x, x, x, x, x, x, x => 35;
, x, x, x, x, x, x, x, x => 36;
, x, x, x, x, x, x, x, x => 37;
end table;
table
q[5..0] => f19,f18,f17,f16,f15,f14,f13,f12,f11,f10,f9,f8,f6,f5,f4,f3,f2,f1;
0 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0;
1 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 1, 1, 1, 0, 1, 1, 1;
2 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1, 0, 1, 0, 0, 1, 0, 0;
3 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 0, 0, 0, 1;
4 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 1, 1, 0, 1, 1, 1, 1;
5 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 0, 0, 0, 1;
6 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 1, 1, 0, 1, 1, 1, 1;
7 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0, 0, 1, 0, 0, 0, 0, 1;
8 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 1, 1, 1, 1;
9 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 1;
10 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 1, 0, 0, 1, 1, 1, 1;
11 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0, 0, 0, 0, 1, 1, 1, 1;
12 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 0, 1, 1, 1;
13 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 1, 1, 0, 1, 1, 1, 1;
14 => 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0, 0, 1, 0, 0, 1, 0, 1;
15 => 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 1, 0, 1, 0, 0, 0, 1, 0;
16 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 1;
17 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 1, 0, 0, 1, 1, 1, 1;
18 => 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 1, 1, 1, 1;% таблица выходных функций %
19 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 0, 1, 1, 1;
20 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 1, 1, 0, 1, 1, 1, 1;
21 => 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0, 0, 1, 0, 0, 1, 0, 1;
22 => 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 1, 0, 1, 0, 0, 0, 1, 1;
23 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 1, 1, 1, 1;
24 => 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 1, 1, 1, 1;
25 => 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 1, 1, 0, 1, 1, 1, 1;
26 => 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0, 0, 1, 0, 0, 1, 0, 1;
27 => 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 1, 0, 1, 0, 0, 0, 1, 1;
28 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 1, 1, 1, 1;
29 => 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 0, 0, 0, 1;
30 => 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 1, 1, 0, 1, 1, 1, 1;
31 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 1, 1, 1, 1;
32 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 1, 1, 0, 1, 1, 1, 1;
33 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 1;
34 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 1, 1, 1, 1;
35 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 1, 1, 1, 1;
36 => 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 1, 1, 1, 1;
37 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 1, 1, 1, 1;
end table;
409
410
dy[6..1] = f[6..1];
dy[19..8] = f[19..8];
dy8 = f8;
dy7 = gnd;
y1 = qy1;
y2 = qy2;
y3 = qy3;
y4 = qy4;
y5 = qy5;
y6 = qy6;
y8 = qy8;
y9 = qy9;
y10= qy10;
y11= qy11;
y12= qy12;
y13= qy13;
y14= qy14;
y15= qy15;
y16= qy16;
y17= qy17;
y18= qy18;
y19= qy19;
end;
410
411
7.3. О повышении технического уровня отечественных разработок.
В настоящее время остро ощущается разрыв поколений разработчиков,
резко снизился технический уровень НИОКР. Это результат целенаправленного
уничтожения морали, культуры, образования, науки, экономики, политики и
обороноспособности России, осуществляемого «пятой колонной» по указанию
так называемого Всемирного правительства (США). Бороться с этой предательской политикой фактически оккупационного правительства необходимо на
всех фронтах, в том числе и на научно-техническом. Задачей старшего поколения инженеров и учёных является передача накопленных знаний молодому поколению патриотов, строителей новой России.
Автор более 30 лет занимается разработками цифровых систем управления, длительное время возглавлял отдел в ЦННИИ «Циклон» (головной институт Минэлектронпрома СССР), внедрял микропроцессоры и вычислительную
технику в народное хозяйство, поэтому о советских разработках знает не понаслышке. Если даже в СССР технический уровень проектов был недостаточно
высоким, то теперь он опустился до радиолюбительства. Задача старшего поколения проектировщиков заключается в повышении уровня современных разработок и передаче накопленного опыта молодой генерации конструкторов.
В НИИ Дальней Радиосвязи (НИИДАР) сложилась группа разработчиковпрофессионалов, имеющих 30 – 40-летний опыт создания систем управления
оборонного назначения. Возглавляет группу зам.руководителя НПП «Полигонные системы ПВО» Кашин Ф.А. На его счету разработки систем управления радиовзрывателями (РВ) для ракет (изделия 83В6, 88В6, 98В6, 3В46, 9ЖБ920 –
изделие «Крым» и т.п.), а также систем спутниковой навигации и систем полигонных испытаний для головок самонаведения и РВ при работе по движущейся
цели. При создании этих систем использовалась как отечественная, так и современная зарубежная элементная база (ПЛИС, микроконтроллеры, синтезаторы частоты и т.п.). В группе обобщён опыт проведения работ НИИРТА (НПО
«Импульс», Минсредмаш СССР), ЦНИИ «Циклон» (Минэлектронпром СССР),
НПП «Полигонные системы ПВО», НПП «Редан» (при ГУП НПП «Регион») и
НИИДАР. Эта группа в состоянии выявить недостатки проекта в объёме изделия 88В6 и предложить решения по устранению недостатков.
Скопившиеся за последнее десятилетие претензии к уровню цифровых
разработок изложены в работах автора. В основном это незнание инженерных
и формальных методов синтеза микропрограммных автоматов (МПА), неумение построить тестопригодную систему и тем более разработать тест со 100% полнотой контроля. Элементарным признаком безграмотной разработки является использование «рассыпной» элементной базы вместо разрешённых к
применению БМК, ПЛМ и ПМЛ. В случае применения зарубежных ПЛИС по незнанию игнорируются вопросы стыковки ПЛИС с входными и выходными сигналами. Не решаются вопросы повышения надёжности при спецвоздействиях хотя бы на таком уровне как это сделано в изделии 5Е50 в 70-е годы прошлого
века.
411
412
Многолетний стаж разработок цифровых систем управления в Минсредмаше, разработка и внедрение в народное хозяйство микропроцессорных систем, а также участие в разработках изделий других ведомств оборонного характера позволили накопить определённый практический и теоретический багаж. Программирование на языках высокого уровня (ЯВУ): Фортран, Алгол,
Паскаль, Си, Форт, РАЯ и использование не менее двух десятков ассемблеров
привело к выводу, что далеко не всё благополучно в стане программистов.
Опыт схемотехнического проектирования и постоянные контакты с разработчиками Советского Союза выявили слабую теоретическую подготовку отечественных разработчиков в области синтеза микропрограммных автоматов
(МПА). Непродолжительное, к сожалению, взаимодействие с ведущими специалистами СССР в области диагностики, такими как проф. Дербунович
Л.В.(ХПИ, г. Харьков), к.т.н. Мызь А.Н.(ХПИ), тем не менее привело к мысли о
низком профессиональном уровне разработчиков цифровых систем управления в области обеспечения контролепригодности своих разработок и их тестировании (автор не является исключением).
412
413
Уровень современных разработок и элементная база: ПЛИС, сигнальные процессоры и отечественные аналоги.
Сложность современных задач по цифровой обработке информации достигла такого уровня, что говорить о реализации этих проектов на традиционной «рассыпной» элементной базе не приходится. Одна из плат НИР–овского
варианта модуля цифровой обработки сигнала имеет в своём составе 6 сигнальных процессоров типа ADSP2181 и 6 ПЛИС FLEX10K20. Использование
указанной элементной базы позволило обеспечить массогабаритные и надёжностные требования к изделию. Однако бортовые системы категорически
должны строиться на базе отечественных микросхем. МИД в лице своего министра заявило 26.01.03 о возврате к холодной войне. За прошедшие годы ситуация только обострилась: грузино-осетинская война 2008г. с участием России и
США выявила дополнительные недостатки разгромленного «пятой колонной»
военно-промышленного комплекса .
Проектирование современных цифровых и аналоговых систем управления
напоминает зачастую процесс построения домиков из кубиков в детском саду. В
целом такая тенденция прогрессивна. Беда лишь в том, что «кубики» эти зарубежные. Однако требования безопасности России диктуют безусловный переход на отечественную элементную базу. Свежий пример: при создании цифрового телевизионного передатчика были использованы весьма неплохие ИС
АЦП AD9244, AD7723 и синтезатор AD9854. А теперь наш ОМТС столкнулся с
проблемой эмбарго. В советские времена мы с гордостью говорили: «Только
СССР и Америка делают всю номенклатуру электронной техники». Ушли те
времена, а проблема обеспечения электронной безопасности осталась. В своих разработках мы столкнулись с тем, что Заказчик (а это люди в погонах, защитники России) справедливо и жёстко потребовал от нас перевода предыдущих разработок на отечественную элементную базу. В цифровой и даже аналоговой электронике такой переход возможен лишь за счёт базовых матричных
кристаллов (БМК).
Что может в настоящее время предложить разгромленная электронная
промышленность России?
В области сигнальных процессоров разработаны в ГУП НПЦ ЭЛВИС
двухпроцессорные (RISC – и DSP – ядро) микросхемы Мультикор-11хх (МС11хх) на основе 0,54-мкм (3 металла) библиотеки отечественного изготовителя
ОАО «Ангстрем». Микросхема МС-11Т имеет интеграцию около 2 млн. вентилей и размеры кристалла 10,1х10,1мм. Функциональные возможности Мультикор-11 на уровне сигнального 32-разрядного процессора TMS320VC5470.
Опытные образцы МС-11Т получены в IV квартале 2002г. На их основе созданы
платы KIT, с помощью которых проверяется работа САПР отладки программного обеспечения для МС-11Т. Автор присутствовал при демонстрации процесса
отладки САПР. В конце 2003г. была создана базовая версия инструментального программного обеспечения MCS для СБИС на базе платформы «Мультикор». Демо-версия MCS была любезно предоставлена автору руководством.
Вся стратегия проектирования ГУП НПЦ ЭЛВИС чётко вписывается в требования технологии разработок «система на кристалле» (СнК, или SoC).
413
414
В настоящее время серийные образцы «Мультикоров» содержат уже 15
млн. транзисторов. Кристаллы были изготовлены по технологии 0,25 мкм и содержат RISC - и DSP – ядро. Производительность процессоров – порядка 600
Мflops. Напомню, что такую производительность имеет сигнальный процессор
SHARC ADSP21160N компании Analog Devices, являющейся флагманом в создании компонентов для построения систем ЦОС. В середине 2004 г. был создан процессор по технологии «Мультикор» с производительностью 2400
Mflops и свыше 14 млрд. оп./с. для байтовых форматов данных, что соответствует характеристикам самого мощного чипа DSP Tiger SHARC (TS201, 0,13мкм, 3600 Mflops).
Но мало освоить технологию разработки кристаллов – нужно дать проектировщикам инструментарий для создания систем ЦОС на базе «Мультикор».
Фирма ЭЛВИС блестяще справилась и с этой задачей. Создан системный
«Мультикор-конструктор» на основе набора СБИС, позволяющий разработчику
РЭА легко создавать как связанные, так и распределённые системы. В конструктор входят разнообразные средства отладки и моделирования, инструментальные платы и мощное программное обеспечение. Запад не продаёт системы такого интеллектуального уровня (эмбарго). Процессоры «Мультикор»
будут продаваться без ограничений. Кроме того, тестовое инструментальное
ПО для чипов «Мультикор» передаётся бесплатно.
В области БМК достаточно широкая номенклатура от Н1806ХМ1 (1,5 тыс.
вентилей) до 1592ХМ1 (100 тыс. вентилей, 50 МГц). Более подробную информацию можно получить на сайте http://www.angstrem.ru. Могу лишь отметить,
что отечественные БМК в настоящее время решают все проблемы по замене
ПЛИС фирмы “Altera” вплоть до реализации проектов, выполненных на EP1K50
. Перевод одной ПЛИС в настоящее время обходится в 440 тыс.руб. Это относительно дорого, но альтернатива отсутствует: кто не любит свою армию –
кормит чужую. Кстати по западным меркам цена чрезвычайно низкая.
Популярная в последнее десятилетие технология проектирования «система на кристалле» (СнК, SoC) поддержана отечественной электроникой выпуском СБИС 1879ВМ3. Эта СБИС содержит два 6-разрядных АЦП и четыре 8разрядных ЦАП (быстродействие 600 Мвыборок/с.), выпускается в радиационностойком исполнении с пятой Приёмкой Заказчика. Эта же фирма выпускает и
сигнальный процессор Л1879ВМ1. Так что «ещё не вечер» для русской электроники, а интеллектом Россия не обижена.
414
415
Проблемы проектирования современных цифровых систем управления.
Современное проектирование цифровых устройств и систем предъявляет
к разработчику повышенные требования, что вызывает появление ряда проблем. Использование ПЛИС и БМК только обострило эти проблемы. Постараемся рассмотреть их комплексно.
Во-первых, необходимо отметить, что советские инженеры – самые талантливые и образованные в мире. По роду своей предыдущей деятельности
мне приходилось общаться почти со всеми разработчиками в СССР и анализировать зарубежные проекты.
Во-вторых, современные разработки предъявляют более жёсткие требования к проектировщикам, поэтому поговорим о наших недостатках.
Формализация ТЗ.
Пять лет назад, выполняя какую-то разработку для фирмы МиГ, я с удивлением обнаружил, что опытные профессионалы, описывая работу МПА, рисуют многочисленные циклограммы. Во-первых, это не гарантирует полного и
корректного описания работы МПА, во-вторых, обременительно. Попытался
привить им культуру задания МПА с помощью граф-схем алгоритмов (ГСА). Кажется, удалось обратить их в свою веру. Спустя два года, сотрудничая со специалистами «Полигонных систем ПВО», я столкнулся с необходимостью введения некоторого более мощного формального языка описания работы МПА. В
качестве такого инструмента может использоваться П-код («Дисциплина программирования» Дзержинского Ф.Я. и Завгороднего Н.В. – М.:1983 г.) или Псевдо-Паскаль. Заманчиво с этой целью использовать просто Паскаль или Си:
можно получить вместе с ТЗ и математическую модель проектируемого МПА.
Однако, при этом теряется прозрачность ТЗ. Тем не менее решение этой проблемы желательно.
Вот как выглядит частичное описание на Псевдо-Паскале работы МПА для
управления БИС динамической памяти на 256 Мбайт.
Program rdram1;
{ Процедура чтения из ОЗУ1: инициируется командой READ от RS232. }
{READ=1 пока не появится EOR=0}
Begin
repeat nop; until (read = 1) and (ready=1) and (write=0);
eosrf:
cke := 1; #we := #ras := #cas := 1; #cs := 0;
delay(1);
cke := 1; #we := #ras := #cas := 1; #cs := 1;
415
416
delay(2);
i:=0;
repeat
act:
A[12..0]:=AdrStr; BA0..BA1:=AdrBank; #we:=cke:= #cas :=1;#ras:=#cs
:= 0;
delay(1);
reada: A[9..0]:=AdrStb; A10:=1; BA0..BA1:=AdrBank;
#we:=#ras:=cke:=1;#cas:=#cs:=0; dqm:= 0;
delay(1);
cke := 1; #we := #ras := #cas := 1; #cs := 1;
delay(1);
cbr:
подать без присвоения AD[10..9]-1;
if i>0 then
begin
#we := 1; #ras := #cas := #cs :=0; cke :=1; dqm := 0;
end;
delay(1);
cke := 1; #we := #ras := #cas := 1; #cs := 1; AD[25..0]:=AD[25..0]+1;
delay(508);
i :=1;
until kr = 1;
delay(3);
slfr:
#we := 1; #ras := #cas := #cs := cke := 0;
delay(3);
eor := 0;
delay(1);
eor:=1;
end.
Примерно такие же по объёму алгоритмы подготовки к работе ОЗУ и записи в ОЗУ, поэтому ГСА получается довольно громоздкой. Кстати, традиционная
эвристическая реализация такого МПА, выглядит уже неразумной, поскольку
очевиден явно программный характер задачи.
Программирование и микропрограммирование.
Уже в 70-е годы прошлого столетия стала проявляться тенденция превращения цифровых схемотехников в программистов. Во-первых, потому, что в
разработки был внедрён синтез микропрограммных автоматов , а во-вторых,
потому, что каждый инженер обязан владеть программированием (но не обязательно программировать!), поскольку для него это то же самое, что в 19 веке
счёты для бухгалтера. В настоящее время синтез цифровых систем выполняется на формальных микро-языках VHDL, AHDL, VERYLOG. Схемотехники ста-
416
417
ли микропрограммистами. А следовательно, и проблемы схемотехников и программистов стали общими. Например, программисты не умеют верифицировать свои программы, схемотехники тоже недолюбливают схемную диагностику.
Простой тест для программистов: из файла триадами поступают целые
числа, которые интерпретируются как длины сторон треугольника. Программа
определяет тип треугольника. Ни один из программистов не определил все 14
наборов тестов. Ни программисты, ни схемотехники ничего не знают о диагностическом процессоре.
Кроме того, наше программное обеспечение (ПО) построено на западных
операционных системах (ОС) и языках программирования, не защищено от
взлома, вскрытия, т.е. не соблюдается элементарная информационная безопасность. Выход из тупика в использовании отечественных технологий. Примером такой технологии является ДССП и язык РАЯ (МГУ,Брусенцов
Н.П.,http://www.trinitas.ru ). Кстати, язык РАЯ в ДССП позволяет писать в 5 – 7
раз более компактные программы, чем это способен делать ЯВУ Си. Сегодня
переход на отечественные программные технологии не реален, но когда-то
нужно опомниться. Кстати, в настоящее время в МГУ ведутся работы по реализации ДССП-процессора на ПЛИС EP1K100QC208-1. Автор в свободное от основной работы время участвует в этих работах.
Далее, технология структурированного программирования мало что даёт,
если объём ПО превышает 1000 стр. текста на языке Си. Микропрограммисты
решают проблему создания относительно прозрачной схемы текстографическим проектированием. Возможно, на этом же пути находится решение проблем дисциплины программирования: лет 30 тому назад существовал графический Паскаль. В качестве примера текстографического проектирования приводится частичное описание видеоконтроллера цифрового телевизионного передатчика (ЦТВП), управляющего синтезатором частоты AD9854. Здесь верхние
уровни иерархии представлены в графическом виде, а микропрограммы нижнего уровня создаются в текстовом формате. На рис.1 и 2 представлены схемотехника, микропрограммы и результат симуляции работы видеоконтроллера.
Для отладки видеотракта ЦТВП используется примитивное контрольнодиагностическое устройство (КДУ), состоящее из ПЛИС EP1K100QC208-1, конфигурационного ПЗУ и БИС ОЗУ ёмкостью 2 ТВ-экрана. Габариты платы КДУ
составляют 100 х 100 мм. КДУ связано с ПК по интерфейсам USB, LPT, RS-232,
RS-485. Программа для управления видеоконтроллером amvideo.pas работает
под MS DOS в ПК. Скорость обмена между ПК и КДУ не превышает 200 кбайт в
сек.
program amvideo;
{программа амплитудной модуляции для СЧ типа AD9854}
uses printer,dos,crt;
const base = $378;{базовый адрес регистра данных}
strobe = $01;{маска бита STROBE регистра управления}
autofd = $02;{маска бита AUTOFD регистра управления - nWR для СЧ}
init = $04;{маска бита INIT регистра управления - UdClk для СЧ}
slctin = $08;{маска бита SELECTIN регистра управления}
busy = $10;{маска бита BUSY регистра состояния}
417
418
type vect=array[0..1023] of real;
massiv=array[0..9] of byte;
var n,nr :longint;
bytemas:massiv;
ni,i,j:longint;
tau:word;
ch :char;
nis,nrs,ns:string;
c1,c2 :array[1..32] of real;
m:array[0..6143] of byte;
c,f,fh,h,ftw,fsys:real;
addr,data:byte;
csys:double;
{addr,data - адрес и данные для СЧ,
f - несущая частота,
h - шаг по частоте,
ftw - код установки частоты для AD9854,
fiint - нач. фаза в дискретах времени,
шина управления(порт $37A) для записи из компьютера:
nSTROBE - запись в регистры адреса и данных КДУ,
nAUTO_FD - сигнал записи для СЧ,
nINIT - сигнал обновления информации(UdClk) для СЧ,
nSLCT_IN - выбор регистра адреса(0) или регистра данных(1) }
{-------------------------------------------------------------}
function intchar(m:integer):char;
var
ch:char;
begin
case m of
0..9: ch:=chr(m+ord('0'));
10..35: ch:=chr(ord('A')+m-10);
else
begin
writeln('Ошибка ввода');
halt;
end;
end{case};
intchar:=ch;
end;
{-------------------------------------------------------------}
function stpn(x,y:real):real;
begin
stpn:=exp(y*ln(x));
end;
{--------------------------------------------------------------}
function int10(a:longint;b:integer):string;
{Пеpевод целого 10-ичного числа в (2..36)-ичные системы}
{a,b - исх. 10-ичн. число и основание сист. счисл. соотв-енно}
var s:string;
418
419
m,i,j:integer;
chrarr:array[0..30] of string;
begin
i:=0;
for j:=0 to 30 do chrarr[j]:=' ';
repeat
m:=(a mod b);
chrarr[i]:=intchar(m);
a:=a div b;
i:=i+1;
until (a=0);
s:=chrarr[i];
for j:=i-1 downto 0 do
s:=s + chrarr[j];
int10:=s;
end;
{--------------------------------------------------------------}
procedure int256(f:real;var mass:massiv);
{Разделение целого 10-ичного числа на байты}
{f - исх. 10-ичн. число}
var fi,fri,m:longint;
ff,fr:real;
i:integer;
begin
ff:=f/65536;{масштабирование}
fr:=frac(ff)*65536;
fri:=trunc(fr);
fi:=trunc(ff);
mass[1]:=fri mod 256;
mass[2]:=fri div 256;
i:=3;
repeat
m:=fi mod 256;{m:=a mod 256}
mass[i]:=m;
fi:=fi div 256;{a div 256}
i:=i+1;
until (fi=0);
end;
{---------------------------------------------------------}
procedure ustanow;
begin
port[base]:=0; {0 -> регистр данных LPT1}
port[base+2]:=0; {0 -> регистр управления LPT1}
writeln;
end;
{--------------------------------------------------------------}
procedure ustreg;
{Установка АМ-режима работы СЧ}
var i:integer;
begin
419
420
port[base]:=$1f; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=$c6; {посылка в порт 378h байта данных для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
port[base]:=$1f; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=06; {посылка в порт 378h байта данных для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
port[base]:=$1d; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=$10; {посылка в порт 378h байта данных для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
port[base]:=$1e; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=$44; {посылка в порт 378h байта данных для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
420
421
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
port[base]:=$20; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=$40; {посылка в порт 378h байта данных для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
end;
{--------------------------------------------------------------}
procedure ustfreq(var bytemas:massiv);
{Установка частоты}
{bytemas - массив кодов задаваемой частоты}
var i:integer;
begin
port[base]:=04; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=bytemas[5];{посылка в порт 378h байта данных для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
port[base]:=05; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=bytemas[4]; {посылка в порт 378h байта данных для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
421
422
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
port[base]:=06; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=bytemas[3]; {посылка в порт 378h байта данных для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
port[base]:=07; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=bytemas[2]; {посылка в порт 378h байта данных для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
port[base]:=08; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=bytemas[1]; {посылка в порт 378h байта данных для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
end;
{--------------------------------------------------------------}
procedure lptend;
422
423
{Окончание работы с LPT}
var i:integer;
begin
port[base]:=$5f; {посылка в порт 378h признака конца работы с LPT}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=$c6; {посылка в порт 378h байта данных для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
end;
{=========================================================}
begin
clrscr;
ustanow;
writeln('Подайте напряжение +5 В, затем нажмите ENTER');
readln;
writeln('╔═══════════════════════════════╗');
writeln('║
Амплитудно-частотная модуляция на
║');
writeln('║
основе СЧ с помощью КДУ и ПК
║');
writeln('║
Лобанов В.И. 18-11-2004
║');
writeln('╚═══════════════════════════════╝');
ustreg;
csys:=stpn(2,40);
writeln('Системная константа csys = 2^40 = ',csys);
write('Введите системную и несущую частоты диапазона в МГц ');
readln(fsys,f);
ftw:=f/fsys*csys;
writeln('Десятичный код частоты f = ',f:10:6,' равен ftw = ',ftw);
for j:=0 to 9 do bytemas[j]:=0;
writeln;
int256(ftw,bytemas);
writeln('Байты кода = ');
for j:=5 downto 0 do write(bytemas[j]:6);
writeln;
ustfreq(bytemas);
lptend;
writeln('Нажмите ENTER');
readln;
clrscr;
end.
423
424
Конечно, эту программку на Паскаль можно сократить в несколько раз, но
спешка при отладке аппаратуры не позволила тратить время на «причёсывание».
Рис.1. Структурная схема видеоконтроллера ЦТВП.
424
425
425
426
Рис.2.
ЦТВП.
Микропрограммы
конечных
426
автоматов
видеоконтроллера
427
Формальный синтез МПА при использовании ПЛИС.
Широкое внедрение ПЛИС фирмы Altera в практику цифровых разработок связано не только с достоинствами этих микросхем, но и не в последнюю
очередь с появлением отечественной литературы по данному вопросу. Десять
лет тому назад появление САПР ПЛИС Xilinx сопровождалось такими сложностями, что применять эту систему в практических разработках не было ни малейшего желания. В прекрасном практическом курсе Антонова А.П., не только
разобран весь процесс проектирования, но ещё и приложен компакт-диск с самой САПР MAX+PLUS II. Эта САПР имеет ряд существенных недостатков, но
позволяет даже радиолюбителю решать серьёзные задачи.
Однако, перевод полученного решения на БМК требует знания формальных методов синтеза МПА. Прежде всего это связано с минимизацией булевых функций, поскольку такая операция не только экономит ресурсы, но и
минимизирует задержку комбинационной схемы. Аппарат минимизации в САПР
реализован из рук вон плохо. Следовательно, цифровику необходимо знать
азбуку своей профессии: на калькулятор надейся, а таблицу умножения не забывай. Кто умеет работать с картами Карно на 8-10 переменных? Никто. А ведь
это азбука. Не всегда есть под рукой эффективная программа минимизации,
да зачастую (в 99% всех случаев) она и не требуется. Кстати, самым эффективным алгоритмом минимизации обладает метод обобщённых кодов. Он был
427
428
проверен автором в конце 70-х годов прошлого века при минимизации булевых
функций от 45 переменных. До сих пор ничего более элегантного не появилось.
Этот метод разработан в конце 60-х годов 20-го века на 21-й кафедре Академии им. Дзержинского полковником, д. т. н. Мавренковым Леонидом Трофимовичем. Дальнейшее развитие метода и доведение его до инженерных методик
было выполнено сотрудниками этой кафедры к.т.н. Кустенко А.С., к.т.н. Кузнецовым Н.В. и к.т.н. Салтыковым Ю.А.(см. "Вопросы оборонной техники", 1972
г.). В открытой печати этот метод появился в 1977г..
Формальный синтез МПА в САПР также имеет дефекты. Недостатков в
САПР слишком много, но это тема для отдельного разговора. Т.е. САПР
MAX+PLUS II не удовлетворяет запросы профессиональных разработчиков.
При работе с БМК проектировщик всегда должен быть готов к тому, что некоторые элементы и модули ему придётся строить формально. В частности цифровик обязан уметь создавать любую элементную базу на основе И-НЕ (функционально полный элемент ИЛИ-НЕ в OrCAD не позволит создать SR-триггер из-за
гонок). Например, при работе на предельных частотах для синтеза асинхронных МПА требуется SR-триггер со сбросом, иначе не удастся провести симуляцию в пакете MAX+PLUS II. Этот элемент памяти необходимо построить чисто
формально, причём с предельно высоким быстродействием. Сплошь и рядом
приходится синтезировать МПА, работающие по самым причудливым алгоритмам. Применять эвристику для решения подобных задач всё равно, что забивать микроскопом гвозди. Вообще цифровик должен уметь формально строить
МПА на любых элементах, в том числе и на лампах, и на реле. Это потребовалось в Чернобыле.
Применение микропроцессоров породило проблему помехоустойчивости.
Сбои в работе процессора могли приводить к катастрофическим последствиям.
Поэтому появились всевозможные «войч-доги», которые контролировали время
выполнения циклических участков программы. Однако этот приём оказался малоэффективным. На смену «сторожевым собачкам» пришёл диагностический
процессор (ДП) CERBERUS-16. Но высокая сложность устройства, большой
латентный период обнаружения ошибки и сложность подготовки программы ДП
не позволили внедрить его в производство. В ХПИ им. В.И. Ленина, на кафедре
автоматики и телемеханики в 1985 г. был разработан отечественный ДП, лишённый вышеуказанных недостатков. Работами по созданию и испытаниям ДП
руководил проф. Леонид Викторович Дербунович. Кроме самой схемы был разработан транслятор с ассемблера КМ1816ВЕ48 на язык диагностического процессора. ДП успешно прошёл испытания и был рекомендован в 1990 г. к производству в виде специализированной БИС. Отсутствие финансирования и развал Советского Союза похоронили перспективный проект. Автор попытался перевести схему ХПИ на ПЛИС Xilinx, но низкий уровень интеграции позволил сократить объём с 66 корпусов лишь до 12. Такой результат не имеет практической ценности. Появление ПЛИС и БМК высокой интеграции позволяют возродить надежду на реализацию идей харьковчан в виде одной ПЛИС, а возможно
и одного отечественного БМК.
Макетирование проектов.
Несмотря на то, что САПР MAX+PLUS II при симуляции выдаёт достаточно корректные результаты, макетирование проектируемой схемы остаётся
насущной необходимостью. Поэтому имеет смысл разработки макетной платы,
428
429
которая содержит одну или несколько различных ПЛИС, несколько АЦП и ЦАП
с возможностью коммутации связей. Это позволит проверять работу различных
ПЛИС с различными периферийными устройствами. Такая предварительная
проверка позволит подготовить проект для реализации его на БМК с минимальным количеством ошибок. В большинстве случаев можно воспользоваться
готовыми платами для макетирования, так называемыми KIT.
Кроме того, необходимо аналогичное макетирование для обеспечения
входного контроля получаемых БМК. Полагаться на гарантии поставщика было
бы неразумно.
Математическая логика и искусственный интеллект.
Как заявил директор ГУП НПЦ «ЭЛВИС» Петричкович Я.Я. Россия не может конкурировать с Китаем в области бытовой электроники: слишком дёшев
труд в КНР . А вот в области высоких технологий Россия вне досягаемости Китая, Индии и абсолютного большинства других стран. «ЭЛВИС» уже «наступает
на пятки» Америке в создании элементной базы для систем ЦОС. Но в России
остался ещё невостребованным потенциал огромной мощности. Все советские
инженеры прекрасно владели математикой, а это фундамент искусственного
интеллекта.
21 век называют веком искусственного интеллекта (ИИ), но отсутствие
математической логики (взамен аристотелевской) препятствует решению фундаментальных проблем ИИ в том числе и для целей обороны. По степени решения проблем ИИ судят о научном потенциале державы. В 21-м веке будут
соревноваться не технологии, а интеллекты. Самой высокой технологией станет ИИ.
В России создана Русская логика для решения задач ИИ. Решены проблемы, над которыми трудилось всё человечество (и «физики», и «лирики») 25 веков. Эта истинно математическая логика, созданная в России, прошла проверку
на различных конференциях, симпозиумах и конгрессах, в том числе и международных. С 1998 г. не прозвучало ни одного критического замечания в адрес
логики России. В свободное от основной работы время автор преподавал Русскую логику в школах, гимназиях, техникумах, колледжах и вузах, а также в обществе «Знание». Эта логика легко осваивалась даже семиклассниками. Основы
Русской
логики
изложены
на
сайтах
http://ruslogic.narod.ru,
http://ruslogic.by.ru, http://www.trinitas.ru . И тем не менее преподаваемая в России логика дремуче невежественна и вопиюще безграмотна. Работы автора
переведены за рубежом. Есть опасение, что там освоят Русскую логику раньше,
чем мы. По докладу автора на «КС» по военной безопасности при Комитете по
обороне ГД РФ 13.11.2003 было принято решение «о ликвидации логической
необразованности всего российского общества в целом, как в 20-е годы прошлого века была ликвидирована начальная неграмотность в Советской России». Поэтому инженерному корпусу России придётся поголовно осваивать
Русскую логику.
Заключение.
У России есть шанс подняться с колен. Нужна лишь политическая воля.
429
430
Что касается решения чисто инженерных и научных проблем, то имеет смысл
изложить некоторые рекомендации. Для Заказчика и руководителей НИИ, ОКБ
и НПО предлагается производить прикидочный анализ уровня НИОКР по следующим признакам отсутствия квалификации:
 использование «рассыпной» элементной базы вместо технологии
СнК (SoC) или хотя бы использования разрешённых к применению
БМК, ПЛМ, ПМЛ и ПЛИС;
 чисто эвристические решения при синтезе всех МПА;
 применение асинхронных МПА на низких частотах;
 «игра» на задержках вместо построения синхронного МПА;
 отсутствие контролепригодности;
 отсутствие самодиагностики;
 отсутствие обоснования полноты тестирования.
Необходимый минимум знаний и умений разработчика-цифровика можно
определить следующим перечнем :
 умение работать с картой Карно на большое число переменных (не
менее 8);
 владение методом обобщённых кодов Мавренкова для ручной и
машинной минимизации булевых функций;
 знание инженерных методов разработки цифровых устройств;
 умение синтезировать счётчики с любыми, в том числе с дробными,
коэффициентами деления и распределители импульсов любого вида;
 умение превратить любую циклограмму в ГСА для последующего
формального синтеза МПА;
 умение формально построить любой элемент памяти на ИС типа ИНЕ, ИЛИ-НЕ, лампах и реле;
 владение формальными методами синтеза МПА на ИС, лампах и
реле;
 знание вопросов диагностики на уровне, обеспечивающем контролепригодность, самодиагностику, контроль и диагностику разрабатываемого прибора;
 знание математической логики, фундамента ИИ.
Экспресс-анализ технического уровня НИОКР может быть также произведён вневедомственной группой профессионалов-электронщиков.
В связи с чрезвычайно низким уровнем разработок современных инженеров России предлагается проведение следующих оргмероприятий:
1.
Создать вневедомственную группу (подразделение) по контролю технического уровня НИОКР (КТУ) по анализу проекта и выработке предложений
по устранению выявленных недостатков в составе не более 10 человек с рабочим циклом на одну НИОКР в 1 – 2 недели. Группа КТУ будет выявлять наиболее характерные ошибки и давать заключение о техническом уровне НИОКР.
Естественно, такой анализ целесообразнее проводить на этапе НИР.
2.
Проведение технического обучения ведущих специалистов разрабатывающих организаций и подразделений Приёмки Заказчика (не более 40 часов);
3.
Издание технического руководства по разработке цифровых
устройств.
4.
Аттестация инженеров-цифровиков в объёме «АРЦУ».
430
431
5.
Перестройка преподавания гуманитарной и математической логики в
средних и высших учебных заведениях России.
431
432
Краткий справочник по русской логике и ИМРЦУ.
Варианты силлогистического функтора Ixy.
1.Ixy = Ixy || Ayx || Axy = xy+x'y'+i(xy'+x'y)
(Ixy)' = j(xy'+x'y)
2.Ixy = Ixy || Ax'y = x+y+ix'y'
(Ixy)' = jx'y'
3.Ixy = Ixy || Axy || Ayx || Ax'y || (x=y) = xy+i(x'+y')
(Ixy)' = j(x'+y')
4.Ixy = Ixy || Ayx = x+y'+ix'y
(Ixy)' = jx'y
5.Ixy = Ixy || Ayx || Ax'y = x+ix'
(Ixy)' = jx'
6.Ixy = Ax'y = Ay'x = Ex'y' = x+y
(Ixy)' = x'y'
7.Ixy = Ixy || Axy || Ax'y = y+iy'
(Ixy)' = jy'
8.Функтор Васильева изображен на рисунке.
Ixy = 1
(Ixy)’ = 0
Любой базис может быть представлен с помощью атомарного базиса,состоящего всего из двух функторов:
Axy = x'+y,
Ixy = x+y+x'y' = 1
Русский базис.
Axy(2) = Axy = x'+y
Exy(2) = Axy' = x'+y'
Ixy(2) = Ixy || Ax'y = x+y+ixy'
Базис Васильева.
Axy(8) = Axy = x'+y
Exy(8) = Axy' = x'+y'
Ixy(8) = Ixy = x+y+x'y' = 1
Базис Аристотеля-Жергонна.
Axy(3) = Axy || (x=y) = xy+x'y'+ix'y
Exy(3) = Axy' = x'+y'
Ixy(3) = Ixy || Ax'y || Axy || Ayx || (x=y) = xy+i(x'+y')
Oxy(3) = Ixy || Ax'y || Axy' || Ayx = xy'+i(x'+y) = Ixy'(3)
432
433
Алгоритмы.
«АКТЕЛ» - аналитический синтез исходных посылок.
«Импульс» - анализ законов логики суждений.
«Импульс-С» – синтез законов логики суждений.
«ИЭИ» - аналитический синтез силлогизмов.
«Комета» - вероятностный графический синтез недостающей посылки).
«НИИДАР» - графический синтез исходных посылок.
«НИИРТА» – минимизация логических функций по картам Карно.
«Осташков» - синтез полисиллогизмов.
«РЕДАН» – графический синтез недостающей посылки.
«СГА» - аналитический синтез исходных посылок.
«Селигер» – решение логических уравнений.
«Селигер-С» синтез обратных функций.
«Суздаль» – графический синтез соритов.
«ТВАТ» – графический синтез силлогизмов.
«Циклон» - синтез многовариантных силлогизмов.
Алгоритм «НИИРТА» графической минимизации булевых функций.
1. Заполнить карту Карно нулями и единицами в соответствии с таблицей
истинности или заданным алгебраическим выражением.
2. Покрыть все элементарные квадраты Карно, в которых записаны единицы, минимальным количеством фигур покрытия, каждая из которых имеет
максимальную площадь. Если в КК единиц больше, чем нулей, то покрыть все
нулевые наборы и получить инверсию искомой функции.
3. Проверить каждую фигуру покрытия на соответствие принципу симметрии. В противном случае изменить контур фигуры покрытия в соответствии с
принципом симметрии так, чтобы она превратилась в прямоугольник Карно.
4. Каждому прямоугольнику Карно соответствует одна импликанта, причём
если в границах прямоугольника Карно какая-либо переменная принимает значения как 0 , так и 1 , то эта переменная не войдёт в импликанту.
Алгоритм «Импульс»(анализ законов логики суждений).
1)произвести замену всех знаков импликации на символы дизъюнкции в
соответствии с известной формулой x  y = x’ + y;
2)привести полученное выражение к ДНФ;
3)занести ДНФ в карту Карно и убедиться, что она вся покрыта единицами
– это свидетельствует о истинности проверяемого закона или суждения.
Алгоритм «Импульс-С»(синтез импликативных силлогизмов).
Алгоритм инженерного синтеза импликативных силлогизмов по заданным
посылкам немногим отличается от предыдущего алгоритма:
1)найти полную единицу системы М посылок, заменив импликацию по
формуле x  y = x’ + y;
2)привести полученное выражение к ДНФ;
3)подставляя в полученное выражение необходимые аргументы и отбрасывая лишние, т.е. заменяя их логической единицей или на i в случае автоном-
433
434
ного их вхождения, выводим соответствующие заключения как функции интересующих нас аргументов.
Алгоритм "ИЭИ "(аналитический синтез силлогизма).
1.Заменить посылки выражениями в соответствии с формулами
для функторов A,E,I,O.
2.Получить выражение для полной единицы М системы в виде конъюнк- ции всех посылок.
3. Получить из М функцию М(х,у), заменив средний член m или m' на 1.
Если средний член m/m' входит в силлогизм автономно, то заменить его на i.
Полученная функция М(х,у) является заключением силлогизма. Если в М
встречается терм im или im’, то заключения не существует.
Алгоритм «ТВАТ» (графический синтез силлогизмов).
1.Изобразить все возможные ситуации для исходных посылок с помоскалярных диаграмм Лобанова.
2.Занести в таблицу истинности все значения f(x,y) для входных наборов xy: 00,01,10,11.
3.Выполнить минимизацию логической функции заключения f(x,y).
4.Полученный результат представить в виде силлогистического функтора в соответствии с известным базисом.
щью
Алгоритм «РЕДАН» (графический синтез недостающей посылки).
1.Изобразить все возможные ситуации для исходной посылки и заключения с помощью скалярных диаграмм.
2.Занести в таблицу истинности все значения f(m,y) для входных наборов
my: 00,01,10,11.
3.Выполнить минимизацию логической функции посылки f(m,y).
4.Полученный результат представить в виде силлогистического функтора
в соответствии с известным базисом.
Алгоритм «Осташков» (синтез заключений полисиллогизма).
1. Привести систему уравнений к нулевому виду (исходная система).
2. Заполнить карту Карно нулями в соответствии с термами левых частей
исходной системы уравнений, а в оставшиеся клетки вписать единицы. Эти
единичные термы представляют собой СДНФ полной единицы системы М.
3. Произвести минимизацию совокупности единичных термов. Полученное
соотношение представляет МДНФ уравнения полной единицы системы М.
4. Получить из М все К заключений сорита как функции от двух заданных
переменных, заменяя на 1 все «лишние» переменные или на i в случае автономного их вхождения в формулу.
5. Представить результаты в виде скалярных диаграмм.
Алгоритм «Суздаль» (графический синтез заключений сорита).
1. Устранить по возможности все инверсии аргументов в посылках.
434
435
2. Выстроить посылки в «цепочку», обеспечивающую однозначное графическое представление сорита.
3. В соответствии с «цепочкой» изобразить скалярные диаграммы сорита.
4. Найти все возможные двуместные заключения с помощью скалярных
диаграмм.
Алгоритм «НИИДАР» графического нахождения исходных посылок.
1. По СДНФ полной единицы системы М построить сокращённую таблицу
истинности для неё.
2. По сокращённой таблице истинности построить скалярные диаграммы,
разбив интервал универсума на части, количество которых равно числу наборов в таблице истинности для М. Каждая часть универсума изображается соответствующим набором из таблицы истинности для М.
3. Из скалярных диаграмм выбрать (N – 1) логических функций от двух переменных, где N – число аргументов.
Алгоритм «СГА» аналитического нахождения исходных посылок.
1.
По полной единице системы построить n-1 посылок от двух аргументов, где n – количество терминов(аргументов).
2.
Посылки должны в совокупности охватить все аргументы.
3.
Ни одна из посылок не должна превращаться в логическую константу, равную 1, т.е. ни одна из исходных посылок не должна быть частноутвердительным суждением.
Алгоритм «АКТЕЛ» аналитического отыскания исходных посылок.
По заданной полной единице системы построить N-1 посылок сорита как
функций от двух переменных, заменяя на 1 все «лишние» переменные. Здесь N
– число аргументов.
Проверить полученные результаты логическим перемножением посылок и
сравнением с заданной полной единицей системы.
Алгоритм «Селигер» решения логических уравнений.
1. Привести систему уравнений к нулевому виду (исходная система).
2. Заполнить карту Карно нулями в соответствии с термами левых частей
исходной системы уравнений, а в оставшиеся клетки вписать единицы. Эти
единичные термы представляют собой СДНФ полной единицы системы.
3. Произвести минимизацию совокупности единичных термов. Полученное соотношение представляет МДНФ уравнения полной единицы системы.
4. Построить сокращённую (только для единичных термов) таблицу истинности уравнения полной единицы и выписать из неё все значения входных и
выходной переменных в виде частной таблицы истинности для искомой функции.
5. Произвести минимизацию полученного выражения..
6. Привести полученное выражение к рекурсивной форме, заменив i на
435
436
прямое значение искомой переменной, а j – на инверсное значение этой переменной.
7. Произвести проверку рекурсивного выражения на соответствие его
полной единице системы для задействованных аргументов.
Алгоритм «Селигер-С» синтеза обратных функций.
1. Построить таблицу истинности для уравнения z=f(x1, x2 ..... xn).
2. По исходной таблице истиннсти построить таблицу истинности для обратной функции вида x1=fi(z, x2 ......xn) простой перестановкой столбцов z и х1.
3. По полученной таблице истинности построить обратную функцию
x1=fi(z, x2, ..... xn) и провести её минимизацию.
4. Проверить полученное решение, вычислив полную единицу системы М
по обратной функции.
Алгоритм «Циклон» (синтез многовариантных силлогизмов).
1.
Убедиться, что для всех терминов-множеств исходных посылок и
универсума силлогизма указаны количественные характеристики (заданы мощности множеств или хотя бы соотношения между ними).
2.
Изобразить все возможные ситуации для исходных посылок с помощью
скалярных диаграмм Лобанова.
3.
Определить вероятность каждого варианта заключения, используя
формулы вычисления количества сочетаний.
4.
В том случае, когда первой посылкой является общеутвердительное или общеотрицательное суждение, то достаточно определить вероятности
заключений по одному варианту из всех возможных для первой посылки.
Алгоритм «Комета»
(вероятностный графический синтез недостающей посылки).
1. Изобразить на диаграммах Лобанова исходную посылку и все варианты
заданного заключения.
2. Определить вероятность каждого варианта искомой посылки.
Инструкция по пакету MAX+PLUS II.
ПО системы MAX+PLUS II содержит 11 приложений и главную управляющую
программу. Различные приложения, обеспечивающие создание проекта, могут
быть активизированы мгновенно, что позволяет пользователю переключаться
между ними щелчком мыши или с помощью команд меню. В это же время может работать одно из фоновых приложений, например, компилятор, симулятор,
анализатор синхронизации и программатор. Одни и те же команды разных приложений работают одинаково, что облегчает задачу разработки логического
дизайна.
Hierarchy Display
436
437
Обзор иерархии - отображает текущую инрархичнскую структуру файлов в виде
дерева с ветвями, представляющими собой подпроекты
Graphic Editor
Графический редактор - позволяет разрабатывать схемный логический проект
в формате реального отображения на экране WYSIWYG
Symbol Editor
Символьный редактор - позволяет редактировать существующие символы и
создавать новые
Text Editor
Текстовый редактор - позволяет создавать и редактировать текстовые файлы
логического дизайна, написанные на языках AHDL, VHDL, Verilog HDL
Waveform Editor
Сигнальный редактор - выполняет двойную функцию: инструмент для рахработки дизайна и инструмент для ввода тестовых векторов и наблюдения результатов тестирования
Floorplan Editor
Поуровневый планировщик - позволяет графическими средствами делать
назначения контактам устройства и ресурсов логических элементов
Compiler
Компилятор - обрабатывает графические проекты
Работа с графическим редактором.
Выбрав графический редактор, открыть новый файл(как в Word). Двойным
щелчком в окне редактора вызвать библиотеку. На первых порах лучше работать с библиотекой \mf, которая содержит стандартные элементы серии 74ХХ.
Схему любого библиотечного элемента можно посмотреть, выполнив двойной
щелчок на выделенном элементе. Кроме того, можно посмотреть справочник,
выполнив следующие операции:
- выделить нужный элемент щелчком мыши;
- щёлкнуть на нём правой клавишей мыши;
- выбрать в появившемся меню опцию Edit Ports/Parameters…;
- выбрать Help on <name>.
В этом справочнике имеется прототип функции для текстового редактора
и таблица истинности для выбранного элемента. Лучше пользоваться
более простым алглритмом:
 щёлкнуть на символе “?”;
 перетащить этот символ на нужный элемент;
 прочитать Help.
При работе с мегафункцией необходимо выполнить следующие операции:
1. Вызвать нужный символ из библиотеки мегафункций.
437
438
2. Правой клавишей мыши щёлкнуть внутри символа.
3. Выставить необходимые параметры, отменить лишние входы.
Графический редактор Altera похож на редактор PaintBrush. Но многие
операции имеют свои особенности.
Проведение шин выполняется через команду Options/LineStyle или с
помощью кнопки Тип линии на инструментальной линейке с выбором вида соединительной линии. Обозначение шины выполняется латиницей в режиме
указателя(наклонная стрелка в левом инструментальном поле), но лучше это
делать в текстовом режиме, поместив маркер в тексте входа/выхода ли над
маркируемой линией. Например, rg[12..1], где 12 и 1 – соответственно старший
и младший индексы связей. Обозначение отдельной связи в шине состоит из
имени шины и её индекса. Например, rg[1]. Линии, идущие от входов/выходов
можно не обозначать, т. к. им автоматически присваиваются имена входов/выходов.
Входы и выходы задаются с помощью примитивов, которые вызываются
двойным щелчком. Они также должны быть поименованы.
Точка на шине или связи ставится с помощью инструментальной линейки
слева.
Связи лучше проводить с помощью инструмента в виде прямого угла.
Удалять связи можно с помощью клавиши Delete, предварительно выделив
удаляемый отрезок.
С помощью примитивов можно вводить GND и VCC(“землю” и питание).
Примитивы вызываются двойным щелчком левой клавиши мыши.
Вращение элемента выполняется командой Rotate, выбираемой из меню, появляющегося после щелчка правой клавишей мыши(контекстное меню).
Проще выполнить команду вращения из опции Edit.
Распечатка схем из графического редактора.
1. Уменьшить до предела масштаб изображения, чтобы определить необходимый размер листа и способ расположения рисунка.
2. В опции File выбрать Size и установить необходимый размер листа(обычно это 17x22in).Это можно сделать методом перебора предлагаемых форматов.
3. Проверить, помещается ли в этом листе вся схема.
4. Войти в опцию File и выбрать Print Setup для установки книжного или
альбомного расположения.
5. Щёлкнуть на иконке принтера.
Примечание.
Перенос «окна» из MAX+PLUS II в Word через “Print Screen”.
Создание графиков для MAX+PLUS II с помощью Excel.
1.
Выделить нужные сигналы и сменить систему счисления с 16-ичной на
10-ичную двойным щелчком ЛКМ.
438
439
2.
Вызвать в MAX+PLUS II опцию File/Create Table File и сохранить нужные
сигналы в виде таблицы с предложенным именем <имя>.tbl.
3.
Вызвать Excel.
4.
Открыть только что созданный файл <имя>.tbl.
5.
Указать № строки, с которой будет импортироваться таблица.
6.
Указать пробел в качестве разделителя.
7.
Выделить столбцы в таблице Excel, которые будут представлены графиками.
8.
Щёлкнуть по иконке построения графика и выбрать вид графика.
Создание библиотечного элемента.
1. Создать файл <name>.gdf и оттранслировать его.
2. Щёлкнуть «мышью» на команде File/Create Default Symbol.
Реализация иерархического проекта в графическом реакторе.
1. Изобразить все блоки (подпрограммы) в виде файлов *.gdf.
2. Провести компиляцию каждого блока(подпрограммы).
3. С помощью команды File/Create Default Symbol занести каждый
блок(подпрограмму) в свою библиотеку подпрограмм в виде символа.
4. Вставить этот символ как обычный стандартный элемент в головной(main)
блок(программу).
5. Отразить все связи с этим элементом в головном блоке.
Вызов своего библиотечного элемента.
1. Двойной щелчок в поле проекта( в графическом редакторе).
2. В окне Simbol File выбрать свой элемент.
3. Щёлкнуть по кнопке ОК.
Работа с текстовым редактором.
Этот редактор создаёт файлы с расширением *.tdf. Можно использовать
языки AHDL, VHDL.
При наличии резервных входов, к которым подведён какой-либо сигнал ,
нужно обязательно задействовать эти входы в описании проекта.
Для просмотра include-файлов нужно щёлкнуть по иконке с изображением папки, выбрать директорию maxplus2\max2inc при ключе All files и просмотреть файлы с расширением *.inc. Содержимое этих файлов можно увидеть в
директории maxplus2\max2lib\mf. Чтобы увидеть содержимое function(include)
нужно щёлкнуть на опции Templates(стр.121,ч. 1 фирм. перевода)
Создание Include-файла.
1.Создать файл <name>.tdf с шапкой TITLE и оттранслировать его.
2.Щёлкнуть “мышью” по команде File/Create Default Include File.
3. Прочитать этот файл и уточнить названия входов/выходов.
Просмотр Include-файла из стандартной библиотеки.
439
440
1.
2.
3.
4.
5.
Щёлкнуть по Help.
Выбрать опцию Searh for Help on…
Найти имя примитива(4count, 8count и т.д.).
Щёлкнуть на кнопке Показать.
Просмотреть содержимое.
Просмотр Include-файла из собственной библиотеки.
1. Открыть папку с искомым Include-файлом.
2. Вызвать свой Include-файл.
3. Просмотреть содержимое
Настройка на ПЛИС серии MAX7000S.
1. Войти в опцию Assign / Device .
2. Убрать «галочку» в окне Show Only Fastest Speed Grades(Только самые
быстрые ПЛИС).
3. Установить в окне Device Family тип ПЛИС MAX7000S(EPM9320ARI208-10).
4. Только потом дать имя проекту и запустить трансляцию.
Создание комбинированного проекта,
Рациональное проектирование связано с использованием графического
и
текстового
редактора
одновременно.
Стандартные
узлы(счётчики,регистры,сумматоры и т.п.) удобно создавать в графическом редакторе. Микропрограммные автоматы(МПА), произвольные логические функции, операции с условиями, циклами и т.п. нужно синтезировать в текстовом
редакторе. При таком проектировании экономится время, а схема получается
достаточно прозрачной. Порядок решения задачи в этом случае может быть
следующим.
1. Разбить схему на стандартные узлы и нестандартные блоки.
2. Создать в текстовом редакторе проект(ы), описывающий все нестандартные
блоки.
3. Оттранслировать текстовый файл(ы) с локальным именем проекта и создать символ, соответствующий данному нестандартному блоку.
4. В графическом редакторе создать файл с глобальным именем, в который
включить все нестандартные блоки в виде символов и все стандартные узлы.
Оттранслировать полученный файл.
Компиляция и отладка.
Перед компиляцией в опции File/Project задать имя проекта(имя головного файла с расширением *.gdf).
В опции меню Assign/Device выбрать в
окне Device Family тип микросхемы. Для отмены глобальных входов тактирования, сброса и выбора кристалла нужно в меню выбрать опцию Assign, а в
ней Global Project Logic Synthesis и убрать все «галочки» в секциях Automatic Global, MAX Device Synthesis Options и др. Убедиться, что в окне Global
440
441
Project Synthesis Style установлен режим Normal. В этом случае глобальные
входы можно использовать в качестве обычных. Только после этого можно приступить к компиляции.
Компиляция проводится либо через опцию MAX+plusII/Compiler , либо
через главную инструментальную линейку. При появлении окна компилятора
нужно щёлкнуть по клавише Start.
При наличии ошибок в компилируемом файле появляются соответствующие сообщения. Выделив нужное сообщение и щёлкнув на кнопке Location,
можно локализовать ошибку .
Для определения объёма проекта необходимо выполнить след. операции:
1.Щёлкнуть “мышью” на “пирамиде”.
2.Вскрыть опцию rpt.
3.Просмотреть сообщение до опции %LCS Utilized.
Моделирование.
Открыть файл с расширением *.sсf, щёлкнув по соответствующему
значку главной инструментальной линейки. Двойным щелчком вызвать меню
ввода входных/выходных переменных.
Для установки интервала времени моделирования нужно войти в
опцию File/EndTime и выставить нужное время(us,ms,s) или масштаб(1,10,100,1000). Если частота уже выставлена, то переход к более низким
её значениям можно выполнить в опции Multiplied By.
Для задания тактовой частоты нужно использовать левую инструментальную линейку (иконка с символом С), предварительно щелчком выделив
диаграмму тактовой частоты. Нужную частоту выставить через опцию Options/Grid Size или View/Time Range. Если при установке частоты не срабатывает задание шага, то щёлкнуть по 3-й справа иконке на горизонтальной инструментальной линейке, а потом снова на вертикальной линейке повторить
задание частоты.
Для установки значений входных сигналов нужно с помощью вертикального репера установить щелчком с протаскиванием длительность сигнала, а затем и его значение с помощью иконки с символом 1 на левой инструментальной панели. Для ввода значения группового входа выполнить следующие операции:
1. Выделить нужную группу.
2. Щёлкнуть правой клавишей мыши внутри выделенной группы.
3. Выбрать опцию Overwrite/Group Value.
4. Ввести нужное значение.
Для переноса (вставки) диаграмм входов-выходов :
1. Выделить нужную группу.
2. Удалить её (или вставить в нужное место).
3. Вставить в нужное место.
Для запуска пакета моделирования(симулятор) необходимо щёлкнуть на кнопке симулятора главной инструментальной панели или запустить
вект. файл.
Назначение ресурсов.
Вначале установить тип ПЛИС через опцию Assign/Device. Затем войти
441
442
в опцию Assign/Global Project Logic Synthesis и погасить все «галочки». Для
указания нумерации выводов следует выполнить след. операции:
1. Войти в меню Assign.
2. Выбрать опцию Pin/Location/Chip…
3. В появившихся окнах записать имя узла и номер вывода ПЛИС.
Просмотреть результаты своей работы по распределению ресурсов
можно, вызвав файл <name>.acf. или <name>.pin. Здесь <name> - имя проекта. Цоколёвку также можно проверить, просмотрев файл <name>.rpt или
просто в окне графического редактора данного проекта.
4. Щёлкать на кнопке Add и вводить новые данные. Если необходимо
изменить нумерацию выводов, то используйте кнопку Change.
5. Провести трансляцию заново.
6. Окончательный результат по назначению ресурсов проверить в
файле <name>.rpt.
Программирование ПЛИС.
После назначения ресурсов возможно программирование ПЛИС. Программирование выполняется в следующем порядке:
1. При выключенном ПК подсоединить кабель ByteBlaster к принтерному
разъёму ПК и программируемому прибору.
2. Включить ПК, запустить MAX+PLUS II.
3. Подать питание(обычно +5В) на программируемый прибор.
4. Войти в опцию меню File и задать имя проекта.
5. Выбрать опцию MAX+plus II/Programmer и нажать кнопку Program или
просто щёлкнуть мышью на иконке программирования.
6. Убедиться в успешном выполнении программирования.
7. Отключить питание программируемого прибора.
8. Выйти из MAX+PLUS II.
9. Выключить ПК.
10. Отсоединить кабель ByteBlaster.
442
443
Перечень сокращений
АРЦУ – азбука разработчика цифровых устройств
БИС - большая интегральная схема
БМОК – база минимального обобщённого кода
ДНФ - дизъюнктивная нормальная форма
ДССП – Диалоговая система структурированного программирования
ЗОК - запрещённый обобщённый код
ИИ
- искусственный интеллект
ИМРЦУ – инженерные методы разработки цифровых устройств
ИС
- интегральная схема
ИЭИ - Ивановский энергетический институт
КА
- конечный автомат
КДУ - контрольно-диагностическое устройство
КК
- карта Карно
КС
- комбинационная схема
МДНФ – минимальная ДНФ
МОК - минимальный обобщённый код
МПА – микропрограммный автомат
НИИДАР – НИИ дальней радиосвязи
НИИРТА – НИИ радиотехнической аппаратуры
НТР - научно-техническая революция
ПК
- прямоугольник Карно
ПЛИС - программируемая логическая интегральная схема
ПЛМ - програмируемая логическая матрица
ПМЛ - программируемая матричная логика
ППК - предполагаемый прямоугольник Карно
РАЯ - Развиваемый(Русский) адаптивный язык
РЛ
- Русская логика
РОК - рабочий обобщённый код
САПР – система автоматизированного проектирования
СГА - Современная Гуманитарная Академия
СДНФ – совершенная дизъюнктивная нормальная форма
ТВАТ - Тушинский вечерний авиационный техникум
443
444
Литература
1. Акимов О.Е. Дискретная математика: логика, группы, графы.–
М.:ЛБЗ,2003.
2. Аристотель. Сочинения. В 4-х томах. Т.2- М.: Мысль,1978.
3. Брусенцов Н.П. Начала информатики. - М: Фонд "Новое тысячелетие",1994.
4. Брусенцов Н. П. Полная система категорических силлогизмов Аристотеля. -В кн. Вычислительная техника и вопросы кибернетики . Вып.19. М.: МГУ,1982.
5. Васильев Н.А.О частных суждениях. - Казань:Университет,1910.
6. Войтов А. Г. Самоучитель мышления. – М.: 1999.
7. И.Л.Галинская. Льюис Кэрролл и загадки его текстов – М.: РАН.,Институт
научной информации по общественным наукам,1995.
8. Катречко С. Л. Введение в логику. Программа курса. – М.: УРАО, 1997.
9. Кириллов В.И., Старченко А.А. Логика. - М.: Юрист,1995.
10. Кузичев А.С. Диаграммы Венна. История и применения. М., Наука, 1968 .
11. Кэрролл Л. История с узелками. - М.:Мир,1973.
12. .Лейбниц Собрание сочинений в 4 томах. Том 3. – М.:1983
13. Лобанов В.И. Инженерные методы разработки цифровых устройств. М.: НИИРТА,1977.
14. Лобанов В.И. Метод минимизации булевых функций от большого числа
переменных с помощью карт Карно. - Инф. Листок N54-87,М: МособлЦНТИ,1987.
15. Лобанов В.И. Отказоустойчивый микроконтроллерный регулятор с программируемой структурой обработки данных. Диссертация на соискание
ученой степени канд. техн. наук. - Харьков, ХПИ,1989.
16. Лобанов В.И. Кризис логики суждений и некоторые пути выхода из него.//Современная логика: проблемы теории, истории и применения в
науке (Материалы V Общероссийской научной конференции) - СПб:
1998.
17. Лобанов В.И. Решение логических уравнений. //Научно-техническая информация. Сер. 2. N%9, 1998, с. 40 - 46.
18. Лобанов В.И. Силлогистика Аристотеля-Жергонна. //НТИ, сер.2, Информационные процессы и системы, N9, 1999, с. 11 - 27.
19. Лобанов В.И. Базовые проблемы классической логики.//Современная
логика: Проблемы теории,истории и применения в науке(Материалы VI
Общероссийской научной конференции), СПбГУ, 2000 — с.499 — 504.
20. Лобанов В.И.
Синтез
и
минимизация
комбинационных
схем//Информатика и образование,N5,2000, стр. 60 – 63.
21. V. I. Lobanov. The solution of logical equations. // Documentation and Mathematical Linguistics, vol. 32, №5,1998, p. 16 – 27 .
22. V. I. Lobanov. Many-valued quantifier-free syllogism (second basis). // Documentation and Mathematical Linguistics, vol. 32, №5,1998, p. 40 – 60 (гонорар выплачен 4.11.2000).
23. Лобанов В.И. Практикум по логике суждений. //Информатика и образование, №2,2001, с. 47-52.
24. Лобанов В.И. Практикум по силлогистике . //Информатика и образование, №5,2001.
444
445
25. Лобанов В.И. Решебник по Русской логике. – М.: Компания Спутник+,
2002 – 133с.
26. Лобанов В.И. Азбука разработчика цифровых устройств. – М.: Горячая
линия – Телеком, 2001 – 192с.
27. Лобанов В.И. Русская логика против классической (азбука математический логики). – М.: Компания Спутник+, 2002 – 126с.
28. Лобанов В.И. Русская логика против классической. //Рационализм и культура на пороге третьего тысячелетия(материалы Третьего Российского
философского конгресса),том 1, стр.278, г.Ростов-на-Дону, 2002.
29. Лобанов В.И. Русская логика для школьников (и академиков). –
М.:»Эндемик»,2004 – 110с.
30. Лобанов В.И. Русская логика для «физиков» и «лириков». – М.: Спутник+,
2005 – 427с.
31. Лобанов В.И. Русская вероятностная логика для школьников и умных
академиков. – М.: 2008 – 33с.
32. Непейвода Н.Н. Прикладная логика. - Ижевск: Удмурт.университет,1997.
33. Платон. Диалоги. – М.: Мысль, 2000.
34. Порецкий П.С. О способах решения логических равенств и об одном обратном способе математической логики.// Собрание протоколов заседаний секции физико-математических наук общества естествоиспытателей
при Казанском университете, т. 2, Каз., 1884.
35. Светлов В.А. Практическая логика. - СПб: Изд. Дом »МиМ»,1997.
36. Стяжкин Н.И. Формирование математической логики. - М: 1967.
37. Тейчман Д. , Эванс К. Философия. - М.: Весь Мир,1997.
38. Шачнев В.А. Математическая логика. - М: 1991.
445
446
Оглавление
РУССКАЯ ВЕРОЯТНОСТНАЯ ЛОГИКА ................................................................. 1
ПРЕДИСЛОВИЕ ................................................................................................................................................. 3
ЧАСТЬ 1 .................................................................................................................. 11
ИНЖЕНЕРНАЯ ЛОГИКА. ....................................................................................... 11
Глава первая .................................................................................................................................................... 11
КОМБИНАЦИОННЫЕ ЛОГИЧЕСКИЕ ЦЕПИ ..................................................................................... 11
1.1 Основные положения алгебры логики .................................................................................................. 11
1.2 Алгебра множеств. .................................................................................................................................. 13
1.3 Разновидности логических интегральных схем ( ИС ) ......................................................................... 14
1.4. Синтез комбинационных схем ................................................................................................................ 16
1.5.Минимизация полностью определённых булевых функций. ................................................................ 18
1.6.Карты Карно для 7, 8, 9 и 10 переменных. .............................................................................................. 19
Алгоритм «НИИРТА» графической минимизации булевых функций. ........................................................ 23
1.7.Оценка сложности реализации булевых функций .................................................................................. 25
1.8. Формы задания булевых функций. ......................................................................................................... 26
1.9. Минимизация недоопределённых булевых функций ............................................................................ 29
1.10. Минимизация системы булевых функций............................................................................................ 30
1.11. Анализ комбинационных схем . ............................................................................................................ 33
Глава вторая ...................................................................................................................................................... 34
МИНИМИЗАЦИЯ ЛОГИЧЕСКИХ ФУНКЦИЙ МЕТОДОМ ОБОБЩЁННЫХ КОДОВ. ............ 34
2.1. Общий алгоритм определения МОК. ..................................................................................................... 35
2.2. Алгоритм соседнего определения базы МОК (алгоритм Мавренкова). .............................................. 38
2.3. Выводы...................................................................................................................................................... 44
ЧАСТЬ 2 .................................................................................................................. 47
МАТЕМАТИЧЕСКАЯ ЛОГИКА СУЖДЕНИЙ И ПРЕДИКАТОВ. ........................... 47
Глава первая ...................................................................................................................................................... 47
Глава вторая ..................................................................................................................................................... 49
2.1.Законы логики суждений .......................................................................................................................... 49
Алгоритм «Импульс» анализа законов логики суждений. ........................................................................... 49
Алгоритм «Импульс-С» синтеза импликативного заключения. ................................................................. 50
2.2. Практикум по логике суждений. ............................................................................................................. 59
Глава третья ..................................................................................................................................................... 68
Силлогистика. ................................................................................................................................................... 68
Троичная логика. .............................................................................................................................................. 69
Базисы силлогистики. ...................................................................................................................................... 69
3.1. Все x суть y(Axy). .................................................................................................................................... 74
446
447
3.2. Ни один x не есть y(Exy). ......................................................................................................................... 76
3.3. Некоторые x суть y. .................................................................................................................................. 77
Глава четвёртая ............................................................................................................................................... 83
Силлогистика Аристотеля - Жергонна. ....................................................................................................... 83
4.1. Алгоритм "Осташ-Т" (тест, анализ) .................................................................................................... 84
4.2. Алгоритм «ТВАТ» (графический синтез силлогизмов). ........................................................................ 85
4.3. Алгоритм «РЕДАН» (синтез недостающей посылки). ........................................................................ 85
4.4. Алгоритм «НИИДАР» графического нахождения исходных посылок. .............................................. 87
4.5. Алгоритм «СГА» аналитического нахождения исходных посылок. .............................................. 88
4.6. Алгоритм "ИЭИ "(аналитический синтез заключения) ....................................................................... 89
4.7. Ошибки Аристотеля. ................................................................................................................................ 95
Заключение ..................................................................................................................................................... 103
Глава пятая ...................................................................................................................................................... 104
Атомарная силлогистика. ............................................................................................................................. 104
5.1. Практикум по силлогистике. ................................................................................................................. 109
5.2. Практикум по решению соритов........................................................................................................... 116
Алгоритм «Осташков» синтеза соритов. ................................................................................................. 116
Импликативно-силлогистические законы и их связь с силлогистикой. ............................................. 125
Глава шестая ................................................................................................................................................... 129
Естественный вывод и кванторы. ............................................................................................................... 129
Глава седьмая .................................................................................................................................................. 134
Логика П.С.Порецкого. .................................................................................................................................. 134
Глава восьмая .................................................................................................................................................. 137
Логика Л.Кэрролла. ........................................................................................................................................ 137
Задачи Л.Кэрролла. ........................................................................................................................................ 140
Силлогизмы Л.Кэрролла для самостоятельного решения. .................................................................... 193
Сориты Л.Кэрролла для самостоятельного решения. ............................................................................. 196
Глава девятая .................................................................................................................................................. 208
Вероятностная логика. .................................................................................................................................. 208
Алгоритм «Циклон» (синтез многовариантных силлогизмов). .......................................................... 211
Алгоритм «Комета» вероятностного синтеза недостающей посылки ................................................. 223
Глава десятая ................................................................................................................................................... 225
Дисциплина мышления. ................................................................................................................................ 225
Глава одиннадцатая. ...................................................................................................................................... 230
Логические уравнения и обратные функции. ....................................................................................... 230
11.1. Решение логических уравнений. ......................................................................................................... 230
11.2. Алгоритм «Селигер» решения логических уравнений. ...................................................................... 236
11.3. Равносильные преобразования............................................................................................................ 239
11.4. Отыскание обратных функций. ........................................................................................................... 240
Алгоритм «Селигер-С» синтеза обратных функций................................................................................. 240
447
448
Алгоритм «Волга» решения уравнений в двоичной логике. ....................................................................... 245
Заключение. ................................................................................................................................................. 247
ЧАСТЬ 3. БУКВАРЬ РАЗРАБОТЧИКА ЦИФРОВЫХ УСТРОЙСТВ. ................ 250
ИНЖЕНЕРНЫЕ МЕТОДЫ РАЗРАБОТКИ ЦИФРОВЫХ УСТРОЙСТВ. ........... 250
Глава первая .................................................................................................................................................. 250
Инженерная комбинаторика. ....................................................................................................................... 250
Глава вторая. ................................................................................................................................................... 251
Триггеры........................................................................................................................................................... 251
2.1 SR- триггеры. ....................................................................................................................................... 251
2.2 D- триггеры. ............................................................................................................................................. 254
2.3 . JK- триггеры. ......................................................................................................................................... 255
2.4 Анализ работы схем с памятью.............................................................................................................. 256
Глава третья .................................................................................................................................................... 258
РЕГИСТРЫ И СЧЁТЧИКИ .......................................................................................................................... 258
3.1 Регистры памяти...................................................................................................................................... 258
3..2. Регистры сдвига. ................................................................................................................................... 258
3..3. Двоичные счётчики. .............................................................................................................................. 260
3.4 . Десятичные счётчики. ........................................................................................................................... 262
3.5. Элементная база для построения счётчиков. ....................................................................................... 264
Глава четвёртая .............................................................................................................................................. 265
СИНТЕЗ СЧЁТЧИКОВ ................................................................................................................................. 265
4.1 Синтез счётчиков с использованием установочных входов. ............................................................... 265
4.2 Синтез счётчиков с использованием управляющих входов. ............................................................. 268
4.3. Реверсивные счётчики ........................................................................................................................... 274
4.4.Распределители импульсов. ................................................................................................................... 277
4. 5. Cчётчики на сдвиговых регистрах. ...................................................................................................... 279
Глава пятая. ..................................................................................................................................................... 282
КОНЕЧНЫЕ АВТОМАТЫ. ......................................................................................................................... 282
5.1 Понятие о конечном автомате. Автоматы Мили и Мура. .................................................................... 282
5.2. Методы задания автоматов. ГСА. ......................................................................................................... 285
5.3. Синтез конечных автоматов. ................................................................................................................. 287
5.4 Кодирование состояний и сложность комбинационной схемы. ......................................................... 291
5.5 . Гонки и противогоночное кодирование. ............................................................................................. 295
5.6. Синтез нечётных и дробных делителей частоты со скважностью 2. ................................................. 305
Алгоритм «Комета» соседнего кодирования состояний ДДЧ. .................................................................. 306
5. 7. Синтез релейных автоматов. ................................................................................................................ 311
5.8.Синтез ГСА по функциям возбуждения. ............................................................................................... 315
Глава шестая ................................................................................................................................................... 317
МИКРОКОНТРОЛЛЕРЫ ............................................................................................................................. 317
6.1. Простой промышленный микроконтроллер ........................................................................................ 317
6.2. Микропроцессорная техника. ............................................................................................................... 320
6.3. Отладочные средства. ......................................................................................................................... 334
6.4. Средства контроля и диагностики. ....................................................................................................... 341
6.5. Синтез проверяющих тестов для комбинационных схем. .................................................................. 344
448
449
Глава седьмая .................................................................................................................................................. 348
ПРОЕКТИРОВАНИЕ МПА НА БАЗЕ ПЛИС. ...................................................................................... 348
7.1. ОПТИМАЛЬНОЕ ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ СИСТЕМ УПРАВЛЕНИЯ. ....................... 348
Частотный детектор. ..................................................................................................................................... 360
Фазовый детектор. ........................................................................................................................................ 364
Приёмопередатчик RS-485. .......................................................................................................................... 369
Телевизионный генератор испытательных сигналов. ................................................................................ 377
КДУ. ............................................................................................................................................................... 378
Телевизионный цифровой синхрогенератор............................................................................................... 380
Синтезатор частоты. ..................................................................................................................................... 386
Особенности создания проекта для БМК. ................................................................................................... 388
7.2. О недостатках САПР MAX+PLUS II. ................................................................................................... 394
7.3. О повышении технического уровня отечественных разработок. ....................................................... 411
Уровень современных разработок и элементная база: ПЛИС, сигнальные процессоры и отечественные
аналоги. .......................................................................................................................................................... 413
Проблемы проектирования современных цифровых систем управления. ............................................... 415
Заключение. ................................................................................................................................................... 429
Краткий справочник по русской логике и ИМРЦУ. ............................................................................... 432
Перечень сокращений .................................................................................................................................... 443
Литература ....................................................................................................................................................... 444
Оглавление ....................................................................................................................................................... 446
449
Скачать