Trang chủ / Máy tính / Trình mô phỏng máy trạng thái hữu hạn (FSM) trực tuyến
Công cụ trực tuyến miễn phí

Trình mô phỏng máy trạng thái hữu hạn (FSM) trực tuyến

Mô phỏng máy trạng thái hữu hạn xác định (DFA) trực tuyến. Nhập quy tắc chuyển, trạng thái ban đầu và chuỗi đầu vào để xem đường đi và trạng thái cuối.

Bắt đầu sử dụng

Tính năng và ví dụ cụ thể

Trình mô phỏng FSM này giúp bạn kiểm tra hoạt động của một máy trạng thái hữu hạn xác định (DFA). Bạn có thể nhập bảng chuyển trạng thái, trạng thái ban đầu và chuỗi đầu vào, sau đó xem đường đi qua các trạng thái.

Ví dụ đã xác minh

Với các quy tắc:

q0,0,q0
q0,1,q1
q1,0,q0
q1,1,q1

Trạng thái ban đầu q0 và chuỗi đầu vào 1011, kết quả là đường đi: q0 -> q1 -> q0 -> q1 -> q1 và trạng thái cuối cùng là q1.

Quy tắc nhập liệu

  • Mỗi dòng quy tắc phải có đúng ba phần: trạng thái hiện tại, ký tự đầu vào, trạng thái tiếp theo, phân tách bằng dấu phẩy.
  • Số lượng quy tắc từ 1 đến 200.
  • Tên trạng thái không được rỗng và tối đa 50 đơn vị mã UTF-16.
  • Mỗi ký tự đầu vào là một điểm mã Unicode (không phải nhiều ký tự).
  • Mỗi cặp (trạng thái, ký tự) chỉ được phép có một chuyển tiếp; nếu trùng lặp sẽ bị báo lỗi.
  • Trạng thái ban đầu là bắt buộc, tối đa 50 đơn vị mã UTF-16.
  • Chuỗi đầu vào được xử lý từng điểm mã Unicode và tối đa 10000 đơn vị mã UTF-16.

Giới hạn

Công cụ này không có trường trạng thái chấp nhận, không hỗ trợ epsilon chuyển, không phân nhánh không xác định, không chuyển đổi biểu thức chính quy, không tối giản hóa và không vẽ sơ đồ. Nó chỉ mô phỏng các chuyển tiếp xác định đã cung cấp và không quyết định việc chấp nhận chuỗi.

Câu hỏi thường gặp

1. Làm thế nào để biểu diễn ký tự đặc biệt như dấu phẩy hoặc ký tự Unicode ngoài BMP?

Dấu phẩy là ký tự phân tách cấu trúc, không thể nằm trong tên trạng thái hoặc ký tự đầu vào. Ký tự ngoài BMP như 😀 (U+1F600) được hỗ trợ: hãy nhập ký tự thật, không nhập chuỗi U+1F600. Ký tự này là một điểm mã nhưng chiếm hai đơn vị UTF-16.

2. Điều gì xảy ra nếu thiếu chuyển tiếp cho một cặp (trạng thái, ký tự) trong chuỗi đầu vào?

Mô phỏng sẽ dừng lại và báo lỗi tại ký tự đó, không tiếp tục xử lý phần còn lại của chuỗi.

3. Tôi có thể sử dụng tên trạng thái dài hơn 50 đơn vị mã UTF-16 không?

Không, tên trạng thái bị giới hạn tối đa 50 đơn vị mã UTF-16. Nếu vượt quá, công cụ sẽ báo lỗi.

Kiểm tra nhanh

  • Bắt đầu với một chuỗi ngắn để xác minh các quy tắc.
  • So sánh từng bước chuyển với bảng quy tắc.
  • Lưu ý rằng đường đi có thể dài nếu chuỗi đầu vào lớn.

Tên trạng thái và trạng thái ban đầu tối đa 50 đơn vị mã UTF-16; đầu vào tối đa 10000. Khoảng trắng đầu/cuối trường quy tắc bị loại bỏ nên không thể dùng ký tự chỉ gồm khoảng trắng làm ký hiệu. Nhập trạng thái ban đầu khớp chính xác cả chữ hoa/thường, không thêm khoảng trắng đầu/cuối. Đầu vào rỗng giữ nguyên trạng thái ban đầu. Khi thiếu chuyển tiếp, công cụ chỉ báo lỗi chung, không chỉ vị trí hay đường đi một phần.

Quá trình xử lý diễn ra cục bộ trong trình duyệt.