コード例 #1
0
        internal void AddConstraints(ProductionSolver solver)
        {
            solver.AddNode(this);

            double?rate = GetActualDesiredRate();

            if (rate != null)
            {
                solver.AddTarget(this, (float)rate.Value);
            }

            foreach (var itemInputs in InputLinks.GroupBy(x => x.Item))
            {
                var item = itemInputs.Key;

                solver.AddInputRatio(this, item, itemInputs, InputRateFor(item));
                solver.AddInputLink(this, item, itemInputs, InputRateFor(item));
            }

            foreach (var itemOutputs in OutputLinks.GroupBy(x => x.Item))
            {
                var item = itemOutputs.Key;

                solver.AddOutputRatio(this, item, itemOutputs, OutputRateFor(item));
                // Output links do not need to constrained, since they are already covered by adding
                // the input link above.
            }
        }
コード例 #2
0
        internal void AddConstraints(ProductionSolver solver)
        {
            solver.AddNode(this);

            if (rateType == RateType.Manual)
            {
                solver.AddTarget(this, desiredRate);
            }

            foreach (var itemInputs in InputLinks.GroupBy(x => x.Item))
            {
                var item = itemInputs.Key;

                solver.AddInputRatio(this, item, itemInputs, inputRateFor(item));
                solver.AddInputLink(this, item, itemInputs, inputRateFor(item));
            }

            foreach (var itemOutputs in OutputLinks.GroupBy(x => x.Item))
            {
                var item = itemOutputs.Key;

                solver.AddOutputRatio(this, item, itemOutputs, outputRateFor(item));
                // Output links do not need to constrained, since they are already covered by adding
                // the input link above.
            }
        }
コード例 #3
0
        public override float GetUnsatisfiedDemand(Item item)
        {
            float excessDemand = ConsumptionAmount;

            foreach (NodeLink link in InputLinks.Where(l => l.Item == item))
            {
                excessDemand -= link.Amount;
            }
            return(excessDemand);
        }
コード例 #4
0
        public double ForwardPass(double input)
        {
            if (Equals(_type, NeuronType.Input))
            {
                return(OutputData = InputData = input);
            }

            InputData = InputLinks.Select(s => s.Source.OutputData * s.Weight).Sum() + _bias;

            return(OutputData = Activation.Invoke(InputData));
        }
コード例 #5
0
        private void mmFkTranslateLineToLy_Click(object sender, EventArgs e)
        {
            try
            {
                InputLinks links = new InputLinks();
                links.InitText(Common.Env.LinkingEditorGlobalLyText);
                DialogResult dr = links.ShowDialog(MainForm.MForm);
                if (dr != DialogResult.OK)
                {
                    return;
                }

                string txt = "";

                int[] ss         = Disp.GetSensorSizes();
                int   base_pixel = 0;
                for (int s = 0; s < ss.Length; s++)
                {
                    txt += "s" + (s + 1) + ":2" + serv.Endl;
                    int len      = ss[s];
                    int pix_step = len / 3;
                    for (int pix = 0; pix <= len; pix += pix_step)
                    {
                        double global_pix = Disp.GetLyByLocalPixel(s, pix);
                        txt += (base_pixel + pix) + "-" + Math.Round(links.Disp.GetLyByLocalPixel(0, global_pix), 5) + " #synt" + serv.Endl;
                    }
                    txt        += serv.Endl;
                    base_pixel += ss[s];
                }

                dr = MessageBox.Show(MainForm.MForm,
                                     Common.MLS.Get(MLSConst, "Запомнить конфигурацию линеек?"),//"Apply new linking matrix?"),
                                     Common.MLS.Get(MLSConst, "Конфигурация линеек."),
                                     MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (dr == DialogResult.Yes)
                {
                    Common.Env.LinkingEditorLinePixelText = tbLinks.Text;
                }

                tbLinks.Text = txt;
            }
            catch (Exception ex)
            {
                Common.Log(ex);
            }
        }
コード例 #6
0
 public virtual bool CheckDetermined()
 {
     return(Determined = (InputLinks.All(link => link.LinkedTo == null || link.LinkedTo.HolderPanel.Determined)));
 }
コード例 #7
0
 public List <double> GetInputWeights()
 {
     return(InputLinks.Select(link => link.Weight).ToList());
 }