private static void newBas(Table table, Pair pair, List<Pair> bas) { List<Pair> path = new List<Pair>(); pair.value = 0; bas.Add(pair); path.Add(pair); table.matrix[pair.i, pair.j].bas = true; moveTable(table, path, true); Pair p = pump(table, path); bas.RemoveAll(x => x.i == p.i && x.j == p.j); table.path = path; }
private static Pair findNewBas(Table table, double[] bas) { Pair pair = new Pair(0, 0); double d; for (int i = 0; i < table.m; i++) for (int j = 0; j < table.n; j++) if (!table.matrix[i, j].bas) { d = table.matrix[i, j].weight - bas[i] - bas[table.m + j]; if (d < pair.value) { pair.value = d; pair.i = i; pair.j = j; } } return pair; }