Ta cần mở rộng các bảng chuyển trạng thái đến bảng chuyển trạng thái thời gian để có thể đọc các từ thời gian. Khi một Otomat thực hiện một bƣớc chuyển trạng thái, lựa chọn của trạng thái phụ thuộc vào đầu vào đƣợc đọc. Trong trƣờng hợp bảng chuyển trạng thái thời gian, để lựa chọn trạng thái kế tiếp phụ thuộc vào yếu tố thời gian của ký tự đầu vào liên quan đến thời gian của ký tự đƣợc đọc trƣớc. Để đáp ứng yếu tố này, một tập hữu hạn các đồng hồ (đồng hồ) ( với giá trị thực) đƣợc liên kết với bảng chuyển trạng thái. Một đồng hồ (đồng hồ) có thể đƣợc thiết lập về 0 đồng thời với bƣớc chuyển trạng thái. Với mỗi bƣớc chuyển trạng sẽ liên kết ràng buộc về đồng hồ (đồng hồ) và yêu cầu phép chuyển thực hiện đƣợc nếu giá trị hiện tại đồng hồ thỏa mãn ràng buộc. Trƣớc khi định nghĩa bảng chuyển trạng thái thời gian, ta xem xét ví dụ sau.
Ví dụ 3.4: Xem xét bảng chuyển trạng thái thời gian của hình 3.3. Trạng thái khởi tạo s0. Có một đồng hồ (đồng hồ) x. Một chú thích dạng x:=0 trên cung tƣơng tứng bƣớc chuyển với việc thiết thập lại đồng hồ (đồng hồ) x khi cung đƣợc thực hiện. Tƣơng tự chú thích (x<2) trên cung là một ràng buộc về đồng hồ liên kết với cung.
Hình 3.3: Ví dụ bảng chuyển trạng thái thời gian
Trạng thái s0 di chuyển đến trạng thái s1 khi đọc ký tự đầu vào a. Đồng hồ x thiết lập về 0 với bƣớc chuyển trạng thái. Trong khi đó trạng thái s1, giá trị của đồng hồ x chỉ thời gian đƣợc thiết lập với sự kiện đọc ký tự cuối a. Việc chuyển trạng thái từ s1
về s0 đƣợc thực hiện nếu giá trị của đồng hồ nhỏ hơn 2. Toàn bộ chu kỳ đƣợc lặp lại thì Otomat chuyển ngƣợc về trạng thái s0. Vì vậy ràng buộc thời gian đƣợc trình bày bởi bảng chuyển trạng thái cộng thêm với độ trễ giữa a và theo sau là b luôn luôn nhỏ hơn 2, ngôn ngữ hình thƣc nhƣ sau:
{((ab)ω, τ) | ∀𝑖. (τ2i < τ2i-1+2)} (3.3) Vì vậy ràng buộc độ trễ giữa hai bƣớc chuyển trạng thái e1 và e2 yêu cầu đồng hồ riêng để thiết lập lại trên e1 và liên kết với ràng buộc đồng hồ tƣơng ứng với e2 . Để ý
S0 S1
a, x:= 0
các đồng hồ có thể đƣợc thiết lập không đồng bộ với nhau nghĩa là các đồng hồ khác nhau có thể đƣợc khởi động tại các thời điẻm khác nhau và không có cận dƣới cho việc khởi tạo giữa các lần đọc ký tự. Nhiều đồng hồ cho phép nhiều độ trễ đồng thời trong ví dụ sau.
Ví dụ 3.5 Bảng chuyển trạng thái thời gian của hình 3.4 sử dụng hai đồng hồ x và y, chấp nhận ngôn ngữ.
L ={((abcd)ω, τ) | ∀𝑗. ((τ4j+3 < τ4j+1+1) Λ ((τ4j+4 > τ4j+2+2)) (3.4)
Hình 3.4: Bảng chuyển trạng thái thời gian với 2 đồng hồ (đồng hồ)
Các chu kỳ Otomat giữa các trạng thái s0, s1, s2 và s3. Đồng hồ x nhận hàm thiết lập về 0 mỗi lần di chuyển từ trạng thái s0 đến s1 khi đọc ký tự a. Việc kiểm tra đồng hồ (x <1) đƣợc liên kết với bƣớc chuyển trạng thái từ s2 đến s3 đảm bảo ký tự đƣợc đọc trong thời gian 1 đơn vị trƣớc khi đọc ký tự a. Cơ chế tƣơng tự để thiết lập về 0 cho đồng hồ khác y trong khi đọc ký tự b và kiểm tra giá trị của nó khi đọc ký tự d, đảm bảo độ trễ giữa b và d là luôn lớn hơn 2.
Để ý trong ví dụ trên để ràng buộc giữa độ trễ a và c và giữa b và d Otomat không đƣa vào cận biên rõ ràng nào trên a tiếp theo b hay c tiếp theo d. Điểm thuận lợi của nhiều đồng hồ ta có thể đƣợc thiết lập độc lập lẫn nhau. Ngôn ngữ L3 là giao của hai ngôn ngữ L31 và L32 đƣợc định nghĩa nhƣ sau:
L31 ={((abcd)ω, τ) | ∀𝑗. ((τ4j+3 < τ4j+1+1)} (3.5) L32 ={((abcd)ω, τ) | ∀𝑗. (τ4j+4 > τ4j+2+2)} (3.6)
Mỗi ngôn ngữ ngữ L31 và L32 có thể đƣợc trình diễn bởi một Otomat sử dụng chỉ một đồng hồ, tuy nhiên để diễn tả sự giao nhau ta cần 2 đồng hồ.
Cần ghi nhớ các đồng hồ của Otomat không tƣơng ứng với đồng hồ cục bộ của các thành phần khác trong hệ thống phân tán. Các đồng hồ tăng giá trị thời gian dƣới tỉ lệ thống nhất, đếm thời gian với khung thời gian cố định toàn cục. Ta đề cập đến đồng hồ hƣ cấu (fictitous clock) để trình diễn các tính chất thời gian của hệ thống. Thay thế chúng ta có thể xem xét Otomat đƣợc trạng bị với số hữu hạn các stop-watch
(x<1)? c y := 0 b x := 0 a d, (y >2)? S0 S1 S2 S3
để có thể đƣợc bắt đầu và đƣợc kiểm tra độc lập với các stop-watch khác, nhƣng tất cả stop-watch đề cập đến cùng đồng hồ.