def _at_leat_one_color(self, cnf):
     for country in self.G.nodes():
         clause = Clause()
         for color in self.colors:
             literal = self._convert_to_literal(country, color)
             clause.add_literal(literal)
         clause.end()
         cnf.add_clause(clause)
 def _max_one_color(self, cnf):
   for country in self.G.nodes():
     for color_combos in combinations(self.colors, 2):
       clause = Clause()
       clause.add_literal( -self._convert_to_literal(country, color_combos[0]) )
       clause.add_literal( -self._convert_to_literal(country, color_combos[1]) )
       clause.end()
       cnf.add_clause(clause)
 def _at_leat_one_color(self, cnf):
   for country in self.G.nodes():
     clause = Clause()
     for color in self.colors:
       literal = self._convert_to_literal(country, color)
       clause.add_literal(literal)
     clause.end()
     cnf.add_clause(clause)
 def _different_colors(self, cnf):
   for country in self.G.nodes():
     for neighbor in self.G.neighbors(country):
       for color in self.colors:
         clause = Clause()
         clause.add_literal( -self._convert_to_literal(country, color) )
         clause.add_literal( -self._convert_to_literal(neighbor, color) )
         clause.end()
         cnf.add_clause(clause)
 def _max_one_color(self, cnf):
     for country in self.G.nodes():
         for color_combos in combinations(self.colors, 2):
             clause = Clause()
             clause.add_literal(
                 -self._convert_to_literal(country, color_combos[0]))
             clause.add_literal(
                 -self._convert_to_literal(country, color_combos[1]))
             clause.end()
             cnf.add_clause(clause)
 def _different_colors(self, cnf):
     for country in self.G.nodes():
         for neighbor in self.G.neighbors(country):
             for color in self.colors:
                 clause = Clause()
                 clause.add_literal(
                     -self._convert_to_literal(country, color))
                 clause.add_literal(
                     -self._convert_to_literal(neighbor, color))
                 clause.end()
                 cnf.add_clause(clause)