{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "code",
      "execution_count": 7,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 489
        },
        "id": "mk43RirOWyAi",
        "outputId": "01e4f581-1e4b-4f65-c67f-098697c2b907"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Trained Weights: [-0.2  0.2  0.1]\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "\n",
        "# Step 1: Define dataset (AND logic)\n",
        "X = np.array([\n",
        "    [0, 0],\n",
        "    [0, 1],\n",
        "    [1, 0],\n",
        "    [1, 1]\n",
        "])\n",
        "\n",
        "# Target for AND gate\n",
        "y = np.array([0, 0, 0, 1])\n",
        "\n",
        "# Step 2: Add bias to inputs\n",
        "X_bias = np.c_[np.ones(X.shape[0]), X]\n",
        "\n",
        "# Step 3: Initialize weights\n",
        "weights = np.zeros(X_bias.shape[1])\n",
        "learning_rate = 0.1\n",
        "epochs = 10\n",
        "\n",
        "# Step 4: Perceptron Training\n",
        "for epoch in range(epochs):\n",
        "    for i in range(len(X_bias)):\n",
        "        z = np.dot(X_bias[i], weights)\n",
        "        y_pred = 1 if z >= 0 else 0\n",
        "        error = y[i] - y_pred\n",
        "        weights += learning_rate * error * X_bias[i]\n",
        "\n",
        "print(\"Trained Weights:\", weights)\n",
        "\n",
        "# Step 5: Plot Decision Region\n",
        "fig, ax = plt.subplots()\n",
        "for i in range(len(X)):\n",
        "    if y[i] == 0:\n",
        "        ax.scatter(X[i][0], X[i][1], color='red', label='Class 0' if i==0 else \"\")\n",
        "    else:\n",
        "        ax.scatter(X[i][0], X[i][1], color='blue', label='Class 1' if i==3 else \"\")\n",
        "\n",
        "# Decision boundary: w0 + w1*x + w2*y = 0 → y = -(w0 + w1*x)/w2\n",
        "x_vals = np.linspace(-0.2, 1.2, 100)\n",
        "y_vals = -(weights[0] + weights[1]*x_vals) / weights[2]\n",
        "ax.plot(x_vals, y_vals, 'k--', label='Decision Boundary')\n",
        "\n",
        "plt.title(\"Perceptron Decision Region\")\n",
        "plt.xlabel(\"x1\")\n",
        "plt.ylabel(\"x2\")\n",
        "plt.grid(True)\n",
        "plt.legend()\n",
        "plt.show()\n"
      ]
    }
  ]
}