Ứng dụng thuật toán tô màu tham lam (Greedy coloring) vào thực tế

Chào mọi người. Em đang học môn AI và có 1 bài tập như sau, có lời giải rồi mà e chưa có hướng code từ đâu. Mọi người giúp em với ạ

Tại một cửa hàng sách mới, mới nhập về 12 cuốn sách thuộc các loại sau:

  • Truyện cười : A,C,D,G
  • Âm nhạc: B,H,K
  • Lịch sử : E,J,L
  • Khoa học: F, I

Hãy sắp xếp các quyển sách này vào kệ sao cho số kệ sử dụng là ít nhất mà tuân theo các yêu cầu sau:

  • Các quyển sách cùng loại không được để chung cùng kệ
  • Quyển A không để chung với sách khoa học
  • Quyển L không để chung với sách âm nhạc.

Hãy xây dựng bài toán một cách tổng quát với số loại, số sách của mỗi loại và các rule nhập vào từ 1 file (tức là có thể nhập số loại, số sách và rule tùy ý theo yêu cầu)

Với dữ liệu bài toán đã cho được mô tả trong file input.txt như sau:

  • Dòng đầu số thể loại và số cuốn sách
  • Các dòng tiếp theo là các thể loại được đánh số từ 1 trở đi và số loại sách của từng thể loại cách nhau bởi dấu ,
  • Dòng tiếp theo là số luật (Không tính Luật Các quyển sách cùng loại không được để chung cùng kệ- Đây là luật chung cho mọi bài)

Các luật tiếp theo loại nào không trong thể loại nào được nhập theo cú pháp như ví dụ ở dưới.

Input.txt

4 12
1: A,C,D,G
2: B,H,K
3: E,J,L
4: F, I
2
A not in 4
L not in 2

Và đây là lời giải trên giấy ạ:
image
image
image
image
image

Em muốn thực hiện code bài này trên python, đổi file txt thành ma trận kề luôn. Phần tính bậc của đỉnh thì duyệt for nếu là 1 thì + đỉnh lên 1. Nhưng tới phần tô màu thì em chưa biết làm thế nào ạ. Các anh giúp em với ạ. Waiting :frowning:

bạn ơi có lời giải ko? mình cũng đang làm đề tài này bằng Java. Mong nhận được giúp đỡ

show coded của bạn ra, nhưng gì mà bạn làm được, và những gì bạn chưa biết làm để mọi người có thể biết bạn thì thiếu sót chỗ nào mà hướng dẫn luôn

3 Likes

Mình có thắc mắc tại sao L bậc năm mà không được tô màu 2 z

Cái này bạn ấy quên sắp xếp lại theo thứ tự bậc giảm dần, đúng ra thì A và L đều được tô màu 1 mới đúng

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?