Hướng dẫn what is simulator in python? - trình mô phỏng trong python là gì?
Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Mô phỏng các quy trình trong thế giới thực bằng Python với Simpy This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Simulating Real-World Processes in Python With SimPy Show
Thế giới thực có đầy đủ các hệ thống, như sân bay và đường cao tốc, thường xuyên bị tắc nghẽn và chậm trễ. Khi các hệ thống này không được tối ưu hóa, sự kém hiệu quả của chúng có thể dẫn đến vô số khách hàng không hài lòng và thời gian lãng phí. Trong hướng dẫn này, bạn sẽ học cách sử dụng khung Python từ ____27 để tạo các mô phỏng ảo sẽ giúp bạn giải quyết các vấn đề như thế này. Trong hướng dẫn này, bạn sẽ học cách:
Trong hướng dẫn này, bạn sẽ tạo ra một mô phỏng cho một rạp chiếu phim địa phương. Mục tiêu của bạn là cung cấp cho người quản lý một kịch bản để giúp tìm số lượng nhân viên tối ưu để có nhân viên. Bạn có thể tải xuống mã nguồn cho tập lệnh này bằng cách nhấp vào liên kết bên dưới: Mô phỏng là gìMột mô phỏng là một đại diện của một hệ thống trong thế giới thực. Người ta có thể sử dụng các mô hình toán học hoặc tính toán của hệ thống này để nghiên cứu cách thức hoạt động của nó hoặc những gì xảy ra khi các phần của nó được thay đổi. Mô phỏng được sử dụng trong các sân bay, nhà hàng, cơ học, cơ quan chính phủ và nhiều hệ thống khác nơi phân bổ nguồn lực kém có thể dẫn đến tắc nghẽn, không hài lòng của khách hàng và sự chậm trễ vận chuyển quan trọng.simulation is a representation of a real-world system. One can use mathematical or computational models of this system to study how it works, or what happens when parts of it are changed. Simulations are used in airports, restaurants, mechanics, government agencies, and many other systems where poor resource allocation can lead to congestion, customer dissatisfaction, and critical transportation delays. Một hệ thống có thể là bất kỳ môi trường nơi mọi thứ xảy ra. Ví dụ về các hệ thống trong thế giới thực bao gồm rửa xe, ngân hàng, nhà máy sản xuất, sân bay, bưu điện, trung tâm cuộc gọi, v.v. Các hệ thống này có các tác nhân trải qua các quá trình trong đó. Ví dụ:system can be any environment where things happen. Examples of real-world systems include car washes, banks, manufacturing plants, airports, post offices, call centers, and more. These systems have agents that undergo processes within them. For instance:
Mối quan hệ này được tóm tắt trong bảng dưới đây:
Hiểu các quá trình mà các tác nhân trải qua trong một hệ thống là một thành phần quan trọng của lập kế hoạch hậu cần, đặc biệt là đối với các tổ chức quy mô lớn. Ví dụ, một sân bay có thể thấy thời gian chờ đợi của hành khách tại một điểm kiểm tra an ninh tăng vọt nếu có đủ công nhân ngày hôm đó. Tương tự, thư nhạy cảm với thời gian có thể bị trì hoãn theo ngày (hoặc thậm chí vài tuần) nếu nó được định tuyến đúng cách. Những trường hợp tắc nghẽn này có thể gây ra hậu quả thực tế về thời gian và tiền bạc, vì vậy, điều quan trọng là có thể mô hình hóa các quy trình này trước đó. Điều này cung cấp cho bạn một ý tưởng về nơi hệ thống có thể gặp vấn đề và cách phân bổ tài nguyên trước để giải quyết những vấn đề đó theo cách hiệu quả nhất có thể.real-life consequences on time and money, so it’s important to be able to model these processes beforehand. This gives you an idea of where the system might run into problems and how resources should be allocated ahead of time to solve those problems in the most efficient way possible. Cách mô phỏng hoạt độngTrong Python, bạn có thể sử dụng khung 7 để mô phỏng sự kiện. Đầu tiên, hãy xem nhanh cách một quá trình mô phỏng sẽ chạy trong Python. Dưới đây là đoạn mã từ mô phỏng hệ thống điểm kiểm tra bảo mật. Ba dòng mã sau đây thiết lập môi trường, vượt qua tất cả các chức năng cần thiết và chạy mô phỏng:
Dòng mã đầu tiên ở trên thiết lập môi trường. Bạn sẽ làm điều này bằng cách gán 0 cho biến mong muốn. Ở đây, nó có tên đơn giản là 1. Điều này nói với 7 để tạo một đối tượng môi trường có tên 1 sẽ quản lý thời gian mô phỏng và di chuyển mô phỏng qua từng bước thời gian tiếp theo.environment. You’ll
do this by assigning 0 to the desired variable. Here, it’s simply named 1. This tells 7 to create an environment object named 1 that will manage the simulation time and move the simulation through each subsequent time step.Khi bạn đã thiết lập môi trường của mình, bạn sẽ vượt qua tất cả các biến sẽ hoạt động như các tham số của bạn. Đây là những điều bạn có thể thay đổi để xem hệ thống sẽ phản ứng như thế nào với các thay đổi. Đối với hệ thống điểm kiểm tra bảo mật này, bạn đã sử dụng các tham số sau:parameters. These are the things you can vary to see how the system will react to changes. For this security checkpoint system, you’re using the following parameters:
Sau đó, nó thời gian để chạy mô phỏng! Bạn có thể làm điều này bằng cách gọi 8 và chỉ định thời gian bạn muốn mô phỏng chạy. Mô phỏng chạy trong vài phút, vì vậy mã mẫu này sẽ chạy mô phỏng trong 10 phút thời gian thực.Tóm lại, đây là ba bước để chạy mô phỏng trong Python:
Nhưng có rất nhiều thứ đang diễn ra bên dưới mui xe! Bạn cần phải hiểu cách chọn các tham số đó và bạn sẽ phải xác định tất cả các chức năng sẽ được gọi khi mô phỏng được chạy. Bắt đầu nào! Làm thế nào để bắt đầu với import simpy import random import statistics 7Có một vài việc cần làm bạn nên kiểm tra danh sách của mình trước khi tạo các mô phỏng trong Python. Điều đầu tiên bạn cần làm là đảm bảo bạn có một sự hiểu biết vững chắc về những điều cơ bản của Python. Cụ thể, bạn sẽ cần phải nắm bắt tốt các lớp học và máy phát điện. Điều tiếp theo bạn sẽ muốn làm là cài đặt gói yêu cầu. Khung chính mà bạn sẽ sử dụng là 7. Đây là gói cốt lõi sẽ tạo, quản lý và chạy mô phỏng của bạn. Bạn có thể cài đặt nó bằng 1:
Bạn cũng sẽ cần một vài mô-đun Python tích hợp. Bạn sẽ sử dụng mô -đun 2 để tính thời gian chờ trung bình và mô -đun 3 để tạo số ngẫu nhiên. Chúng đến như một phần của thư viện tiêu chuẩn Python, vì vậy bạn không cần phải cài đặt bất cứ điều gì mới.Cuối cùng, bạn sẽ cần chọn cách bạn muốn chạy mô phỏng của mình. Nói chung, bạn có thể chọn một trong hai tùy chọn:
Chọn bất kỳ phương pháp nào bạn thoải mái nhất! Kết quả nên giống nhau. Trong suốt hướng dẫn này, bạn sẽ thấy các tài liệu tham khảo về một tệp độc lập có tên 5. Khi bạn di chuyển qua hướng dẫn này, các khối mã sẽ tham chiếu 5 để giúp bạn theo dõi cách tất cả các phần khớp với nhau. Để tham khảo của bạn, bạn có thể truy cập toàn bộ mã cho 5 tại liên kết bên dưới:Vui lòng lưu tệp 5 và theo dõi trong trình soạn thảo yêu thích của bạn!Cách mô phỏng với gói import simpy import random import statistics 7Bước đầu tiên để chạy mô phỏng trong 7 là chọn một quy trình để mô hình hóa. Mô phỏng là tất cả về việc tạo ra một môi trường ảo để phản ánh một hệ thống trong thế giới thực. Trong cùng tinh thần đó, bạn sẽ mô phỏng một tình huống cho mô phỏng của bạn!Hãy tưởng tượng bạn đã được thuê để giúp người quản lý cho một rạp chiếu phim nhỏ, địa phương. Nhà hát đã nhận được đánh giá kém do thời gian chờ đợi lâu. Người quản lý, người cũng quan tâm đến chi phí như anh ta về sự hài lòng của khách hàng, chỉ có thể đủ khả năng để giữ rất nhiều nhân viên trong đội ngũ nhân viên.long wait times. The manager, who is just as concerned about cost as he is about customer satisfaction, can only afford to keep so many employees on staff. Người quản lý đặc biệt lo lắng về những gì sự hỗn loạn có thể mở ra khi những bộ phim bom tấn đó bắt đầu ra mắt: các dòng quấn quanh nhà hát, các nhân viên kéo dài đến giới hạn của họ, những người xem phim tức giận bỏ lỡ những cảnh mở đầu, đây chắc chắn là một tình huống cần tránh! Sau khi kiểm tra các đánh giá, người quản lý đã có thể xác định rằng một người xem phim nhất định đến nhà hát của họ sẵn sàng dành nhiều nhất 10 phút kể từ khi họ đến cho đến khi họ đặt mông của họ vào một chỗ ngồi. Nói cách khác, thời gian chờ đợi trung bình cho một đêm tại nhà hát cần phải là 10 phút hoặc ít hơn. Người quản lý đã yêu cầu sự giúp đỡ của bạn để tìm ra một giải pháp để có được thời gian chờ đợi của khách hàng theo yêu cầu 10 phút này.average wait time for a night at the theater needs to be 10 minutes or less. The manager has asked for your help to figure out a solution to getting customer wait times under this 10 minute requirement. Động não một thuật toán mô phỏngTrước khi bạn viết ra một dòng mã duy nhất, điều quan trọng là trước tiên bạn phải tìm ra quá trình của bạn sẽ chạy trong cuộc sống thực như thế nào. Điều này là để đảm bảo rằng, khi bạn chuyển nó cho máy, quá trình này là một sự phản ánh chính xác về những gì khách hàng sẽ thực sự trải nghiệm. Tại đây, cách bạn có thể nghĩ qua các bước mà người xem phim có thể thực hiện để viết ra thuật toán của bạn:
Đây là một lần lặp từng bước cho một người xem phim mua vé của họ tại phòng vé nhà hát. Bạn đã có thể thấy phần nào của quá trình này có thể được kiểm soát. Bạn có thể ảnh hưởng đến thời gian khách hàng chờ đợi bằng cách có nhiều nhân viên thu ngân hơn tại phòng vé. Ngoài ra còn có những phần của quá trình có thể được kiểm soát, giống như bước đầu tiên. Bạn có thể kiểm soát số lượng khách hàng sẽ đến, hoặc họ sẽ làm như thế nào. Bạn có thể đoán, nhưng bạn có thể chỉ cần chọn một số, bởi vì đó sẽ là một sự phản ánh kém của thực tế. Đối với tham số này, điều tốt nhất bạn có thể làm là sử dụng dữ liệu có sẵn để xác định thời gian đến thích hợp.use available data to determine an appropriate arrival time. Với những điều này trong tâm trí, đó là thời gian để xây dựng mô phỏng của bạn! Thiết lập môi trườngTrước khi bạn bắt đầu xây dựng mô phỏng của mình, bạn cần đảm bảo rằng môi trường phát triển của bạn được cấu hình đúng. Điều đầu tiên bạn muốn làm là nhập các gói cần thiết. Bạn có thể làm điều này bằng cách khai báo các câu lệnh 1 ở đầu tệp của bạn:
Đây là những thư viện chính mà bạn sẽ sử dụng để xây dựng một kịch bản cho người quản lý nhà hát. Hãy nhớ rằng, mục tiêu là tìm số lượng nhân viên tối ưu cho thời gian chờ trung bình dưới 10 phút. Để làm điều này, bạn sẽ cần phải thu thập khoảng thời gian mà mỗi người xem phim phải đến chỗ ngồi của họ. Bước tiếp theo là khai báo một danh sách để giữ những lần sau: Danh sách này sẽ chứa tổng thời gian mỗi người xem phim dành cho việc di chuyển qua nhà hát, từ khi đến ngồi trên ghế của họ. Bạn khai báo danh sách này ở đầu tệp để bạn có thể sử dụng nó bên trong bất kỳ chức năng nào bạn xác định sau này. Tạo môi trường: Định nghĩa lớpPhần đầu tiên của mô phỏng mà bạn muốn xây dựng là bản thiết kế cho hệ thống. Đây sẽ là môi trường tổng thể bên trong mà mọi thứ xảy ra, và con người hoặc đối tượng di chuyển từ nơi này sang nơi khác. Hãy nhớ rằng, một môi trường có thể là một trong nhiều hệ thống khác nhau, như ngân hàng, rửa xe hoặc trạm kiểm soát bảo mật. Trong trường hợp này, môi trường là một rạp chiếu phim, vì vậy đó sẽ là tên của lớp của bạn:environment can be one of many different systems, like a bank, a car wash, or a security checkpoint. In this case, the environment is a movie theater, so that will be the name of your class:
Bây giờ, thời gian để suy nghĩ thông qua các phần của rạp chiếu phim. Tất nhiên, có chính nhà hát, đó là những gì bạn đã gọi là môi trường của bạn. Sau đó, bạn sẽ tuyên bố rõ ràng nhà hát là một 2 thực tế bằng cách sử dụng một trong các chức năng ____27. Ngay bây giờ, hãy gọi nó là 1 và thêm nó vào định nghĩa lớp:movie theater. Of course, there’s the theater itself, which is what you’ve called your environment. Later, you’ll explicitly declare the theater as an actual 2 using one of the 7 functions. For now, call it 1 for short and add it to the class
definition:
Được rồi, những gì khác có thể có trong một nhà hát? Bạn có thể tìm ra điều này bằng cách suy nghĩ thông qua thuật toán mô phỏng mà bạn đã lên kế hoạch trước đó. Khi một người xem phim đến, họ sẽ cần phải xếp hàng tại phòng vé, nơi một nhân viên thu ngân sẽ chờ đợi để giúp đỡ họ. Bây giờ bạn đã phát hiện ra hai điều về môi trường nhà hát:
Nhân viên thu ngân là một nguồn tài nguyên mà nhà hát cung cấp cho khách hàng của mình và họ giúp những người xem phim thông qua quá trình mua vé. Ngay bây giờ, bạn không biết có bao nhiêu nhân viên thu ngân trong nhà hát mô phỏng. Trên thực tế, đó là vấn đề chính mà bạn đang cố gắng giải quyết. Làm thế nào để thời gian chờ thay đổi, tùy thuộc vào số lượng nhân viên thu ngân làm việc trong một đêm nhất định?resource that the theater makes available to its customers, and they help moviegoers through the process of purchasing a ticket. Right now, you don’t know how many cashiers are available in the simulated theater. In fact, that’s the very problem you’re trying to solve. How do wait times change, depending on the number of cashiers working on a given night? Bạn có thể đi trước và gọi đây là biến không xác định 5. Giá trị chính xác mà biến này sẽ có thể được sắp xếp sau. Hiện tại, chỉ cần biết rằng nó là một phần không thể thiếu của môi trường nhà hát. Thêm nó vào định nghĩa lớp:
Tại đây, bạn thêm tham số mới 5 vào định nghĩa 7 của bạn. Sau đó, bạn tạo một tài nguyên 8 và sử dụng 9 để khai báo số lượng có thể có trong môi trường này tại bất kỳ thời điểm nào.Có một bước nữa mà bạn sẽ cần phải thực hiện. Một nhân viên thu ngân sẽ không mua vé cho mình, phải không? Họ sẽ giúp người xem phim! Một lần nữa, bạn biết rằng quá trình mua vé này sẽ mất một khoảng thời gian nhất định. Nhưng chỉ là bao nhiêu thời gian? Giả sử bạn đã yêu cầu người quản lý dữ liệu lịch sử về nhà hát, như đánh giá hiệu suất của nhân viên hoặc biên lai mua vé. Dựa trên dữ liệu này, bạn đã biết rằng trung bình, trung bình, từ 1 đến 2 phút để cấp vé tại phòng vé. Làm thế nào để bạn có được 7 để bắt chước hành vi này? Nó chỉ mất một dòng mã:
1 bảo 7 kích hoạt một sự kiện sau một khoảng thời gian nhất định đã trôi qua. Trong trường hợp này, sự kiện là một vé đã được mua.Thời gian này mất một phút, hai phút hoặc ba phút. Bạn muốn mỗi người xem phim dành một lượng thời gian khác nhau tại nhân viên thu ngân. Để làm điều này, bạn sử dụng 3 để chọn một số ngẫu nhiên giữa các giá trị thấp và cao đã cho. Sau đó, đối với mỗi người xem phim, mô phỏng sẽ chờ đợi khoảng thời gian được chọn.Hãy cùng loại bỏ điều này trong một hàm gọn gàng và thêm nó vào định nghĩa lớp:
Một trong những sự kiện bắt đầu sự kiện trong 4 là 5, vì vậy chúng phải được thông qua như một đối số bắt buộc.Đó là nó! Bạn đã chọn một tài nguyên giới hạn thời gian, xác định quy trình liên quan của nó và được mã hóa điều này trong định nghĩa lớp của bạn. Đối với hướng dẫn này, có thêm hai tài nguyên mà bạn cần phải khai báo:
Sau khi kiểm tra dữ liệu mà người quản lý đã gửi qua, bạn xác định rằng các máy chủ mất từ 1 đến 5 phút để hoàn thành đơn đặt hàng. Ngoài ra, những người sử dụng rất nhanh trong việc kiểm tra vé, với tốc độ trung bình là 3 giây! Bạn cần phải thêm các tài nguyên này vào lớp của mình và xác định các chức năng tương ứng 6 và 7. Bạn có thể tìm ra mã sẽ trông như thế nào không? Khi bạn có một ý tưởng, bạn có thể mở rộng khối mã bên dưới để kiểm tra sự hiểu biết của bạn:
Hãy xem xét kỹ các tài nguyên và chức năng mới. Lưu ý cách họ tuân theo định dạng giống như mô tả ở trên. 7 sử dụng 3 để tạo số ngẫu nhiên trong khoảng từ 1 đến 5 phút, đại diện cho thời gian cần một người xem phim để đặt hàng và nhận thức ăn của họ.Thời gian trễ đối với 6 hơi khác một chút vì việc sử dụng chỉ mất 3 giây. Vì 7 hoạt động trong vài phút, giá trị này cần được thông qua dưới dạng một phần của một phút, hoặc 2.Di chuyển qua môi trường: Định nghĩa chức năngĐược rồi, bạn đã thiết lập môi trường bằng cách xác định một lớp. Bạn có tài nguyên và quy trình. Bây giờ bạn cần một 5 để sử dụng chúng. Khi một 5 đến nhà hát, họ sẽ yêu cầu một tài nguyên, chờ quá trình của nó hoàn thành, sau đó rời đi. Bạn sẽ tạo một chức năng, được gọi là 5, để theo dõi điều này: 5 to use them. When
a 5 arrives at the theater, they’ll request a resource, wait for its process to complete, and then leave. You’ll create a function, called 5, to keep track of this:
Có ba đối số được truyền cho chức năng này:
Bạn cũng tuyên bố một biến 0 để giữ thời gian mà mỗi 5 đến nhà hát. Bạn có thể nhận được thời gian này bằng cách sử dụng cuộc gọi 7 tới 3.Bạn sẽ muốn mỗi quy trình từ 9 của bạn có các yêu cầu tương ứng trong 5. Ví dụ: quy trình đầu tiên trong lớp là 4, sử dụng tài nguyên 7. 5 sẽ cần đưa ra yêu cầu đối với tài nguyên 7 để giúp họ thông qua quy trình 4. Ở đây, một bảng để tóm tắt điều này:requests in 5. For example, the first process in the class is 4, which uses a 7 resource. The 5 will need to
make a request to the 7 resource to help them through the 4 process. Here’s a table to summarize this:
Nhân viên thu ngân là một tài nguyên được chia sẻ, có nghĩa là nhiều người xem phim sẽ sử dụng cùng một nhân viên thu ngân. Tuy nhiên, một nhân viên thu ngân chỉ có thể giúp một người xem phim tại một thời điểm, vì vậy bạn sẽ cần phải đưa một số hành vi chờ đợi vào mã của bạn. Ở đây, cách thức hoạt động của nó: 0Ở đây, cách thức hoạt động của mã này:
Sau khi một tài nguyên được sử dụng, nó phải được giải phóng cho tác nhân tiếp theo sử dụng. Bạn có thể làm điều này một cách rõ ràng với 10, nhưng trong mã trên, bạn sử dụng câu lệnh 11 thay thế. Phím tắt này cho biết mô phỏng tự động giải phóng tài nguyên sau khi quá trình hoàn tất. Nói cách khác, một khi vé được mua, 5 sẽ rời đi và nhân viên thu ngân sẽ tự động sẵn sàng lấy khách hàng tiếp theo.Khi một nhân viên thu ngân được giải phóng, 5 sẽ dành thời gian mua vé của họ. 14 bảo mô phỏng đi đến ví dụ 15 và chạy quy trình 4 trên 5 này. 5 sẽ lặp lại yêu cầu này, sử dụng, chu kỳ phát hành để kiểm tra vé của họ:request, use, release cycle to have their ticket checked: 1Ở đây, cấu trúc cho mã là như nhau. Sau đó, có một bước tùy chọn để mua thực phẩm từ giá đỡ. Bạn có thể biết liệu một người xem phim có muốn mua đồ ăn nhẹ và đồ uống hay không. Một cách để đối phó với sự không chắc chắn này là giới thiệu một chút ngẫu nhiên cho chức năng.randomness to the function. Mỗi 5 hoặc sẽ không muốn mua thực phẩm, mà bạn có thể lưu trữ dưới dạng giá trị boolean 20 hoặc 21. Sau đó, sử dụng mô -đun 3 để mô phỏng ngẫu nhiên quyết định xem 5 cụ thể này có tiến hành đứng trên giá đỡ hay không: 2Tuyên bố có điều kiện này sẽ trả về một trong hai kết quả:
Bây giờ, hãy nhớ mục tiêu của mô phỏng này là xác định số lượng nhân viên thu ngân, sử dụng và máy chủ nên có trong đội ngũ nhân viên để giữ thời gian chờ đợi dưới 10 phút. Để làm điều này, bạn sẽ cần phải biết mất bao lâu 5 để đưa nó lên chỗ ngồi của họ. Bạn sử dụng 3 khi bắt đầu chức năng để theo dõi 0 và một lần nữa ở cuối khi mỗi 5 được kết thúc với tất cả các quy trình và hướng vào nhà hát: 3Bạn sử dụng 3 để có thời gian mà 5 đã hoàn thành tất cả các quy trình và đưa nó lên ghế của họ. Bạn trừ đi bộ phim phim ảnh 0 từ thời gian khởi hành này và thêm sự khác biệt về thời gian kết quả vào danh sách chờ của bạn, 35. 5 này đã sẵn sàng để xem một số bản xem trước!Làm cho mọi thứ xảy ra: Định nghĩa chức năngBây giờ bạn sẽ cần xác định một chức năng để chạy mô phỏng. 37 sẽ chịu trách nhiệm tạo ra một ví dụ của một nhà hát và tạo ra những người xem phim cho đến khi mô phỏng dừng lại. Điều đầu tiên chức năng này nên làm là tạo một thể hiện của một nhà hát: 4Vì đây là quá trình chính, bạn sẽ cần phải vượt qua tất cả những điều chưa biết mà bạn đã tuyên bố cho đến nay:
Đây là tất cả các biến mà mô phỏng cần tạo ra và kiểm soát môi trường, vì vậy, nó rất quan trọng để vượt qua tất cả. Sau đó, bạn xác định một biến 9 và nói với mô phỏng để thiết lập nhà hát với một số lượng nhân viên thu ngân, máy chủ và sử dụng nhất định.Bạn cũng có thể muốn bắt đầu mô phỏng của mình với một vài người xem phim đang chờ tại nhà hát. Có lẽ sẽ có một vài người sẵn sàng để đi ngay khi cánh cửa mở ra! Người quản lý nói rằng sẽ mong đợi khoảng 3 người xem phim phù hợp để mua vé ngay khi phòng vé mở cửa. Bạn có thể bảo mô phỏng đi trước và di chuyển qua nhóm ban đầu này như vậy: 5Bạn sử dụng 42 để điền vào nhà hát với 3 người xem phim. Sau đó, bạn sử dụng 14 để nói với mô phỏng để chuẩn bị di chuyển chúng qua nhà hát. Phần còn lại của những người xem phim sẽ đến nhà hát trong thời gian riêng của họ. Vì vậy, chức năng nên tiếp tục gửi khách hàng mới vào nhà hát miễn là mô phỏng đang chạy.Bạn không biết rằng những người xem phim mới sẽ mất bao lâu để đến nhà hát, vì vậy bạn quyết định xem dữ liệu trong quá khứ. Sử dụng biên lai thời gian từ phòng vé, bạn biết rằng những người xem phim có xu hướng đến nhà hát, trung bình, cứ sau 12 giây. Bây giờ tất cả những gì bạn phải làm là nói với chức năng chờ đợi điều này từ lâu trước khi tạo ra một người mới: 6Lưu ý rằng bạn sử dụng số thập phân 44 để biểu thị 12 giây. Để có được số này, bạn chỉ cần chia 12 giây cho 60 giây, đó là số giây trong một phút.Sau khi chờ đợi, chức năng sẽ tăng 5 thêm 1 và tạo người tiếp theo. Chức năng của Trình tạo là cùng một chức năng bạn đã sử dụng để khởi tạo 3 người xem phim đầu tiên: 7Đó là nó! Khi bạn gọi chức năng này, mô phỏng sẽ tạo ra 3 người xem phim để bắt đầu và bắt đầu di chuyển chúng qua nhà hát với 5. Sau đó, những người xem phim mới sẽ đến nhà hát với khoảng 12 giây và di chuyển qua nhà hát trong thời gian riêng của họ.Tính thời gian chờ: Định nghĩa chức năngTại thời điểm này, bạn nên có một danh sách 35 chứa tổng số lượng thời gian mà mỗi người xem phim phải đưa nó vào chỗ ngồi của họ. Bây giờ, bạn sẽ muốn xác định một chức năng để giúp tính toán thời gian trung bình mà 5 dành từ khi họ đến khi họ hoàn thành việc kiểm tra vé của họ. 49 không chỉ điều này: 8Hàm này lấy danh sách 35 của bạn làm đối số và sử dụng 51 để tính thời gian chờ trung bình.Vì bạn tạo ra một tập lệnh sẽ được người quản lý rạp chiếu phim sử dụng, bạn sẽ muốn đảm bảo rằng đầu ra có thể được người dùng đọc dễ dàng. Bạn có thể thêm một chức năng gọi là 52 để làm điều này: 9Phần cuối cùng của chức năng sử dụng 53 để trả về kết quả trong vài phút và giây, do đó, người quản lý có thể dễ dàng hiểu được đầu ra của chương trình.Chọn tham số: Định nghĩa chức năng đầu vào của người dùngKhi bạn đã xây dựng các chức năng này, bạn đã chạy thành một vài biến chưa được xác định rõ ràng:
Các biến này là các tham số mà bạn có thể thay đổi để xem cách mô phỏng thay đổi. Nếu một bộ phim bom tấn có khách hàng xếp hàng xung quanh khối, có bao nhiêu nhân viên thu ngân? Điều gì sẽ xảy ra nếu mọi người đang bay qua phòng vé nhưng bị mắc kẹt trong nhượng bộ? Giá trị nào của 39 sẽ giúp giảm bớt dòng chảy?change to see how the simulation changes. If a blockbuster movie has customers lining up around the block, how many cashiers should be working? What if people are flying through the box office but getting stuck at concessions? What value of 39 will help ease the flow?Bất cứ ai đang sử dụng mô phỏng của bạn cần có khả năng thay đổi các giá trị của các tham số này để thử các kịch bản khác nhau. Để kết thúc này, bạn sẽ tạo một hàm trợ giúp để lấy các giá trị này từ người dùng: 0Chức năng này chỉ đơn giản gọi chức năng Python từ 58 để truy xuất dữ liệu từ người dùng. Bởi vì đầu vào của người dùng có nguy cơ bị lộn xộn, bạn có thể bao gồm một điều khoản 59 để bắt bất cứ điều gì không hợp lệ. Nếu người dùng nhập dữ liệu xấu, thì mô phỏng sẽ chạy với các giá trị mặc định.
Hoàn thiện thiết lập: Định nghĩa chức năng chínhChức năng cuối cùng mà bạn sẽ muốn tạo là 60. Điều này sẽ đảm bảo tập lệnh của bạn chạy theo thứ tự thích hợp khi bạn thực thi nó trên dòng lệnh. Bạn có thể đọc thêm về 60 trong việc xác định các chức năng chính trong Python. Ở đây, những gì 60 của bạn sẽ trông như thế nào: 1Ở đây, cách thức hoạt động của 60:
Với điều này, thiết lập đã hoàn tất! Cách chạy mô phỏngChỉ với một vài dòng mã nữa, bạn sẽ có thể xem mô phỏng của mình trở nên sống động. Nhưng trước tiên, ở đây, một cái nhìn tổng quan về các chức năng và các lớp mà bạn đã xác định cho đến nay:
Bây giờ, bạn chỉ cần thêm hai dòng mã để gọi chức năng chính của mình: 2Với điều đó, kịch bản của bạn đã sẵn sàng để chạy! Mở thiết bị đầu cuối của bạn, điều hướng đến nơi bạn đã lưu trữ 5 và chạy lệnh sau: 3Bạn sẽ được nhắc chọn các tham số bạn muốn cho mô phỏng của mình. Tại đây, đầu ra trông như thế nào với các tham số mặc định: 4Ái chà! Đó là một thời gian dài để chờ đợi xung quanh! Khi nào thay đổi mọi thứHãy nhớ rằng, mục tiêu của bạn là tiếp cận người quản lý với một giải pháp cho bao nhiêu nhân viên mà anh ấy sẽ cần cho nhân viên để giữ thời gian chờ đợi dưới 10 phút. Để kết thúc này, bạn sẽ muốn chơi xung quanh với các tham số của mình để xem số nào cung cấp một giải pháp tối ưu. Đầu tiên, hãy thử một cái gì đó hoàn toàn điên rồ và tối đa hóa các tài nguyên! Giả sử có 100 nhân viên thu ngân, 100 máy chủ và 100 người sử dụng trong nhà hát này. Tất nhiên, điều này là không thể, nhưng sử dụng số cực kỳ cao sẽ nhanh chóng cho bạn biết giới hạn của hệ thống là gì. Thử ngay bây giờ: 5Ngay cả khi bạn tối đa hóa các tài nguyên, bạn sẽ chỉ nhận được thời gian chờ xuống 3 phút rưỡi. Bây giờ hãy thử và thay đổi các số để xem liệu bạn có thể giảm thời gian chờ đến 10 phút, như người quản lý được yêu cầu. Bạn đã đưa ra giải pháp nào? Bạn có thể mở rộng khối mã bên dưới để xem một giải pháp khả thi: 6Tại thời điểm này, bạn sẽ trình bày kết quả của mình cho người quản lý và đưa ra gợi ý để giúp cải thiện nhà hát. Chẳng hạn, để cắt giảm chi phí, anh ta có thể muốn cài đặt 10 ki -ốt vé ở phía trước nhà hát thay vì giữ 10 nhân viên thu ngân mỗi đêm. Sự kết luậnTrong hướng dẫn này, bạn đã học được cách xây dựng và chạy một mô phỏng trong Python bằng cách sử dụng khung công tác 7. Bạn đã hiểu làm thế nào các hệ thống có các tác nhân trải qua các quá trình và cách bạn có thể tạo các biểu diễn ảo của các hệ thống đó để củng cố chúng chống lại sự tắc nghẽn và chậm trễ. Trong khi loại mô phỏng có thể khác nhau, nhưng thực thi tổng thể là như nhau! Bạn có thể áp dụng những gì bạn đã học được ở đây vào một loạt các kịch bản khác nhau.build and run a simulation in Python using the 7 framework. You’ve come to understand how systems have agents undergo processes, and how you can create virtual representations of those systems to
fortify them against congestion and delay. While the type of simulation can vary, the overall execution is the same! You’ll be able to apply what you’ve learned here to a variety of different scenarios.Bây giờ bạn có thể:
Có rất nhiều bạn có thể làm với 7, vì vậy, hãy để cho việc khám phá của bạn dừng lại ở đây. Lấy những gì bạn đã học và áp dụng nó vào các kịch bản mới. Các giải pháp của bạn có thể giúp tiết kiệm thời gian và tiền bạc quý giá của mọi người, vì vậy hãy đi sâu vào và xem những quy trình khác bạn có thể tối ưu hóa! Bạn có thể tải xuống mã nguồn cho tập lệnh bạn đã xây dựng trong hướng dẫn này bằng cách nhấp vào liên kết bên dưới:Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Mô phỏng các quy trình trong thế giới thực bằng Python với Simpy This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Simulating Real-World Processes in Python With SimPy Trình mô phỏng trong Python là gì?Mô phỏng đang bắt chước các hoạt động diễn ra trong một hệ thống để nghiên cứu hành vi của nó. Phân tích và tạo mô hình của một hệ thống để dự đoán hiệu suất của nó được gọi là mô hình mô phỏng.imitating the operations which take place within a system to study its behavior. Analyzing and creating the model of a system to predict its performance is called simulation modeling.
Làm cách nào để sử dụng trình giả lập Python?Sử dụng một mô phỏng để mô hình hóa một quy trình trong thế giới thực.Tạo một thuật toán từng bước để xấp xỉ một hệ thống phức tạp.Thiết kế và chạy mô phỏng trong thế giới thực bằng Python với Simpy ... Thiết lập môi trường .. Vượt qua các tham số .. Chạy mô phỏng .. Một trình giả lập là gì cho nó được sử dụng là gì?Một trình giả lập được định nghĩa là một phương thức hoặc một quy trình tạo ra các chế độ xem giả (được tạo ra mà không có sự biến đổi) không thể phân biệt được với một quan điểm chính hãng (được tạo ra với prover) của một bằng chứng [12].Từ: Những tiến bộ trong máy tính, 2014.
Trình mô phỏng trong lập trình là gì?Trình mô phỏng là gói máy tính cho phép người ta mô phỏng một hệ thống có trong một lớp hệ thống cụ thể có ít hoặc không có lập trình.Ví dụ, hiện có các trình mô phỏng có sẵn cho một số loại hệ thống sản xuất, máy tính và truyền thông [7].a computer package that allows one to simulate a system contained in a specific class of systems with little or no programming. For example, there are currently simulators available for certain types of manufacturing, computer, and communication systems [7]. |