Л7~и;^иіугітпп гттт.я
Рис. 6. Текстура для сегмента стен C
Рис. 7. Текстуры для сегментов стен: a — A и B; б — D
Заключение
В работе исследована проблема компьютерного моделирования трехмерных пространств в режиме реального времени. На примере идеализированной модели виртуального пространства выявлены основные этапы построения трехмерных пространств. Предложены два алгоритма, позволяющие создавать иллю -зию трехмерного пространства, и рассмотрены особен -ности их программной реализации. Приведен пример изображения, созданного программой, основанной на втором варианте алгоритма трассировки луча. Указан -ная программа при предъявлении минимальных на сегодняшний день требований к ресурсам вычисли-
тельной системы (500Кб оперативной памяти, 2 Мб пространства на жестком диске, І386 микропроцессор) обладает следующими характеристиками: использование стандартных графических видеорежимов адаптера VGA с 256 цветами, что обеспечивает практически 100% переносимость программы; частота смены кадров составляет 30 кадров в секунду; возможность разбиения виртуального пространства, превышающего объем свободной оперативной памяти на несколько частей, загружаемых в заданной последовательности; возможность наполнения виртуального пространства неподвижными объектами произвольной формы; реализация открывающихся дверей и возможность работы с анимированными текстурами; поддержка 256-цветных спрайтов в форматах PCX и LBM.
Литература:1. Белоус Н.В., Выродов А.П., Шубин И.Ю. О некоторых алгоритмах построения виртуальных пространств // Проблемы бионики. 1998. №48. C. 52—59. 2. Белоус Н.В., Выродов А.И., Шубин И.Ю. Математические модели построения виртуальных пространств //Проблемы бионики. 1998. №49. C. 203—211. 3. Ла Мот А., Ратклифф Дж, Семинаторе М, Тайлер Д. Секреты программирования игр. СПб: Питер, 1995. 616 с.
Поступила в редколлегию 19.09.98 Рецензент: д-р техн. наук Петров Э.Г.
Белоус Наталия Валентиновна, канд. техн. наук, доцент кафедры ПОЭВМ ХТУРЭ. Научные интересы: разработка обучающих программ, гипертекстовых компьютерных учебников, моделирование сложных объектов. Адрес: Украина, 310093, Харьков, ул. Социалистическая, 68-5, кв. 65, тел. 72-76-47.
Шубин Игорь Юрьевич канд. техн. наук, доцент кафедры ПОЭВМ ХТУРЭ. Научные интересы: перспективные информационные технологии, трехмерная компьютерная графика. Адрес: Украина, 310170, Харьков, ул. Акад. Павлова, 134/16, кв. 263, тел. 68-64-89.
Выродов Алексаццр Павлович, студент гр. ПОВТАС 961 ХТУРЭ. Научные интересы: трехмерная компьютерная графика. Адрес: Украина, 310726, Харьков, пр. Ленина, 14.
УДК 519.7
О ДЕЙСТВИЯХ С ЛИНЕЙНЫМИ ЛОГИЧЕСКИМИ ОПЕРАТОРАМИ
ГВОЗДИНСКАЯН.А., ДУДАРЬ З.В., 11ОСЛАВСКИЙСЛ,ШАБАЛОВ-КУШНАРШКОЮ.П.
Рассматривается затронутая в работах [4, 6] тема: линейные логические операторы и соответсвующие им матрицы. Описываются такие действия с линейными логическими операторами как дизъюнкция, произведение и умножение логического скаляра на линейный логический оператор.
Выберем в логическом пространстве L два линейных логических оператора А и В и произвольный вектор l. Применим последовательно к вектору l сначала оператор А, затем оператор В. В результате получим некоторый вектор d=B(Al).
Оператор, переводящий вектор l в вектор d, называется произведением В на А:
(BA)l=B(Al). (1)
Исходя из этого равенства, можно записать следующее, имея в виду, что а и р — некоторые логические скаляры, а l, geL:
(BA)(alvPg)=B(A(alvPg)).
В силу линейности операторов А и В имеют место равенства
B(A(alvPg))=B(a(Al) vP (Ag))=B(aAl)vB( P Ag). Иными словами,
(BA)(alvPg)=a(BA)lvp(BA)g. (2)
Из равенства (2) следует, что произведение линейных логических операторов также является линейным оператором. Обозначим через С матрицу произведения линейных логических операторов А и В. Она будет равна произведению матриц А и В, отвечающих операторам А и В соответственно, т.е.
С=ВА. (3)
Для доказательства этого утверждения выберем в логическом пространстве L некоторый базис. Произвольному вектору leL отвечает координатный столбец [l] в выбранном базисе. Следовательно, [(BA)l]=C[l]. (4)
В то же время
[(BA)l]=[B(Al)]=B[Al]=BА[l]. (5)
Сравнивая равенства (4) и (5), получаем утверждение (3).
Например, возьмем вектор булева пространства размерности 4 [1, 3] l=(0, 1, 1, 0), линейные логические операторы А и В, которым отвечают логические матрицы
128
РИ, 1998, № 3
А=
' 0 1 1 1' ' 0 1 1 0'
0 0 0 1 и В= 0 1 0 1
1 1 1 0 1 1 0 0
V 0 1 0 1) V 0 0 1 1,
соответственно. Тогда логическому оператору ВА будет отвечать матрица
ВЛ=
Г1 1 1 1'
0 1 0 1
0 1 1 0
V 1 1 1 1,
Вектор lс помощью оператора ВА перейдет в вектор
Щ=[(БЛ)1\=ВА[1\
Г1111' Г 0' Г!
0 10 1 1 1
0 110 1 = 1
V 1111) V 0) v1,
Рассмотрим теперь в качестве поля логических скаляров множество одноместных предикатов Р(х), определенных на множестве {0,1}, i=0, ..., 3 [2]. В качестве пространства логических векторов возьмем множество двухместных предикатов Qj(x, y), j=0, ..., 15. Пусть оператору А в некотором базисе соответствует матрица
А=
Л
Р2
Рз
Рі
а оператору В — матрица
(0,1) (1,1) (1,0) (0,1).
(6)
В=
Р2
Р1
Р1
Ро
(1,0) (0,1)) .(0,1) (0,0)) .
Тогда оператору ВА будет соответствовать матрица
Г (1,0) (0,1)Ї Г (0,1) (1,1)
ВА= V (0,1) (0,0)) V (1,0) (0,1).
Г (0,0) (1,1) Ї Г Р0 Рз)
= V (0,1) (0,1)) = V Р1 Р1).
Рассмотрим теперь обратимый логический оператор А и обратный по отношению к нему логический оператор А"1 [4]. В случае линейного логического оператора А: L^L логический оператор А-1: L^L также является линейным. Для доказательства этого утверждения положим
A_1x=l, A_1y=d,
где x и у—некоторые произвольные векторы. В силу того, что логический оператор А является линейным, можно записать следующее:
A(al^pd)=aAlvpAd=axvPy, откуда вытекает, что
A"1(axvPy)=A"1A(alvpd)=alvpd=aA"1xvpA"1y, т.е. оператор А"1 линейный. Если оператору А отвечает матрица А, а обратному ему оператору А"1 — некоторая логическая матрица В, то из соотношения
АА"1=А_1А=Е’
непосредственно вытекает, что
ав=ва=е;
это означает, что В=А_1. Иными словами, матрица, отвечающая логическому оператору, обратному к оператору А, является обратной по отношению к матрице А. В силу того, что обратимыми являются только ортогональные логические матрицы [5], логический оператор будет иметь обратный в том и только в том случае, когда ему соответствует ортогональная матрица.
Пусть линейному логическому оператору С отвечает ортогональная матрица
' 0 10 0'
0 0 10 С= 0 0 0 1 . v 1 0 0 0,
Тогда оператору С1 будет соответствовать матрица
CT=CL1
'0 0 0 1' 10 0 0 0 10 0. v 0 0 10,
Возьмем в логическом пространстве L произвольный вектор l и применим к нему оператор А, а затем полученный новый вектор умножим на логический скаляр а, получив в результате некоторый вектор d. Оператор, переводящий вектор lв вектор d, назовем произведением логического скаляра а на логический оператор А и обозначим через аА. Другими словами,
(aA)l=a(Al). (7)
Обозначим через В произведение аА. Если А является линейным оператором, то мы можем записать следующее:
В( р lvyg)=oA(p lvyg)=вaЛlvyaЛg= Р Blvy Bg. (8)
Равенство (8) доказывает линейность логического оператора В=аА. Возьмем произвольный базис в логическом пространстве L. Обозначим через А матрицу, отвечающую в выбранном базисе логическому линейному оператору А, а через В — матрицу оператора аА. Следовательно,
[(аЛ^Вт, (9)
[(аЛ)^=[а(Л^]=а[Л^=аЛ[^=(аЛ)[/\. (10)
Из соотношений (9) и (10) вытекает, что B[lj=M)[lj.
Другими словами,
В=аА. (11)
Следовательно, матрица, отвечающая произведению логического скаляра а на линейный логический оператор А, равна произведению этого скаляра на матрицу, соответствующую этому логическому оператору. Если в качестве логического скаляра а взять одноместный предикат P2, то произведению Р2 на оператор (6) будет соответствовать матрица
Г (0,1) (1,1)W (1,0) • (0,1) (1,0) • (1,1)^
Р2А=(1,0) ^(1,0) (0,1)J = [(1,0) • (1,0) (1,0) • (0,1)J
(0,0) (1,0) W Р0 Р2 ]
(1,0) (0,0)J = IР2 Р0) .
РИ, 1998, № 3
129
Для произведения логического скаляра на линейный логический оператор выполняются следующие соотношения:
0 A= O, (12)
1A=A, (13)
a(pA)=(aP )A, (14)
a(AB)=(aA)B=A(aB). (15)
Возьмем некоторые операторы A и В логического пространства L и каждому вектору leL поставим в соответствие вектор AlvBl. Логический оператор, переводящий вектор l в вектор AlvBl, назовем дизъюнкцией логических операторов А и В и обозначим через AvB. Следовательно, согласно определению
(AvB)l=AlvBl. (16)
Дизъюнкция двух линейных логических операторов также является линейным логическим оператором. Для доказательства этого утверждения запишем следующие соотношения: (AvB)(alvPg)=A(alvPg)vB(alvPg)= =aAlvpAgvaBlvpBg=
=a(AlvBl)vP (AgvBg)=a(AvB)lve (AvB)g, откуда и следует линейность дизъюнкции линейных логических операторов A и В. Аналогичным образом доказывается линейность дизъюнкции любого числа линейных логических операторов. Выберем в пространстве L некоторый базис, в котором линейные логические операторы A и В будут иметь матрицы А и В соответственно. Тогда можно записать следующее:
[(AvB)l\=[AlvBl\=[Al\v[Bl\=A[l\vB[l\=(AvB)[l\, (17) откуда следует, что дизъюнкции линейных логических операторов отвечает дизъюнкция матриц, соответствующих складываемым операторам. Например, для приведенного выше примера дизъюнкции AvB будет отвечать матрица
' 0 1 1 1 ' 0 1 1 0^ ' 0 1 1 1)
0 0 0 1 0 1 0 1 0 1 0 1
AvB= 1 1 1 0 v 1 1 0 0 = 1 1 1 0
V 0 1 0 12 V 0 0 1 12 V 0 1 1 1,
Возьмем теперь операторы A и В, которым отвечают матрицы
А=
В=
Р1 Рз) [ (0,1) (1,1))
Р2 Р1J = V (1,0) (0,1)J
>2 Р1) 1= [ (1,0) (0,1)'
Р0, 1 V (0,1) (0,0)
и
соответственно. Тогда их дизъюнкции будет соответствовать матрица
AvB=
(0,1)
(1,0)
(0,1) v (1,0) (1,0) v (0,1)
(1,1)) [(1,0) (0,1) ї
(0,1)J4(0,1) (0,0)J ■
(1,1) v (0,1) W(1,1)
(0,1) v (0,0)J = I(1,1)
Рз Рз
Рз Р1
(1,1) ї
(0,1)J
Для дизъюнкции линейных логических операторов справедливы следующие соотношения: коммутативности
AvB=BvA, (18)
ассоциативности
(AvB)vC=Av(BvC), (19)
дистрибутивности относительно умножения на скаляр a(AvB)=aAvaB, (20)
дистрибутивности относительно дизъюнкции скаляров (avp )A=aAvP A, (21)
закон нуля
AvO=A, (22)
закон идемпотентности
AvA=A, (23)
левой и правой дистрибутивности
A(BvO=ABvAC, (24)
(AvB)C=ACvBC. (25)
Докажем равенство (24). Для этого запишем следующие равенства:
A^Q^AB^vACl), (26)
(ABvAC) l=(AB) lv(AC) l=A(Bl)vA( Cl). (27)
Сравнивая (26) и (27), устанавливаем справедливость равенства (24). Утверждения (18)-(23) и (25) доказываются аналогично.
Литература. 1. Гвоздинская Н.А. Булевы и предикатные логические пространства // Проблемы бионики. 1999. Вып. 51 . С.36-44. 2. Гвоздинская Н.А., Дударь З.В., Послав-ский С.А., Шабанов-Кушнаренко Ю.П. О логических пространствах // АСУ и приборы автоматики. 1997. Вып. 106. С.21-30. 3. Поваров Г.Н. О групповой инвариантности булевых функций // Применение логики в науке и технике. М.: Изд-во АН СССР, 1960. С.263-340. 4. Гвоздинская Н.А. О логических операторах // Проблемы бионики. 1998. Вып.49. С.90-94. 5. Гвоздинская Н.А., Дударь З.В., Пославский С.А., Шабанов-Кушнаренко Ю.П. О логических матрицах // Проблемы бионики. 1998. Вып. 48. С.12-22. 6. Гвоздинская Н.А. О матрицах линейных логических операторов // Проблемы бионики. 1999. Вып. 50. С.25-30.
Поступила в редколлегию 08.09.98 Рецензент: д-р техн. наук Петров Э.Г.
Гвоздинская Наталья Анатольевна, аспирантка кафедры ПОЭВМ ХТУРЭ. Научные интересы: логическая алгебра, искусственный интеллект. Адрес: Украина. 310093, Харьков, ул. Скорохода, 24, кв. 79, тел. 40-94-46.
Дударь Зоя Владимировна, канд. техн. наук, доцент кафедры ПОЭВМ ХТУРЭ. Научные интересы: формализация текстов естественного языка. Адрес: Украина, 310202, Харьков, пр. Л. Свободы, 39Б, кв. 31, тел. 40-94-46.
Пославский Сергей Александрович, канд. физ.-мат. наук, доцент кафедры теоретической механики ХГУ. Научные интересы: логическая алгебра. Адрес: Украина, 310726, пр. Ленина, 14, тел. 40-94-46.
Шабанов-Кушнаренко Юрий Петрович, д-р техн. наук, профессор кафедры ПОЭВМ ХТУРЭ. Научные интересы: теория интеллекта, алгебраическая логика. Адрес: Украина, 310058, Харьков, ул. Культуры, 11, кв. 31, тел. 40-94-46.
130
РИ, 1998, № 3