public static NeuronGene Interpret(RawGene gene) { int Threshold = gene[12]; int RestState = gene[14]; int Leakage = gene[13]; RawGene SVRule = new RawGene(gene.GetRange(16, 12).ToArray()); var StateRule = SVRuleBuilder.Build(SVRuleInterpreter.Interpret(SVRule)); return(new NeuronGene(Threshold, RestState, Leakage, StateRule)); }
public IEnumerator Interpret() { RawGene gene = new RawGene(new byte[] { 0x23, 0x31, 0x22 }); var SVRule = SVRuleInterpreter.Interpret(gene); Assert.AreEqual((OpCodeType)0x23, SVRule.OpCodes[0]); Assert.AreEqual((OpCodeType)0x31, SVRule.OpCodes[1]); Assert.AreEqual((OpCodeType)0x22, SVRule.OpCodes[2]); yield return(null); }
public IEnumerator Build() { RawGene gene = new RawGene(new byte[] { 1, 22, 31 }); var SVRuleGene = SVRuleInterpreter.Interpret(gene); var SVRule = SVRuleBuilder.Build(SVRuleGene); Assert.IsInstanceOf(typeof(Zero), SVRule.OpCodes[0]); Assert.IsInstanceOf(typeof(ThirtyTwo), SVRule.OpCodes[1]); Assert.IsInstanceOf(typeof(Plus), SVRule.OpCodes[2]); yield return(null); }
public static LobeGene Interpret(RawGene gene) { BrainLobeID LobeID = (BrainLobeID)gene[2]; Vector2Int Location = new Vector2Int(gene[7], gene[8]); Vector2Int Dimension = new Vector2Int(gene[9], gene[10]); int CopyToPerceptionLobe = gene[11]; int WinnerTakesAll = gene[28]; var Dendrites = GetDendrites(gene); var Neuron = GetNeuron(gene); return(new LobeGene(LobeID, Location, Dimension, Dendrites[0], Dendrites[1], Neuron, CopyToPerceptionLobe, WinnerTakesAll)); }
public static SVRuleGene Interpret(RawGene gene) { if (gene == null) { return(new SVRuleGene(new List <OpCodeType>())); } List <OpCodeType> OpCodes = new List <OpCodeType>(); foreach (var Byte in gene) { OpCodes.Add((OpCodeType)Byte); } return(new SVRuleGene(OpCodes)); }
public static Gene InterpretGene(RawGene rawGene) { var GeneTypes = new { BrainLobe = new byte[] { 0x0, 0x0 } }; byte[] GeneType = { rawGene[0], rawGene[1] }; if (GeneType.SequenceEqual(GeneTypes.BrainLobe)) { return(LobeInterpreter.Interpret(rawGene)); } else { return(null); } }
public static List <DendriteGene> Interpret(RawGene gene) { List <DendriteGene> Genes = new List <DendriteGene>(); int[] Offsets = { 29, 116 }; for (int i = 0; i < Offsets.Length; i++) { var Offset = Offsets[i]; BrainLobeType SourceLobeIndex = (BrainLobeType)gene[Offset]; Vector2Int DendriteRange = new Vector2Int(gene[Offset + 1], gene[Offset + 2]); DendriteGene.SpreadType Spread = (DendriteGene.SpreadType)gene[Offset + 3]; int Fanout = gene[Offset + 4]; Vector2Int LTWRange = new Vector2Int(gene[Offset + 5], gene[Offset + 6]); Vector2Int StrengthRange = new Vector2Int(gene[Offset + 7], gene[Offset + 8]); int LTWGainRate = gene[Offset + 12]; int STWGainRate = gene[Offset + 11]; int SusceptibilityRelaxRate = gene[Offset + 10]; RawGene SusceptRule = new RawGene(gene.GetRange(Offset + 39, 12).ToArray()); var SusceptibilitySVRule = SVRuleBuilder.Build(SVRuleInterpreter.Interpret(SusceptRule)); var StrengthGain = gene[Offset + 13]; RawGene StrengthRule = new RawGene(gene.GetRange(Offset + 14, 12).ToArray()); var StrengthSVRule = SVRuleBuilder.Build(SVRuleInterpreter.Interpret(StrengthRule)); var StrengthLoss = gene[Offset + 26]; StrengthRule = new RawGene(gene.GetRange(Offset + 27, 12).ToArray()); var StrengthLossSVRule = SVRuleBuilder.Build(SVRuleInterpreter.Interpret(StrengthRule)); var ReinforcementRule = new RawGene(gene.GetRange(Offset + 51, 12).ToArray()); var ReinforcementSVRule = SVRuleBuilder.Build(SVRuleInterpreter.Interpret(ReinforcementRule)); var MigrateWhen = gene[Offset + 9]; var DendriteDynamics = new DendriteDynamicsGene(LTWGainRate, STWGainRate, SusceptibilityRelaxRate, SusceptibilitySVRule, StrengthGain, StrengthSVRule, StrengthLoss, StrengthLossSVRule, ReinforcementSVRule, MigrateWhen); Genes.Add(new DendriteGene(i, SourceLobeIndex, Spread, Fanout, DendriteRange, LTWRange, StrengthRange, DendriteDynamics)); } return(Genes); }
public void SetUp() { LobeGene = new RawGene(Enumerable.Repeat <byte>(0, 200).ToArray <byte>()); }
private void CheckGene(RawGene gene, int geneLength, byte[] expectedBytes) { Assert.AreEqual(geneLength, gene.Count); Assert.AreEqual(expectedBytes, gene); }
private static NeuronGene GetNeuron(RawGene gene) { return(NeuronInterpreter.Interpret(gene)); }
private static List <DendriteGene> GetDendrites(RawGene gene) { return(DendriteInterpreter.Interpret(gene)); }