From: Adrian Tymes (wingcat@pacbell.net)
Date: Mon Apr 01 2002 - 19:21:29 MST
Rüdiger Koch wrote:
> On Monday 01 April 2002 23:18, Adrian Tymes wrote:
>>Great. So, I rediscovered what someone else has discovered. Again.
>>-_-
>
> Where is your code?
This was an idea, not a coded-out algorithm. But, if you want, here's a
very basic code translation (probably missing a lot of details). Better
versions can probably be had at the sites already mentioned.
# put initialization (from genetics) here
while (1) { # to the end of time
# need to add in a process to check for cell death
for (my $i = 0;$i < $numOfNodes;$i++) {
evaluateNode[$i];
}
for (my $i = 0;$i < $numOfNodes;$i++) {
for (my $j = 0;$j < $numOfNodes;$j++) {
if ((rand($hugeNum) <= 1) && (arePhysicallyClose($i,$j))) {
# check for random/"imagination"
verySlightlyAdjustNode[$i];
}
}
}
# need to add loop to reflect whole-brain altering things like
# cocaine, alcohol, sugar (in sugar rush amounts), etc.
}
sub evaluateNode {
my $node = shift(@_);
$fired[$node] = 0;
if ($dead[$node]) {
$excitation[$node] = 0;
return;
}
my $excitationLevel = $excitation[$node];
for (my $otherNode = 0;$otherNode < $numOfNodes;$otherNode++) {
next if ($otherNode == $node);
if ($fired[$node]) {
$excitationLevel += $weight[$node][$otherNode];
$potential[$node][$otherNode] += $firingIncreaseAmount;
if ($potential[$node][$otherNode] >= $synapseThreshold) {
# maybe adjust this to track individual synapses, instead of
# lumping all synapses together in a block
$potential[$node][$otherNode] = $potential[$node][$otherNode]/2;
$weight[$node][$otherNode] = $weight[$node][$otherNode] * 2;
}
} else {
$potential[$node][$otherNode] =
$potential[$node][$otherNode]/$decayFactor;
# $decayFactor is probably very small, to reflect that decays
# are re-evaluated on every potential firing
}
$excitationLevel = $excitationLevel/$excitationDecayFactor;
if ($excitationLevel >= $firingThreshold) {
$fired[$node] = 1;
$excitation[$node] = 0;
} else {
$excitation[$node] = $excitationLevel;
}
}
}
This archive was generated by hypermail 2.1.5 : Sat Nov 02 2002 - 09:13:11 MST