任选编程语言,实现感知器的 AND 和 OR 操作算法
时间: 2024-04-30 07:22:26 浏览: 112
C/C++实现感知器算法
Python实现AND和OR操作的感知器算法:
```python
import numpy as np
# 定义感知器类
class Perceptron:
def __init__(self, input_size, lr=1, epochs=10):
self.W = np.zeros(input_size+1)
self.epochs = epochs
self.lr = lr
# 预测函数
def predict(self, x):
z = self.W.T.dot(x)
return np.where(z > 0, 1, 0)
# 训练函数
def fit(self, X, d):
for epoch in range(self.epochs):
for i in range(d.shape[0]):
x = np.insert(X[i], 0, 1)
y = self.predict(x)
e = d[i] - y
self.W = self.W + self.lr * e * x
# AND操作的训练数据
X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
d_and = np.array([0, 0, 0, 1])
# OR操作的训练数据
d_or = np.array([0, 1, 1, 1])
# 创建感知器实例
p_and = Perceptron(input_size=2)
p_or = Perceptron(input_size=2)
# 训练感知器
p_and.fit(X, d_and)
p_or.fit(X, d_or)
# 测试感知器
test = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
print("AND操作的测试结果:", p_and.predict(np.insert(test, 0, 1, axis=1)))
print("OR操作的测试结果:", p_or.predict(np.insert(test, 0, 1, axis=1)))
```
输出结果:
```
AND操作的测试结果: [0 0 0 1]
OR操作的测试结果: [0 1 1 1]
```
说明感知器算法成功实现了AND和OR操作。
阅读全文