e, Phƣơng pháp nghiên cứu:
3.5 MỘT SỐ PHẦN MỀM MÔ PHỎNG
3.5.1 GPSS
GPSS: General Purpose Simulation System (Hệ thống mô phỏng mục đích tổng quát) đƣợc viết bởi Gordon năm 1961. “Chƣơng trình mô phỏng GPSS bao gồm một tập hợp các khối và các kết nối giữa chúng.” Đây là ngôn ngữ hƣớng quá trình có các khối để biểu diễn các quá trình, các hình ảnh mô phỏng chuyển động theo quá trình mô phỏng rất thuận tiện cho việc theo dõi quá trình mô phỏng.
Mục đích của ngôn ngữ là mô phỏng sự kiện rời rạc và mô hình hệ thống. Một chƣơng trình mô phỏng GPSS bao gồm một tập hợp các khối, và các kết nối giữa chúng. Khối các loại bao gồm máy phát điện, hàng đợi, máy chủ, chọn / thiết bị định tuyến, bộ lọc, bộ sƣu tập dữ liệu, thời gian và các nút tính toán, và các loại khác nhau. Các loại dữ liệu hỗ trợ trong các mô hình mô phỏng khác nhau giữa các phiên bản, nhƣng thƣờng bao gồm các số nguyên, số thực, chuỗi, và bảng ghi. Hệ thống GPSS luôn luôn có bộ phân tích các biến ngẫu nhiên để phân phối các mô hình có xác suất khác nhau phát sinh trong mô hình hóa. Điều này đặc biệt tốt phù hợp cho các vấn đề nhƣ một nhà máy.
IBM tạo ra GPSS, và bán GPSS II và III, GPSS/360, GPSS V, các nhà cung cấp khác tạo ra phiên bản cao cấp (GPSS / H, GPSSR / PC), phiên bản thân thiện với ngƣời sử dụng (GPSS / PC), và theo định hƣớng các phiên bản Unix ( GPSS / C). Các phiên bản của GPSS sau khoảng 1988 hỗ trợ các phần mở rộng khác nhau cho đầu vào và đầu ra tinh vi hơn. Ví dụ, GPSS / H hỗ trợ hệ thống mô phỏng mở rộng (Tess), cho phép mô phỏng để sử dụng cơ sở mối quan hệ giữa các dữ liệu, có đƣợc đầu vào với các hình thức, vẽ đồ thị,… Một số phiên bản, có cả hình ảnh động hỗ trợ thực hiện mô phỏng.
GPSS đã đƣợc phổ biến trong cuối những năm 1960 và đầu những năm 1970 nhƣng đến giữa những năm 1990, GPSS đã đƣợc thay thế phần lớn trong ngành công nghiệp bởi các công cụ mới, tƣơng tác nhiều hơn, linh hoạt và các ngôn ngữ phức tạp hơn (ví dụ nhƣ Simula và SIMSCRIPT II.5). Tuy nhiên nó vẫn có thể đƣợc sử dụng nhƣ một công cụ giảng dạy trong nghiên cứu các kỹ thuật mô phỏng sự
35 kiện rời rạc.
3.5.2 SIMAN/ARENA
SIMAN/ARENA tạo bởi Rockwell Automation , Inc.
SIMAN - ngôn ngữ mô phỏng cho phép mô phỏng các mô hình của cả hệ thống mô phỏng liên tục và rời rạc. Ngôn ngữ này làm giảm số lƣợng mã cần thiết để xây dựng một mô hình bao gồm một loạt các tính năng thích hợp để mô phỏng trên máy tính một các nhanh chóng và chính xác. Khái niệm của SIMAN sẽ gặp một chút vấn đề khi sử dụng, nhƣng một khi đã nắm vững, nó cung cấp một cơ chế mạnh mẽ cho việc xác định mô phỏng. Để định nghĩa chƣơng trình SIMAN , khối dữ liệu đƣợc định nghĩa và kết hợp theo nhiều cách khác nhau. SIMAN là một môi trƣờng mô phỏng với nhiều khả năng tích hợp dành riêng cho quy trình sản xuất. Ví dụ ứng dụng để mô phỏng hệ thống giao thông vận tải.
Làm việc với SIMAN ngƣời sử dụng cần tạo ra các tập tin khác nhau về đối tƣợng mô phỏng, sau đó biên dịch và liên kết chúng. Chạy chƣơng trình mô phỏng liên kết có khả năng kết nối các thông tin trên giao diện C. Cuối cùng SIMAN có thể phân tích đầu ra, xử lý quá trình và đƣa ra kết quả mô phỏng. Quy tắc mềm với nhiều biến ngẫu nhiên dễ dàng cho phép ngƣời dùng sửa đổi, bổ sung hoặc lặp lại những bƣớc sau
SIMAN đƣợc chia thành hai phần logic: Khung mô hình và khung báo cáo. Khung mô hình đƣợc xây dựng gọi là khối. Khối đƣợc sử dụng để mô tả logic tác động của các thực thể và yếu tố đầu vào của mô hình. Mỗi khối có một biểu tƣợng tƣơng ứng, ảnh và biểu tƣợng này có thể đƣợc kết hợp vào một sơ đồ khối tuyến tính từ trên xuống. Đồ họa mô phỏng dòng chảy của các thực thể thông qua hệ thống. Một số nhà phân tích xây dựng sơ đồ khối trƣớc khi mã hóa các mô hình khung báo cáo. Khung báo cáo đƣợc sử dụng để xác định giá trị tham số cụ thể cho các hoạt động mô phỏng nhƣ tài nguyên và số lƣợng số liệu thống kê đầu ra mong muốn. Hai thành phần này của SIMAN giúp cho ngƣời mô phỏng có thể cho hai mô phỏng chỉ khác nhau một số giá trị tham số chạy riêng biệt mà không cần biên dịch lại khung mô hình.
36
Bộ xử lý đầu ra của SIMAN cho phép thực hiện thủ tục thống kê nhƣ khoảng tin cậy và cấu hình hệ thống. Hơn nữa giao diện đồ họa của mô hình hỗ trợ hình ảnh động trực tuyến trong thời gian chạy mô phỏng. (Nó đƣợc gọi là Rạp chiếu phim, một phần mở rộng của các SIMAN). Ngoài ra ngƣời sử dụng có thể lựa chọn dữ liệu đầu ra theo mong muốn sau khi chạy mô phỏng.
SIMAN đƣợc sử dụng kết hợp với môi trƣờng ARENA. SIMAN đƣợc chấp nhận nhanh chóng bởi đó là ngôn ngữ mô phỏng đầu tiên tích hợp dễ dàng với máy tính với tính năng đặc biệt cho mô phỏng chuyển động của các băng tải và xe tự động. SIMAN và SLAMII là những ngôn ngữ mô phỏng, có cùng nguồn gốc.
3.5.3 SIMPY
SimPy (Simulation in Python) là một gói phần mềm mô phỏng sự kiện rời rạc theo định hƣớng quá trình và trên tiêu chuẩn Python và phát hành dƣới GNU GPL (General Public License). Đây là một công cụ cho phép ngƣời sử dụng gỡ lỗi trực quan và có thể tạo ra cửa sổ cho các đối tƣợng khác nhau. Python có khả năng mạnh mẽ để lƣu và khôi phục hầu nhƣ bất kỳ loại cấu trúc dữ liệu.
Trong Simpy, các thành phần đƣợc cung cấp để xây dựng mô hình và chia theo 2 loại: thành phần hoạt động và các thành phần thụ động. Các thành phần hoạt động đƣợc bao gồm khách hàng, phƣơng tiện, tài nguyên,…Các thành phần thụ động bao gồm máy chủ, truy cập kiểm tra, đƣờng truyền, vv… Biến ngẫu nhiên thƣờng đƣợc sử dụng bởi các modul Python ngẫu nhiên tiêu chuẩn và nó cũng đã có những ứng dụng lớn.
3.5.4 SIMCRIPT
SIMCRIPT: (H.Markowitz et al, Rand Corporation, 1962).
SIMSCRIPT là một ngôn ngữ mô phỏng với tính năng khai báo thủ tục, đƣợc thiết kế cho mô hình rời rạc, liên tục hoặc kết hợp. Nó đã đƣợc sử dụng và phát triển liên tục từ khi phát minh vào năm 1962 sau đó đƣợc cải tiến nhiều lần với nhiều phiên bản khác nhau nhƣ SIMCRIPT 1.5, SIMCRIPT II.5. Đây là một ngôn ngữ lập trình mức cao đƣợc thiết kế đặc biệt để sử dụng trong các môi trƣờng mô phỏng để xây dựng mô phỏng quy mô lớn và ứng dụng mô hình. SIMCRIPT là
37 ngôn ngữ hƣớng quá trình và sự kiện.
Cú pháp và ngữ nghĩa của SIMSCRIPT đƣợc thiết kế để làm cho các chƣơng trình mô phỏng dễ dàng để viết và hiểu. Các cú pháp của SIMSCRIPT là tiếng Anh nhƣ cho phép nhận dạng dài, và khả năng cho ngƣời dùng để chỉnh sự xuất hiện của mã nguồn. Giống nhƣ nhiều hệ thống mô phỏng, các mục trong hệ thống đƣợc nghiên cứu đƣợc đại diện trong các ngôn ngữ nhƣ là các đối tƣợng do ngƣời dùng định nghĩa thuộc tính của mỗi lớp của các đối tƣợng sở hữu.
Trong SIMSCRIPT, thuộc tính đƣợc định nghĩa trong nhóm của các quá trình đối tƣợng. Dữ liệu trong SIMSCRIPT đƣợc phân chia thành 2 loại: dữ liệu cơ bản và dữ liệu tổng hợp. Loại dữ liệu cơ bản cho các thuộc tính và các biến mã thủ tục bao gồm các số nguyên, số thực, chuỗi, và con trỏ. Các kiểu dữ liệu tổng hợp bao gồm các mảng, các bộ, và danh sách. Tất cả các yếu tố dữ liệu trong một chƣơng trình SIMSCRIPT là năng động, cấp phát bộ nhớ là hoàn toàn tự động. Thủ tục mã có thể sử dụng cấu trúc đơn giản có điều kiện và lặp lại chƣơng trình con và các chức năng.
Cũng giống nhƣ SIMULA, SIMSCRIPT sử dụng một mô hình quá trình đồng thời mô phỏng sự kiện rời rạc. Các nút nút dữ liệu đƣợc hiểu nhƣ là nguyên nhân của quá trình đặc biệt, và có thể hiểu nhƣ là thời gian cơ bản hoặc tƣơng thích để mô phỏng sự kiện. Ngôn ngữ này cũng bao gồm cơ sở dữ liệu thu thập, thống kê, thế hệ số ngẫu nhiên, các loại khác nhau của I / O, và đồng bộ hóa quá trình.
Phiên bản đầu của SIMSCRIPT sản xuất FORTRAN mã đầu ra. SIMSCRIPT II.5 sản xuất C code. Trong cả hai trƣờng hợp, các mã đƣợc tạo ra sẽ đƣợc biên dịch và liên kết với một thƣ viện thời gian chạy. SIMGRAPHICS, SIMGRAPHICS II và SIMSCRIPT II.5 đƣợc đăng ký thƣơng hiệu của Công ty Sản phẩm CACI.
3.5.5 SIMULA
SIMULA (Simula đƣợc viết năm 1962 và đƣợc sử dụng năm 1964).
SIMULA viết tắt của "ngôn ngữ mô phỏng", là ngôn ngữ lập trình hƣớng đối tƣợng đầu tiên. Vào cuối những năm 1960, các nhà phát triển Na Uy Simula, OJ Dahl và Kristen Nygaard, đang tìm kiếm một cách để chƣơng trình mô phỏng hoặc
38
mô hình mà ngƣời sử dụng máy tính có thể nhìn thấy nó. Họ hình thành ý tƣởng mà các lập trình mô hình hóa các chƣơng trình xung quanh đối tƣợng.
SIMULA là một khối cấu trúc ngôn ngữ thủ tục với một số tính năng lập trình hƣớng đối tƣợng. Nó là ngôn ngữ đầu tiên cung cấp kiểu dữ liệu trừu tƣợng. Do vậy nó đƣợc công nhận nhƣ là một phần tử tìm kiếm, đối tƣợng định hƣớng cho máy tính. Ngôn ngữ SIMULA là một ngôn ngữ chƣơng trình cao cấp và chức năng đặc biệt. SIMULA cũng bao gồm kiểu dữ liệu, chuỗi, kiểm tra, cấu trúc điều khiển cơ bản, dữ liệu đóng kín, dữ liệu kế thừa đơn giản và đặc biệt để mô phỏng rời rạc.
3.5.6 SLAM II/AWESIM
SLAM II (Simulation Language for Alternative Modeling)
Là ngôn ngữ mô phỏng cho mô hình thay thế, trong đó ngƣời ta có thể xây dựng một mô hình theo định hƣớng quá trình, mô hình hƣớng sự kiện, hoặc sự kết hợp của cả hai. Trong một ứng dụng điển hình, hầu hết các mô hình mô phỏng đƣợc phát triển bằng cách sử dụng định hƣớng quá trình. Đó là phƣơng pháp tiếp cận bất tiện hoặc không thể các, SLAM II đƣợc mã hoá trong thói quen phân tích sự kiện và sau đó đƣợc gọi là từ các mô hình quy trình. SLAM II đã đƣợc phát triển bởi Dennis Pegden và Alan Pritsker vào năm 1979 và đƣợc phân phối bởi Công ty Cổ phần Pritsker.
Với sự phát triển trong nghiên cứu mô phỏng, kể từ khi ra đời, SLAM II đã tiếp tục phát triển nhƣ là một kết quả của việc đƣợc ứng dụng rộng rãi. Ngôn ngữ SLAM II dễ dàng sử dụng hơn rất nhiều bởi sự ra đời của SLAMSYSTEM trong năm 1988 - hỗ trợ mô phỏng hệ thống dựa trên giao diện Microsoft Windows (dƣới MS-DOS).
Các nhà phân tích thƣờng xây dựng một mô hình bắt đầu với việc phát triển một sơ đồ mạng đồ họa cho hệ thống. Sơ đồ này đƣợc xây dựng bằng cách kết hợp một bộ tiêu chuẩn của các biểu tƣợng, đƣợc gọi là các nút và các nhánh, kết nối với nhau thành một mạng lƣới đại diện cho dòng chảy của một thực thể thông qua quá trình tƣơng ứng của nó. Một nút có thể tƣơng ứng với sự kiện, ví dụ, để tạo ra các thực thể hoặc một hàng đợi trong khi một chi nhánh có thể tƣơng ứng với thời gian trôi
39
qua. Các mô hình mạng lƣới của hệ thống sau đó đƣợc dịch thành một tập hợp tƣơng đƣơng với báo cáo của chƣơng trình SLAM II đã thực hiện trên máy tính. Các báo cáo của chƣơng trình cũng có thể đƣợc mã hóa trực tiếp mà không cần một sơ đồ mạng.
AWESIM là một hệ thống mô phỏng hỗ trợ xây dựng mô hình, phân tích các mô hình sử dụng mô phỏng, và trình bày các kết quả mô phỏng. Windows đơn giản hóa các đầu vào của thông tin đồ họa, văn bản và đƣợc sử dụng để nhập vào các mô hình, dữ liệu và thông tin dự án khác. AWESIM hỗ trợ một cách tiếp cận mô hình lặp đi lặp lại bằng cách cung cấp một môi trƣờng bao gồm các hình ảnh động để hình dung sự năng động, cơ cấu, và điều khiển logic của một mô hình cũng nhƣ báo cáo, đồ thị để hiển thị các biện pháp định lƣợng mô phỏng hiệu suất từ một hoặc nhiều kịch bản.
Visual SLAM tạo ra một báo cáo tổng kết, tính thống kê (cả tiêu chuẩn và ngƣời sử dụng yêu cầu) và thu thập đồ họa dữ liệu (biểu đồ và đồ án) nhƣ một phần của thực hiện mô phỏng. AWESIM cho phép xây dựng Visual SLAM dƣới dạng tƣơng tác và đồ họa.
3.6 SO SÁNH MỘT SỐ NGÔN NGỮ MÔ PHỎNG
Trong phần này chúng tôi xin giành thời gian ngắn để thảo luận và so sánh các ngôn ngữ mô phỏng trình bày ở trên. Những ngôn ngữ thực sự có cấu trúc mô hình cơ bản rất giống nhau, do ngôn ngữ phát triển trong những năm qua, điều này có thể đƣợc nhìn thấy trong bảng…. nhằm chỉ ra các số liệu thống kê đƣợc nắm bắt và thu thập theo thời gian rời rạc và liên tục.
Chúng ta có thể so sánh tính năng của một số ngôn ngữ mô phỏng chính nhƣ trong bảng dƣới đây:
40
TÍNH NĂNG NGÔN NGỮ MÔ PHỎNG
GPSS/H SIMAN SIMCRIPT II.5 SLAM II Tạo đối tƣợng GENERATE CREATE ACTIVATE CREATE Nguồn tài nguyên SEIZE/
RELEASE SEIZE/ RELEASE REQUEST/ RELINQUISH AWAIT/ FREE Biến thời gian ADVANCE DELAY WORK, WAIT ACTIVITY Định hƣớng mô
phỏng
Process Event, Process Event Process Kết nối với máy
tính MICRO*, WORK* MIN/MAN* MICRO, WORK MIN/MAN MICRO, WORK MIN/MAN MICRO, WORK MIN/MAN Hình ảnh động MICRO MICRO, WORK MICRO, WORK WORK
MIN/MAN
Biểu đồ Không Có Không Có
Khả năng kết hợp mô phỏng rời rạc và liên tục Không Có Có Có Lệnh tạo bản sao tự động Không Có Không Có
Hàng chờ QUEUE QUEUE Not required QUEUE
Ghi chú:
- MICRO* :Microcomputer
- WORK* : Work station
- MIN/MAN* : Minicomputer/ Mainframe
Bảng 3.2: So sánh tính năng của một số ngôn ngữ mô phỏng chính.
Với những phân tích, đánh giá trên chúng tôi sẽ tập trung vào nghiên cứu và tìm hiểu phần mềm SLAMII và môi trƣờng Awesim. Đồng thời sử dụng phần mềm SLAMII để giải quyết một bài toán cụ thể.
41
CHƢƠNG 4:
NGÔN NGỮ MÔ PHỎNG SLAM II