# Variable y(i, j) : Liegt i links von j ? Wenn ja 1, sonst 0.
# positionalVariablesForDegreeOne = {(nodes_with_degree_equals_one[i], nodes_with_degree_equals_one[i+1]) : LpVariable(f"y_{nodes_with_degree_equals_one[i]}_{nodes_with_degree_equals_one[i+1]}", 0, 1, cat='Binary') for i in range(len(nodes_with_degree_equals_one)-1)}
# crossingVariablesForDegreeOne = {(i, j, k, l): LpVariable(f"c_{i}_{j}_{k}_{l}", 0, 1, cat='Binary') for (i, j) in edges_of_degree_one_nodes for (k, l) in edges_of_degree_one_nodes}
# Setze die Variablen, der Knoten, die Grad 1 haben so, dass die Ordnung bereits vorgegeben ist (Hoffnung hier ist, dass damit der Solver schon mit einer besseren Lösung anfangen kann, weil er dieses triviale Probem nicht zusätzlich lösen muss)
logging.info(f"Positions Variablen y: gesamt erwartet {number_of_nodes_in_B*(number_of_nodes_in_B-1)}, davon wirklich gesamt {len(positional_vars_degree_one_nodes_only)+len(positionalVariables)}, für Knoten mit Grad 1: {len(positional_vars_degree_one_nodes_only)}, für Knoten mit Grad > 1: {len(positionalVariables)}")