Computer >> Máy Tính >  >> Lập trình >> C ++

Xây dựng máy Turing cho L ={aibjck | i> j> k; k ≥ 1}

Ở đây chúng ta sẽ xem cách tạo một máy Turing cho ngôn ngữ L ={AiBjCk | i> j> k; k ≥ 1}. Vì vậy, điều này đại diện cho một loại ngôn ngữ mà chúng ta sẽ chỉ sử dụng ba ký tự a, b và c. W là một chuỗi. Vì vậy, nếu w =aaaaaabbbbccc, Máy Turing sẽ chấp nhận nó.

Để giải quyết vấn đề này, chúng tôi sẽ sử dụng cách tiếp cận này. Đầu tiên so sánh hai phần tử bằng cách biến A và D thành một phần tử duy nhất, sau đó so sánh A và D nếu số đếm của C lớn hơn | (A, D) |, thì chuỗi sẽ không được chấp nhận, nếu | D |> | A |, thì điều này không được chấp nhận, nếu không thì nó sẽ được chấp nhận.

Sơ đồ chuyển đổi trạng thái

Xây dựng máy Turing cho L ={aibjck | i  j  k; k ≥ 1}