示例#1
0
        internal static Tuple2 <Chromosome> CrossOverChromosomes(Chromosome a, Chromosome b)
        {
            Debug.Assert(a.NetworkType == b.NetworkType);
            Debug.Assert(a.OrderInMixture == b.OrderInMixture);

            Func <Gene, Gene, Tuple2 <Gene> > crossGenes = (x, y) => {
                Debug.Assert(x.Name == y.Name);
                return(QuqeUtil.WithProb(0.5) ? Tuple2.Create(x, y) : Tuple2.Create(y, x));
            };

            return(CrossOver(a.Genes, b.Genes, crossGenes, genes => new Chromosome(a.NetworkType, genes, a.OrderInMixture)));
        }
示例#2
0
 static Vec TrimToWindow(Vec outputs, Tuple2 <int> window)
 {
     return(outputs.SubVector(window.Item1, window.Item2 - window.Item1 + 1));
 }
示例#3
0
 static Mat TrimToWindow(Mat inputs, Tuple2 <int> window)
 {
     return(inputs.Columns().Skip(window.Item1).Take(window.Item2 - window.Item1 + 1).ColumnsToMatrix());
 }
示例#4
0
 public static DataSeries <Bar> TrimToWindow(DataSeries <Bar> bars, Tuple2 <int> window)
 {
     return(new DataSeries <Bar>(bars.Symbol, bars.Skip(window.Item1).Take(window.Item2 - window.Item1 + 1)));
 }