Chương 3

Màu nền
Font chữ
Font size
Chiều cao dòng

Chương 3: Sự hoạt động của chương trình mô phỏng sự kiện rời rạc

Tác giả: Thomas J. Schiriber, Daniek T. Brunner

Người dịch: Lê Thị Nga, Trịnh Việt Thi, Trần Diệu Linh, Nguyễn Minh Nguyệt, Hà Tất Thành, Đặng Thanh Chương, Vũ Thúy Vân, Nguyễn Thành Đạt

Biên tập: Nguyễn Nam Hoàng

3.1- Giới thiệu

Cách tiếp cận

kiểu “black box”

thường được sử dụng trong giảng dạy và học phần mềm mô phỏng các sự kiện rời rạc. Các đặc

tính

bên ngoài của phần mềm

này

được nghiên cứu, nhưng cơ sở mà phần mềm dựa trên hầu như bị bỏ qua hoặc nếu có đề cập đến thì cũng chỉ ở mức độ sơ lược. Sự

t

ương ứng

giữa cơ sở lí thuyết và quá trình thực hiện của phần mềm có thể không được nghiên cứu hết và liên quan đến

việc

từng bước thực hiện mô hình. Do đó người

thiết kế

mô hình có lẽ không thể tìm ra những cách để phát triển hướng tiếp cận đối với các tình huống tạo mô hình phức tạp, không thể sử dụng hiệu quả các công cụ tương hỗ để hiểu rõ những nguyên nhân gây lỗi phát sinh trong quá trình phát triển mô hình, và cũng ko thể sử dụng các công cụ tương hỗ để kiểm tra lại xem logic hệ thống phức tạp có được tuân theo một cách chính xác trong một mô hình hay k

hông

.

Mục đích của chương là mang đến cách hiểu tốt nhất những đặc điểm của mô phỏng sự kiện rời rạc và thúc đẩy người sử dụng nghiên cứu cách thực hiện những đặc tính trong phần mềm mô phỏng họ sử dụng. Kết quả là sẽ tăng cường tính hiệu quả mà nhờ nó người sử dụng có thể xây dựng, kiểm tra, và sử dụng các mô hình mô phỏng sự kiện rời rạc.

Cách tiếp cận sử dụng trong chương này nhằm mục đích phát triểnmột cách đánh giá tổng quát về cơ sở logic của mô phỏng sự kiện rời rạc, giới thiệu từ vựng chung và tăng cường sự ủng hộ đối với cách đánh giá này. Ba ví dụ về phần mềm mô phỏng thương mại (SIMAN với ngôn ngữ mô phỏng được viết trong ARENA; ProModel; và GPSS/H) được thảo luận theo cách đánh giá tổng quan này. Sự khác biệt giữa ba phần mềm này trong trong một vài tình huống được mô tả để nêu bật sự cần thiết phải hiểu các đặc tính của phần mềm mô phỏng.

Mục 3.2 thảo luận về cách đánh giá luồng lưu lượng và bản chất của mô phỏng sự kiện rời rạc, bao gồm đơn vị lưu lượng (unit of traffic), sự kiện (event), và thời điểm sự kiện đồng nhất (identical event times). Thảo luận này tiếp tục ở mục 3.3 với thực thể (entities), tài nguyên (resource), phần tử điều khiển (control elements) , sự hoạt động, và sự tóm tắt về mô hình thực hiện (mục 3.4). Mục 3.5 và mục 3.6 nêu các chủ đề về trạng thái thực thể và cấu trúc quản lý thực thể. Các cơ chế đáp ứng yêu cầu logic của mô phỏng sự kiện rời rạc sử dụng trong SIMAN, ProModel, và GPSS/H được mô tả trong mục 3.7. Mục 3.8 bao gồm các ví dụ về về sự khác biệt trong cách thực hiện của các phần mềm ở mục 3.7 dẫn đến kết quả khác biệt trong một vài tình huống mô phỏng.

Thuật ngữ sử dụng chung trong chương này không được nhấn mạnh nhưng các thuật ngữ được sử dụng bởi SIMAN, ProModel, và GPSS/H được viết bằng chữ in hoa. Bảng thuật ngữ chung liên quan đến các thuật ngữ tương đương của các phần mềm cụ thể được kèm theo để giúp đỡ phân biệt giữa các thuật ngữ có tính chất chung và riêng.

3.2. Các khía cạnh của mô phỏng sự kiện rời rạc

3.2.1. Cách đánh giá theo luồng giao dịch

Khái niệm luồng lưu lượng cung cấp cơ sở cho mô phỏng sự kiện rời rạc. Theo khái niệm này, một hệ thống bao gồm các đơn vị lưu lượng rời rạc cạnh tranh lẫn nhau để sử dụng nguồn tài nguyên hữu hạn trong khi di chuyển (“flowing’) từ điểm này đến điểm khác trong hệ thống. Đơn vị lưu lượng có khi được gọi là lưu lượng, dẫn đến cụm từ luồng lưu lượng.

Một ví dụ đơn giản về sự cạnh tranh của đơn vị lưu lượng để sử dụng nguồn tài nguyên hữu hạn đó là hệ thống một server, một hàng như hình 3.1

. Trong đó

đơn vị lưu lượng được thể hiện bằng các hình tròn, hình vuông là

server

(“nguồn tài nguyên”), và hình tròn nằm trong hình vuông là đơn vị lưu lượng đang được đáp ứng. Hàng lưu lượng đợi để được đáp ứng

dịch vụ

gọi là

một

hàng đợi

(

queue

)

. Hệ thống gồm server, đơn vị lưu lượng đang được đáp ứng và đang đợi để được đáp ứng được gọi là hệ thống hàng đợi

(queuing system)

. Trong thực t

ế

,

các

đơn vị lưu lượng

có thể hoạt động trong quy

trình

vận hành

và server chính là máy

móc. Hoặc

lưu lượng có thể là các công việc in ấn và server chính là máy in

. H

oặc lưu lượng là bệnh nhân

và server có thể là một bác sỹ, v...v.

Một ví dụ khác về đơn vị lưu lượng sử dụng nguồn tài nguyên hữu hạn là hệ thống một hang chờ và nhiều server của hình 3.2. Lưu lượng đợi được đáp ứng trên một hàng. Đơn vị đầu hàng sẽ đi đến server rỗi kế tiếp. Hệ thống như thế gồm các cuộc gọi đến và điện thoại viên tại một công ty nhận đặt hàng qua điện thoại, hoặc của khách hàng và nhân viên ngân hàng, hoặc của khách du lịch và nhân viên làm thủ tục nhập cảnh tại sân bay.

Hình 3.1: Hệ thống hàng đợi một ha

̀

ng đ

ợi

, một server

Ước chừng 80% đến 90% phần mềm thương mại mô phỏng sự kiện rời rạc hiện tại dựa trên quan điểm, cách đánh giá theo luồng giao dịch.

Hình 3.2: Hệ thống hàng đợi một hàng đ

ợi

, nhiều server

Một dạng khác của hệ thống luồng giao dịch đó là hệ thống nhiều hàng đ

ợi

, nhiều server như hình 3.3. Ở đây có nhiều hàng đợi, mỗi hàng một server. Đơn vị lưu lượng đợi được đáp ứng tại đầu mỗi hàng. Các hệ thống có dạng thiết kế này bao gồm có các điểm thu phí trên đường, hệ thống thanh toán tiền trong siêu thị, và các sân bay được xây dựng hai hay nhiều đường băng (nơi mà các đơn vị lưu lượng là máy bay và đường băng là các server )

Ở hình 3.1 đến 3.3, các kiểu hệ thống là các khối kiến trúc tạo nên nhiều hệ thống phức tạp hơn. Ví dụ, xem xét hệ thống cảng đơn giản trong hình 3.4. Các thuyền (đơn vị lưu lượng) đến cảng để trả hoặc bốc hàng hóa. Có hai loại thuyền: loại A và loại B. Có 3 loại server: tàu kéo, chỗ đậu thuyền loại A và chỗ đậu thuyền loại B.

Thuyền loại A và B chỉ có thể sử dụng chỗ đậu tương ứng của từng loại. Các thuyền sử dụng tàu kéo để di chuyển vào trong cảng và vào chỗ đậu, và sau đó lại sử dụng tàu kéo để ra khỏi chỗ đậu và cảng. Số lượng tàu kéo mà thuyền cần dùng phụ thuộc vào loại tàu và nơi thuyền di chuyển đến.

Đặc điểm của hệ thống này là nhiều loại lưu lượng, nhiều loại tài nguyên, lưu lượng phụ thuộc vào kiểu lưu lượng, các dịch vụ tĩnh (chỗ đậu), dịch vụ di động (tàu kéo), và sự cần thiết điều khiển đồng thời nhiều loại tài nguyên bởi các đơn vị lưu lượng (ví như 1 thuyền cần một chỗ đậu và một hay nhiều tàu kéo trước khi có thể di chuyển liên tục vào trong cảng và đến chỗ đậu). Thử hình dung các hệ thống trong hình 3.1 đến 3.3 có thể được kết hợp như thế nào trong trong hệ thống hình 3.4

Hình 3.3: Hệ thống nhiều hng đ

ợi

, nhiều server

Không gian thường là nguồn tài nguyên hữu hạn. Diễn giải điều này trong hệ thống nhiều server, nhiều hàng của hình 3.3, ví dụ, các máy bay là lưu lượng và server là đường băng (không gian). Trong hệ thống cảng hình 3.4, không nói gì về không gian nếu cửa cảng đủ rộng, ví dụ đủ để nhiều thuyền di chuyển qua tại cùng thời điểm. Giả thiết rằng, cửa cảng chỉ rộng đủ cho một thuyền qua lại tại một thời điểm. Như vậy không gian là tài nguyên hữu hạn, được thể hiện trong hình 3.5.

Nhiều hệ thống liên hệ tới sự diễn giải luồng giao dịch. Bao gồm các hệ thống sản xuất, chăm sóc sức khỏe, vận chuyển, dân sự, truyền thông, bảo vệ và hệ thống xử lý thông tin, và hệ thống hàng đợi nói chung.

3.2.2. Bản chất của mô phỏng sự kiện rời rạc

Một hệ thống sự kiện rời rạc là một hệ thống mà ở đó trạng thái của hệ thống thay đổi rời rạc nhưng có thể theo cách ngẫu nhiên, tập hợp các thời điểm được coi như thời điểm sư kiện. Mỗi sự kiện là một sự thay đổi trạng thái hệ thống. Ví dụ, giả thiết rằng, thuyền loại A rời khỏi cửa cảng trong hệ thống hình 3.5. Sự rời đi này là một sự kiện. Điều này xảy ra tại một thời điểm và thay đổi trạng thái của hệ thống. (Số lượng thuyền loại A ra khỏi cửa cảng tăng thêm một). Tương tự, giả sử một thuyền loại B đang sử dụng một tàu kéo. Sử dụng tàu kéo là một sự kiện, xảy ra tại một điểm thời gian và thay đổi trạng thái của tàu kéo từ trạng thái “rỗi” sang trạng thái “đang được sử dụng”.

Đồng hồ mô phỏng ghi lại các thời điểm mà tại đó các sự kiện xuất hiện trong mô phỏng sự kiện rời rạc. Đồng hồ nh

ư vậy

được tạo ra bởi phần mềm mô phỏng sự kiện rời rạc và thong số của nó được quản lý tự động bởi phần mềm. Thông số của đồng hồ thay đổi trong suốt quá trình mô phỏng, chỉ ghi lại các thời điểm rời rạc mà tại đó các sự kiện xuất hiện.

Một vài khía cạnh của của trạng thái hệ thống thay đổi liên tục theo thời gian, thay vì thay đổi tại các thời điểm rời rạc. Ví dụ, giả sử rằng quá trình xử lý bốc hàng hóa lên thuyền bắt đầu lúc 1:30 chiều, tiếp diễn trong 4 giờ, kết thúc lúc 5:30 chiều. Do đó mức độ hoàn thành (trạng thái của hệ thống) thay đổi liên tục trong suốt 4 giờ. Tuy vậy, quá trình bốc hàng này có thể mô hình hóa bởi các điều kiện sự kiện rời rạc bằng cách tập trung vào hai sự kiện rời rạc tương ứng với sự bắt đầu quá trình và sau đó là sự hoàn thành quá trình và them vào đó thời gian trễ mô phỏng (thay thế cho thời gian bốc hàng) giữa hai sự kiện. Sử dụng cách tiếp cận này, ta có thể mô hình hóa sự thay đổi trạng thái liên tục bởi các điều kiện sự kiện rời rạc.

Thảo luận ở đây chỉ giới hạn trong các hệ thống mà mọi thay đổi trạng thái hệ thống có thể được mô hình hóa bởi các kiện rời rạc.

3.2.3. Đơn vị lưu lượng, sự kiện và thời điểm sự kiện đồng nhất.

Đơn vị lưu lượng xảy ra khi hệ thống cho phép hoặc yêu cầu. Hoạt động như vậy dẫn tới một hay nhiều sự thay đổi trong trạng thái hệ thống (các sự kiện). Trong một hệ thống cảng, một sự kiện đến xảy ra khi một tàu đến ngoài cửa cảng. Sự kiện sử dụng xuất hiện khi có một thuyền sử dụng tàu kéo. Sự kiện bắt đầu dịch vụ xuất hiện khi thuyền bắt đầu được kéo vào trong chỗ đậu.

Hai hay nhiều sự kiện thường xảy ra tại cùng một thời điểm; đó là các thời điểm sự kiện đồng nhất. Ví dụ, hai sự kiện xảy ra tại cùng một thời điểm nếu như một thuyền sử dụng một tàu kéo và ngay lập tức được bắt đầu kéo vào một bến. Ở đây, hành động do một đơn vị lưu lượng gây ra dẫn đến một dãy hai sự kiện tại cùng một thời điểm. Đồng hồ mô phỏng vẫn giữ nguyên giá trị, trong khi đó các sự kiện với thời điểm đồng nhất lần lượt xảy ra. Thời gian thực (đồng hồ tường) trôi qua trong khi máy tính cập nhật từng trạng thái của mô hình tại thời điểm mô phỏng yêu cầu.

Các dãy sự kiện khác xảy ra nối tiếp tại các thời điểm sau đó. Ví dụ, giả sử rằng thời gian đến cảng giữa các thuyền liên tiếp nhau biến đổi ngẫu nhiên và luôn lớn hơn 0. Khi một thuyền mới đến, thuyền kế tiếp nó sẽ không đến bến được cho đến thời điểm mô phỏng sau. Một ví dụ khác, nếu như một thuyền bắt đầu bốc hàng tại một thời điểm sẽ không hoàn thành việc bốc hàng cho đến một thời điểm đã định sau đó.

Hai đơn vị lưu lượng có thể tham gia vào nhiều sự kiện tại cùng thời điểm. Trong hệ thống một hang chờ, một server hình 3.1, giả sử rằng một đơn vị lưu lượng gây ra sự kiện hoàn thành dịch vụ khi hàng đợi không rỗng. Điều này tạo nên trạng thái cho một đơn vị lưu lượng khác (được đáp ứng tiếp theo) để tạo ra sự kiện sử dụng dịch vụ và sự kiện khởi đầu dịch vụ. Ở đây, một sự kiện xảy ra do một đơn vị lưu lượng tạo điều kiện cho sự xuất hiện của 2 sự kiện liên quan khácđối với đơn vị lưu lượng khác tại cùng thời điểm.

Bây giờ ta xét tình huống với ba đơn vị lưu lượng tạo nên nhiều sự kiện với thời điểm sự kiện đồng nhất. Giả sử rằng một thuyền trong hệ thống cảng hình 3.4 đang sử dụng 2 tàu kéo để ra khỏi cảng. Khi thuyền kết thúc quá trình này gây ra sự kiện hoàn thành dịch vụ, thay đổi trạng thái của hai tàu kéo từ “đang sử dụng” thành “rỗi”. Nếu có hai thuyền khác đang yêu cầu một tàu kéo, thì ba đơn vị lưu lượng này có thể gây ra nhiều sự kiện thời gian đồng nhất (kết thúc dắt; sau đó một tàu kéo được sử dụng, có thể theo sau bởi các sự kiện khởi tạo dịch vụ; sau đó tàu kéo khác được sử dụng và cũng có thể cả hai tàu kéo được sử dụng đồng thời)

Đồng hồ mô phỏng vẫn không thay đổi các giá trị trong khi các sự kiện có thời điểm sự kiện đồng nhất được thực hiện lần lượt. Sự kiện đầu tiên xuất hiện, sau đó đến sự kiện thứ hai và cứ thế tiếp tục. Thực tế là thời gian thực trôi qua tại cùng thời gian mô phỏng cố định trong khi máy tính làm việc lần lượt với nhiều đơn vị lưu lượng, và thực hiện lần lượt nhiều sự kiện, được minh họa trong hình 3.6. Hình này tương ứng với mô tả trong đoạn trước, khi ba đơn vị lưu lượng gây ra nhiều sự kiện có các th

ời điểm sự kiện

đồng nhất.

Trật tự thời gian thực trong đó hai hay nhiều sự kiện xuất hiện tại một thời điểm cố định đôi khi phụ thuộc vào logic điều khiển. Ví dụ như đối tượng chờ tiếp theo không thể sử dụng server cho đến khi đối tượng sử dụng trước đặt server vào trạng thái rỗi, vì vậy sự kiện “server rỗi” xảy ra trước sự kiện “sử dụng sever” sau đó. Tương tự như vậy, một thuyền không thể bắt đầu quá trình cập bến cho đến khi nó giành được tàu kéo. Ở đây, logic điều khiển các dãy sự kiện.

. Trật tự thời gian thực của các sự kiện có thời điểm sự kiện đồng nhất không phải lúc nào cũng được điều khiển theo logic. Ví dụ, khi một thuyền đặt hai tàu kéo trong trạng thái “rỗi” và hai thuyền khác đang đợi để giành một tàu kéo, logic không điều khiển trật tự thời gian thực trong đó hai sự kiện giành tầu kéo cùng xuất hiện. Liệu trật tự thời gian có phải là một vấn đề có ý nghĩa quan trọng hay không? Điều này là có thể. Giả sử rằng hai tàu kéo khác loại (ví dụ, một loại mạnh hơn và nhanh hơn loại kia) và cả hai thuyền đều muốn giành tàu kéo này. Thuyền hoạt động trước sẽ giành được tàu kéo tốt hơn, để tàu kéo còn lại cho chiếc thuyền kia.

Một ví dụ khác bao gồm một sự thay đổi toàn cục trong trạng thái hệ thống trong đó hai hay nhiều sự kiện có thể xuất hiện tại một thời điểm cố định, nhưng trong một trật tự thời gian thực tùy ý. Trong hệ thống cảng ở hình 3.5, giả sử rằng một cơn bão đang xảy ra, nên không thuyền nào có thể ra khỏi cảng. Cuối cùng cơn bão ngớt, các thuyền có thể rời khỏi cảng an toàn. Nếu hai thuyền đang đợi để rời đi nhưng tại một thời điểm chỉ có một thuyền có thể di chuyển qua cửa cảng, trật tự thời gian thực của hai thuyền sẽ quyết định thuyền nào sẽ ra khỏi cảng trước và thuyền nào phải đợi để rời đi sau

Phần thảo luận trước đó bao gồm các tình huống trong đó các dãy sự kiện phụ thuộc xuất hiện tại cùng thời điểm. Cũng có khả năng các sự kiện độc lập xuất hiện tại cùng thời điểm. Trong cảng ở hình 3.4, ví dụ một thuyền loại A đến cảng cùng thời điểm thuyền loại B hoàn thành quá trình bốc hàng. Nếu như thời gian giữa hai chuyến hàng của thuyền loại A và thời gian xử lý bốc hàng thay đổi ngẫu nhiên, xác suất mà sự kiện đến và hoàn tất dịch vụ có cùng thời điểm sẽ nhỏ. Nếu thời điểm sự kiện đồng nhất, trật tự thời gian thực tại đó đơn vị lưu lượng cố gắng thực thi có thể có ý nghĩa.

Trong ví dụ này, giả sử rằng thuyền loại A cần một tàu kéo để vào trong cảng và thuyền loại B cần một tàu kéo để ra khỏi bến đỗ và ra khỏi cảng. Cũng giả thiết chỉ có một tàu kéo trong trạng thái “rỗi”. Nếu như thuyền loại A hoạt động trước và giành tàu kéo, thì thuyền loại B phải đợi. Tương tự, nếu như thuyền loại B hoạt động trước và giành tàu kéo thì thuyền loại A phải đợi. Điều đó có nghĩa gì? Trong mô hình này có thể để tùy ý hoạt động xảy ra. Hoặc người thiêt kế mô hình có thể xác định rõ cách hoạt động hệ thống thực trong trường hợp này và sau đó xây dựng mô hình mô phỏng theo hệ thống thực.

Thực tế là nhiều sự kiện xuất hiện tại cùng một thời điểm có thể dẫn đến sự phức tạp về logic trong mô phỏng sự kiện rời rạc. Sự phức tạp này có thể được cả người thiết kế mô hình và ở mức độ cao hơn là người thiết kế ngôn ngữ tìm hiểu và xem xét. Người thiết kế mô hình phải xem xét sự phức tạp trong các tình huống tạo mô hình cụ thể, trong khi đó người thiết kế ngôn ngữ phải xem xét bằng một cách tổng quát. Đặc biệt, lựa chọn và cân bằng các yếu tố tồn tại là do người thiết kế ngôn ngữ. Kết quả là, mặc dù ngôn ngữ mô phỏng sự kiện rời rạc nói chung là như nhau, chúng vẫn có một số điểm khác biệt.

3.3 Thực thể, tài nguyên, phần tử điều khiển và các hoạt động

Các hệ thống bao gồm các thực thể, các tài nguyên, các phần tử điều khiển và các hoạt động. Những thành phần này được trình bày sau đây

3.3.1 Các thực thể

Thuật ngữ entity được sử dụng ở đây như là tên chung của một đơn vị lưu lượng (một “giao dịch”). Các thực thể mô hình hóa các đối tượng chẳng hạn như những con tàu trong hệ thống bến cảng, việc đang thực hiện hệ thống sản xuất, những người mua sắm ở chợ, những máy bay tại sân bay, những cuộc gọi trong hệ thống thông tin v…v. Như chúng ta đã thấy, các thực thể thực hiện các hành động mà làm thay đổi trạng thái của hệ thống.

Ngôn ngữ mô hình hóa cung cấp những công cụ để tạo ra và hủy bỏ các thực thể trong suốt quá trình mô phỏng. Các thực thể tiến vào một mô hình theo thời gian chẳng hạn như những con tàu cập cảng theo thời gian. Tương tự như vậy, các thực thể rời khỏi mô hình lần lượt theo thời gian chẳng hạn như những con tàu đã được phục vụ nay rời khỏi cảng. Trong suốt quá trình mô phỏng số lượng các thực thể là ngẫu nhiên.

Thực thể có các thuộc tính. Thuộc tính của con tàu ở bến cảng bao gồm thời gian chuyến hàng đến, loại tàu, số lượng tàu kéo cần đến khi cập bến, thời gian sắp xếp hàng lên tàu, số tàu kéo cần đến khi tàu rời bến v…v

Có hai loại thực thể đặc trưng là thực thể ngoại và thực thể nội. Các thực thể ngoại là các thực thể mà sự tạo ra và hoạt động của chúng được hình dung rõ ràng và sắp xếp bởi người thực hiện mô hình hóa. Các thực thể được đề cập trên đây (ví dụ như: những con tàu, quá trình làm việc, cuộc gọi) là ví dụ về các thực thể ngoại.

Trong một mô hình thường có trên hai lớp thực thể ngoại trong đó mỗi lớp có đặc trưng và những thuộc tính riêng. Ví dụ như trong dây chuyền sản xuất, có thể có một lớp thực thể cho một số loại công việc theo đơn hàng nào đó, có một lớp thực thể cho các công nhân nào đó v…v (Một đơn hàng có thể có thuộc tính là kỳ hạn thực hiện nhưng công nhân thì không có. Một công nhân chắc chắn có thuộc tính là các kỹ năng nhưng đơn hàng thì không). Về mặt mô hình hoá, sự khác biệt giữa các lớp thực thể là do chính người thiết kế mô hình, là người xây dựng mô hình thật hợp lý dựa trên những sự khác biệt. Ngược lại, định nghĩa chính thức về các lớp thực thể ngoại có thể được yêu cầu trong một mô hình. Định nghĩa như vậy phụ thuộc vào phần mềm đang được sử dụng.

Đối lập với các thực thể ngoại là những đối tượng dựa trên các khái niệm riêng biệt rõ ràng, các thực thể nội là các thực thể ẩn được sử dụng bởi một số ngôn ngữ mô hình hoá để hỗ trợ các nhu cầu khác trong mô hình hóa sự kiện rời rạc. Thực thể nội được tạo ra và thực hiện hoàn toàn bởi chính phần mềm mô phỏng và về khía cạnh này, người tạo mô hình không thể nhìn thấy được chúng. Người thiết kế mô hình thậm chí có thể không nhận ra được rằng các thực thể nội đang hoạt động trong một mô hình.

Ví dụ thực thể nội được sử dụng trong một số ngôn ngữ mô hình hóa để tạo ra việc máy móc bị hỏng và sau đó đưa máy móc này quay về trạng thái làm việc theo yêu cầu (điều hiển nhiên là thông số kỹ thuật của việc dừng hoạt động và sửa chữa phải được cung cấp bởi người thiết kế mô hình, nhưng người thiết kế mô hình không phải tạo ra các logic cần thiết cho việc máy móc bị hỏng này nếu như các thực thể nội được sử dụng với mục đích này). Ngược lại, một số ngôn ngữ mô hình hoá không sử dụng thực thể nội để mô hình hóa việc máy móc bị hỏng. Trong những ngôn ngữ như vậy, người thiết kế mô hình làm việc với thực thể ngoại và cung cấp rõ ràng những logic cần thiết một cách hợp lý để thực hiện các sự hỏng hóc này.

Ví dụ khác, một thực thể nội được sử dụng trong vài ngôn ngữ để dừng một mô phỏng. Ví dụ như người thiết kế mô hình có thể đặt trạng thái rằng một chương trình mô phỏng sẽ dừng sau tám tiếng thời gian mô phỏng và phần mềm mô hình hoá tạo ra một thực thể thực hiện điều này (Nếu các thực thể nội không được tạo ra cho mục đích này thì người thiết kế mô hình sẽ dùng thực thể ngoại để đạt được hiệu quả như mong muốn).

3.3.2 Tài nguyên

Tài nguyên là một phần tử của hệ thống để cung cấp dịch vụ. Các tài nguyên trên một bến cảng bao gồm các tàu kéo và những bến tàu. Tài nguyên trong dây chuyền sản xuất bao gồm máy móc, công nhân vận hành, thiết bị vận chuyển (chẳng hạn như là phương tiện truyền dẫn tự động và băng truyền), không gian để chứa hàng tạm thời chờ đóng gói và hàng hoá đã được đóng gói. Các tài nguyên ở sân bay bao gồm khu vực đỗ xe ôtô, xe buýt trung chuyển, người khuân vác, quầy vé, thiết bị an ninh, lối dành cho đi bộ, quầy làm thủ tục đi máy bay, đường ống đi ra máy bay, máy bay và đường băng.

Một vài tài nguyên chỉ có thể phục vụ một người dùng tại một thời điểm. Ví dụ một khu vực đỗ xe chỉ có thể giữ mỗi lần một xe và một cầu thang máy bay chỉ có thể tiếp cận mỗi lần một máy bay. Tuy nhiên trong vài trường hợp, một tài nguyên có thể phục vụ hai hoặc nhiều người sử dụng tại một thời điểm. Một phương tiện truyền dẫn tự động có thể truyển cùng lúc 3 sản phẩm từ điểm A đến điểm B và xe buýt trung chuyển có thể chở nhiều người từ bãi đỗ đến cổng vào sân bay.

Tài nguyên có giới hạn về số lượng. Ở bến cảng có thể có 3 tàu kéo, 2 bến tàu loại A và 3 bến tàu loại B. Một sân bay có thể có 3 đường băng, có thể có 250 chỗ trong bãi đỗ xe. Trong dây chuyền sản xuất có thể có 4 thiết bị truyền dẫn tự động (AGV).

Người sử dụng các nguồn tài nguyên thường là các thực thể. Một thực thể con tàu cập một bến tàu và rồi có thể một cần 1 tàu kéo đưa vào cập bến. Một thực thể đang được thực hiện chiếm chỗ ở bộ đệm đầu vào của chiếc máy tiếp theo, và rồi sử dụng thiết bị truyền dẫn tự động để đưa từ vị trí hiện tại đến bộ đệm đầu vào. Một hành khách đi máy bay có thể liên tục sử dụng một xe buýt trung chuyển, một người khuân vác hành lý, thiết bị an ninh, một lối dành cho đi bộ, một quầy làm thủ tục đi máy bay, một chỗ ngồi và một đướng ống đi ra máy bay.

Trong thực tế, tài nguyên bị giới hạn về sử dụng vì thế các thực thể đôi khi phải chờ đợi đến lượnt sử dụng tài nguyên. Khi một sản phẩm đang trong quá trình sản xuất yêu cầu một thiết bị truyền dẫn tự động, nó có thể phải chờ tới khi yêu cầu đó được đáp ứng. Khi sản phẩm này thậm chí đã đudợc đưa vào bộ đệm đầu vào của máy móc tiếp theo, nó có thể phải chờ để sử dụng máy móc này.

Các ngôn ngữ mô hình hóa có các cơ chế (constructs) được dùng để điểu khiển các thực thể truy cập trực tiếp tới các tài nguyên. Những cơ chế này sẵn sàng ghi lại trạng thái của tài nguyên (“nhàn rỗi” hoặc “đang được sử dụng”) và điều kiện hoạt động (“đang hoạt động” hoặc “hỏng hóc”). Khi một thực thể cố gắng giành lấy một tài nguyên, trạng thái giành lấy và điều kiện hoạt động có thể được kiểm tra bằng phần mềm để xác định xem liệu việc giành lấy tài nguyên này có thể thực hiện hay không.

3.3.3 Phần tử điều khiển

Ngoài các cơ chế tài nguyên, các ngôn ngữ mô hình hoá cung cấp các cơ chế khác để hỗ trợ các khía cạnh liên quan tới sự điều khiển của trạng thái hệ thống. Thuật ngữ “Control element”( phần tử điều khiển) được sử dụng cho những cơ chế như vậy. Một chuyển mạch là ví dụ về phần tử điều khiển. Một chuyển mạch là biến có hai trạng thái (Bật hoặc Tắt). Một chuyển mạch có thể được sử dụng trong mô hình hệ thống cảng biển để báo hiệu xem liệu đang có bão hay không (Nếu trời đang bão, tàu bè buộc phải neo trong bến cảng chờ cho bão tan). Trong nghiệp vụ ngân hàng, một chuyển mạch có thể được sử dụng để xem liệu các cửa ra vào ngân hàng khoá lại hay chưa.

Bộ đếm là một dạng phần tử điều khiển khác. Một bộ đếm có thể sử dụng để đếm số lượng các khối động cơ đã có các lỗ khoan kể từ khi máy khoan thay mũi khoan. Mũi khoan có thể được thay thế sau 100 lần sử dụng. Thực hiện việc thay thế này yêu cầu lưu lại số lần khoan. Bộ đếm được sử dụng để giúp điều khiển hoạt động của hệ thống trong việc này.

Các biểu thức số học có thể là phần cơ bản của các phần tử điều khiển. Hãy xem xét một siêu thị là một hệ thống gồm nhiều hàng, nhiều server tương ứng với các đường ra để thanh toán. Có thể có 12 đường ra để thanh toán nhưng chỉ có vài ba đường được mở tại một thời điểm. Giả thiết rằng nếu số lượng khách hàng đang đợi ở lối ra để thanh toán là 5 hoặc nhiều hơn thì lối ra thanh toán khác sẽ được mở. Người thiết kế mô hình có thể giới thiệu một biểu thức số học để tính số lượng trung bình của các khách hang đang chờ ở lối ra thanh toán. Một thực thể dùng để mô phỏng “bộ phận quản lý đường ra” có thể theo dõi giá trị của biểu thức này để xác định xem liệu các điều kiện hiện tại có yêu cầu mở lối ra thanh toán khác. Biểu thức số học được sử dụng để điều khiển họat động của bộ phận quản lý đường ra.

Biểu thức Boolean (các biểu thức gồm giá trị True hoặc False với những toán tử and, ornot) cũng có thể được sử dụng như là phần tử điều khiển. Ví dụ như một con tàu không thể rời cảng cho đến khi nó có được một tàu kéo công suất lớn hoặc (or) hai tàu kéo công suất nhỏ hơn và (and) không có cơn bão nào đổ bộ.

Giống như tài nguyên, phần tử điều khiển có thể bắt buộc các thực thể chờ đợi, trì hoãn sự di chuyển xuyên suốt một hệ thống. Các phương thức trong đó phần mềm mô hình hóa quản lý các thực thể trễ được thảo luận ở mục 3.6.

3.3.4 Các hoạt động

Một hoạt động là một bước di chuyển hoặc một hành động được thực hiện bởi hoặc trên một thực thể trong suốt sự di chuyển của nó trên hệ thống. Các ví dụ của sự hoạt động bao gồm đơn hàng mới đến trong một hệ thống xử lý đơn hàng, việc giành lấy một AGV bởi một sản phẩm đang trong quá trình sản xuất, việc chụp cánh tay bệnh nhân bằng X-quang và sự vận chuyển một đơn vị sản phẩm đã hoàn thiện tới nơi lưu kho sản phẩm.

Một tập hợp có thứ tự của các hoạt động là một chuỗi của các bước di chuyển hoặc của các hành động liên tiếp được thực hiện hoặc đã trải qua bởi một thực thể nó di chuyển từ điểm tới điểm trong một hệ thống. Một chuỗi kết hợp của các hoạt động đôi khi được gọi là logic hoạt động. Ví dụ như, logic hoạt động cho việc tàu di chuyển vào bến cảng: đến bên ngoài bến cảng; giành lấy bến tàu; giành lấy 2 tàu kéo; sử dụng tàu kéo để tiến tới không ngừng vào bến cảng và cập bến; giải phóng tàu kéo; sử dụng bến tàu để nhập hoặc xuất hàng; giành lấy 1 tàu kéo; dùng tàu kéo đẩy không ngừng ra khỏi bến tàu và ra khỏi bến cảng; khởi hành.

3.4 Tổng quan về việc thực hiện mô hình

3.4.1 Các dự án, thử nghiệm, và sự lặp lại

Thực hiện một dự án mô phỏng bao gồm việc thực hiện một hoặc thử nghiệm và với mỗi thử nghiệm, thực hiện lặp lại một hoặc nhiều lần. Minh hoạ như trong hình 3.7, có m thử nghiệm, mỗi thử nghiệm có n lần lặp lại. Những thử nghiệm được phân biệt bởi các cách thức trong một logic của mô hình và/hoặc dữ liệu. Sự lặp lại thường được phân biệt bởi việc sử dụng các tập hợp khác nhau của các số ngẫu nhiên từ sự lặp lại này tới sự lặp lại khác và qua các thử nghiệm khau.

Giả sử rằng một dự án mô phỏng được thực hiện cho một hệ thống cảng biển như trong hình 3.5. Mục tiêu của dự án giả thiết là để nghiên cứu các cách thức nhằm giảm sự chậm trễ của con tàu khi rời bến cảng. Giả thiết rằng hình 3.5 mô tả bến cảng (3 tàu kéo, 3 bến tàu loại A, 2 bến tàu loại B và cửa bến cảng chỉ đủ rộng để tiếp nhận mỗi lần 1 con tàu) và dữ liệu hoạt động sẵn sàng (phân bố của thời gian tàu đến, thời gian nhập cảng và xuất cảng, trọng tải nhập và xuất của loại tàu A và B). Giả sử rằng trật tự phục vụ để sử dụng tàu kéo và bến tàu là tàu nào đến trước được phục vụ trước. Thử nghiệm 1 như hình 3.7 dùng cho mô hình bến cảng này (mục đích của thử nghiệm 1 là phê chuẩn mô hình này bằng việc so sánh các đặc tính của nó với các đặc tính quan sát trên hệ thống thực. Ví dụ như, phân bố của thời gian ở lại cảng của tàu loại A và loại B có thể được so sánh với giá trị tương ứng trên hệ thống thực).

Thử nghiệm 2 trong hình 3.7 nghiên cứu sự tác động (dựa trên phân bố của thời gian cập cảng) của việc nới rộng cửa bến cảng để tiếp nhận 2 tàu một lần. Thử nghiệm 3 nghiên cứu sự tác động vủa việc thêm một tàu kéo. Thử nghiệm 4 nghiên cứu tác động của việc kết hợp sự mở rộng cổng bến cảng và thêm một tàu kéo. Thử nghiệm 5 nghiên cứu tác động của việc dành cho tàu loại A ưu tiên cao hơn loại B khi dùng tàu kéo. Thử nghiệm 6 nghiên cứu tác động của việc thay thế ba tàu kéo này với 3 tàu kéo tốc độ cao hơn v…v.

Như đề nghị trong hình 3.7, mỗi thử nghiệm kèm theo một hoặc nhiều lần lặp lại (lần chạy mô phỏng). Mỗi lần lặp lại là một lần thực hiện của một mô hình mô phỏng trong đó kết hợp logic và dữ liệu của mô hình cho thử nghiệm này nhưng sử dụng một tập hợp các số ngẫu nhiên duy nhất cho lần lặp lại này. Mỗi lần lặp lại thống kê được các kết quả khác nhau. Kết quả thống kê có thể được phân tích sau một loạt sự lặp lại.

Trong một vài thiết kế thử nghiệm có sử dụng kỹ thuật “variance reduction”, tập hợp các số ngẫu nhiên sử dụng trong một lần lặp lại có thể tương quan với những giá trị tương ứng ở một lần lặp lại cùng lúc khác. Hơn nữa trong một vài thiết kế, chỉ một lần lặp lại tương đối dài có thể được thực hiện.

Hình 3.7 Thử nghiệm và sự lặp lại trong thiết kế mô phỏng

3.4.2 Cơ cấu hoạt động của một lần lặp lại

Mục này thảo luận các giai đoạn của một lần lặp lại. Để cụ thế hóa, các vấn đề sẽ được giải thích cho trường hợp bến cảng ở hình 3.4.

Hình 3.8 Cơ cấu hoạt động của một lần lặp lại

Giai đoạn khởi tạo: Lưu đồ hình 3.8 trình bày các giai đoạn của một lần lặp lại. Lần lặp lại này bắt đầu với 1 giai đoạn khởi tạo với đồng hồ mô phỏng luôn bắt đầu giá trị 0.0 Thời gian mô phỏng sẽ được tính tương ứng với giá trị khởi đầu này Ví dụ như, thời gian 0.0 có thể tương ứng với thời gian thực là 9h sáng trong ngày đầu tiên của một chuỗi ngày mô phỏng của một sự lặp lại.

Khi

bắt đầu giai đoạn khởi tạo, không có thực thể nào tồn tại. Trong suốt quá trình khởi tạo, một hay nhiều thực thể ngoại được tạo ra và sự kiện tiến đến (arrival event) của chúng ngay lập tức được lên kế hoạch, như trong hình vẽ 3.8 (khối 1). Ví dụ trong hệ thống bến cảng như hình 3.4, tàu loại A đầu tiên đi vào bến cảng được tạo ra trong giai đoạn khởi tạo và thời điểm sự kiện của việc đi vào này, chẳng hạn như thời gian mô phỏng là 23.5 phút, sẽ được xác lập. Sự xác lạp này thực hiện bởi việc lấy một mẫu giá trị từ phân bố thời gian giữa các lần đến của các tàu loại A. Đây chính là thời gian mô phỏng để tàu loại A cập bến tương ứng với thời gian bắt đầu là 0.0 (để thuận tiện chúng ta mặc định đơn vị thời gian là phút nhưng cũng có thể là đơn vị khác tuỳ thuộc vào người thiết kế mô hình). Trong giai đoạn khởi tạo, tàu loại B đầu tiên đi vào bến cảng cũng được tạo ra và thời gian đến của nó, giả thiết tại thời giam mô phỏng là 18.2 phút, được xác lập.

Thảo luận trên đối với việc tạo ra các thực thể ngoại trong giai đoạn khởi tạo. Nếu mô hình này cũng có các thực thể nội thì chúng cũng cần được khởi tạo. Ví dụ như, giả sử rằng mô hình bến cảng trong hình 3.4 được xây dựng với phần mềm sử dụng một thực thể nội để điều khiển khoảng thời gian mô phỏng và sự lặp lại này sẽ thực hiện tới 43,200 (số phút của 30 ngày với 1 ngày có 3 giờ). Một thực thể nội được tạo ra tương ứng trong pha khởi tạo.

Giai đoạn thực thể hoạt động: Như trong hình 3.8, giai đoạn thực thể hoạt động tiếp theo sau pha khởi tạo và trước pha cập nhật xung đồng hồ. Mục đích của giai đoạn thực thể hoạt động là các thực thể đủ điều kiện thực hiện các hoạt động của chúng tại thời điểm mô phỏng. Một thực thể đủ điều kiện để hoạt động nếu thời điểm hoạt động dự kiến của nó bằng với thời gian mô phỏng hiện tại.

Lưu ý: Các nhóm t

ừ như “thời điểm hoạt động”, “thời điểm di chuyển” và “thời điểm sự kiện” thường được dùng thay thế cho nhau

.

Giai đoạn thực thể hoạt động đầu tiên: Giai đoạn thực thể hoạt động này được bắt đầu từ giai đoạn khởi tạo tại thời điểm mô phỏng 0.0. Nếu không có thực thể khởi tạo nào (thực thể nội hoặc thực thể ngoại) dự định bắt đầu thực hiện lúc 0.0 thì sẽ không có giai đoạn thực thể hoạt động tại thời điểm 0.0. Trong mô hình bến cảng chúng ta cho thời gian tới của tàu loại A và B lần lượt là 23.5 và 18.2 phút. Trong ví dụ này không có hoạt động nào của thực thể ngoại trong giai đoạn thực thể hoạt động đầu tiên này.

Thông thường, cần có hoạt động nào đó tại giai đoạn thực thể hoạt động đầu tiên. Ví dụ, nếu nhà băng mở cửa hoạt động lúc 9 giờ sáng (thời điểm mô phỏng là 0.0), có thể có 3 khách hàng- là các thực thể đang đợi nhà băng mở cửa. Ba thực thể này sẽ lần lượt hoạt động trong giai đoạn thực thể hoạt động đầu tiên.

Các giai đoạn thực thể hoạt động sau đó: Hoạt động luôn diễn ra trong các giai đoạn thực thể hoạt động sau khi thực hiện các giai đoạn cập nhật đồng hồ. Đó là do một giai đoạn cập nhật đồng hồ luôn đưa trạng thái của mô hình tới thời điểm mô phỏng sớm nhất sau đó mà tại đó ít nhất một thực thể được lập lịch thực hiện hoạt động.

Trong mô hình bến cảng này, chũng ta giả thiết thời gian cập bến của tàu loại B là 18.2 phút. Thời gian bắt đầu giai đoạn thực thể hoạt động là 0.0 (tại đó không có hoạt dộng nào diễn ra), giai đoạn cập nhật xung đồng hồ thiết lập thời gian là 18.2 (thời gian sớm nhất để thực hiện hành động theo lịch trình: thời gian để 1 tàu loại A theo như lịch trình thực hiện cập bến sau đó và lúc 23.5 phút. Vậy rồi giai đoạn thực thể hoạt động tiếp theo xảy ra và tàu loại B đầu tiên giành lấy một bến đỗ trống, một tàu kéo rỗi và khởi tạo quá trình đi vào bến cảng bằng tàu kéo.

Các giai đoạn cập nhật xung đồng hồ (CUP): Sau khi các hoạt động có thể có được thực hiện ở một giai đoạn thực thể hoạt động, một CUP sẽ diễn ra. Mục đích của CUP thiết lập đồng hồ tới thời điểm mô phỏng tiếp theo sớm nhất mà tại thời điểm đó đã có một hoặc vài hoạt động được lập lịch trước. Thời điểm mô phỏng tiếp theo sớm nhất này có thể là thời điểm mô phỏng hiện thời, tùy thuộc vào liệu hai hoặc nhiều thực thể có được lập lịch tài cùng một thời điểm mô phỏng này hay không và cũng phụ thuộc vào các lựa chọn bởi người thiết kế ngôn ngữ mô phỏng. Hoặc thời gian mô phỏng tiếp theo sớm nhất có thể là thời điểm sau đó. (Đồng hồ mô phỏng không bao giờ giảm giá trị. Mô phỏng các sự kiện rời rạc không được thiết kế để có thể quay ngược thời điểm mô phỏng).

Sau khi kết thúc một giai đoạn cập nhật xung đồng hồ, giai đoạn thực thể hoạt độngđược thực hiện trở lại để các thực thể đủ điều kiện có thể thực hiện các hoạt động tại thời điểm mô phỏng mới được thiết lập. Sau đó giai đoạn cập nhật xung đồng hồ tiếp tục thực hiện trở lại, rồi đến giai đoạn thực thể hoạt động tiếp theo và cứ thế tiếp tục.

Điểm chính của một sự lặp lại việc hoạt động lien tiếp nhau của giai đoạn thực thể hoạt động và giai đoạn cập nhật xung đồng hồ. Trong suốt giai đoạn thực thể hoạt động, thời gian mô phỏng giữ nguyên cố định và thời gian thực trôi qua trong khi trạng thái của mô hình được cập nhật (hình 3.6).

Thu thập các kết quả thống kê: Một mục tiêu của mô phỏng các sự kiện rời rạc là để thu thập các kết quả thống kê về hoạt động của hệ thống được mô phỏng. Phần mềm mô phỏng các sự kiện rời rạc được thiết kế để thu thạp tự động nhiều loại kết quả thống kê khác nhau trong một sự lặp lại. Đối với các tài nguyên, các giá trị thống kê chẳng hạn như số lần giành được, thời gian chiếm giữ trung bình và mức độ khai thác có thể được đo đạc tự động. ĐỐi với các hang chờ, giá trị trung bình, giá trị thống kê là thời gian chờ trung bình và chiều dài hang chờ lớn nhất có thể được đo tự động. . Ngoài ra việc thu thập các giá trị thống kê một cách tự động, phần mềm mô phỏng cũng cung cấp công cụ để người làm mô phỏng có thể thu thập chúng một cách tùy ý.

Sự theo dõi và ghi lại các giá trị thống kê thường được thực hiện trong giai đoạn thực thể hoạt động (theo cách tự động bằng phần mềm hoặc và tùy ý người dung). Kết quả được sử dụng trong báo cáo cuối cùng của sự lặp lại.

Kết thúc một lần lặp lại: Khi một lần lặp lại được thực hiện, một điều kiện kết thúc thưong xảy ra trong giai đoạn thực thể hoạt động hoặc trong giai đoạn cập nhật xung đồng hồ. Điều kiện kết thúc có thể dựa vào thời gian (ví dụ, bến cảng hoạt động 3 giờ) hoặc theo số lượng đếm được (ví dụ, lô hàng sản xuất gồm 500 sản phẩm) hoặc có thể nhiều yếu tố khác (ví dụ, ngân hàng mở cửa vào buổi sáng, đóng cửa vào buổi chiều và tất cả các khách hàng có mặt trong ngân hang khi cửa đóng đã được phục vụ xong). Điều kiện kết thúc có thể xãy ra hoặc ở giai đoạn thực thể hoạt động hoặc ở giai đoạn cập nhật xung đồng hồ.

Sau đó giai đoạn báo cáo được thực hiện và kết thúc lần lặp lại này. Trạng thái của mô hình được mô tả khi kết thúc lần lặp lại này. Chẳng hạn như mô tả giá trị của đồng hồ mô phỏng, số lượng các thực thể khác nhau dung trong mô hình, số thực thể hiện tại trong mô hình. Các kết quả thống kê của lần lặp lại này thường dưới dạng các báo cáo, bao gồm kết quả thống kê về tài nguyên và hang chờ.

3.5. Các trạng thái của thực thể

Một thực thể được tạo ra thời điểm được mô phỏng, hoạt động ở trong một mô hình trong khi thời gian mô phỏng tăng lên và sau đó được hủy đi. Trong chu trình tồn tại của nó, thực thể thay đổi từ trạng thái này sang trạng thái khác, thường nhiều lần đi qua các trạng thái khác nhau trước khi bị hủy. (Đó không phải là yêu cầu bắt buộc, tuy nhiên, thực thể cuối cùng sẽ bị hủy. Một vài thực thể có thể lặp lại sự quay vòng qua các phần của mô hình với các giai đoạn ngừng tùy theo thiết kế mô hình).

Có năm trạng thái của thực thể luân phiên nhau: trạng thái sẵn sàng, trạng thái hoạt đọng, trạng thái trễ thời gian, trạng thái trễ điều kiện và trạng thái không hoạt động, được chỉ ra trong hình 3.9. Hình này cũng chỉ ra các thời điểm tạo ra thực thể và hủy thực thể, cũng như là đường dẫn mà các thực thể di chuyển từ trạng thái này sang trạng thái khác. Các đường dẫn này được đánh số để hỗ trợ cho các phần sau. Sau đây trình bày nội dung về trạng thái sẵn sàng, trạng thái hoạt đọng, trạng thái trễ thời gian, trạng thái trễ điều kiện và trạng thái không hoạt động cũng như về việc tạo và hủy thực thể.

3.5.1. Trạng thái hoạt động

Có thể chỉ có một thực thể di chuyển tại một thời điểm bất kỳ tính theo đồng hồ thời gian thực. Trạng thái hoạt động là trạng thái của thực thể hiện tại đang di chuyển. Thực thể ở trạng thái hoạt động (thực thể hoạt động) di chuyển không ngừng đến khi nó bị trễ, hoặc bị hủy, hoặc tạo trạng thái kích hoạt cho một vài thực thể khác trước khi trở lại trạng thái kích hoạt của nó tại cùng thời gian mô phỏng. Thời gian mô phỏng giữ nguyên trong khi một thực thể ở trạng thái hoạt động.

Nếu thực thể hoạt động này bị trễ, nó chuyển từ trạng thái hoạt động đến một trong ba trạng thái trễ thay thế khác: trạng thái trễ thời gian (đường số 5 trong hình 3.9), trạng thái trễ điều kiện (đường số 7), hoặc trạng thái không hoạt động (đường số 9). Nếu thực thể hoạt động này tạo ra một sự di chuyển mà gây ra việc hủy bỏ chính nó (đường số 11 trong hình 3.9), nó sẽ được xóa ngay lập tức trong mô hình và không còn tồn tại.

Trong một vài mô hình, thực thể hoạt động này có thể tạm thời rời trạng thái hoạt động và sau đó nó sẽ trở lại trạng thái hoạt động sau tại cùng thời điểm mô phỏng. Mục đích của trường hợp này là để cho một hoặc nhiều thực thể khác trải qua trạng thái hoạt động này để hoàn thành một hoặc nhiều nhiệm vụ trước khi thực thể khởi tạo này một lần nữa trở lại trạng thái hoạt động của chính bản thân nó tại cùng thời điểm mô phỏng. Thực thể khởi tạo này thực hiện việc tạm ngừng trạng thái hoạt động này bằng việc di chuyển từ trạng thái hoạt động về trạng thái sẵn sàng (đường số 4 hình 3.9).

Hình 3.9. Các trạng thái của thực thể và các đường di chuyển

3.5.2. Trạng thái sẵn sàng

Tại thời điểm mô phỏng nào đó, có thể có nhiều hơn một thực thể sẵn sàng di chuyển, nhưng chỉ có một thực thể tại một thời điểm có thể ở trong trạng thái hoạt động. Nếu có hai hoặc nhiều thực thể muốn di chuyển tại thời điểm mô phỏng đã được thiết lập, chỉ có một thực thể phải chờ đến lượt để vào trạng thái hoạt động tại thời điểm mô phỏng hiện tại. Thời gian mô phỏng giữ nguyên khi một thực thể đang ở trong trạng thái sẵn sàng.

Có một số đường trong hình 3.9 mà các thực thể có thể di chuyển sang trạng thái sẵn sàng. Ví dụ: việc di chuyển từ các trạng thái trễ thời gian, trễ có điều kiện, và trạng thái không hoạt động luôn tới trạng thái sẵn sàng (các đường theo thứ tự 6, 8, 10). Trong số các khả năng đó, việc di chuyển từ trạng thái trễ thời gian và trễ có điều kiện sang trạng thái sẵn sàng xảy ra thường xuyên nhất.

Di chuyển từ trạng thái không hoạt động đến trạng thái sẵn sàng từ (đường số 10) ít xảy ra hơn, vì các mô hình không thường xuyên sử dụng trạng thái không hoạt động. Đường dẫn từ việc tạo ra thực thể đến trạng thái sẵn sàng (Đường số 1) chỉ được thực hiện bởi các thực thể đã sẵn sàng để di chuyển tại thời điểm mô phỏng của việc tạo thực thể. Đường từ trạng thái hoạt động đến trạng thái sẵn sàng (đường số 4) là ít xảy ra nhất. Hầu hết các mô hình không yêu cầu sử dụng đường di chuyển này. (Một vài phần mềm mô phỏng sự kiện rời rạc không cung cấp đường này).

3.5.3. Trạng thái trễ thời gian

Trạng thái trễ thời gian là trạng thái các thực thể đang chờ đến thời điểm mô phỏng nào đó đã xác định trong tương lai mà chúng có thể trở lại trạng thái sẵn sàng mào đầu cho việc di chuyển trở lại. Các thực thể chuyển sang trạng thái trễ thời gian từ trạng thái hoạt động (Đường số 5, hình 3.9) và từ điểm tạo thực thể (Đường số 2). Sau đó chúng chuyển từ trạng thái trễ thời gian sang trạng thái sẵn sàng (Đường số 6) khi thời gian mô phỏng biết trước của chúng xảy ra.

Hãy xem xét một ví dụ về sự ảnh hưởng lẫn nhau giữa các trạng thái trễ thời gian, trạng thái hoạt động và trạng thái sẵn sàng. Giả sử rằng, một thực thể đang mô phỏng sản phẩm đang trong quá trình sản xuất. Sản phẩm này cần được khoan một lỗ và giả sử rằng khi thực thể sẵn sang cho việc này thì máy khoan đang rỗi. Tại thời điểm mô phỏng đó, thực thể này chuyển từ trạng thái sẵn sàng sang trạng thái hoạt động (đường 3 hình 3.9), giành lấy máy khoan và sau đó chuyển sang trạng thái trễ thời gian (đường 5), và giữ nguyên trạng thái đó rồi chờ đến khi thời gian mô phỏng xác định trong tương lai khi mà hoạt động khoan này kết thúc. (Thực thể “biết” thời gian mô phỏng trong tương lai vì nó lấy mẫu thời gian của việc khoan lỗ từ sự phân bố thời gian khoan trong lúc nó chuyển sang trạng thái trễ thời gian).

Mở rộng ví dụ này, chúng ta giả sử rằng, đã đến thời gian mô phỏng khi các việc khoan lỗ kết thúc. Sau đó thực thể này chuyển từ trạng thái thời gian trễ sang trạng thái sẵn sàng (đường số 6 hình 3.9) như là sự mào đầu cho việc di chuyển. Sau đó, thực thể chuyển từ trạng thái sẵn sàng sang trạng thái hoạt động và thay đổi trạng thái của máy khoan “đang bị chiếm dụng” sang “rỗi”. Giả sử thực thể này sau đó cần được chuyển tới một đích khác bằng AGV và cũng giả sử rằng AGV đang rỗi. Thực thể này tiếp tục trạng thái hoạt động: thực thể giành lấy một AGV và chuyển về trạng thái trễ thời gian (đường số 5) trong khi chờ cho thời gian mô phỏng được xác định trước trong tương lai khi hoạt động truyền tải này sẽ kết thúc.

Khi một thực thể được tạo ra, nó bắt đầu sự tồn tại của nó trong trạng thái sẵn sàng hoặc trong trạng thái trễ thời gian, phụ thuộc vào việc liệu thời gian mô phỏng khi nó sẽ di chuyển lần đầu tiên bằng hay vượt qua thời gian tạo ra nó. Nếu nó di chuyển lần đầu tiên tại thời điểm tạo nó, thực thể bắt đầu trạng thái sẵn sàng (đường số 1 hình 3.9), nếu không, nó bắt đầu bằng trạng thái trễ thời gian (đường 2). Các thực thể thường xuyên bắt đầu sự tồn tại của mình trong trạng thái trễ thời gian.

Một ví dụ về việc tạo thực thể. Giả sử rằng, thời gian giữa các sự kiện đến của các cuộc gọi thoại đến một nhà khai thác mạng là hàm phân phối mũ, và một thực thể dung để mô phỏng một cuộc gọi. Khi một cuộc gọi đến, thời gian trong tương lai mà một cuộc gọi tiếp theo sẽ đến được quyết đinh bởi việc lấy mẫu từ hàm phân phối mũ của khoảng thời gian giữa hai cuộc gọi. Thực thể gọi tương ứng được tạo và đặt vào trong trạng thái trễ thời gian (đường số 2 hình 3.9), và chờ thời gian mô phỏng trong tương lai đã được xác định tại lần di chuyển đầu tiên (“đến”, làm cho điện thoại đổ chuông).

Ví dụ thứ hai về tạo thực thể, giả sử rằng, khi ngân hàng mở cửa vào 9h sáng (thời gian mô phỏng là 0.0), ba khách hàng đang chờ mở cửa. Mỗi một khách hàng sẽ vào trong ngân hàng khi cửa mở. (Trong thực tế, một vài giây sẽ trôi qua trong khi những khách hàng này vào ngân hàng từng người một, nhưng chúng ta hãy giả sử rằng cả ba khách hàng đều vào đồng thời). Tại thời điểm mô phỏng 0.0, khách hàng (thực thể) đầu tiên được tạo và cho vào trạng thái sẵn sàng (đường 1 hình 3.9). Thực thể khách hàng thứ 2 cũng sẽ được tạo tại thời điểm 0.0 và đặt vào trạng thái sẵn sàng. Cuối cùng, thực thể khách hàng thứ 3 cũng sẽ được tạo tại thời điểm 0.0 và ở trong trạng thái sẵn sàng. Trong suốt khoảng thời gian thực thể di chuyển tại thời điểm 0.0, mỗi một khách hàng sẽ chuyển một cách tuần tự từ trạng thái sẵn sàng sang trạng thái hoạt động và bắt đầu hoạt động.

3.5.4. Trạng thái trễ có điều kiện

Trạng thái trễ có điều kiện là trạng thái của các thực thể mà sự di chuyển của chúng gặp trở ngại vì một vài điều kiện. Các thực thể đợi trong trạng thái trễ có điều kiện cho đến khi điều kiện trễ của chúng được giải quyết. Trong khi trễ có điều kiện, các thực thể không biết khi nào điều kiện trễ sẽ được giải quyết, do đó chúng chờ trong một khoảng thời gian mô phỏng không xác định trước. (trái ngược với trạng thái trễ có điều kiện là trạng thái trễ thời gian, trong đó các thực thể chờ trong khoảng thời gian mô phỏng đã biết trước).

Một ví dụ của trạng thái trễ có điều kiện, xem xét một sản phẩm đang trong quá trình sản xuất (WIP), cần khoan một lỗ. Giả sử rằng khi sản phẩm này sẵn sàng cho hoạt động này, máy khoan không rỗi ( Máy khoan đang được sử dụng bởi một sản phẩm khác). Thực thể hoạt động WIP này cố gắng chiếm lấy máy khoan nhưng gặp trở ngại. Giả sử rằng, nó không có lựa chọn nào khác, nó sẽ chuyển sang trạng thái trễ có điều kiện (đường số 7 hình 3.9) và bắt đầu chờ đển lượt để sử dụng máy khoan. (Có thể có một vài thực thể WIP khác cũng đang chờ sử dụng máy khoan). Thực thể WIP ở trong trạng thái trễ có điều kiện cho đến khi máy khoan trở nên rỗi và đến lượt nó sử dụng máy khoan. Tại thời điểm đó thực thể chuyển sang trạng thái sẵn sàng (đường số 8), và sau đó chuyển sang trạng thái hoạt động (đường số 3) và sau đó sẽ chiếm lấy máy khoan và chuyển sang trạng thái trễ thời gian (Đường số 5).

Như đã giới thiệu trong các ví dụ trước, trong một số trường hợp, một sự kiện đơn có thể là đủ cho việc thực hiện sự trễ. Đây là những trường hợp của sự trễ đơn giản. Nếu một hoặc nhiều WIP bị trễ và đang chờ đến lượt sử dụng máy khoan, thì khi người thao tác máy khoan hiện tại đặt máy khoan vào trạng thái rỗi, sự kiện đơn này thực hiện việc trễ cho sản phẩm tiếp theo đang chờ. Việc chuyển từ trạng thái trễ có điều kiện sang trạng thái sẵn sàng dễ dàng liên quan đến sự kiện thực hiện trễ trong các trường hợp này.

Một ví dụ về trạng thái trễ có điều kiện phức hợp hơn: hãy xem xét một thực thể tàu đang chuyển hàng hóa tại bến cảng rồi sẵn sàng rời khỏi cảng. Giả sử rằng, cần thỏa mãn hai điều kiện đối với con tàu để rời khỏi cảng: (1) cần tàu kéo và (2) thời tiết tốt. Vẫn giữ nguyên trạng thái hoạt động sau khi hoàn tất việc chuyển hàng hóa, thực thể tàu này kiểm tra nếu liệu có tàu kéo nào đang rỗi hay không và thời tiết có tốt không. (Một chuyển mạch on/off có thể được sử dụng như phần tử điều khiển báo hiệu trạng thái của thời tiết). Nếu điều kiện kết hợp này được thỏa mãn, thực thể tàu chuyển từ trạng thái hoạt động sang trạng thái trễ thời gian (đường số 5) với một khoảng thời gian đã biết được yêu cầu cho việc rời khỏi. Nếu không thì nó chuyển từ trạng thái hoạt động sang trạng thái trễ có điều kiện (đường số 7) và bắt đầu chờ một khoảng thời gian không xác định hai điều kiện trên được thỏa mãn đồng thời.

Trong trường hợp này chúng ta có một ví dụ về sự trễ phức hợp. Độ chính xác của trễ phức tạp không thể liên quan đến trường hợp của một sự kiện đơn lẻ. Khi tàu kéo rỗi, không có nghĩa là thời tiết sẽ tốt. Khi thời tiết tốt không có nghĩa là tàu kéo rỗi. Việc giải quyết trễ phức hợp khó hơn nhiều so với trễ đơn.

3.5.5. Trạng thái không hoạt động (ngủ đông)

Giống như trạng thái trễ thời gian và trễ có điều kiện, trạng thái không hoạt động là một trạng thái mà các thực thể được đặt vào trạng thái dừng trong một khoảng thời gian mô phỏng nào đó. Các thực thể ở trong trạng thái không hoạt động người thiết kế mô hình thay vì quản lý tự động bởi chương trình phần mềm mô phỏng. Cụ thể như sau.

Các trạng thái trễ có điều kiện, trễ thời gian, trạng thái hoạt động và trạng thái sẵn sàng được quản lý theo các quy tắc được xây dựng trong phần mềm mô hình hóa. Ví dụ như các thực thể đủ tiêu chuẩn tự động được truyền tại thời điểm mô phỏng tới trong trạng thái trễ thời gian và sau đó vào trạng thái sẵn sàng.

Tương tự, các thực thể đủ tiêu chuẩn được tự động truyền vào trạng thái trễ có điều kiện và cuối cùng từ đó chuyển vào trạng thái sẵn sàng khi các điều kiện được thỏa mãn. Người thực hiện mô hình hóa có thể thực hiện tùy ý nhưng bị giới hạn nhất định Ví dụ, trong năm thực thể đang ở trong trạng thái trễ có điều kiện, đang chờ một thiết bị. Khi thiết bị rỗi, thực thể nào trong năm thực thể là người tiếp theo được sử dụng thiết bị? Vậy thì trình tự phục vụ sẽ ra sao? Người thực hiện mô hình hóa có thể dùng một trong số các trình tự phục vụ nào đó: ví dụ: ai đến trước thì được phục vụ trước, hoặc dựa trên độ ưu tiên, hoặc ai đến sau thì phục vụ trước.

Ví dụ về việc sử dụng trạng thái không hoạt động, giả sử một hệ thống của nhà sản xuất sử dụng trình tự phục vụ dạng “thời gian đáo hạn ngắn nhất” để quyết định công việc đang đợi nào sẽ được sử dụng máy tiếp theo. Thời gian đáo hạn là đơn vị đo dựa trên mối quan hệ giữa ngày tháng đến hạn của công việc, thời điểm hiện tại (ví dụ: thời điểm tại đó khoảng thời gian đáo hạn đang được tính toán) và khoảng thời gian hoạt động còn lại của công việc. (khoảng thời gian hoạt động còn lại của công việc được tính bởi tổng thời gian xử lý còn lại được yêu cầu bởi công việc trước khi nó rời khỏi hệ thống khi công việc được hoàn thành). Khoảng thời gian đáo hạn được tính như sau:

Khoảng thời gian đáo hạn = (ngày đến hạn) – (thời điểm hiện tại) – (thời gian hoạt động còn lại)

Khoảng thời gian đáo hạn của một công việc càng nhỏ thì càng phải nhanh chóng hoàn thành công việc đúng với ngày đến hạn. Chú ý rằng, thời gian đáo hạn giảm đi trong khi thời gian mô phỏng (thời điểm hiện tại) trôi qua. Do đó thời gian đáo hạn của một công việc không được tính toán khi một công việc “đến” máy. Thay vào đó, thời gian còn lại được tính toán “sau đó”, tại thời điểm máy bắt đầu một công việc khác. Trong khi chờ thời điểm mới này, các công việc trễ có thể giữ ở trạng thái không hoạt động. Khi đến thời điểm để máy bắt đầu công việc khác, thời gian đáo hạn của mỗi công việc đang chờ ở trạng thái không hoạt động được tính toán và công việc với thời gian đáo hạn ngẵn nhất được truyền từ trạng thái không hoạt động sang trạng thái sẵn sàng, để giành sử dụng máy.

Ba

̉ng 3.1 Các trạng thái của thực thể

Trạng thái

Mô tả

Hoạt Động

Trạng thái hoạt độnglà trạng thái của sự di chuyển hiện tại của thực thể.

Sẵn Sàng

Trạng thái sẵn sàng là trạng thái của các thực thể chờ chuyển sang trạng thái hoạt động tại thời điểm mô phỏng hiện tại.

Trễ Thời Gian

Trạng thái trễ thời gian là trạng thái của các thực thể đang chờ trong một khoảng thời gian mô phỏng biết trước, sau khoảng thời gian đó chúng sẽ chuyển sang trạng thái sẵn sàng.

Trễ có Điều Kiện

Trạng thái trễ có điều kiện là trạng thái của các thực thể đang chờ trong một khoảng thời gian mô phỏng không biết trước khi điều kiện gây nên trễ được giải quyết. Khi các điều kiện được thỏa mãn, các thực thể đó sẽ được truyền tự động từ trạng thái trễ có điều kiện sang trạng thái sẵn sàng theo các thiết kế được xây dựng trong phần mềm.

Không hoạt động

Trạng thái không hoạt động là trạng thái của các thực thể đang chờ trong một khoảng thời gian mô phỏng chưa biết trước khi điều kiện gây ra trễ được giải quyết. Khi các điều kiện được thỏa mãn, các thực thể đó sẽ được truyền từ trạng thái không hoạt động sang trạng thái sẵn sàng theo logic do người thiết kế mô hình đặt ra

3.6 Quản lý thực thể

Phần mềm mô phỏng quản lý các thực thể bằng cách tổ chức chúng thành các danh sách tuyến tính. Mỗi danh sách tương ứng với một trang thái thực thể và được sắp xếp theo thứ tự, với một thực thể nào đó ở trên đỉnh của danh sách và các thực thể khác ở phía sau nó, tới tận cuối danh sách. Hình 3.10 mô tả một danh sách thực thể khái quát, trong đó mỗi một ô hình chữ nhật đại diện cho một thực thể.

Hình 3.10 Danh sách thực thể

Sự sắp xếp thứ tự của danh sách thực thể nêu lên những câu hỏi về các quy luật được sử dụng để xác định thứ tự và vai trò của việc sắp xếp thứ tự trong quản lý danh sách. Khi một thực thể được thêm vào trong một danh sách, làm thế nào để xác định được điểm chèn vào của nó? Khi một thực thể được lấy ra khỏi danh sách, thực thể đó được lấy ra từ vị trí nào? Các thực thể có thể thay đổi vị trí tương quan của chúng trong một danh sách hay không ? Chi tiết về năm loại danh sách thực thể sẽ được miêu tả trong những phần sau đây.

3.6.1 Danh sách thực thể hoạt động (Active – Entity List)

Ở đó chỉ có một thực thể ở trạng thái hoạt động, như vậy danh sách này chỉ có một phần tử. Do đó từ “danh sách” không được dung ở đây. Thực thể hoạt động này di chuyển không ngừng tại thời điểm mô phỏng cho tới khi nó chuyển sang trạng thái khác (chuyển sang sang danh sách khác) hoặc bị huỷ bỏ.

3.6.2 Danh sách sự kiện hiện thời (Current Events List)

Những thực thể ở trạng thái sẵn sàng được tạo thành một danh sách đơn gọi là danh sách sự kiện hiện tại (CEL). Cái tên này phản ảnh rằng những thực thể có trạng thái sẵn sàng đưộc chuẩn bị sẵn để di chuyển tại thời điểm mô phỏng hiện tại và như thế sự di chuyển của chúng sẽ tạo ra các sự kiện (ví dụ như: sự kiện đến, sự chiếm tài nguyên, sự rời bỏ) xuất hiện trong mô hình.

Những quy luật khác nhau có thể được sử dụng để xác định điểm chèn các thực thể vào trong danh sách sự kiện hiện tại. Trong một vài trường hợp, các thực thể di chuyển tới CEL, có thể được đặt vào cuối danh sách. Trong những trường hợp khác, các thực thể có thể được sắp xếp vào CEL theo thứ tự giảm dần khi mà thứ tự ưu tiên là một thuộc tính của thực thể. Thứ tự ưu tiên có thể được giải quyết theo cách chèn thực thể mới vào trong danh sách dưới những thực thể với việc so khớp thứ tự ưu tiên. Trong những trường hợp còn khác, các thực thể có thể được đặt vào đỉnh của CEL. Khi tới thời điểm chuyển một thực thể từ trạng thái sẵn sàng sang trạng thái hoạt động, thực thể thường

được chuyển đi khỏi đỉnh của danh sách sự kiện hiện tại.

3.6.3 Danh sách sự kiện tương lai

Những thực thể trễ thời gian tạo ra một danh danh sách đơn gọi là danh sách sự kiện tương lai (FEL). Cái tên này phản ánh rằng những thực thể này sẽ không cố gắng di chuyển nữa cho tới khi đến thời điểm mô phỏng nào đó trong tương lai đã được biết trước. Danh sách những biến cố tương lai là một kiểu sắp xếp theo kiểu từ trên xuống (top - down) theo sự tăng dần của thời gian di chuyển của thực thể. (Thời gian di chuyển của thực thể là thời gian được mô phỏng tại đó thực thể sẽ thử tạo ra sự di chuyển tiếp của mình hoặc tạo ra một tập những di chuyển trong một mô hình). Khi một thực thể được chèn vào trong FEL, thời gian di chuyển của nó được tính toán bằng cách cộng thời gian của đồng hồ mô phỏng với khoảng thời gian đã biết (đã lấy mẫu) của sự trễ thời gian này. Trật tự về thời gian di chuyển thường được thực hiện theo phương thức “vào trước, ra trước – FIFO”.

Khi một giai đoạn cập nhật đồng hồ xảy ra, thời gian mô phỏng tiếp theo sớm nhất (là khi mà một di chuyển mới xảy ra trong mô hình) bằng thời điểm di chuyển của thực thể nằm tại đỉnh của danh sách sự kiện tương lai. Giai đoạn cập nhật đồng hồ này thiết lập thời gian mô phỏng bằng giá trị thời điểm di chuyển của thực thể này và sau đó chuyển thực thể ra khỏi danh sách FEL và rồi chèn nó vào danh sách các sự kiện hiện thời. Khi một giai đoạn cập nhật đồng hồ bắt đầu, hai hoặc nhiều thực thể tại đỉnh của danh sách sự kiện hiện thời có thể có cùng thời gian di chuyển. Trật tự thời gian di chuyển trong trường hợp này sẽ tùy thuộc vào phần mềm mô hình hóa. Một phương pháp áp dụng là mỗi thực thể có cùng trật tự thời gian này từ FEL sang CEL trong một giai đoạn cập nhật đồng hồ.

Một phương pháp khác là trong trường hợp của trật tự thời gian giống nhau, liên tiếp hai hoặc nhiều hơn giai đoạn cập nhật đồng hồ và các giai đoạn di chuyển thực thể sẽ được thực hiện tại cùng thời điểm mô phỏng.

Những ngôn ngữ mô phỏng có dụng các thực thể nội thương sử dụng FEL để hỗ trợ những thực thể như vậy. Trong đó, FEL thường bao gồm cả thực thể ngoại và thực thể nội. Trong suốt một mô phỏng sự kiện rời rạc, phần mềm mô phỏng như vậy thường chèn các thực thể vào FEL. Nếu danh sách này trở nên dài thì sự tìm ra điểm chèn có thể làm mất khá nhiều thời gian tính toán. Điều này thúc đẩy người thiết kế ngôn ngữ pháp triển những thuật toán có hiệu năng cao trong vịêc tìm kiếm những điểm chèn trong các danh sách. Và kết quả là, một vài phần mềm mô hình hóa dùng FEL không tuyến tính (linear), thay vào đó dung các loại cấu trúc dữ liệu khác. Tuy nhiên, thực tế hóa thì chúng ta có thể hình dung FEL như là tuyến tính.

3.6.4 Các danh sách trễ

Các danh sách trễ bao gồm những thực thể trong trạng thái trễ có điều kiện. Những thực thể này đang chờ các điều kiện gây trể được giải quyết để cho chúng có thể được tự động truyền sang trạng thái sẵn sang trong danh sách sự kiện hiện thời. Có thể có nhiều danh sách trễ trong một mô hình, một (hoặc nhiều) danh sách cho mỗi điều kiện gây ra sự trễ. Điều này trái ngược với sự tồn tại duy nhất một “danh sách” trạng thái hoạt động, danh sách sự kiện hiện thời, và danh sách sự kiện tương lai. Ví dụ như trong hệ thống cảng ở hình 3.4, ở đó có thể là một danh sách trễ bao gồm những chiếc thuyền kiểu A chờ chỗ cập bến kiểu A; danh sách khác bao gồm các kiểu B chờ chỗ cập bến kiểu B; và danh sách khác bao gồm những tàu kiểu A và B đang chờ một hay nhiều tàu kéo.

Khi một thực thể được chèn vào một danh sách trễ, vị trí của nó bằng được xác định bằng việc sử dụng một tiêu chuẩn xếp hạng tạo bởi người xây dựng mô hình. Có thể có các lựa chọn khác nhau. Danh sách trễ đăc trưng bằng danh sách được sắp xếp FIFO (vào trước, ra trước); hoặc LIFO (vào sau, ra trước); hoặc được sắp xếp theo kiểu tăng dần hoặc giảm dần dựa trên một thuộc tính của thực thể do người dùng thiết lập hoặc một biểu thức số học. Tất nhiên là mỗi một phương thức sắp xếp đều có các tác động đối với thứ tự lấy các thực thể đang chờ ra khỏi danh sách trễ và được đặt vào trong trạng thái sẵn sàng vào danh sách sự kiện hiện tại.

Khi một điều kiện gây ra trễ được giải quyết, thực thể được xếp hạng cao nhất trong danh sách trễ tương ứng sẽ được phần mềm tự động chuyển thành trạng thái sẵn sàng thuộc danh sách sự kiện hiện thời.

3.6.5 Thời gian đợi liên kết và thời gian thăm dò

Cả hai phương pháp có thể được phần mềm mô phỏng sử dụng để di chuyển tự động một thực thể ra khỏi các danh sách trễ. Nếu sự trễ có thể dễ dàng được gắn với một sự kiện đơn mà có thể lọa bỏ sự trễ này thì phương pháp thời gian đợi liên kết có thể được sử dụng để quản lý danh sách trễ. Ví dụ, giả sử rằng trạng thái của máy chiếm giữ thay đổi từ trạng thái “bị chiếm giữ” sang trạng thái “rỗi”. Để phản ứng trực tiếp tới sự thay đổi này của trạng thái máy, phần mềm có thể di chuyển thực thể đang chờ xếp hạng cao nhất ra khỏi danh sách trễ tương ứng và đặt nó vào trạng thái sẵn sàng trong danh sách sự kiện hiện thời. (thực thể này sẽ là thực thể tiếp theo sử dụng máy.)

Trong một vài trường hợp, giải pháp cho sự trễ có thể thể yêu cầu hai hoặc nhiều hơn sự kiện đặc biệt xuất hiện trong một mô hình. Việc xảy ra một trong só những sự kiện đó không nhất thiết có nghiã rằng vấn đề trễ đã được giải quyết. Các điều kiện cần được đảm bảo để chuyển một thực thể từ danh sách trễ sang trạng thái sẵn sàng, do đó không thể chỉ đơn giản là có liên quan tới việc xảy ra một sự kiện đơn. Trong những trường hợp này phương pháp thời gian thăm dò có thể được sử dụng để quản lý các thực thể trễ. Trong phương pháp thời gian thăm dò, một thực thể không được chuyển từ một danh sách trễ ngay khi xuất hiện một sự kiện đơn. Thay vào đó, phần mềm mô phỏng kiểm tra lần cuối cùng (với thời gian thực sau đó, nhưng cùng thời gian mô phỏng) để xem liệu sự kết hợp các điều kiện đã xảy đến chưa nhằm bảo đảm việc chuyển một hay nhiều thực thể trễ từ trạng thái trễ sang trạng thái sẵn sàng trên danh sách sự kiện hiện thời.

Một ví dụ cho phương pháp thời gian thăm dò: xem xét một cảng biển trong đó một tàu không thể di chuyển vào trong một chỗ cập bến tới khi có một bến rỗi và một tàu kéo cũng ở trạng thái rảnh rỗi. (giả thiết rằng bến cảng này được quản lý theo cách: trước tiên tàu không đề nghị một bến trống và sau đó sẽ hỏi xem có tàu kéo nào không, mà tàu chờ đợi cho tới khi cả bến và tàu kéo đều đồng thời rảnh rỗi trước khi đề nghị một trong số chúng. Chú ý rằng điều kiện logic ở đây là: “chờ cho tới khi một bến và một tàu kéo cùng rảnh rỗi.” Sự thay đổi trạng thái một bến sang rảnh rỗi không nhất thiết triệt tiêu sự trễ. Sự thay đổi trạng thái của tàu kéo sang rảnh rỗi cũng không nhất thiết triệt tiêu sự trễ. Giải pháp của việc trễ không thể liên hệ với một trong số sự thay đổi trạng thái đơn. Vì vậy phương pháp thời gian thăm dò được sử dụng để xác định xem sự trễ có được giải quyết hay không. Thông thường việc kiểm tra thăm dò được thực hiện thường xuyên và tự động bởi phần mềm mô phỏng tại một điểm nào đó trong giai đoạn di chuyển thực thể (chẳng hạn như khi một giai đoạn di chuyển thực thể đang hoạt động).

3.6.6 Danh sách quản lý người sử dụng

Những danh sách quản lý người sử dụng quản lý bao gồm những thực thể trong trạng thái không hoạt động. Giống như danh sách trễ, có thể có nhiều danh sách được người dùng quản lý trong một mô hình. Tuy nhiên trái ngược với danh sách trễ, danh sách sự kiện hiện tại và tương lai mà được tạo ra và quản lý tự động bởi bằng phần mềm mô phỏng, người thiết kế mô hình phải tự tạo ra các danh sách quản lý người sử dụng và cung cấp logic cần thiết đối với việc chèn thêm vào hay lấy các thực thể ra khỏi những danh sách đó.

Các thực thể tự quyết định xem có tự đưa chúng vào một danh sách quản lý người sử dụng hay không. Khi đang ở trong trạng thái hoạt động, chúng thực hiện các đánh giá do người sử dụng thiết kế ra để quyết định. Ví dụ như trong phạm vị trật tự dịch vụ kiểu “thời gian đáo hạn sớm nhất” được đưa ra ở phần 3.5.5, khi thao tác tiếp theo của thực thể là để sử dụng máy móc, nó có thể đánh giá xem máy này đang rảnh rỗi khong. Thực thể này có thể chiếm được máy nếu như máy đó đang rảnh rỗi hoặc có thể chuyển từ trạng thái hoạt động sang trạng thái không hoạt động trong danh sách quản lý người sử dụng nếu như máy này đang trong trạng thái bị chiếm.

Người thiết kế mô hình thường có nhiều lựa chọn khi chỉ rõ điểm chèn vào danh sách quản lý người sử dụng. Những sự lựa chọn này là tùy thuộc vào sự thực hiện. Phương thức thực hiện có thể bao gồm việc chèn một thực thể vào đáy của một danh sách, vào đỉnh của một danh sách, hoặc vào trong danh sách được xếp hạng theo xu hướng tăng dần hoặc giảm dần dựa vào thuộc tính của thực thể theo đặc trưng người sử dụng.

Những thực thể trong danh sách quản lý người sử dụng không thể tự di chuyển ra khỏi danh sách, và phần mềm mô phỏng cũng sẽ không tự động di chuyển các thực thể ra khỏi danh sách. Việc di chuyển thực thể từ một danh sách quản lý người sử dụng xảy ra khi thực thể khác nào đó làm nó xảy ra. Dựa trên một phép thử cung cấp bởi người thực hiện mô hình hóa, thực thể khác này quyết định xem liệu có nên chuyển một hoặc nhiều thực thế từ một danh sách quản lý người sử dụng nào đó tới trạng trái sẵn sang trong danh sách sự kiện hiện thời hay không.

Người thực hiện mô hình hóa linh hoạt trong việc lựa chọn một hay nhiều thực thể nào để di chuyển khỏi danh sách quản lý người sử dụng. Những lựa chọn đơn giản nhất là di chuyển các thực thể ra khỏi đỉnh hoặc đáy danh sách. Sự lựa chọn phức tạp hơn là quét một lượt danh sách trên xuống dưới, lặp lại việc đánh giá một biểu thức logic được người dùng định nghĩa, đánh giá từng thực thể một, sự di chuyển một hay nhiều thực thể ứng với giá trị “true” của biếu thức logic. Giá trị của biểu thức logic sẽ phụ thuộc vào một hay nhiều thuộc tính của thực thể hiện đang được đánh giá. Những sự lựa chọn mà của người thực hiện mô hình hóa dung để có các quyết định di chuyển thực thể đang trong trạng thái không hoạt động, phụ thuộc vào sự thực hiện phần mềm mô phỏng.

3.6.7 Tổng kết về các danh sách được sử dụng để quản lý thực thể

Những trạng thái thực thể khác nhau và những tên chung được đưa ra các danh sách được sử dụng để quản lý các thực thể trong những trạng thái đó được tổng kết trong bảng 3.2

Bảng 3.2 Các trạng thái thực thể và danh sách thực thể đi kèm

Trạng thái thực thể

Tên chung của danh sách thực thể

Chú thích

Hoạt động

None

Tối đa là một thực thể hoạt động

Sẵn sàng

Danh sách sự kiện hiện thời

Chỉ có một danh sách

Trễ thời gian

Danh sách sự kiện tương lai

Chỉ có một danh sách

Trễ có điểu kiện

Danh sách trễ

Có nhiểu danh sách

Không hoạt động

Danh sách quản lý người dùng

Có nhiều danh sách

Triển khai với 3 trường hợp phần mềm mô phỏng.

Sau đây, chúng tôi sẽ giới thiệu ba phần mềm mô phỏng sự kiện rời rạc gồm có SIMAN [3], ProModel [4] và GPSS/H [2]. Trong đó SIMAN và GPSS/H được dùng chung cho nhiều trường hợp còn ProModel là ứng dụng cho sản xuất.

Table 3.3 Thuật ngữ dùng trong SIMAN

Các cụm từ hay thuật ngữ chung

Thuật ngữ của SIMAN

Thực thể ngoại (External entity)

Thực thể nội (Internal entity)

Tài nguyên (Resource)

Thực thể (Entity)

Ko có thuật ngữ tương ứng

Tài nguyên, khối vận chuyển(Resource, Conveyor, Transporter)

Thành phần điều khiển

Khối bao vây (blockage)

Hoạt động

Khối hay các khối (Block or Blocks)

Danh sách các sự kiện hiện thời ( Curent Events Chain)

Chuỗi các sự kiện hiện thời (Curent Events Chain)

Danh sách các sự kiện tương lai(Future Events list)

Cây sự kiện tương lai

(Future Events Heap)

Danh sách trễ (Delay list)

Hàng đợi đính, Hàng đợi nội

Danh sách do người dùng được quản lý

Hàng đợi tách

Giai đoạn thực thể di chuyển (entity movement giai đoạnse)

Không có từ/cụm từ tương ứng

Giai đoạn cập nhật xung đồng hồ (clock update phase)

Không có từ/cụm từ tương ứng

SIMAN

Các phần sau đây bao gồm (1) việc tóm tắt thuật ngữ của phần mềm SIMAN, (2) các chi tiết của giai đoạn thực thể di chuyển và giai đoạn cập nhật đồng hồ của SIMAN và sự tương tác của chúng với sự hoạt động tương ứng của các danh sách các sự kiện hiện thời và tương lai, và (3) danh sách trễ và danh sách do người dùng quản lý của SIMAN

Thuật ngữ dùng trong SIMAN.

Các thuật ngữ SIMAN tương đương với các thuật ngữ chung được đưa ra ở bảng 3.3.

Các thực thể, tài nguyên, các thành phần điều khiển và các hoạt động.

Trong SIMAN, các thực thể ngoại được gọi là các thực thể. Cũng giống như sự trình bày tổng quát về các thực thể, các thực thể SIMAN được dùng để mô hình hóa đối tượng ở thể động hay tĩnh dang di chuyển trên hệ thống và gây ra sự thay đổi trạng thái của hệ thống. Các thực thể có thể có các thuộc tính (ví dụ như một sản phẩm đang trong quá trình sản xuất thời gian tới, thời gian cần hoàn thành, số nhận dạng khách hàng v...v ). Nhiều loại thực thể ngoại không được định nghĩa chính thức trong SIMAN.

SIMAN dùng các thực thể nội để quản lý sự bắt đầu và sự kết thúc của thời gian tài nguyên không sẵn sàng cho sử dụng (máy móc hỏng, công nhân nghỉ việc ---downtime) và cho sự chấm dứt việc chạy mô phỏng khi thời gian mô phỏng ấn định đã hết. Các thực thể nội này không có tên gọi cụ thể trong SIMAN. (Các thực thể nội có được từ các thành phần được xác định trong tập tin thực hành SIMAN bởi người thực hiện mô hình hóa). Các tài nguyên của SIMAN mô hình hóa các đối tượng thực hiện cung cấp dịch vụ với tư cách các thực thể. Các băng tải (Conveyor) và Máy chuyển hàng (Transporter) là các tài nguyên dùng cho các mục đích đặc biệt tương ứng với việc mô hình hóa sự di chuyển của các đối tượng trên các đường dẫn cố định và đường dẫn tự do trong hệ thống.

Trong SIMAN, các khối (Blocks) được dùng để mô tả hoạt động được thực hiện bởi hoặc trên các thực thể. Các khối được sắp thành chuỗi theo thứ tự các hoạt đông và được kết nối bằng các đường dẫn. Các thực thể di chuyển dọc theo những đường dẫn này từ khối này sang khối khác, kích hoạt sự hoạt động của khối khi chung di chuyển qua. Mỗi loại khối có một từ khóa và các phép tính (toán hạng --- operand) mà các giá trị của chúng cụ thể hóa từng trường hợp các khối.

Ví dụ khối CREATE được dùng để tạo các thực thể trong đó phân bố thời gian giữa hai lần tạo ra thực thể (cùng với biến ngẫu nhiên tương ứng) được quy đinh ở một trong số các phép tính của nó. Khối WAIT được dùng để đặt một thực thể vào trạng thái trễ; nó có một toán hạng để mô tả phân bố của thời gian trễ. Khối SIEZE được dùng bởi thực thể để yêu cầu 1 hay nhiều đơn vị tài nguyên; nó có các toán hạng để nhận dạng từng tài nguyên cụ thể và số các đơn vị tài nguyên yêu cầu v…v. SIMAN cung cấp hơn 40 loại khối.

Chuỗi sự kiện hiện thời (CEC)

Chuỗi sự kiện hiện thời của SIMAN có các đặc điểm của danh sách sự kiện hiện thời được nêu tổng quát trước kia. Các thực thể ở trạng thái sẵn sàng được đưa vào chuỗi này tại giai đoạn cập nhật xung đồng hồ, bởi việc sao chép trong giai đoạn thực thể hoạt động và bởi sự thực hiện thời gian đợi liên kết (related waiting) và thời gian đợi thăm dò (polled waiting) trong giai đoạn thực thể hoạt động. Khi một giai đoạn thực thể hoạt động kết thúc, chuỗi này rỗng.

Giai đoạn thực thể hoạt động. (EMP)

SIMAN không có các tên đặc biệt cho giai đoạn hoạt động thực thể. Hoạt động của một EMP được diễn tả trong sơ đồ ở hình 3.11.

Khi bắt đầu EMP trong SIMAN, ch

ương trình kiểm tra xem

liệu chuỗi sự kiện hiện thời có bao gồm các thực thể ở trạng thái sẵn sàng hay là một chuỗi rỗng (ô số 1 trong hình 3.11). Thường thì sẽ có một hay nhiều thực thể ở trạng thái sẵn sàng nằm trong CEC khi một EMP bắt đầu. Nhưng CEC có thể rỗng bởi vì có các thực thể đang trong trạng thái trễ sử dụng phương thức thời gian chờ thăm dò (polling wating).

Giả thiết một CEC ban đầu không rỗng. Sau khi thực hiện bước kiểm tra (ô số 1), SIMAN đặt thực thể ở vị trí đầu tiên của CEC vào trạng thái hoạt động (ô số 2) và sau đó đưa thực thể này qua nhiều khối/hoạt động (blocks/operations) nhất có thể được cho tới khi thực thể chuyển từ trạng thái tích cực sang trạng thái trễ thời gian (được chuyển tới FEC) hay trạng thái trễ có điều kiện (được chuyển tới một Hàng đợi nội – Internal Queue hay Hàng đợi đính Attached Queue) hoặc thanh trạng thái không hoạt động (được chuyển tới Hàng đợi tách – Detached Queue).

Sau khi một thực thể đã chuyển khỏi trạng thái hoạt động, tích cực, CEC được kiểm tra (ô số 4, hình 3.11) để xem liệu nó đã rỗng chưa. Nếu CEC vẫn chưa rỗng, và giai đoạn thực thể hoạt động thực hiện vòng lặp quay về ô số 2. Quá trình lặp sẽ tiếp tục đến khi CEC rỗng.

Thực thể hoạt động này có thể thực hiện một khối để tạo ra một hoặc vài bản sao của chính nó. Trong trường hợp này, các bản sao được đặt ngay vào trạng thái sẵn sàng ở vị trí đầu tiên trên CEC (trên bất kì trạng thái CEC nào khác) với thứ tự FIFO. Ví dụ như, nếu thực thể hoạt động tạo ra một bản sao thì bản sao này sẽ được đặt vào vị trí đầu trên CEC và sẽ là thực thể sẵn sàng tiếp theo để đưa vào trạng thái hoạt động.

Sau khi CEC rỗng (bởi vòng lặp các ô số 2-3-4), EMP kiểm tra xem có khối SCAN nào trong mô hình này hay không (ô số 5). Các khối SCAN được dùng để thực hiện hiện cơ chế thời gian chờ thăm dò (polled waiting). Khi một khối SCAN được thực hiện, một danh sách trễ tương ứng kiểm tra để xem điều kiện gây ra trễ đã được giải quyết cho thực thể đứng ở vị trí đầu danh sách trễ này hay chưa (ô số 6). Nếu điều kiện trễ đã giải quyết xong, thực thể này chuyển sang trạng thái sẵn sàng ở CEC(ô số 7). Sau khi mỗi khối SCAN được thực hiện, EMP tiếp tục xử lý các thực thể ở trạng thái sẵn sàng xử lí (hộp 2,3,4).

Giai đoạn thực thể hoạt động tiếp tục hoạt động như vậy cho tới khi CEC rỗng và không còn thực thể nào được chuyển sáng trạng thái sẵn sàng bằng cơ chế thời gian chờ thăm dò nữa. Mô hình SIMAN sau đó được cập nhật hoàn tòan tại thời điểm mô phỏng hiện tại. Bước tiếp theo là thực hiện giai đoạn cập nhật đồng hồ tiếp theo.

Figure 3.11 Giai đoạn thực thể hoạt động trong SIMAN

Cây sự kiện tương lai (FEH).

Trong SIMAN, các thực thể trễ thời gian (bao gồm cả thực thể nội và thực thể ngoại) được lưu giữ trong Cây sự kiện tương lai (FEH). Cấu trúc này hoạt động như một danh sách được sắp xếp theo thời gian di chuyển tăng dần. Thực thể có thời gian di chuyển nhỏ nhất là thực thể tiếp theo được đưa ra khỏi FEH khi giai đoạn cập nhật đồng hồ xảy ra. Nếu như có sự trùng hợp thời gian di chuyển, thì thứ tự các thực thể được đưa ra khỏi FEH không nhất thiết phải trùng với thứ tự khi đưa đặt chúng vào cây sự kiện này.

Giai đoạn cập nhật đồng hồ (CUP)

Giai đoạn cập nhật đồng hồ tăng đồng hồ mô phỏng tới giá trị thời gian di chuyển của thực thể hiện đang ở vị trí đỉnh của FEH. Điều gì sẽ diễn a tiếp theo tùy thuộc vào thực thể đó là thực thể nội hay thực thể ngoại. Hình 3.12 trình bày sơ đồ hoạt động của giai đoạn cập nhật đồng hồ dung trong SIMAN.

Figure 3.12 . Giai đoạn cập nhật đồng hồ

Sau khi đông hồ mô phỏng được thiết lập bằng với thời gian di chuyển của thực thể hiện đang ở vị trí đỉnh của FEH (ô số 1, hình 3.12), thực thể được đưa ra khỏi FEH (ô số 2 ) và được kiểm tra xem liệu nó là thực thể ngoại hay thực thể nội. Nếu là thực thể nội, nó sẽ được xử lý ngay lập tức (ô số 4). Nếu là thực thể ngoại, nó được chèn vào vị trí đầu (vào sau ra trước) của chuỗi sự kiện hiện thời (ô số 5).

Việc đưa thực thể ra khỏi FEH có nghĩa là một thực thể nào đó hiện giờ ở vị trí đỉnh của FEH. Để kiểm tra sự trùng lặp thời gian có thể xảy ra, bước tiếp theo (ô số 6) kiểm tra xem liệu thời gian di chuyển của thực thể đứng đầu FEH có trùng với thời gian mô phỏng hiện tại không. Nếu có, thực thể đó được giải quyết theo cách tương ứng (các hộp 2 và 3, 4, 5). Quá trình đó lặp lại tới khi tất cả các thực thể có cùng thời gian di chuyển được đưa ra khỏi FEH. Sau đó SIMAN thực hiên giai đoạn thực thể di chuyển để cập nhật trạng thái của mô hình tại thời điểm mô phỏng mới được thiết lập này.

Hàng Đợi Đính và Hàng Đợi Nội

Đây là hai loại danh sách của SIMAN tạo bởi các thực thể ở trạng thái trễ có điều kiện. Các danh sách này có khả năng được định dạng với các khối như các khối Hold (Hodl blocks). Ví dụ như khối SIEZE được dùng bởi một thực thể để chiếm giữ tài nguyên, là một khối Hold. Nếu một thực thể hoạt động cố thực hiện một khối SEIZE và nhận ra rằng nó phải đợi tới lượt mình để dùng tài nguyên được yêu cầu, nó sẽ được chuyển từ CEC sang trạng thái trễ có điều kiện nằm ở hàng đợi nội hoặc hàng đợi đính và nó sẽ chờ điều kiện Giữ được giải quyết.

Nếu một khối QUEUE có trước một khối Hold, hàng đợi đính được sử dụng. Hàng đợi đính là danh sách của các thực thể đang đợi để thực hiện khối Hold tương ứng. Các thực thể được dưa vào hàng đợi đính theo FIFO hoặc LIFO, hoặc sắp xếp theo giá trị của biểu thức số học mà người thiết kế mô hình tạo ra. Nếu không có khối QUEUE nào đến trước khối Hold, SIMAN dùng một hàng đợi nội cho khối Hold đó. Một hàng đợi nội là hàng đợi chưa được đặt tên được thực hiện theo kiểu FIFO.

Đôi khi, sẽ thuận lợi khi sử dụng các khối Hold cùng loại tại nhiều vị trí trong một mô hình (VD: dùng khối "SEIZE DRILL" ở hai hoặc nhiều nơi trong mô hình). Người thiết kế mô hình có thể gắn kết một hàng đợi đính riêng rẽ với mỗi khối Hold như thế. Đây là kiểu hàng đợi đính không chia sẻ, do các thực thể ở hai hay nhiều hàng đợi đang chờ ở các danh sách trễ riêng rẽ đối với cùngmột Tài nguyên. (Mức ưu tiên của khối Hold được dùng để quyết định hàng đợi đính nào sẽ hỗ trợ thực thể thể tiếp theo chiếm lấy Tài nguyên). Người thiết kế mô hình cũng có thể đặt các thực thể đã trễ tại hai hoặc nhiều khối Hold giống nhau ở cùng một hàng đợi đính, được gọi là hàng đợi đính dùng chung. Thực thể ở vị trí cao nhất trong hàng đợi này sẽ chiếm lấy Tài nguyên trước.

Hàng Đợi Tách.

Là các danh sách thực thểđược SIMAN dùng để thực hiện trạng thái không hoạt động. Các thực thể được đặt trong hàng đợi tách khi chúng thực hiện các khối QUEUE với chức năng DETACHED đi kèm. Các thực thể như thế sau đó được chuyển từ trạng thái không hoạt động sang trạng thái sắn sang bởi tác động của các thực thể khác. (Các thực thể khác dùng các khối như SEARCH và REMOVE, hoặc QPICK và MATCH để chuyển các thực thể từ hàng đợi tách sang CEC.).

3.7.2 ProModel

Trong phần tiếp theo này, thuật ngữ ProModel sẽ được tổng hợp cùng v

ới sự mô tả các chi tiết của giai đoạn thực thể di chuyển và giai đoạn cập nhật đồng hồ và thảo luận về cácht hức xử lý các thực thể trễ trong ProModel. Thuật ngữ của ProModel: Bảng 3.4 so sánh các thuật ngữ của ProModel với các thuật ngữ chung. Nội dung chi tiết về các thuật ngữ được cung cấp sau.

Các Thực Thể: Thực thể ngoại trong ProModel được gọi là Thực Thể. Các lớp thực thể khác nhau phải được định nghĩa khi mô hình hóa trong ProModel. Các lớp thực thể này được gọi là Loại Thực Thể. Các loại thức thể được đựt tên riêng bởi người thiết kế mô hình. ProModel sử dụng các thực thể nội gọi là Các Sự Kiện Nội và hoạt động của chúng được thảo luận dưới đây.

Bảng 3.4. Thuật ngữ ProModel

Cú pháp và thuật ngữ chung

ProModel

Thực thể ngoại

Thực thể

Thực thể nội

Sự kiện nội

Tài nguyên

Tài nguyên, vùng, node

Thành phần điều khiển

Biến

Hoạt động điều hành

Bước xử lý

Danh sách sự kiện hiện thời

Danh sách hoạt động

Danh sách sự kiện tương lai

Danh sách sự kiện tương lai

Danh sách trễ

Danh sách đợi

Danh sách quản lý người dùng

Không có thuật ngữ tương đương

Giai đoạn chuyển thực thể

Không có cú pháp

Giai đoạn cập nhật đồng hồ

Không có cú pháp

Tài Nguyên. Trong ProModel có 3 khái niệm tương ứng với khái niệm chung Tài Nguyên: Vị Trí (Location), Tài Nguyên (Resource) và Nút (Node). Như tên được gọi, Vị Trí (Location) tương ứng với nơi chốn cố định. Chúng được sử dụng để mô hình hóa các thức như các khu vực chờ, các trạm làm việc (workstation), các máy móc cố định. Locations cũng được sử dụng để mô hình hóa băng tải tích lũy (accumulating) và băng tải không tích lũy (nonaccumulating). Tài Nguyên (Resource) có thể được sử dụng để mô hình các vấn đề về con người và các thiết bị. Tài Nguyên có thể là tĩnh, ví dụ như dùng mô hình hóa một công nhân đứng yên điều khiển một máy ở vị trí cố định. Tài Nguyên có thể là động, ví dụ như dùng để mô hình hóa các xe nâng hàng hoặc các công nhân là những người có thể di chuyển từ vị trí này tới vị trí khác trong một hệ thống.

Tài nguyên động (Dynamic Resource) di chuyển qua lại trong mạng lưới được tạo bởi các đường dẫn (mạng lưới đường dẫn - path network). Có một vài kiểu mạng lưới đường dẫn. Ví dụ như có một mạng lưới đường dẫn trong đó các tài nguyên động phải di chuyển theo kiểu hang đơn. Và cũng có mạng lưới đường dẫn khác trong đó các tài nguyên động có thể vượt qua nhau. Các nút (node) là khái niệm tài nguyên khác trong ProModel. Các nút là các điểm bắt đầu và điểm kết thúc của các đường dẫn tạo nên các mạng lưới mà các tài nguyên động di chuyển bên trong đó. Các tài nguyên cạnh tranh lẫn nhau để sử dụng các nút và di chuyển trong mạng trong khi tìm kiếm một cái gì đó ví dụ như để thu hồi lấy hoặc một vị trí trống.

Bởi vì các tài nguyên động di chuyển, thời điểm chúng di chuyển có ý nghĩa quyết định. Bởi vì chúng cạnh tranh để dành lấy các nút nên sự trễ có thể có cũng có ý nghĩa quyết định đối với chúng. Kết quả là, các tài nguyên động có vẻ giống với các thực thể (Trong khi các thực thể là các đơn vị lưu lượng di chuyển xuyên qua hệ thống và là các người dung dịch vụ, thì các tài nguyên động là các đơn vị của lưu lượng di chuyển bên trong hệ thống và là các nhà cung cấp dịch vụ). Giống như các thực thể, các tài nguyên động có thể được đặt vào trạng thái trễ thời gian trong khi chúng đợi một khoảng thời gian tương lai đã biết trước khi mà chúng sẽ đến được đích của chúng. Chúng cũng có thể chuyển từ trạng thái trễ thời gian sang trạng thái sẵn sàng, và sau đó vào trạng thái hoạt động. Do có sự cạnh tranh dành lấy các nút, chúng cũng có thể được coi là thích hợp đối với trạng thái trễ có điều kiện. ProMode sử dụng danh sách sự kiện tương lai (Future Events List), danh sách hoạt động (Action List), và danh sách chờ (Waiting Lists) không chỉ để quản lý các thực thể mà còn quản lý các tài nguyên động. Các danh sách sự kiện tương lai và danh sách hoạt động cũng được sử dụng để quản lý các sự kiện nội (Internal Events).

Các phần tử điều khiển (Control Elements). Trong ProModel, một Biến (Variable) là một phần tử dữ liệu dùng cho nhiều mục đích mà giá trị của nó có thể là một đối tượng của một ProModel WAIT UNTIL. Giống như tất cả các phần tử điều khiển khác, một Biến (sử dụng trong việc kết hợp với một WAIT UNTIL) có khả năng gây ra trễ cho các thực thể.

Các hoạt động (Operations)Phần luồng di chuyển (transaction-flow) của ProModel là được tạo ra bởi người thiết kế mô hình, như là một tập hợp có thứ tự của các Bước Chu Trình (Process Steps) nằm trong một Bảng Chu Trình (Process Table). Mỗi một bước chu trình định ra tên của của một hoặc tất cả các loại thực thể (Entity Type) và tên của một hoặc tất cả vị trí (Location). Một thực thể di chuyển từ mợt bước chu trình tới bước khác trong một bảng chu trình bằng cách nhảy đến bước chu trình tiếp theo phù hợp với loại (Type) và vị trí (Location) của nó (lặp lại việc quay lại đỉnh của bảng chu trình nếu cần thiết). Các bước chu trình này xác định rõ cái mà loại thực thể (Entity Type) này phải làm tại vị trí (Location) này.

Logic hoạt động (Operation Logic) và logic định tuyến (Routing Logic) là các thành phần tạo nên các bước chu trình (Process Step). Một bước chu trình có thể bao gồm không (zero) hoặc nhiều hơn các thành phần đó. Sự cạnh tranh giữa các thực thể đối với các tài nguyên không có khả năng chuyển tải thực hiện bởi logic hoạt động. Sự cạnh tranh giữa các thực thể đối với các vị trí (Location) và các tài nguyên có khả năng chuyển tải được giải thích rõ ràng trong logic định tuyến . Logic định tuyến được ứng dụng sau khi logic hoạt động đã được thực hiện.

Nhiều khái niệm định nghĩa mô hình trong ProModel có các tùy chọn theo bởi người sử dụng ví dụ như logic thời gian dừng hoạt động (Downtime Logic ) và logic thoát kỏi vị trí (Location Exit Logic). Logic là tập hợp của các câu lênh để thực hiện một cách tự động và sự thực hiện của chúng có khả năng đặt các sự kiện nội vào danh sách sự kiện tương lai. Khi được xử lý, các sự kiện nội này có thể quay lại danh sách sự kiện tương lai hoặc quay lại danh sách trễ. Chúng cũng có thể làm cho các thực thể hoặc các tài nguyên động được đưa vào danh sách sự kiện hiện thời.

Danh sách hoạt động (Action List). Danh sách hoạt động là tên gọi dùng trong ProModel đối với danh sách các sự kiện hiện thời. Danh sách hoạt động có thể bao gồm các thực thể, tài nguyên động và các sự kiện nội (Thuật ngữ phần tử - element sẽ được sử dụng kể từ đây dung để gọi một thực thể, một tài nguyên động hoặc một thực thể nội bất kỳ). Danh sách hoạt động trống rỗng khi một giai đoạn thực thể hoạt động bắt đầu. Nghĩa là không có phần tử nào ở trong trạng thái sẵn sàng. Tuy nhiên, một thực thể, một tài nguyên động, hoặc một sự kiên nội đã ở trong trạng thái hoạt động tại thời điểm này. Các thực thể, các tài nguyên động, và các thực thể nội có thể được đặt vào danh sách hoạt động khi khi phần tử ở trạng thái hoạt động này bắt đầu được di chuyển. Bất kỳ một phần tử mới nào của danh sách này đều được đặt vào đầu danh sách. Khi phần tử hoạt động chuyển từ trạng thái hoạt động, phần tử tại đầu danh sách hoạt động sẽ chuyển sang trạng thái hoạt động. Đây là kết quả trong cách quản lý danh sách hoạt động theo kiểu LIFO (Last-in, First Out).

Giai đoạn thực thể hoạt động (Entity Movenment Phase). Giai đoạn thực thể hoạt động của ProModel được chỉ ra trong hình 3.13. Một phần tử ở trong trạng thái hoạt động khi giai đoạn thực thể hoạt động bắt đầu (được giải thích trong phần giai đoạn cập nhật đồng hồ sau đây), và danh sách hoạt động hiện đang trống. Nếu phần tử hoạt động là một thực thể hoặc một tài nguyên động (ô 1, hình 3.13), nó thực hiện các hoạt động cho đến khi nó bị ép chuyển ra khỏi trạng thái hoạt động (ô số 2). rường hợp khác, nó là một sự kiện nội và tất cả logic tương ứng được thực hiên trên nó (ô số 3)

Theo cách khác, một hoặc hơn một phần từ mới ở trạng thái sẵn sàng có thể được tạo ra và như vậy sẽ được đưa vào danh sách hoạt động theo kiểu LIFO (ví dụ như một thực thể có thể tạo ra một hoặc nhiều hơn bản sao của chính nó). Trong trương hợp này (lựa chọn “no” từ ô số 4, hình 3.13), phần tử hiện tại ở đỉnh của danh sách hoạt động được biến thành phần tử hoạt động (ô số 5) và giai đoạn thực thể hoạt động được tiếp tục. Nếu không thì danh sách hoạt động này trở nên trống và một giai đoạn cập nhật đồng hồ thực hiện tiếp theo (lựa chọn “yes”, ô số 4).

Danh sách sự kiên tương lai (Future Events List). Danh sách sự kiện tương lai của ProMode tạo bở các phẩn tử như thực thể, tài nguyên động, sự kiện nội hiện đang trong trạng thái trễ và chờ. Các phần tử này được sắp xếp trong danh sách từ trên xuống dưới theo thứ tự tăng dần của thời gian di chuyển. ProModel luôn luôn di chuyển duy nhất một phần tử từ đỉnh của danh sách trong mỗi giai đoạn cập nhật đồng hồ (điều này có nghĩa rằng trong trường hợp các phần tử có trùng thời gian di chuyển, sẽ có hai hoặc nhiều hơn giai đoạn cập nhật đồng hộ và giai đoạn thực thể hoạt động tại cùng thời điểm mô phỏng).

Giai đoạn cập nhật đồng hồ (Clock Update Phase). Giai đoạn cập nhật đồng hồ của ProModel được tổng hợp trong hình 3.14. Giai đoạn này bắt đầu bằng cách thiết lập đồng hồ mô phỏng bằng với thời gian di chuyển của phần tử tại đỉnh của danh sách sự kiện tương lai (ô số 1). Phần tử này được đặt ngay lập tức vào trạng thái hoạt động (ô số 2) và chấm dứt giai đoạn cập nhật đồng hồ và bắt đầu giai đoạn di chuyển thực thể. Trong ProModel, không có các thực thể ở trạng thái sẵn sàng khi một giai đoạn thực thể hoạt động bắt đầu. (danh sách hoạt động hiện đang trống). Hơn nữa, nếu có 2 hoặc nhiều hơn các phần tử tại đỉnh của danh sách sự kiện tương lai có cùng thời gian di chuyển, 2 hoặc nhiều hơn giai đoạn cập nhật đồng hồ và giai đoạn thực thể hoạt động liên tiếp sẽ được thực hiện tại cùng thời điểm mô phỏng.

Danh sách chờ (Waiting Lists). Danh sách chờ là các danh sách trễ của ProModel dành cho các thực thể và các tài nguyên động. Một danh sách chờ cho các thực thể được gắn với mỗi vị trí, mỗi tài nguyên tĩnh, mỗi tài nguyên động, và mỗi Biến tùy theo một WAIT UNTIL. Một dạm sách chờ dành cho các tài nguyên động được gắn với mỗi Nút.

Một thực thể đơn (hoặc tài nguyên động) có thể xuất hiện đồng thời trong nhiều danh sách trễ. Hệ quả là ProModel không sử dụng phương pháp thời gian chờ thăm dò để giải quyết các trễ phức hợp.

Fig. 3.13 Giai đoạn thực thể hoạt động

Thay vào đó, phương pháp thời gian chờ liên kết được sử dụng để quản lý các danh sách chờ cùng với việc ProModel di chuyển thực thể này hoặc tài nguyên động này khỏi tất các các danh sách trễ lien quan sớm ngay khi co chế thời gian chờ liên kết chuyển giao thực thể này hoặc tài nguyên động này từ một trong các danh sách đó tới danh sách hoạt động.

ProModel không có các danh sách tương đương với danh sách do người dùng quản lý. Tuy nhiên , JOIN, LOAD và SEND là các logic định tuyến tùy chọn sẽ đặt các thực thể vào các danh sách vị trí riêng biệt. Tại đó chúng chờ một câu lệnh hoạt động JOIN, LOAD hoặc SEND tương ứng được thực hiện bởi một thực thể khác tại vị trí đích này. Bởi vì các danh sách này là đặc trưng cho vị trí nên chúng được coi như thuộc về các danh sách trễ.

Hình 3.14 Giai đoạn cập nhật xung đồng hồ ProModel

3.7.3 GPSS/H

Trong những mục tiếp theo, chúng ta sẽ tóm lược về thuật ngữ GPSS/H, mô tả các chi tiết hoạt động của giai đoạn thực thể hoạt động và giai đoạn cập nhật đồng hồ trong GPSS/H và thảo luận về các danh sách do người dùng quản lý.

Thuật ngữ GPSS/H: Bảng 3.5 bao gồm các thuật ngữ GPSS/H tương đương với nhiều thuật ngữ chung khác mà đã được trình bày ở phần trước.

Bảng 3.5 – Thuật ngữ GPSS/H

Các cụm từ và thuật ngữ chung

Thuật ngữ tương đương trong GPSS/H

Thực thể ngoại

Lưu lượng (transaction)

Thực thể nội

Lưu lượng hệ thống

Nguồn tài nguyên

Phương tiện, Nguồn lưu trữ

Phần tử điều khiển

Chuyển mạch Logic, Biểu thức số học, Biểu thức Boolean

Hoạt động

Khối

Danh sách sự kiện hiện thời

Chuỗi sự kiện hiện thời

Danh sách sự kiện tương lai

Chuỗi sự kiện tương lai

Danh sách trễ

Chuỗi sự kiện hiện thời

Danh sách người dùng được quản lí

Chuỗi người sử dụng

Gian đoạn thực thể hoạt động

Giai đoạn quét

Gian đoạn cập nhật đồng hồ

Gian đoạn cập nhật đồng hồ

Các thực thể, Tài nguyên, Phần tử điều khiển và Hoạt động:

Trong GPSS/H, các thực thể ngoại được gọi là Lưu Lượng (gọi tắt là Xacts). Không có định nghĩa chính thức về các lớp lưu lượng. Các lưu lượng sở hữu những thuộc tính có giá trị là các số. Chức năng của các thuộc tính này do người thiết kế mô hình quyết định. Người ta sử dụng một thuộc tính lưu lượng đặc biệt gọi là Mức Ưu Tiên (Priority Level) để quyết định thứ tự của một lưu lượng khi đưa nó vào danh sách các sự kiện hiện thời.

GPSS/H sử dụng một số các thực thể nội gọi là Lưu lượng hệ thống ( System Transactions). Các Lưu lượng hệ thống có nhiệm vụ thiết lập các quá trình đến (arrival processes), hỗ trợ một số loại quan sát thống kê cũng như các thuật toán xử lý danh sách được dùng để quản lý danh sách sự kiện hiện thời và danh sách sự kiện tương lai. Trong một số trường hợp, GPSS/H sử dụng danh sách sự kiện tương lai để quản lý việc xác định thời gian của các lưu lượng hệ thống. GPSS/H không sử dụng các thực thể nội để mô hình hóa thời gian ngừng hoạt động (downtime) của tài nguyên hay thời gian dừng mô phỏng. Thay vì đó, các thực thể ngoại (Transactions) sẽ làm điều này. Các thực thể ngoại này sẽ thực thi các khối (Blocks) (được thảo luận dưới đây) để thực hiện logic của thời gian ngừng hoạt động và thời gian dừng mô phỏng.

Các phương tiện và nguồn lưu trữ dùng để mô hình hóa các tài nguyên. Các phương tiện (Facility) mô hình hóa các tài nguyên có dung lượng là một đơn vị. Nghĩa là một phương tiện là một tài nguyên mà chỉ có thể phục vụ một lưu lượng tại một thời điểm.

Trong khi đó, nguồn lưu trữ (Storages) mô hình hóa các tài nguyên mà có thể có dung lượng bất kỳ tùy ý người dùng. Nghĩa là nguồn lưu trữ (Storages) có khả năng phục vụ đồng thời nhiều lưu lượng.

Trong GPSS/H, chuyển mạch Logic là các biến on/off được dùng để điều khiển. Các lưu lượng có thể bị buộc phải chờ cho đến khi một chuyển mạch Logic định trước nằm trạng thái được chỉ định. Các lưu lượng có thể di chuyển tuần tự hoặc không tuần tự. Điều này phụ thuộc vào việc chuyển mạch Logic định trước có ở trạng thái được chỉ định hay không.

Biểu thức số học và biểu thức Boolean cũng có thể được sử dụng như là các phần tử điều khiển trong GPSS/H. Các lưu lượng có thể bị buộc phải chờ cho đến khi một biểu thức số học định trước thỏa mãn các điều kiện có liên quan định trước (hoặc cho đến khi biểu thức Boolean có giá trị thực định trước). Hoặc các lưu lượng có thể đi theo đường dẫn không tuần tự tùy thuộc vào giá trị của do một biểu thức số học hoặc một biểu thức Boolean.

Trong GPSS/H, khối (blocks) được sử dụng để mô tả các hoạt động do các lưu lượng tiến hành hoặc thực thi trên chúng. Các Block được sắp xếp tuần tự theo trật tự các hoạt động và liên kết với nhau bằng đường dẫn. Các lưu lượng di chuyển dọc theo đường dẫn từ khối này đến khối và kích hoạt sự hoạt động của khối khi chúng di chuyển. Mỗi loại khối có một từ khóa và toán hạng trong đó giá trị của chúng nêu rõ các trường hợp của từng loại khối. Ví dụ như, khối GENERATE được sử dụng để tạo ra lưu lượng trong đó sự phân bổ cùng vơi một biến ngẫu nhiên của thời gian giữa hai lần tạo lưu lượng được định trước trong một toán hạng. Khối ADVANCE được dùng để đưa 1 lưu lượng vào trạng thái trễ thời gian và khối này một toán hạng để mô tả sự phân bố của thời gian trễ. Trong khi đó, một lưu lượng sử dụng khối SEIZE để yêu cầu 1 phương tiện và SEIZE có 1 toán hạng để xác định phương tiện cần thiết. GPSS/H cung cấp khoảng 65 loại khối.

Chuỗi sự kiện hiện thời (CEC):

Chuỗi sự kiện hiện thời của GPSS/H gồm các lưu lượng ở trạng thái sẵn sàng. Nó cũng có các lưu lượng ở trạng thái hoạt động. Ngoài ra, chuỗi các sự kiện hiện thời có chức năng giống như một danh sách trễ GPSS/HH toàn cục, gồm các lưu lượng trễ có điều kiện trong mô hình. Các lưu lượng này được trộn lẫn với lưu lượng ở trạng thái hoạt động và các lưu lượng ở trạng thái sẵn sàng trên CEC.

Các lưu lượng có 1 thuộc tính mang trị số riêng biệt – được gọi là Mức Ưu Tiên. Mức ưu tiên của một lưu lượng được gán cho lưu lượng khi tạo ra nó và có thể được thay đổi liên tục trong suốt thời gian hoạt động của lưu lượng đó. Các lưu lượng ở CEC được sắp xếp theo kiểu FIFO theo mức độ ưu tiên. Nghĩa là lưu lượng nào đến trước sẽ được đáp ứng trước theo mức độ ưu tiên. (Chuỗi người sử dụng (được thảo luận dưới đây) được sử dụng để mô hình hóa những thứ tự dịch vụ khác)

GPSS/H cũng có một cơ cấu

 

hàng đợi (queue) và một khối hàng đợi (khối QUEUE), nhưng ko giống như khối QUEUE của SIMAN, khối QUEUE của GPSS/H không thực hiện chức năng quản lý danh sách. QUEUE của GPSS/H được sử dụng với mục đích duy nhất là thu thập các giá trị thống kê. Phù hợp với thực tế là, ngoại trừ CEC (và một số danh sách trễ bên trong hỗ trợ CEC được thảo luận dưới đây), không có thêm danh sách trễ nào trong GPSS/H. Chính nhờ có chức năng của danh sách trễ mà GPSS/H CEC thường không ở tình trạng trống rỗng khi một giai đoạn thực thể hoạt động kết thúc.

Giai đoạn quét (Scan phase)

Trong GPSS/H, giai đoạn thực thể hoạt động được gọi là giai đoạn quét (Scan Phase). Giai đoạn này chịu trách nhiệm đưa các lưu lượng trễ có điều kiện và các lưu lượng ở trạng thái sẵn sàng vào chuỗi danh sách hiện thời. Trong một giai đoạn quét, từ đầu tới cuối của 1 CEC, các lưu lượng có thể được kiểm tra tra nhiều lần. Đó là vì khi một lưu lượng ở trạng thái hoạt động thực hiện một khối mà khối này giải quyết vấn đề trễ, các lưu lượng trễ có điều kiện này có thể ở đâu đó phía trên lưu lượng đang hoạt động này trong CEC.

Các lưu lượng trễ có điều kiện chuyển đổi từ trạng thái trễ có điều kiện sang trạng thái sẵn sàng và sau đó phải được chuyển sang trạng thái hoạt động rồi được di chuyển trước khi đồng hồ mô phỏng thay đổi giá trị.

Sau khi lưu lượng hoạt động này ra khỏi trạng thái hoạt động, giai đoạn quét quay lại lưu lượng nằm tại vị trí đầu của CEC và từ đó bắt đầu kiểm tra lại từ trên xuống dưới để đảm bảo là nó sẽ phát hiện được các lưu lượng bất kì nào đó có thể vừa chuyển từ trạng thái trễ có điều kiện sang trạng thái sẵn sàng.

Hình 3.15: Giai đoạn thực thể hoạt độngGPSS/H

Logic của giai đoạn thực thể hoạt động trong GPSS/H (giai đoạn quét) được thể hiện dưới dạng biểu đồ ở hình 3.15. Trong biểu đồ này, các đối tượng khác nhau được đánh số để thuận tiện cho quá trình thảo luận. Theo đó, GPSS/H bắt đầu từ một giai đoạn quét (Scan Phase) kèm 1 sự kiểm tra (ô 1) để xem liệu có lưu lượng nào đang ở trong CEC hay không. (CEC có thể trống nếu giai đoạn quét xảy ra tại thời điểm mô phỏng 0.0 hoặc nếu giai đoạn quét khởi động lại). Nếu CEC trống, giai đoạn cập nhật đồng hồ tiếp tục(đường dẫn “no” từ ô 1)

Giả sử có một lưu lượng ở đỉnh CEC. Nếu lưu lượng này ở trạng thái sẵn sàng (ô số 2), lưu lượng này được kích hoạt và di chuyển ( ô 3) cho đến khi nó buộc phải chuyển sang trạng thái hoạt động. Sau đó kiểm tra (ô 4) để quyết định xem liệu những việc làm này có thể giải quyết được 1 hay nhiều điều kiện gây trễ hay không. Nếu trễ có thể được giải quyết, quá trình quét của CEC bắt đầu từ đỉnh của CEC (đường dẫn “yes” từ ô 5). Nếu không có lưu lượng nào tiếp theo, lưu lượng cuối cùng trên CEC được thực hiện và giai đoạn cập nhật đồng hồ thực hiện tiếp theo (đường dẫn “no” từ ô số 5)

Nếu lưu lượng được xử lí ở ô 2 trong hình 3.15 không ở trạng thái sẵn sàng, nó là một lưu lượng trễ có điều kiện. Trong trường hợp như vậy sẽ có một đường dẫn “no” từ ô số 2 đến ô số 5. Mục đích là nhằm bỏ qua các lưu lượng trễ có điều kiện trong suốt giai đoạn quét. Phương thức thực hiện của GPSS/H, trong đó thực hiện việc giữ lại các lưu lượng trễ có điều kiện trong CEC và kiểm tra chúng 1 hoặc nhiều lần trong suốt giai đoạn quét để xem liệu chúng có được đưa vào trạng thái sẵn sàng chưa, có nghĩa là tất cả các lưu lượng này đang

ở trong cơ chế thời gian chờ thăm dò

.

Chuỗi sự kiện tương lai:

Trong GPSS/H, danh sách các sự kiện tương lai còn được gọi là Chuỗi sự kiện tương lai (FEC) . Các

lưu lượng

được sắp xếp trên FEC theo trật tự thời gian di chuyển tăng dần. Với các thời gian di chuyển trùng nhau (move-time ties) thì giải quyết bởi cách thức vào trước cũng sẽ ra trước (FIFO). Giai đoạn cập nhật đồng hồ của GPSS/H lấy ra nhiều lưu lượng từ chuỗi sự kiện tương lai theo trật tự từ trên xuống dưới nếu như chúng có cùng thời gian di chuyển sớm nhất, đưa chúng lần lượt vào chuỗi sự kiện hiện thời (sắp xếp theo mức độ ưu tiên)

Giai đoạn cập nhật xung đồng hồ

Nguyên lý của giai đoạn cập nhật đồng hồ được thể hiện ở hình 3.16. Thời gian mô phỏng được thiết lập bằng với thời gian di chuyển của lưu lượng từ đầu trong chuỗi các sự kiện tương lai (ô số1); sau đó các lưu lượng được chuyển từ chuỗi sự kiện tương lai sang chuỗi các sự kiện hiện thời (ô số 2). Thực hiện kiểm tra (ô số 3) để xem liệu thời gian di chuyển của lưu lượng ở đầu của chuỗi sự kiện tương lai có khớp với thời gian mô phỏng không. Nếu khớp, lưu lượng này sẽ chuyển từ đầu chuỗi FEC sang chuỗi CEC (xem đường dẫn “yes” từ ô số 3 lên ô số 2). Qúa trình quay vòng này lặp đi lặp lại cho đến khi lưu lượng ở vị trí đầu trong chuỗi sự kiện tương lai có thời gian di chuyển vượt thời gian mô phỏng hiện thời. Pha cập nhật đồng hồ hoàn tất và giai đoạn quét tiếp tục (đường dẫn “no” từ ô số 3)

Chuỗi người sử dụng

GPSS/H thực hiện trạng thái không hoạt động với chuỗi người sử dụng – hay chính là danh sách do người dùng quản lí của các lưu lượng. Các lưu lượng có thể được đưa vào chuỗi người dùng ở đầu, ở cuối hoặc sắp xếp theo thứ tự tăng dần dựa theo thuộc tính lưu lượng được chỉ định bởi người thiết kế mô hình.

Sau khi một Transaction tự đưa nó vào chuỗi người sử dụng, nó chỉ có thể bị 1 lưu lượngở trạng thái hoạt động loại bỏ. Thứ tự chuyểnTransaction ra khỏi chuỗi người dùng có thể từ trên xuống dưới, từ dưới lên trên hoặc có thể dựa vào giá trị của của biểu thức Boolean xác định bởi người sử dụng.

Các lưu lượng bị di chuyển được đưa vào trạng thái sẵn sàng trong chuỗi sự kiện hiện thời và cờ báo hiệu thay đổi trạng thái bật. Kết quả là, quá trình quét CEC sẽ bắt đầu trở lại (đường dẫn “yes” từ ô số 4 quay lại ô số 1 trên hình 3.15) sau khi lưu lượng hoạt động chuyển từ trạng thái hoạt động. Điều này đảm bảo rằng các lưu lượng mới tới ở trạng thái sẵn sàng sẽ được đưa vào trạng thái hoạt động trong chuỗi sự kiện hiện thời trước khi giai đoạn cập nhật đồng hồ diễn ra.

Hình 3.16 – Giai đoạn cập nhật xung đồng hồ trong GPSS/H

Bạn đang đọc truyện trên: Truyen2U.Pro