git init
Some checks failed
linter / quality (push) Failing after 6m40s
tests / ci (8.4) (push) Failing after 10s
tests / ci (8.5) (push) Failing after 11s

This commit is contained in:
2026-03-03 11:10:38 +01:00
commit 650cf56045
282 changed files with 27333 additions and 0 deletions

38
app/Models/Perceptron.php Normal file
View File

@@ -0,0 +1,38 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
abstract class Perceptron extends Model
{
public function __construct(
private array $synaptic_weights,
) {
$this->synaptic_weights = $synaptic_weights; // Add bias weight
}
public function test(array $inputs): int
{
$inputs = array_merge([1], $inputs); // Add bias input
if (count($inputs) !== count($this->synaptic_weights)) { // Check
throw new \InvalidArgumentException("Number of inputs must match number of synaptic weights.");
}
$weighted_sum = array_sum(array_map(fn($input, $weight) => $input * $weight, $inputs, $this->synaptic_weights));
return $this->activationFunction($weighted_sum);
}
abstract protected function activationFunction(float $weighted_sum): int;
public function getSynapticWeights(): array
{
return $this->synaptic_weights;
}
public function setSynapticWeights(array $synaptic_weights): void
{
$this->synaptic_weights = $synaptic_weights;
}
}

View File

@@ -0,0 +1,18 @@
<?php
namespace App\Models;
class SimplePerceptron extends Perceptron {
public function __construct(
array $synaptic_weights,
) {
parent::__construct($synaptic_weights);
}
protected function activationFunction(float $weighted_sum): int
{
return $weighted_sum >= 0 ? 1 : 0;
}
}