Given the graph G = (V,E) and X is a vertex of G. Suppose there exists at least one Hamilton Cycle for the graph. The following is a backtracking algorithm for finding the first Hamilton cycle from the vertex X: declare an empty array H (which will contain Hamilton cycle) (1) Put the vertex X to H (2) Check if H is a Hamilton cycle then stop, else go to (3) (3) Consider the last vertex Y in H, if there is/are vertex(es) adjacent to Y, select the first adjacent vertex Z (by alphabet order) and put it to H. If there no adjacent vertex, remove Y from H and denote it as a bad selection (so you do not select it in the same way again). Go to (2). Suppose a G is given below (view picture). Which of the followings is the Hamilton cycle from the vertex A, created by above algorithm?

5 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "a, b, c, d, e, a". Thuật toán luôn lấy đỉnh kề chưa dùng đứng đầu theo thứ tự chữ cái và chỉ quay lui khi bế tắc. Đồ thị có các cạnh a–b, a–c, a–e, b–c, b–e, c–d, c–e, d–e. Bắt đầu H chỉ có a; đỉnh kề của a là b, c, e nên chọn b; đỉnh kề của b là a, c, e, bỏ a đã có nên chọn c; đỉnh kề của c là a, b, d, e nên chọn d; đỉnh kề của d là c, e nên chọn e; lúc này H đủ năm đỉnh và e kề a nên chu trình đóng lại, không phải quay lui lần nào. "a, c, d, e, b, a" bỏ b ngay bước đầu dù b đứng trước c theo chữ cái. "a, b, c, e, d, a" chọn e trước d tại c, trái thứ tự chữ cái, và d lại không kề a nên còn không đóng được chu trình. "a, b, e, d, c, a" chọn e tại b dù c đứng trước e. "a, e, d, c, b, a" chọn e ngay tại a dù b và c đều đứng trước.

Cùng phần 5

Xuất hiện trong 1 bộ đề