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. } }
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. } }
public override float GetUnsatisfiedDemand(Item item) { float excessDemand = ConsumptionAmount; foreach (NodeLink link in InputLinks.Where(l => l.Item == item)) { excessDemand -= link.Amount; } return(excessDemand); }
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)); }
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); } }
public virtual bool CheckDetermined() { return(Determined = (InputLinks.All(link => link.LinkedTo == null || link.LinkedTo.HolderPanel.Determined))); }
public List <double> GetInputWeights() { return(InputLinks.Select(link => link.Weight).ToList()); }