student
Russian Federation
The neural network developed in the Scilab package is given
intellectual system, neural network, Scilab
В курсе «Проектирование и разработка интеллектуальных систем» одним из разделов является раздел «Моделирование нейронных сетей, реализующих булевы функции от трех и более переменных».
Задача: разработать нейронную сеть, вычисляющую булеву функцию от пяти переменных f = (01111110001010011000011100111011).
Ниже приведена программа, решающая данную задачу в пакете Scilab.
P = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1;0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1;0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1; 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1;0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1];
T = [0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 0 1 1];
N = [5 7 1];
p1 = [0.7272378 -0.7199272 5.2346416 -0.4162867 0.1853369 -1.2601431 1.1271125 -3.8432845 -3.1835546 0.6582364 -2.966406 0.8027966 1.1534912 9.9466767 -7.0402724 6.4115706 -6.3734571 1.3531584 -1.3347329 -0.0073984 -7.6408743 4.4780985 -7.0955743 0.2229121 -3.1078616 -0.0375316 -3.1950929 -8.4320828 3.9596297 -10.508472 -3.7807013 -3.047202 0.0167166 -1.698719 -5.1073225 -6.2833971 6.6626172 -3.8115085 -1.6659054 -1.5981149 0.7436084 -3.934655 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
p2 = [4.3600995 0 0 0 0 0 0 -9.9690765 0 0 0 0 0 0 -10.255383 0 0 0 0 0 0 10.010545 0 0 0 0 0 0 -3.0617788 0 0 0 0 0 0 2.5473095 0 0 0 0 0 0 5.5795778 0 0 0 0 0 0 -13.580929 0 0 0 0 0 0];
V = [p1 p2];
W = matrix(V,[7,8,2]);
Y = ann_FF_run(P,N,W,[2,size(N,'c')],"ann_hardlim_activ"),
где P – матрица значений переменных; N – матрица количества нейронов на каждом слое; p1 – матрица смещений и весов на промежуточном слое; p2 – матрица смещений и весов на выходном слое; V – матрица всех смещений и весов нейронной сети; W – трехмерная матрица весов и смещений нейронной сети для вычисления искомой булевой функции; y – булева функция о пяти переменных.
На рисунке 1 представлена нейронная сеть для вычисления булевой функции от пяти переменных. Где x, y, z, v, q – входные переменные; w1,1, w1,2, … w5,7 – веса на промежуточном слое; b1,1, b1,2, … b1,7 – смещения на промежуточном слое; w6,1, w6,2, … w6,7 – веса на выходящем слое; b2,1 – смещение на выходящем слое; f – булева функцию от пяти переменных.
Рисунок 1 – Нейронная сеть, вычисляющая булеву функцию от пяти переменных
1. Andrievskiy A.B., Andrievskiy B.R., Kapitonov A.A., Fradkov A.L. Re-shenie inzhenernyh zadach v SCILAB. Uchebnoe posobie - Sankt-Peterburg, 2013 g - 97 s.