public void AddTuple(DataSetTuple dataSetTuple)
        {
            if (!this.Initialized)
            {
                StoneHandler.Refresh();
                this.T0          = dataSetTuple.StartTime;
                this.Initialized = true;
            }
            else if ((dataSetTuple.StartTime - this.T0) > this.Size)
            {
                this.Shift(dataSetTuple);
            }

            StoneCluster cluster;
            var          findedClusters = this.Clusters.Where(x => x.Prefix == dataSetTuple.ClusterPrefix);

            if (findedClusters.Count() == 0)
            {
                cluster = new StoneCluster(dataSetTuple.ClusterPrefix);
                this.Clusters.Add(cluster);
            }
            else if (findedClusters.Count() == 1)
            {
                cluster = findedClusters.First();
            }
            else
            {
                throw new HelperClasses.LibraryException("{0} کلاستر با پیشوند {1} وجود دارد.", findedClusters.Count(), dataSetTuple.ClusterPrefix);
            }

            cluster.AddTuple(dataSetTuple);
        }
 private void Shift(DataSetTuple dataSetTuple)
 {
     this.T0 += this.Advance;
     foreach (StoneCluster cluster in this.Clusters)
     {
         cluster.Purge(this.T0);
     }
 }
Exemple #3
0
        public Boolean ProbabilisticAdd(DataSetTuple dataSetTuple, double probability)
        {
            int seed  = new Random().Next(100);
            var value = new Random(seed).NextDouble();

            if (value < probability)
            {
                this.Add(dataSetTuple);
                return(true);
            }
            return(false);
        }
Exemple #4
0
        public int LoadFromFile(string filePath)
        {
            this.Tuples = new List <DataSetTuple>();
            var lines = File.ReadAllLines(filePath);

            foreach (string line in lines)
            {
                DataSetTuple tuple = new DataSetTuple(line);
                this.Tuples.Add(tuple);
            }
            return(this.Tuples.Count);
        }
        public static void AddTuple(DataSetTuple dataSetTuple)
        {
            if (!IsActive)
            {
                StoneBaseChanel.ForwardToServer(dataSetTuple);
                return;
            }

            int groupNumber = AxesBuilder.GroupFunction(dataSetTuple.StoneFeatures);

            if (groupNumber == 0)
            {
                GroupChanels[0].Add(dataSetTuple);
            }
            else
            {
                var clusters = ProfileMaintainer.AcquaintanceList.Where(x => x.Prefix == dataSetTuple.ClusterPrefix);
                if (clusters.Count() > 0)
                {
                    Boolean added   = false;
                    var     cluster = clusters.First();
                    foreach (var group in DCC.Groups)
                    {
                        var probability = cluster.ProbabilityInGroup(group);
                        var chanel      = GroupChanels[group.Number];
                        added = chanel.ProbabilisticAdd(dataSetTuple, probability * chanel.Capacity);
                        if (added)
                        {
                            break;
                        }
                    }
                    if (!added)
                    {
                        SuspiciousChanel.Add(dataSetTuple);
                    }
                }
                else
                {
                    SuspiciousChanel.Add(dataSetTuple);
                }
            }
        }
Exemple #6
0
        public void AddTuple(DataSetTuple dataSetTuple)
        {
            _lifeTime  = 0;
            _weight    = 0;
            _frequency = 0;

            DataAggregatorTuple tuple = new DataAggregatorTuple();

            tuple.OldFeatures.Frequency = this.Frequency;
            tuple.OldFeatures.Weight    = this.Weight;
            tuple.OldFeatures.LifeTime  = this.LifeTime;

            this.DataSetTuples.Add(dataSetTuple);

            tuple.NewFeatures.Frequency = this.Frequency;
            tuple.NewFeatures.Weight    = this.Weight;
            tuple.NewFeatures.LifeTime  = this.LifeTime;

            tuple.SourceCluster = this;
            tuple.StartTime     = this.StartTime;
            DCC.Receive(tuple);
        }
 public static void AddTuple(DataSetTuple dataSetTuple)
 {
     Window.AddTuple(dataSetTuple);
 }
Exemple #8
0
 public static void ForwardToServer(DataSetTuple dataSetTuple)
 {
     File.AppendAllText(ApplicationSettings.Instance.ServerInputLinkFile, dataSetTuple.ToString() + "\r\n");
 }
Exemple #9
0
 public void Add(DataSetTuple dataSetTuple)
 {
     ForwardToServer(dataSetTuple);
 }