public void Calculate_przycial_max_element_macierzy() { var odbiorcy = new List <InputData>() { new InputData(0, InputType.Odbiorca, 10, 30), new InputData(1, InputType.Odbiorca, 28, 25), new InputData(2, InputType.Odbiorca, 27, 30), new InputData(3, InputType.Odbiorca, 50, null, true) }; var dostawcy = new List <InputData>() { new InputData(0, InputType.Dostawca, 20, 10), new InputData(1, InputType.Dostawca, 30, 12), new InputData(2, InputType.Odbiorca, 65, null, true) }; var datagrid = Utility.CreateEmptyCellGrid(dostawcy.Count, odbiorcy.Count); datagrid[0][0].KosztyJednostkowe = 8; datagrid[0][1].KosztyJednostkowe = 14; datagrid[0][2].KosztyJednostkowe = 17; datagrid[1][0].KosztyJednostkowe = 12; datagrid[1][1].KosztyJednostkowe = 9; datagrid[1][2].KosztyJednostkowe = 19; datagrid[0][3].IsVirtual = true; datagrid[1][3].IsVirtual = true; datagrid[2][3].IsVirtual = true; datagrid[2][0].IsVirtual = true; datagrid[2][1].IsVirtual = true; datagrid[2][2].IsVirtual = true; var iteracja = new IterationProfit(datagrid, JobType.Profit, 1); iteracja.CalculateZysk(dostawcy, odbiorcy); iteracja.CalculatePrzydzial(dostawcy, odbiorcy); Assert.AreEqual(10, iteracja.DataGrid[0][0].Przydzial); Assert.AreEqual(null, iteracja.DataGrid[0][1].Przydzial); Assert.AreEqual(10, iteracja.DataGrid[0][2].Przydzial); Assert.AreEqual(null, iteracja.DataGrid[1][0].Przydzial); Assert.AreEqual(28, iteracja.DataGrid[1][1].Przydzial); Assert.AreEqual(2, iteracja.DataGrid[1][2].Przydzial); Assert.AreEqual(null, iteracja.DataGrid[0][3].Przydzial); Assert.AreEqual(null, iteracja.DataGrid[1][3].Przydzial); Assert.AreEqual(null, iteracja.DataGrid[2][0].Przydzial); Assert.AreEqual(null, iteracja.DataGrid[2][1].Przydzial); Assert.AreEqual(15, iteracja.DataGrid[2][2].Przydzial); Assert.AreEqual(50, iteracja.DataGrid[2][3].Przydzial); }
public void Calculate_Next_interation_grid() { var odbiorcy = new List <InputData>() { new InputData(0, InputType.Odbiorca, 10, 30), new InputData(1, InputType.Odbiorca, 28, 25), new InputData(2, InputType.Odbiorca, 27, 30), new InputData(3, InputType.Odbiorca, 50, null, true) }; var dostawcy = new List <InputData>() { new InputData(0, InputType.Dostawca, 20, 10), new InputData(1, InputType.Dostawca, 30, 12), new InputData(2, InputType.Odbiorca, 65, null, true) }; var datagrid = Utility.CreateEmptyCellGrid(dostawcy.Count, odbiorcy.Count); datagrid[0][0].KosztyJednostkowe = 8; datagrid[0][1].KosztyJednostkowe = 14; datagrid[0][2].KosztyJednostkowe = 17; datagrid[1][0].KosztyJednostkowe = 12; datagrid[1][1].KosztyJednostkowe = 9; datagrid[1][2].KosztyJednostkowe = 19; datagrid[0][3].IsVirtual = true; datagrid[1][3].IsVirtual = true; datagrid[2][3].IsVirtual = true; datagrid[2][0].IsVirtual = true; datagrid[2][1].IsVirtual = true; datagrid[2][2].IsVirtual = true; var iteracja = new IterationProfit(datagrid, JobType.Profit, 1); iteracja.CalculateZysk(dostawcy, odbiorcy); iteracja.CalculatePrzydzial(dostawcy, odbiorcy); iteracja.CalculateWspolczynnikiAlfaAndBeta(); iteracja.CalculateDeltyNiebazowe(); var newGrid = iteracja.CalculateNextIteration(); Assert.AreEqual(10, newGrid[0][0].Przydzial); Assert.AreEqual(null, newGrid[0][1].Przydzial); Assert.AreEqual(10, newGrid[0][2].Przydzial); Assert.AreEqual(null, newGrid[0][3].Przydzial); Assert.AreEqual(null, newGrid[1][0].Przydzial); Assert.AreEqual(28, newGrid[1][1].Przydzial); Assert.AreEqual(null, newGrid[1][2].Przydzial); Assert.AreEqual(2, newGrid[1][3].Przydzial); Assert.AreEqual(null, newGrid[2][0].Przydzial); Assert.AreEqual(null, newGrid[2][1].Przydzial); Assert.AreEqual(17, newGrid[2][2].Przydzial); Assert.AreEqual(48, newGrid[2][3].Przydzial); }
public void Calculate_cykl() { var odbiorcy = new List <InputData>() { new InputData(0, InputType.Odbiorca, 10, 30), new InputData(1, InputType.Odbiorca, 28, 25), new InputData(2, InputType.Odbiorca, 27, 30), new InputData(3, InputType.Odbiorca, 50, null, true) }; var dostawcy = new List <InputData>() { new InputData(0, InputType.Dostawca, 20, 10), new InputData(1, InputType.Dostawca, 30, 12), new InputData(2, InputType.Odbiorca, 65, null, true) }; var datagrid = Utility.CreateEmptyCellGrid(dostawcy.Count, odbiorcy.Count); datagrid[0][0].KosztyJednostkowe = 8; datagrid[0][1].KosztyJednostkowe = 14; datagrid[0][2].KosztyJednostkowe = 17; datagrid[1][0].KosztyJednostkowe = 12; datagrid[1][1].KosztyJednostkowe = 9; datagrid[1][2].KosztyJednostkowe = 19; datagrid[0][3].IsVirtual = true; datagrid[1][3].IsVirtual = true; datagrid[2][3].IsVirtual = true; datagrid[2][0].IsVirtual = true; datagrid[2][1].IsVirtual = true; datagrid[2][2].IsVirtual = true; var iteracja = new IterationProfit(datagrid, JobType.Profit, 1); iteracja.CalculateZysk(dostawcy, odbiorcy); iteracja.CalculatePrzydzial(dostawcy, odbiorcy); iteracja.CalculateWspolczynnikiAlfaAndBeta(); iteracja.CalculateDeltyNiebazowe(); var cycleDetector = new CycleDetector(iteracja.DataGrid, CycleBaseType.Maximizing).Detect(); var points = cycleDetector.WyznaczonyCykl.ToPointsList(); var expectedPoints = new string[] { "13", "12", "22", "23" }.ToList(); Assert.IsTrue(expectedPoints.Contains(points[0].Id)); Assert.IsTrue(expectedPoints.Contains(points[1].Id)); Assert.IsTrue(expectedPoints.Contains(points[2].Id)); Assert.IsTrue(expectedPoints.Contains(points[3].Id)); Assert.AreEqual(2, cycleDetector.FindPrzydzialDoOptymalizacji()); }
public void Calculate_wspolczynniki_alfa_beta() { var odbiorcy = new List <InputData>() { new InputData(0, InputType.Odbiorca, 10, 30), new InputData(1, InputType.Odbiorca, 28, 25), new InputData(2, InputType.Odbiorca, 27, 30), new InputData(3, InputType.Odbiorca, 50, null, true) }; var dostawcy = new List <InputData>() { new InputData(0, InputType.Dostawca, 20, 10), new InputData(1, InputType.Dostawca, 30, 12), new InputData(2, InputType.Odbiorca, 65, null, true) }; var datagrid = Utility.CreateEmptyCellGrid(dostawcy.Count, odbiorcy.Count); datagrid[0][0].KosztyJednostkowe = 8; datagrid[0][1].KosztyJednostkowe = 14; datagrid[0][2].KosztyJednostkowe = 17; datagrid[1][0].KosztyJednostkowe = 12; datagrid[1][1].KosztyJednostkowe = 9; datagrid[1][2].KosztyJednostkowe = 19; datagrid[0][3].IsVirtual = true; datagrid[1][3].IsVirtual = true; datagrid[2][3].IsVirtual = true; datagrid[2][0].IsVirtual = true; datagrid[2][1].IsVirtual = true; datagrid[2][2].IsVirtual = true; var iteracja = new IterationProfit(datagrid, JobType.Profit, 1); iteracja.CalculateZysk(dostawcy, odbiorcy); iteracja.CalculatePrzydzial(dostawcy, odbiorcy); iteracja.CalculateWspolczynnikiAlfaAndBeta(); Assert.AreEqual(0, iteracja.Alpha[0].Value); Assert.AreEqual(-4, iteracja.Alpha[1].Value); Assert.AreEqual(-3, iteracja.Alpha[2].Value); Assert.AreEqual(12, iteracja.Beta[0].Value); Assert.AreEqual(8, iteracja.Beta[1].Value); Assert.AreEqual(3, iteracja.Beta[2].Value); Assert.AreEqual(3, iteracja.Beta[3].Value); }
public void Calculate_iteration_value() // zysk { var odbiorcy = new List <InputData>() { new InputData(0, InputType.Odbiorca, 10, 30), new InputData(1, InputType.Odbiorca, 28, 25), new InputData(2, InputType.Odbiorca, 27, 30), new InputData(3, InputType.Odbiorca, 50, null, true) }; var dostawcy = new List <InputData>() { new InputData(0, InputType.Dostawca, 20, 10), new InputData(1, InputType.Dostawca, 30, 12), new InputData(2, InputType.Odbiorca, 65, null, true) }; var datagrid = Utility.CreateEmptyCellGrid(dostawcy.Count, odbiorcy.Count); datagrid[0][0].KosztyJednostkowe = 8; datagrid[0][1].KosztyJednostkowe = 14; datagrid[0][2].KosztyJednostkowe = 17; datagrid[1][0].KosztyJednostkowe = 12; datagrid[1][1].KosztyJednostkowe = 9; datagrid[1][2].KosztyJednostkowe = 19; datagrid[0][3].IsVirtual = true; datagrid[1][3].IsVirtual = true; datagrid[2][3].IsVirtual = true; datagrid[2][0].IsVirtual = true; datagrid[2][1].IsVirtual = true; datagrid[2][2].IsVirtual = true; var iteracja = new IterationProfit(datagrid, JobType.Profit, 1); iteracja.CalculateZysk(dostawcy, odbiorcy); iteracja.CalculatePrzydzial(dostawcy, odbiorcy); iteracja.CalculateIterationResult(); Assert.AreEqual(260, iteracja.IterationResultValue); }