Опубликован: 03.04.2013 | Доступ: свободный | Студентов: 352 / 29 | Длительность: 34:17:00
Специальности: Разработчик аппаратуры
Лекция 5:

Нейрофизиологический и формально-логический базис нейроподобных вычислений

В разделе 4.6 показано, что комбинаторная схема порождения совместных инверсий отношения "больше-меньше" использует так называемую [85] е-спецификацию, элементы которой характеризуют количество компонент весового вектора, стоящих в левой (е(1)) и правой (е(2)) части инвертируемого отношения. В частности, для n = 4 \varepsilon -спецификация имеет вид [\varepsilon(1) = 1;\varepsilon(2) = 2] ; [\varepsilon(1) = 1;\varepsilon(2) = 3] ; [\varepsilon(1) = 2; \varepsilon(2) = 2]. Такая спецификация систематизирует перечисление конечного множества инвертируемых отношений "больше-меньше" (неоднозначных неравенств, в случае n = 4 представленных в табл. 4.11), которые еще необходимо доопределить множеством кратных инверсий значений свертки по правилу:

Таблица 4.11. Базовые инверсии отношения "больше-меньше" для n = 4
\varepsilon(1) = 1;\varepsilon(2) = 2 \varepsilon(1) = 1;\varepsilon(2) = 3 \varepsilon(1) = 2;\varepsilon(2) = 2
w_4><w_2+w_1    w_4><w_3+w_2+w_1 w_1+w_4><w_3+w_2
w_4><w_3+w_1
w_4><w_3+w_2
w_3><w_2+w_1
  1. По индексам левой ( \tau ) и правой ( \eta ) части инвертируемых базовых отношений "больше-меньше" строятся векторы Х_n^{s(\tau)} и Х_n^{s(\eta)}, у которых "единичные" значения отвечают индексам переменных, входящих в эти отношения.
  2. Слиянием по "ИЛИ" строится вектор \tilde{Х}_n^{s} = Х_n^{s(\tau)} \lor Х_n^{s(\eta)}
  3. В векторах Х_n^{s(\tau)} и Х_n^{s(\eta)} одновременно изменяются на "единичные" те компоненты x_i^{s(\tau)} и x_i^{s(\eta)}, у которых индекс i отвечает условию \tilde{x}_i^{s} = 0. В результате множество исходных инверсий отношения "больше-меньше" (после ассоциативного суммирования - транспозиций ), включая и кратные, для n \le 4 примет вид:
  4. n = 3: (w_3 < w_{2}+w_{1}): (l_4 < l_{3}) \Rightarrow (l_{12} < l_{11}) ;
  5. n=4: (w_4 < w_3 + w_2) : (l_{8} < l_{3}) \Rightarrow (l_{9} < l_{7}); \\
     (w_4 < w_3 + w_1) : (l_{8} < l_{5}) \Rightarrow (l_{10} < l_{7}); \\
	 (w_4 < w_2 + w_1) : (l_{8} < l_{3}) \Rightarrow (l_{12} < l_{7}); \\
	 (w_4 < w_3 + w_2 + w_1 ) : (l_{8} < l_{7}); \\
	 (w_4 + w_1 < w_3 + w_2) : (l_{9} < l_{6});

На основе этих транспозиций значений свертки строятся цепочки транзитивных транспозиций, которые отвечают классическим правилам преобразования неравенств: неравенство только усилится, если к

"большему" прибавить "большее" или из "меньшего" вычесть "большее". В нашем случае существует только три цепочки транзитивных транспозиций (без учета кратных):

  1. (w_4 < w_{2} + w_{1}) \sim ( l_8 < l _{3}) \Rightarrow (w_{3} < w_{2} + w_{1}) \sim ( l_{4} 
< l_{3}) ;
  2. (w_4 < w_{2} + w_{1}) \sim (l_{8} < l_{3}) \Rightarrow (w_4 < w_3 + w_1) \sim (l_{8} < l_5) \Rightarrow \\
(w_4 < w_3 +w_2 ) \sim (l_{8} < l_{6}) \Rightarrow (w_4 < w_3+w_2+w_1) \sim (l_{8} < l_{7}) ;
  3. (w_1 + w_4 < w_{3} + w_{2}) \sim ( l_9 < l _{6}) \Rightarrow (w_{4} < w_{3} + w_{2}) \sim ( l_{8} 
< l_{6});.

(Здесь символ \sim представляет отношение эквивалентности).

Отсюда: независимо можно осуществить только транспозиции, принадлежащие различным транзитивным цепочкам, общее количество которых в нашем случае не превышает 3 (без учета кратных), а сами транспозиции можно выполнить только между двумя смежными значениями индекса свертки s .

Выбрав определенную стратегию анализа цепочек транзитивных транспозиций, можно, не зная конкретных численных значений весовых коэффициентов, перечислить все подстановки значений свертки \{\hat{l}_{s}\} и отвечающие им подстановки индексов s:

(w_{3} > w_{2}+w_1) \sim (l_{4} > l_3):

  1. s:=  0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 ;
  2. s:=   0, 1, 2, 3, 4, 5, 6, 8,7, 9, 10, 11,12, 13, 14, 15 - (w_{4} < w_3 + w_{2} + w_1) \sim (l_{8} < l_{7}) ;
  3. s:= 0, 1,2, 3, 4, 5, 8, 6,9,7,10, 11,12,13, 14,15 - (w_{4}< w_{3}+w_{2}) ~ (l_{8} < l_6) \Rightarrow (l_{9} < l_7) ;
  4. s:=0, 1,2,3,4,8,5,6,9,10,7,11, 12, 13, 14, l5- (w_{4}< w_{3}+w_1) \sim ( l_8 < l_{5}) \Rightarrow (l_{10} < l_7);

(w_{3} < w_{2}+w_{1}) \sim  (l_{4} < l_3):

  1. s:= 0,1,2, 3,4, 5, 6, 7, 8, 9,10,11,12,13,14,15 ;
  2. s:= 0, 1,2, 4,3, 5, 6, 7, 8, 9, 10,12,11,13, 14, 15 ;
  3. s:= 0,1,2,4, 3, 5, 6, 8,7,9,10,12,11,13,14,15 - (w_{4} < w_3+w_2+w_1) \sim (l_{8} < l_{7}) ;
  4. s:= 0, 1,2,4, 3, 5, 8, 6,9,7,10, 12,1 1,13, 14,15 - (w_{4}< w_{3}+ w_{2}) \sim (l_8 < l_{6}) \Rightarrow (l_{9} < l_{7}) ;
  5. s:= 0, 1,2,4, 3, 8, 5, 6, 9,10, 7,12,11, 13,14, 15 - (w_{4}< w_{3}+w_{1}) \sim (l_{8} < l_5) \Rightarrow (l_{10} < l_{7}) ;
  6. s:= 0, 1,2, 4, 8,3, 5, 6, 9,10,12, 7,11,13,14,15 - (w_{4} < w_2 + w_1) \sim (l_{8} < l_3) \Rightarrow (l_{12} < l_7)\

(w_{3} > w_2+w_1) \sim (l_4 < l_{3}), (w_4+w_1 < w_{3}+w_2) \sim (l_9 < l_6):

  1. s:= 0, 1, 2, 3, 4, 5, 8, 6, 9, 7, 10,11, 12,13, 14,15 ;
  2. s:= 0, 1, 2, 3, 4, 5, 8, 9, 6, 7, 10,11, 12,13,14, 15 - 
(w_{4} < w_{3}+w_{2}) \sim (l_{8} < l_6)\Rghtarrow (l_{9} < l_{7}) ;
  3. s:= 0, 1, 2, 3, 4, 8, 5, 9, 6,10, 7,11, 12,13,14, 15 - 
(w_{4}< w_{3}+w_{2}) \sim (l_8 < l_5) \Rightarrow (l_{10} < l_7) ;

(w_{3} <w_{2} + w_1) \sim (l_{4} < l_{3}), (w_{4}+w_1 < w_{3}+w_{2}) - (l_9 <l_{6}):

  1. s:= 0,1,2,4, 3, 5, 8, 6, 9, 7,10,12,11,13,14, 15 ;
  2. s:= 0,1,2,4, 3, 5, 8,9,6,7, 10,12, 11,13, 14,15 - 
(w_{4}<w_{3}+w_{2})\sim (l_8 <l_4) \Rightarrow (l_{9} <l_{7}) ;
  3. s:= 0, 1, 2, 4, 3, 8, 5, 9, 6, 10, 7,12, 11,13,14, 15 -
(w_{4}< w_{3}+w_{2}) \sim (l_8 < l_{5}) \RIghtarrow( l_{10} < l_7) ;
  4. s:= 0,1, 2,4, 8,3, 5, 9, 6,10,12, 7,11,13, 14,15 - 
(w_{4} < w_{2}+w{1}) \sim (l_{8} < l_{3}) \Rightarrow (l_{12} < l_{7}).

Здесь подстановки образуют пары: в первом подмножестве - (1, 2), (2, 3), (3, 4), во втором подмножестве - (1, 5), (5, 6), (6, 7), (7, 8), (8, 9), в третьем подмножестве - (3, 10), (10, 11) и в четвертом подмножестве - (7, 12), (12, 13), (13, 14). Поэтому отношение частичного порядка для элементов \Omega\in\Omega_{4} обеспечивается правилом перечисления подстановок из одного и того же подмножества, в котором каждая последующая подстановка отличается от предыдущей только одной транспозицией (с точностью до кратных транспозиций).

Чтобы перейти от элементов дистрибутивной структуры \Omega_{4} к порождающим ее значениям весовых коэффициентов \{w_{i} \}, достаточно одним из стандартных способов найти решения систем неравенств, отвечающих каждой приведенной выше подстановке индексов s. В частности, простейшим методом "проб и ошибок" можно получить все целочисленные значения весовых коэффициентов (табл. 4.12 для n = 4 ). В первой графе табл. 4.12 указан порядковый номер подстановки индексов s, а первая строка соответствует лексикографическому порядку их перечисления. Из данных этой таблицы видно, что в случае n = 4 для решения задач оптимального синтеза (много)пороговых моделей требуется всего 14 образующих весовых векторов, у которых компоненты переименуются с помощью конечных групп подстановок и инверсий знака.

Таблица 4.12. Полная система целочисленных весовых коэффициентов для n = 4
w_{4} w_{3} w_{2} w_1 Условие
1 8 4 2 1 Lex
2 10 6 3 2 w_{4}= 10 < w_3+w_2+w_1 =11;
3 10 4 3 2 w_{3} = 4< w_{2}+w_1=5;
4 8 4 3 2 w_{4}= 8 < w_3+w_2+w_1 = 9; w_{3} = 4 < w_2+w_1 = 5;
5 10 7 4 2 w_{4}= 10<w_{3}+w_{2}= 11; w_{4}= 10<w_3+w_{2}+w_1= 13;
6 8 6 4 1 w_{4} = 8< w_{3}+w_{2}= 10; w_{4}= 4 < w_{3}+w_{2}+w_1 =11; w_1+w_{4} = 9 < w_{3}+w_{2}= 10;
7 10 6 5 2 w_{4}= 10 < w_{3}+w_{2}= 11; w_{3}=6<w_{2}+w_1 = 7; w_{4}= 10 < w_{3}+w_{2}+w_1 = 13;
8 11 8 7 2 w_{4}= 11 <w_{3}+w_{2}= 15; w_{3}= 8 < w_{2}+w_1 = 9; w_1+w_{4} = 13 <w_{3}+w_{2}= 15; w_{4} = 11 < w_3+w_{2}+w_1 =17;
9 10 8 4 3 w_{4} = 10 < w_3+w_1 = 11; w_{4}= 10 < w_3+w_2+w_1 = 15;
10 8 7 4 2 w_{4}= 8<w_{3}+w_1=9; w_{4}= 8< w_{3}+w_{2}+w_1= 13; w_1+w_{4}= 10<w_{3}+w_{2}= 11;
11 10 7 5 4 w_{4}= 10<w_3+w_1= 11; w_3 = 7 < w_{2}+w_1 = 9; w_{4}= 10<w_3+w_{2}+w_1= 16;
12 10 8 6 3 w_{4}= 10<w_3+w_1= 11; w_3 = 8< w_{2}+w_1 = 9; w_{4}= 10<w_3+w_{2}+w_1= 17; w_1+w_{4} = 13 < w_3+w_2= 14;
13 10 8 6 5 w_{4}= 10<w_{2}+w_1= 11; w_{3} = 8< w_{2}+w_1= 11; w_{4}= 10 < w_{3}+w_{2}+w_1= 19;
14 10 8 7 4 w_{4}= 10<w_{2}+w_1= 15; w_{3} = 8< w_{2}+w_1= 15; w_{4}= 10 < w_{3}+w_{2}+w_1= 19; w_1+w_4 = 14 < w_{3}+w_{2}= 15;

Если нейроподобный теоретико-групповой компилятор использовать при создании ЭВМ классической архитектуры, то для минимизации библиотеки стандартных элементов, реализуемых непосредственно в технологическом процессе, можно использовать только образующие булевы функции [101, 102].

Метод образующих булевых функций широко использовался в теории и практике многофункциональных логических модулей, к которым относятся и (много)пороговые элементы и их модели. В случае (много) пороговых моделей он позволяет существенным образом снизить вариации вектора порогов H_{\chi}, ограничив их конечным множеством целочисленных значений. Для этого достаточно все множество булевых функций {F_{\alpha}(X^{s}_{n})} разбить на смежные (по группам дистрибутивной структуры \Psi = \Omega_n *Z_s *N_s ) классы [103]: \{F_{\alpha}{X^{s}_{n})\} =\bigcup\{F_{\alpha}(\Psi [Х_n^s])\}, а вектор порогов H_{\chi} определить в целочисленном пространстве \{s\} и только для образующих булевых функций \{F_{\alpha} (X^{s}_{n})\} \subset \{F_{\alpha}(X^{s}_{n})\}, где теоретико-множественное объединение ( \bigcup ) берется по образующим булевым функциям с индексами \аlpha _{0}.

Схема поиска множества образующих для заданного класса булевых функций:

  1. Разбить весь класс булевых функций на подклассы с одинаковой первичной спецификацией [90] (r _{1}, r _{0}), которая отражает общее количество "единиц" (r _{1}) и "нулей" (r _{0}) в таблице истинности булевых функций, принадлежащих данному подклассу:
    \{F_{\alpha}(X^s_n)\} = \bigcup_{(r_1,r_0)}{\{\\{F_{\alpha}(\{\tilde{X}^s_n\}_{r_1},\{\tilde{X}^s_n\}_{r_2} )\}  }}

    где: (r_1+r_0) =Q + 1, a \{\tilde{X}^s_n\}_{r_1}, \{\tilde{X}^s_n\}_{r_2} - подмножества входных векторов, на которых булева функция \{F_{\alpha}(X^s_n)\} принимает соответственно "единичное" и "нулевое" значение. Количество подклассов с одинаковой первичной спецификацией можно ограничить условием (r_{1} \ge r_{0}), нарушение которого приводит к подклассам инверсных булевых функций с инвертированными образующими.

  2. Разбить на смежные классы (по отношению к группам Z_s и N_s ) под-классы булевых функций с одинаковой первичной спецификацией:
    \{F_{\alpha}(\{X^s_n\}_{r_1},\{X^s_n\}_{r_2})\} = \bigcup{ \{ F_{\alpha_0(Ф)}(Ф[X^s_n]) \} }

    где Ф[X^s_n] представляет собой поочередно выполняемые преобразования N_{s} [X^{s}_{n} ] и Z_{s} [X^{s}_{n} ], а теоретико-множественные объединения берутся по образующим по классам смежности \alpha_0(Ф): \alpha_{0} (N), \alpha  _{0} (Z) соответственно, в качестве которых может выступать любая функция из класса.

  3. Объединить классы смежности по группе Z_s, если хотя бы одна из функций класса принадлежит одному и тому же классу смежности по группе N_{s}:
    \{F_{\alpha_0(D_s)}(D_s[X^s_n])\} = \bigcup{ \{ F_{\alpha_0(Z)}(Z_s[X^s_n]) \} }

    где \alpha_0(D_s) - индекс образующей из класса смежных по группе переименования переменных D_s = Z_s*N_s, а теоретико-множественное объединение берется по образующим для классов, смежных по группе N_s, с индексом \alpha_{0}(N).

  4. Объединить классы смежности по группам \Omega\in\Omega_n, если их образующие \alpha_{0}(D_{s}) удовлетворяют условию минимально пороговой реализации с одинаковым рангом для всех компонент вектора порогов:
    \{F_{\alpha_0(\Psi)}(\Psi[X^s_n])\} = \bigcup{ \{ F_{\alpha_0(\Omega)}(Z_s[X^s_n]) \} }

    Здесь \аlpha_{0}(\Psi) - индекс образующей для классов смежных булевых функций по группам дистрибутивной структуры \Psi = \Omega_n*Z_s*N_s, а компоненты вектора порогов h_{\alpha_0}, h_{\tilde{\alpha}_0} для образующих F_{\alpha_0(D_s)} и F_{\tilde{\alpha}_0(D_s)} имеют одинаковый ранг, если h_{\alpha_0}, h_{\tilde{\alpha}_0} \in (l_{s(1)},l_{s(2)}), где l_{s(1)} < l_{s(2)}.

При n = 3 (табл. 4.13) требуется всего 13 образующих (без учета инверсных) для смежных по группам дистрибутивной структуры W классов, объединение которых и дает все множество булевых функций от трех переменных:

  • (r_1=0, r_0=8):\\F_0(x_3,x_2,x_1)\equiv 0 -\text{ тождественный "ноль"} ;
  • (r_1=1, r_0=7):\\F_1(x_3,x_2,x_1) = x_3x_2x_1 \text{ и } (l_1 < h_1 < l_7)  \text{ для }(01234567) ;
  • (r_1=2, r_0=6):\\
F_{192}(x_3,x_2,x_1) = \overline{x}_3\overline{x}_2\overline{x}_1 + \overline{x}_3\overline{x}_2x_1 \text{ и } (l_1 < h_1 < l_2)  \text{ для }(01234567) \\
F_{96}(x_3,x_2,x_1) = \overline{x}_3\overline{x}_2{x_1} + \overline{x}_3x_2\overline{x}_1 \text{ и } (l_0 < h_1 < l_1)(l_2 < h_2 < l_3)  \text{ для }(02461357) \\
F_{129}(x_3,x_2,x_1) = \overline{x}_3\overline{x}_2\overline{x_1} + {x_3}x_2{x_1} \text{ и } (l_4 < h_1 < l_6)(l_1 < h_2 < l_3)  \text{ для }(02461357) \\
;
  • (r_1=3, r_0=5):\\
F_{224}(x_3,x_2,x_1) = \overline{x}_3\overline{x}_2\overline{x}_1 + \overline{x}_3\overline{x}_2x_1 + \overline{x}_3x_2\overline{x}_1 \text{ и } (l_2 < h_1 < l_3)  \text{ для }(01234567) \\
F_{100}(x_3,x_2,x_1) = \overline{x}_3\overline{x}_2{x_1} + \overline{x}_3x_2\overline{x}_1  + x_3\overline{x}_2\overline{x}_1 \text{ и } (l_0 < h_1 < l_1)(l_1 < h_2 < l_3)  \text{ для }(01234567) \\
F_{52}(x_3,x_2,x_1)  = \overline{x}_3{x}_2\overline{x_1} + \overline{x}_3{x}_2{x}_1 + {x}_3\overline{x}_2\overline{x}_1 \text{ и } (l_4 < h_1 < l_6)(l_1 < h_2 < l_3)  \text{ для }(01234567) \\
;
  • (r_1=4, r_0=4):\\
F_{240}(x_3,x_2,x_1) = \overline{x}_3\overline{x}_2\overline{x}_1 + \overline{x}_3\overline{x}_2x_1 
                     + \overline{x}_3x_2\overline{x}_1            + \overline{x}_3{x}_2{x}_1 
					 \text{ и } (l_3 < h_1 < l_4)  \text{ для }(01234567) \\ 
					 \text{ и } (l_4 < h_1 < l_3)  \text{ для }(01234567) \\
F_{228}(x_3,x_2,x_1) = \overline{x}_3\overline{x}_2\overline{x}_1 + \overline{x}_3\overline{x}_2{x}_1  
                     + \overline{x}_3\overline{x}_2{x}_1          + {x}_3\overline{x}_2{x}_1 \\
					 \text{ и } (l_2 < h_1 < l_3),(l_4 < h_2 < l_5),(l_5 < h_3 < l_6)  \text{ для }(01234567) \\
F_{225}(x_3,x_2,x_1) = \overline{x}_3\overline{x}_2\overline{x}_1 + \overline{x}_3\overline{x}_2{x}_1  
                     + \overline{x}_3\overline{x}_2{x}_1          + {x}_3{x}_2{x}_1 \\
					 \text{ и } (l_2 < h_1 < l_3),(l_4 < h_2 < l_5),(l_6 < h_3 < l_7)  \text{ для }(01234567) \\
F_{195}(x_3,x_2,x_1) = \overline{x}_3\overline{x}_2\overline{x}_1 + \overline{x}_3\overline{x}_2{x}_1  
                     + \overline{x}_3{x}_2\overline{x}_1          + {x}_3{x}_2{x}_1 \\
					 \text{ и } (l_2 < h_1 < l_2),(l_5 < h_2 < l_6)  \text{ для }(01234567) \\
F_{150}(x_3,x_2,x_1) = \overline{x}_3\overline{x}_2\overline{x}_1 + \overline{x}_3{x}_2{x}_1  
                     + {x}_3\overline{x}_2{x}_1          + {x}_3{x}_2\overline{x}_1 \\
					 \text{ и } (l_0 < h_1 < l_1),(l_4 < h_2 < l_3),(l_6 < h_2 < l_7)  \text{ для }(01234567)
;
Таблица 4.13. Распределение булевых функций по классам смежности (n = 3)
Первичная спецификация булевых функций (0,8) (1,7) (2,6) (3,5) (4,4)
Количество образующих булевых функций 1 1 3 3 5
Мощность классов смежных булевых функций 1 8 12 24 14
12 24 24
4 8 24
6
2
Итого булевых функций: (1+8+28+56)*2+70=256 1 8 28 56 70