//----------------------------------------SIMPLEX METODAI------------------------------------------- private SimplexLentele MakeLentelesCopy(SimplexLentele Lent) { SimplexLentele nauja = new SimplexLentele(); eilute eil = new eilute(); nauja.BVS.AddRange(Lent.BVS); for (int i = 0; i < Lent.eilutes.Count; i++) { eil = new eilute(); eil.eilutesReiksmes.AddRange(Lent.eilutes[i].eilutesReiksmes); nauja.eilutes.Add(eil); } nauja.RHS.AddRange(Lent.RHS); return nauja; }
//-------------------------------------------SIMPLEX------------------------------------------------ private void LygciuSudarimas() { Lygtys = new LygciuSistema(); Lygtis LG = new Lygtis(); for (int i = 0; i < problem.kiekis.Count; i++) { LG = new Lygtis(); LG.LygtiesSprendinys = problem.kiekis[i]; LG.LygtiesLiekana = problem.kiekis[i]; for (int j = 0; j < subsabl.SablonoElem.Count; j++) { for (int h = 0; h < subsabl.SablonoElem[j].JuostIlgis.Count; h++) { if (subsabl.SablonoElem[j].JuostIlgis[h] == problem.ilgis[i] && subsabl.SablonoElem[j].JuostTipas[h] == problem.tipai[i]) { LG.kiekis.Add(subsabl.SablonoElem[j].Kiekis[h]); LG.variantas.Add(subsabl.SablonoSubNr[j] - 1); } } } Lygtys.Lygtis.Add(LG); } Lentele = new SimplexLentele(); LenteleBack = new SimplexLentele(); eilute eil = new eilute(); eilute eil2 = new eilute(); for (int i = 0; i < problem.kiekis.Count; i++) { Lentele.BVS.Add(-1); LenteleBack.BVS.Add(-1); Lentele.RHS.Add(problem.kiekis[i]); LenteleBack.RHS.Add(problem.kiekis[i]); eil = new eilute(); eil2 = new eilute(); for (int j = 0; j < subsabl.SablonoElem.Count; j++) { eil.eilutesReiksmes.Add(0); eil2.eilutesReiksmes.Add(0); } for (int j = 0; j < Lygtys.Lygtis[i].variantas.Count; j++) { eil.eilutesReiksmes[Lygtys.Lygtis[i].variantas[j]] = Lygtys.Lygtis[i].kiekis[j]; eil2.eilutesReiksmes[Lygtys.Lygtis[i].variantas[j]] = Lygtys.Lygtis[i].kiekis[j]; } Lentele.eilutes.Add(eil); LenteleBack.eilutes.Add(eil2); } eil = new eilute(); eil2 = new eilute(); for (int j = 0; j < subsabl.SablonoElem.Count; j++) { eil.eilutesReiksmes.Add(1); eil2.eilutesReiksmes.Add(1); } Lentele.eilutes.Add(eil); LenteleBack.eilutes.Add(eil2); }