private void SetBranchInfo() { BranchOrder = ClauseReferences.Select((clause, variable) => new { variable, clause }).OrderByDescending(x => x.clause.Count).Select(x => new Literal(x.variable, false)).ToList(); if (heuristic == "reverse") { BranchOrder.Reverse(); } Defaults = new List <bool>(); for (int i = 0; i < LiteralCount; i++) { int T = 0; int F = 0; foreach (var clause in ClauseReferences[i]) { foreach (var literal in clause) { if (literal.index == i) { if (literal.value) { T++; } else { F++; } } } } if (T >= F) { Defaults.Add(true); } else { Defaults.Add(false); } } if (debug) { for (int i = 0; i < BranchOrder.Count; i++) { var lit = BranchOrder[i]; Console.WriteLine($"{i}: {lit.index + 1}\t\t{lit.index + 1}'s clauses: {ClauseReferences[lit.index].Count}"); } } }
private void SetBranchOrder() { BranchOrder = ClauseReferences.Select((clause, variable) => new { variable, clause }).OrderByDescending(x => x.clause.Count).Select(x => new Literal(x.variable, false)).ToList(); if (heuristic == "reverse") { BranchOrder.Reverse(); } if (debug) { for (int i = 0; i < BranchOrder.Count; i++) { var lit = BranchOrder[i]; Console.WriteLine($"{i}: {lit.index + 1}\t\t{lit.index + 1}'s clauses: {ClauseReferences[lit.index].Count}"); } } }