Câu trả lời:
Cách tốt nhất (về sự lười biếng) là sử dụng công cụ Sage miễn phí có hỗ trợ tốt nhất cho lý thuyết đồ thị.
Thí dụ
sage: G = graphs.PetersenGraph()
sage: G.has_homomorphism_to(graphs.CycleGraph(5))
False
sage: G.has_homomorphism_to(graphs.CompleteGraph(5))
{0: 0, 1: 1, 2: 0, 3: 1, 4: 2, 5: 1, 6: 0, 7: 2, 8: 2, 9: 1}
Một cách tiếp cận là sử dụng bộ giải SAT.
Tiếp theo, thêm hai loại mệnh đề / ràng buộc:
Sau đó, bạn có thể sử dụng bất kỳ bộ giải SAT tiêu chuẩn. Tôi không biết nó sẽ hoạt động tốt như thế nào trong thực tế, nhưng bạn có thể dùng thử và xem nó hoạt động như thế nào.