#include <iostream>
#include <vector>
#include <cmath>
#include <ctime>
#include <cstdlib>
// Une structure de neurone pur sans aucune bibliothèque externe
class Neuron {
public:
double value;
std::vector<double> weights;
double bias;
Neuron(int prevLayerSize) {
bias = ((double)rand() / (RAND_MAX));
for (int i = 0; i < prevLayerSize; i++) {
weights.push_back((double)rand() / (RAND_MAX));
}
}
// Fonction d'activation Sigmoïde (La logique d'Aphrodite)
double activate(double x) {
return 1 / (1 + exp(-x));
}
void feedForward(const std::vector<Neuron>& prevLayer) {
double sum = bias;
for (int i = 0; i < prevLayer.size(); i++) {
sum += prevLayer[i].value * weights[i];
}
value = activate(sum);
}
};
class AphroditeEngine {
public:
std::vector<std::vector<Neuron>> layers;
AphroditeEngine(std::vector<int> topology) {
srand(time(0));
for (int i = 0; i < topology.size(); i++) {
std::vector<Neuron> layer;
int prevSize = (i == 0) ? 0 : topology[i - 1];
for (int j = 0; j < topology[i]; j++) {
layer.push_back(Neuron(prevSize));
}
layers.push_back(layer);
}
}
void think(std::vector<double> inputs) {
// Injection des données dans les capteurs (Input Layer)
for (int i = 0; i < inputs.size(); i++) {
layers[0][i].value = inputs[i];
}
// Propagation à travers les synapses (Hidden Layers)
for (int i = 1; i < layers.size(); i++) {
for (int j = 0; j < layers[i].size(); j++) {
layers[i][j].feedForward(layers[i-1]);
}
}
}
void printOutput() {
std::cout << "APHRODITE RÉPONSE (Brute) : ";
for (auto& neuron : layers.back()) {
std::cout << neuron.value << " ";
}
std::cout << std::endl;
}
};
int main() {
std::cout << "--- APHRODITE : ÉVEIL DU NOYAU NATIF ---" << std::endl;
// Architecture : 3 entrées, 5 neurones cachés, 2 sorties
std::vector<int> topology = {3, 5, 2};
AphroditeEngine core(topology);
// Simulation d'une pensée
std::vector<double> signal = {0.5, 0.8, -0.2};
core.think(signal);
core.printOutput();
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: