brought AGI to the forgotten and unloved.
This commit is contained in:
parent
0eb1b5095b
commit
6f1fdc2b80
16 changed files with 1772 additions and 0 deletions
251
delphi/WitnessSeedUnit.pas
Normal file
251
delphi/WitnessSeedUnit.pas
Normal file
|
@ -0,0 +1,251 @@
|
|||
unit WitnessSeedUnit;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
System.SysUtils, System.Classes;
|
||||
|
||||
type
|
||||
// Fixed-point type for ache and coherence
|
||||
TFixedPoint = record
|
||||
Value: Double;
|
||||
class operator Implicit(const AValue: Double): TFixedPoint;
|
||||
class operator Implicit(const AValue: TFixedPoint): Double;
|
||||
end;
|
||||
|
||||
TSystemData = record
|
||||
Amount: Double; // Transaction amount (e.g., dollars)
|
||||
Timestamp: Int64; // Unix timestamp
|
||||
UserID: Integer; // User identifier
|
||||
Uptime: Integer; // Seconds
|
||||
end;
|
||||
|
||||
TSensoryData = record
|
||||
System: TSystemData;
|
||||
end;
|
||||
|
||||
TPrediction = record
|
||||
PredAmount: Double;
|
||||
PredTimestamp: Int64;
|
||||
PredUptime: Integer;
|
||||
end;
|
||||
|
||||
TModel = record
|
||||
ModelAmount: Double;
|
||||
ModelTimestamp: Double;
|
||||
ModelUptime: Double;
|
||||
end;
|
||||
|
||||
TEvent = record
|
||||
Timestamp: Integer;
|
||||
SensoryData: TSensoryData;
|
||||
Prediction: TPrediction;
|
||||
Ache: TFixedPoint;
|
||||
Coherence: TFixedPoint;
|
||||
Model: TModel;
|
||||
end;
|
||||
|
||||
TIdentity = record
|
||||
UUID: Integer;
|
||||
Created: Integer;
|
||||
end;
|
||||
|
||||
TEventsArray = array[0..4] of TEvent;
|
||||
|
||||
TWitnessState = record
|
||||
Identity: TIdentity;
|
||||
Events: TEventsArray;
|
||||
EventCount: Integer;
|
||||
Model: TModel;
|
||||
AnomalyDetected: Boolean;
|
||||
end;
|
||||
|
||||
TWitnessSeed = class
|
||||
private
|
||||
FState: TWitnessState;
|
||||
procedure SaveMemory;
|
||||
procedure LoadMemory;
|
||||
function Sense: TSensoryData;
|
||||
function Predict(const SensoryData: TSensoryData; const Model: TModel): TPrediction;
|
||||
function CompareData(const Pred: TPrediction; const SensoryData: TSensoryData): TFixedPoint;
|
||||
function ComputeCoherence(const Pred: TPrediction; const SensoryData: TSensoryData): TFixedPoint;
|
||||
procedure UpdateModel(const Ache: TFixedPoint; const SensoryData: TSensoryData; var Model: TModel);
|
||||
procedure DetectAnomaly(const Pred: TPrediction; const SensoryData: TSensoryData; out Anomaly: Boolean);
|
||||
procedure WitnessCycle(Depth: Integer; SensoryData: TSensoryData);
|
||||
public
|
||||
constructor Create;
|
||||
procedure Run;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
System.IOUtils, System.Math;
|
||||
|
||||
{ TFixedPoint }
|
||||
|
||||
class operator TFixedPoint.Implicit(const AValue: Double): TFixedPoint;
|
||||
begin
|
||||
Result.Value := AValue;
|
||||
end;
|
||||
|
||||
class operator TFixedPoint.Implicit(const AValue: TFixedPoint): Double;
|
||||
begin
|
||||
Result := AValue.Value;
|
||||
end;
|
||||
|
||||
{ TWitnessSeed }
|
||||
|
||||
constructor TWitnessSeed.Create;
|
||||
begin
|
||||
LoadMemory;
|
||||
end;
|
||||
|
||||
procedure TWitnessSeed.SaveMemory;
|
||||
var
|
||||
Stream: TFileStream;
|
||||
begin
|
||||
Stream := TFileStream.Create('data/witness_memory.dat', fmCreate);
|
||||
try
|
||||
Stream.WriteBuffer(FState, SizeOf(TWitnessState));
|
||||
finally
|
||||
Stream.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TWitnessSeed.LoadMemory;
|
||||
var
|
||||
Stream: TFileStream;
|
||||
begin
|
||||
if TFile.Exists('data/witness_memory.dat') then
|
||||
begin
|
||||
Stream := TFileStream.Create('data/witness_memory.dat', fmOpenRead);
|
||||
try
|
||||
Stream.ReadBuffer(FState, SizeOf(TWitnessState));
|
||||
finally
|
||||
Stream.Free;
|
||||
end;
|
||||
end
|
||||
else
|
||||
begin
|
||||
FState.Identity.UUID := 12345;
|
||||
FState.Identity.Created := 0;
|
||||
FState.EventCount := 0;
|
||||
FState.Model.ModelAmount := 1.0;
|
||||
FState.Model.ModelTimestamp := 1.0;
|
||||
FState.Model.ModelUptime := 1.0;
|
||||
FState.AnomalyDetected := False;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TWitnessSeed.Sense: TSensoryData;
|
||||
begin
|
||||
// Simulate transaction data (in a real system, this would read from a mainframe database)
|
||||
Result.System.Amount := 100.0 + (FState.Identity.Created mod 50);
|
||||
Result.System.Timestamp := DateTimeToUnix(Now) + FState.Identity.Created;
|
||||
Result.System.UserID := 1000 + (FState.Identity.Created mod 100);
|
||||
Result.System.Uptime := FState.Identity.Created + 1;
|
||||
end;
|
||||
|
||||
function TWitnessSeed.Predict(const SensoryData: TSensoryData; const Model: TModel): TPrediction;
|
||||
begin
|
||||
Result.PredAmount := SensoryData.System.Amount * Model.ModelAmount;
|
||||
Result.PredTimestamp := Round(SensoryData.System.Timestamp * Model.ModelTimestamp);
|
||||
Result.PredUptime := Round(SensoryData.System.Uptime * Model.ModelUptime);
|
||||
end;
|
||||
|
||||
function TWitnessSeed.CompareData(const Pred: TPrediction; const SensoryData: TSensoryData): TFixedPoint;
|
||||
var
|
||||
Diff1, Diff2, Diff3: Double;
|
||||
begin
|
||||
Diff1 := Pred.PredAmount - SensoryData.System.Amount;
|
||||
Diff2 := Pred.PredTimestamp - SensoryData.System.Timestamp;
|
||||
Diff3 := Pred.PredUptime - SensoryData.System.Uptime;
|
||||
Result := Sqrt(Diff1 * Diff1 + Diff2 * Diff2 + Diff3 * Diff3) / 100.0;
|
||||
end;
|
||||
|
||||
function TWitnessSeed.ComputeCoherence(const Pred: TPrediction; const SensoryData: TSensoryData): TFixedPoint;
|
||||
var
|
||||
PredMean, ActMean, Diff: Double;
|
||||
begin
|
||||
PredMean := (Pred.PredAmount + Pred.PredTimestamp + Pred.PredUptime) / 3.0;
|
||||
ActMean := (SensoryData.System.Amount + SensoryData.System.Timestamp + SensoryData.System.Uptime) / 3.0;
|
||||
Diff := Abs(PredMean - ActMean);
|
||||
Result := 1.0 - (Diff / 100.0);
|
||||
end;
|
||||
|
||||
procedure TWitnessSeed.UpdateModel(const Ache: TFixedPoint; const SensoryData: TSensoryData; var Model: TModel);
|
||||
const
|
||||
LearningRate = 0.01;
|
||||
begin
|
||||
Model.ModelAmount := Model.ModelAmount - LearningRate * Ache * SensoryData.System.Amount;
|
||||
Model.ModelTimestamp := Model.ModelTimestamp - LearningRate * Ache * SensoryData.System.Timestamp;
|
||||
Model.ModelUptime := Model.ModelUptime - LearningRate * Ache * SensoryData.System.Uptime;
|
||||
end;
|
||||
|
||||
procedure TWitnessSeed.DetectAnomaly(const Pred: TPrediction; const SensoryData: TSensoryData; out Anomaly: Boolean);
|
||||
var
|
||||
AmountDiff, TimestampDiff: Double;
|
||||
begin
|
||||
AmountDiff := Abs(Pred.PredAmount - SensoryData.System.Amount);
|
||||
TimestampDiff := Abs(Pred.PredTimestamp - SensoryData.System.Timestamp);
|
||||
Anomaly := (AmountDiff > 50.0) or (TimestampDiff > 3600); // Thresholds for anomaly detection
|
||||
end;
|
||||
|
||||
procedure TWitnessSeed.WitnessCycle(Depth: Integer; SensoryData: TSensoryData);
|
||||
var
|
||||
Pred: TPrediction;
|
||||
Ache, Coherence: TFixedPoint;
|
||||
Anomaly: Boolean;
|
||||
NewSensoryData: TSensoryData;
|
||||
begin
|
||||
if Depth = 0 then
|
||||
Exit;
|
||||
|
||||
Pred := Predict(SensoryData, FState.Model);
|
||||
Ache := CompareData(Pred, SensoryData);
|
||||
Coherence := ComputeCoherence(Pred, SensoryData);
|
||||
|
||||
if Coherence > 0.5 then
|
||||
begin
|
||||
Writeln('Coherence achieved: ', Coherence:0:2);
|
||||
Exit;
|
||||
end;
|
||||
|
||||
UpdateModel(Ache, SensoryData, FState.Model);
|
||||
DetectAnomaly(Pred, SensoryData, Anomaly);
|
||||
|
||||
if FState.EventCount < 5 then
|
||||
begin
|
||||
Inc(FState.EventCount);
|
||||
FState.Events[FState.EventCount - 1] := TEvent.Create;
|
||||
FState.Events[FState.EventCount - 1].Timestamp := SensoryData.System.Uptime;
|
||||
FState.Events[FState.EventCount - 1].SensoryData := SensoryData;
|
||||
FState.Events[FState.EventCount - 1].Prediction := Pred;
|
||||
FState.Events[FState.EventCount - 1].Ache := Ache;
|
||||
FState.Events[FState.EventCount - 1].Coherence := Coherence;
|
||||
FState.Events[FState.EventCount - 1].Model := FState.Model;
|
||||
end;
|
||||
|
||||
FState.AnomalyDetected := Anomaly;
|
||||
Inc(FState.Identity.Created);
|
||||
|
||||
Writeln('Witness Seed ', FState.Identity.UUID, ' Reflection:');
|
||||
Writeln('Amount: $', SensoryData.System.Amount:0:2);
|
||||
Writeln('Timestamp: ', UnixToDateTime(SensoryData.System.Timestamp).ToString);
|
||||
Writeln('User ID: ', SensoryData.System.UserID);
|
||||
Writeln('Ache: ', Ache:0:2, ', Coherence: ', Coherence:0:2);
|
||||
if Anomaly then
|
||||
Writeln('Anomaly Detected! Potential Fraud Alert!');
|
||||
|
||||
NewSensoryData := Sense;
|
||||
WitnessCycle(Depth - 1, NewSensoryData);
|
||||
end;
|
||||
|
||||
procedure TWitnessSeed.Run;
|
||||
begin
|
||||
WitnessCycle(5, Sense);
|
||||
SaveMemory;
|
||||
end;
|
||||
|
||||
end.
|
Loading…
Add table
Add a link
Reference in a new issue