0% found this document useful (0 votes)
37 views4 pages

Practical4 Soft

This document presents a MATLAB program to implement an XOR logic gate using a McCulloch-Pitts neural network without using the neural network toolbox. The program gets weight and threshold values as input and outputs the network results, indicating whether it has learned the XOR function.

Uploaded by

sahugungun76
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views4 pages

Practical4 Soft

This document presents a MATLAB program to implement an XOR logic gate using a McCulloch-Pitts neural network without using the neural network toolbox. The program gets weight and threshold values as input and outputs the network results, indicating whether it has learned the XOR function.

Uploaded by

sahugungun76
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Practical-4

Title: Generate XOR function using McCulloch-Pitts neural net by MATLAB program.

Objectives:
• To implement XOR logic gate

Instructions:
1.Study MP Model
2.Study logic gates: AND,OR,NOT,Exclusive-OR
3.Write a program to implement XOR gate without using neural network toolbox.

Program to implement XOR gate:


% XOR function using McCulloch-Pitts neuron
clear; clc;
% Getting weights and threshold value
disp("Enter the weights");
w11=input("Weight w11=");
w12=input("Weight w12=");
w21=input("Weight w21=");
w22=input("Weight w22=");
v1=input("Weight v1=");
v2=input("Weight v2="); disp("Enter
threshold value");
theta=input("theta="); x1=[0 0 1 1];
x2=[0 1 0 1]; z=[0 1 1 0]; con=1;
while con zin1 = x1*w11+x2*w21; zin2
= x1*w21+x2*w22; for i=1:4 if
zin1(i)>=theta y1(i)=1; else y1(i)=0;
end if zin2(i)>=theta y2(i)=1; else
y2(i)=0; end end yin=y1*v1+y2*v2; for
i=1:4
if yin(i)>=theta
y(i)=1; else
y(i)=0; end end
disp("Output of net=");
disp(y); if y==z
con=0; else
disp("Net is not learning Enter another set of weights and threshold value");
w11=input("Weight w11="); w12=input("Weight w12="); w21=input("Weight
w21="); w22=input("Weight w22="); v1=input("Weight v1="); v2=input("Weight
v2="); theta=input("theta="); end end
disp("McCulloch Pitts Net for XOR function");
disp("Weights of neuron Z1"); disp(w11);
disp(w21);
disp("Weights of neuron Z2");
disp(w12); disp(w22);
disp("Weights of neuron Y");
disp(v1); disp(v2);
disp("Threshold value=");
disp(theta);

% XOR function using McCulloch-Pitts neuron


clear; clc;
% Getting weights and threshold value
disp("Enter the weights");
w11=input("Weight w11=");
w12=input("Weight w12=");
w21=input("Weight w21=");
w22=input("Weight w22=");
v1=input("Weight v1=");
v2=input("Weight v2="); disp("Enter
threshold value");
theta=input("theta="); x1=[0 0 1 1];
x2=[0 1 0 1]; z=[0 1 1 0];
con=1; while con zin1
= x1*w11+x2*w21;
zin2 =
x1*w21+x2*w22; for
i=1:4 if
zin1(i)>=theta
y1(i)=1; else
y1(i)=0; end
if zin2(i)>=theta
y2(i)=1; else
y2(i)=0; end end
yin=y1*v1+y2*v2;
for i=1:4 if
yin(i)>=theta
y(i)=1; else
y(i)=0; end end
disp("Output of net=");
disp(y); if y==z
con=0; else
disp("Net is not learning Enter another set of weights and threshold value");
w11=input("Weight w11="); w12=input("Weight w12="); w21=input("Weight
w21="); w22=input("Weight w22="); v1=input("Weight v1="); v2=input("Weight
v2="); theta=input("theta="); end end
disp("McCulloch Pitts Net for XOR function");
disp("Weights of neuron Z1"); disp(w11);
disp(w21);
disp("Weights of neuron Z2");
disp(w12); disp(w22);
disp("Weights of neuron Y");
disp(v1); disp(v2);
disp("Threshold value=");
disp(theta);

% XOR function using McCulloch-Pitts neuron


clear; clc;
% Getting weights and threshold value
disp("Enter the weights");
w11=input("Weight w11=");
w12=input("Weight w12=");
w21=input("Weight w21=");
w22=input("Weight w22=");
v1=input("Weight v1=");
v2=input("Weight v2="); disp("Enter
threshold value");
theta=input("theta="); x1=[0 0 1 1];
x2=[0 1 0 1]; z=[0 1 1 0]; con=1;
while con zin1 = x1*w11+x2*w21; zin2
= x1*w21+x2*w22; for i=1:4 if
zin1(i)>=theta y1(i)=1; else y1(i)=0;
end
if zin2(i)>=theta
y2(i)=1; else
y2(i)=0; end end
yin=y1*v1+y2*v2;
for i=1:4 if
yin(i)>=theta
y(i)=1; else
y(i)=0; end end
disp("Output of net=");
disp(y); if y==z
con=0; else
disp("Net is not learning Enter another set of weights and threshold value");
w11=input("Weight w11="); w12=input("Weight w12="); w21=input("Weight
w21="); w22=input("Weight w22="); v1=input("Weight v1="); v2=input("Weight
v2=");
theta=input("theta=");
end end
disp("McCulloch Pitts Net for XOR function");
disp("Weights of neuron Z1"); disp(w11);
disp(w21);
disp("Weights of neuron Z2");
disp(w12); disp(w22);
disp("Weights of neuron Y");
disp(v1); disp(v2);
disp("Threshold value=");
disp(theta);

Output:

You might also like