1 / 55

บทที่ 5 ภาษาที่ใช้ในการจำลองแบบปัญหา

บทที่ 5 ภาษาที่ใช้ในการจำลองแบบปัญหา. การจำลองแบบปัญหาด้วยคอมพิวเตอร์ ต้องเข้าใจเกี่ยวกับ ประเภทของคอมพิวเตอร์และภาษาที่เหมาะสมที่ใช้สำหรับนำมาเขียนโปรแกรมคอมพิวเตอร์จำลองแบบปัญหา เพื่อให้แบบจำลองที่สร้างขึ้นสามารถใช้งานได้และวัดประสิทธิภาพตามความต้องการของการใช้งานได้อย่างถูกต้อง .

burton
Télécharger la présentation

บทที่ 5 ภาษาที่ใช้ในการจำลองแบบปัญหา

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. บทที่ 5 ภาษาที่ใช้ในการจำลองแบบปัญหา การจำลองแบบปัญหาด้วยคอมพิวเตอร์ ต้องเข้าใจเกี่ยวกับ ประเภทของคอมพิวเตอร์และภาษาที่เหมาะสมที่ใช้สำหรับนำมาเขียนโปรแกรมคอมพิวเตอร์จำลองแบบปัญหา เพื่อให้แบบจำลองที่สร้างขึ้นสามารถใช้งานได้และวัดประสิทธิภาพตามความต้องการของการใช้งานได้อย่างถูกต้อง

  2. Modelling Approach • Event Scheduling • System modelled via characteristic events • Events have subroutines which update state variables. • Process Orientation • Time oriented sequence of inter-related events that describes the experience of an entity as it flows through a system. • Overlay to an event scheduling system. • Approach adopted in most current software.

  3. Common Features • Generating random numbers (i.e. ~U(0,1)) • Generating random variates from a specified probability distribution. • Advancing the simulation clock. • Determining the next event on the list event and passing control of to the appropriate piece of code. • Adding and deleting records from a list. • Collecting output statistics and reporting the results of the simulation run. • Trapping error conditions.

  4. 5.1 ประเภทของคอมพิวเตอร์ • แบ่งได้เป็น 3 ประเภทคือ • ดิจิตอลคอมพิวเตอร์ (Digital computer) • อนาล็อกคอมพิวเตอร์ (Analog computer) • ไฮบริดคอมพิวเตอร์ (Hybrid computer)

  5. ลักษณะเฉพาะของดิจิตอลคอมพิวเตอร์ลักษณะเฉพาะของดิจิตอลคอมพิวเตอร์ • - ข้อมูลภายในเครื่องจะทำงานในลักษณะแบบ • ตัวแปรไม่ต่อเนื่องโดยทำงานเป็นช่วง • - การดำเนินงานจะทำตามคำสั่งทีละคำสั่ง • - ความแม่นยำของการประมวลผลนั้นไม่ขึ้นอยู่กับ • คุณภาพของส่วนประกอบของเครื่อง • - ระยะเวลาที่ใช้ในการปฏิบัติการขึ้นอยู่กับความ • ซับซ้อนของปัญหา

  6. ลักษณะเฉพาะของดิจิตอลคอมพิวเตอร์ (ต่อ) • - สามารถปรับเปลี่ยนระยะเวลาที่ใช้ในการ • ดำเนินงานได้และมีความแม่นยำ • - มีความสามารถในการคำนวณพื้นฐานเช่น บวก • ลบ คูณ หาร แต่การคำนวณที่ซับซ้อนเช่น การหา • อนุพันธ์และอินทิเกรชันจะได้เพียงค่าประมาณ • - สามารถเก็บและใช้ข้อมูลทั้งแบบตัวเลขและไม่ใช่ • ตัวเลขได้ • - การดำเนินงานที่เกี่ยวกับการตัดสินใจและการ • เลือก สามารถกระทำได้ทั้งกับการใช้ตัวเลขและ • ไม่ใช้ตัวเลข

  7. ลักษณะเฉพาะของอนาล็อกคอมพิวเตอร์ลักษณะเฉพาะของอนาล็อกคอมพิวเตอร์ • - ตัวแปรตามภายในเครื่องจะได้มีลักษณะเป็น • แบบตัวแปรต่อเนื่อง • - ความแม่นยำถูกจำกัดด้วยคุณภาพของ • ส่วนประกอบของเครื่องคอมพิวเตอร์ • - การปฏิบัติการหลาย ๆ อย่างสามารถดำเนินงาน • ไปพร้อม ๆ กันได้ • - ระยะเวลาที่ใช้ในการดำเนินงานขึ้นอยู่กับ • ลักษณะคุณสมบัติของส่วนประกอบของเครื่อง

  8. ลักษณะเฉพาะของอนาล็อกคอมพิวเตอร์ (ต่อ) • - มีความสามารถสูงในการคำนวณทาง • คณิตศาสตร์ เช่น บวก ลบ คูณ หาร การหา • อนุพันธ์ การหาอินทิเกรชัน และการคำนวณ • ฟังก์ชันนอนลิเนียร์ แต่มีความสามารถจำกัดใน • การตัดสินใจ การเก็บข้อมูล และการใช้งาน • ข้อมูลที่ไม่ใช่ตัวเลข • - เทคนิคการสร้างโปรแกรมประกอบด้วยการ • ประกอบส่วนประกอบทางอิเล็กทรอนิกส์ต่าง ๆ

  9. ลักษณะเฉพาะของอนาล็อกคอมพิวเตอร์ (ต่อ) • - การศึกษาการทำงานของชิ้นส่วนจริงจาก • ระบบ สามารถทำได้โดยการประกอบชิ้นส่วน • ที่ต้องการทดสอบเข้าไปในแบบจำลองของ • ระบบ • - ผู้ใช้สามารถทำการทดลองปรับแต่งค่าต่าง ๆ • ให้กับคอมพิวเตอร์ได้ ทำให้เกิดความเข้าใจ • ในการปฏิบัติงานของระบบงานจริงได้ชัดเจน • ยิ่งขึ้น

  10. ลักษณะเฉพาะของไฮบริดคอมพิวเตอร์ลักษณะเฉพาะของไฮบริดคอมพิวเตอร์ • - มีความผสมผสานกันระหว่างความแม่นยำของ • ดิจิตอลคอมพิวเตอร์และความเร็วของอนาล็อก • คอมพิวเตอร์ • - สามารถศึกษาองค์ประกอบจริงบางส่วนที่ใช้กับ • ระบบงานจริงร่วมกับโปรแกรมดิจิตอล • สามารถเพิ่มความคล่องตัวในการจำลองแบบ • ปัญหาด้วยอนาล็อกเพราะสามารถใช้หน่วยความจำและวิธีการตัดสินใจเชิงตรรกะจากดิจิตอลคอมพิวเตอร์

  11. ลักษณะเฉพาะของไฮบริดคอมพิวเตอร์(ต่อ)ลักษณะเฉพาะของไฮบริดคอมพิวเตอร์(ต่อ) • - สามารถเพิ่มความเร็วในการคำนวณของดิจิตอล • โดยอาศัยโปรแกรมย่อยจากอนาล็อกคอมพิวเตอร์ • - สามารถใช้ได้กับข้อมูลทั้งที่แบบเป็นช่วงและ • แบบต่อเนื่อง

  12. 5.2 ภาษาเฉพาะการจำลองแบบปัญหา แบ่งได้เป็น 2 ประเภทหลัก ๆ คือ - ภาษาสำหรับใช้งานทั่ว ๆ ไป (General Purpose Languages) เช่น BASIC, C, PL/1, ALGO - ภาษาเฉพาะการจำลองแบบปัญหา (Simulation Languages) เช่น SIMAN, GPSS, SIMSCRIPT, SLAM, CSMP, GASP

  13. ข้อดีสำหรับการใช้ภาษาเฉพาะข้อดีสำหรับการใช้ภาษาเฉพาะ - ช่วยลดเวลาในการเขียนโปรแกรม - สามารถช่วยแนะแนวทางการสร้างโปรแกรม สำหรับการจำลองแบบปัญหา - ช่วยในการจัดประเภทขององค์ประกอบของระบบ - ช่วยให้การปรับเปลี่ยนคำสั่งหรือเปลี่ยนแปลง โปรแกรมทำได้สะดวกและรวดเร็วขึ้น - มีวิธีการช่วยจำแนกประเภทขององค์ประกอบ ตามลักษณะ

  14. ข้อดีสำหรับการใช้ภาษาเฉพาะ (ต่อ) - สามารถเปลี่ยนแปลงเงื่อนไขการใช้งานได้ง่าย และสะดวก - มีวิธีการตรวจสอบและแสดงข้อผิดพลาด ของโปรแกรมได้ดีกว่าภาษาใช้งานทั่ว ๆ ไป - มีแบบฟอร์มที่ช่วยในการแสดงผลตาม ความต้องการของผู้ใช้ เช่น การแสดงผลของ การทำงานของคำสั่งกราฟแสดงผลของ ตัวแปรต่าง ๆ เป็นต้น

  15. ข้อเสียสำหรับการใช้ภาษาเฉพาะข้อเสียสำหรับการใช้ภาษาเฉพาะ • - ต้องทำการเรียนรู้วิธีการใช้ภาษาเฉพาะนั้น ๆ • - ความคล่องตัวในการสร้างโปรแกรมน้อยกว่า • ภาษาใช้งานทั่ว ๆ ไป และใช้เวลาในการ • ประมวลผลของคอมพิวเตอร์มากกว่า • - บางครั้งการใช้งานภาษาเฉพาะจะต้องมี • อุปกรณ์ที่ใช้เพิ่มเติมซึ่งอาจส่งผลให้มีค่า • ใช้จ่ายที่เพิ่มขึ้น

  16. ภาษาเฉพาะของระบบงานแบบต่อเนื่องภาษาเฉพาะของระบบงานแบบต่อเนื่อง ภาษาเฉพาะที่ใช้กับระบบงานแบบต่อเนื่องแบ่งออกเป็น 2 กลุ่มคือ - ภาษาเฉพาะการจำลองที่ใช้โครงสร้าง แบบบล็อก ( Block-structured simulation languages) - ภาษาเฉพาะการจำลองที่ใช้พื้นฐานของ การแสดงความหมาย (Expression-based languages)

  17. ภาษาเฉพาะของระบบงานแบบไม่ต่อเนื่องภาษาเฉพาะของระบบงานแบบไม่ต่อเนื่อง จะเน้นไปที่ลักษณะของปัญหาหรือเป็นการพิจารณาเชิงปัญหา (Problem-oriented) เป็นหลัก ภาษาเฉพาะแต่ละภาษาสำหรับระบบงานแบบไม่ต่อเนื่องจะมีคำสั่งที่สามารถทำหน้าที่ต่าง ๆ เหล่านี้ คือ - คำสั่งที่ใช้สำหรับแทนสถานะของระบบใน ช่วงเวลาใดเวลาหนึ่งได้ - คำสั่งที่ใช้สำหรับเปลี่ยนสถานะของระบบจากสถานะหนึ่งไปยังสถานะหนึ่งได้ - คำสั่งที่ใช้สร้างข้อมูลสำหรับระบบ เช่น คำสั่งที่ใช้สร้างตัวเลขสุ่ม คำสั่งสำหรับวิเคราะห์ข้อมูล และคำสั่งสำหรับการออกรายงาน

  18. ภาษาเฉพาะที่ใช้กับระบบงานแบบไม่ต่อเนื่อง แบ่งออกเป็น 3 กลุ่มคือ - ภาษาเชิงเหตุการณ์ (Event-oriented languages) เป็นภาษาที่ใช้กับงานที่ขึ้นอยู่กับเหตุการณ์ โดย แต่ละเหตุการณ์เมื่อเกิดขึ้นจะพิจารณาที่เวลาของ การเกิดเหตุการณ์และมีการดำเนินงานของระบบ ตามเวลาที่เกิดเหตุการณ์ใหม่ภายใต้สภาวะหรือ เงื่อนไขที่กำหนดไว้ ดังนั้นสถานะของระบบจึงเป็น การเปลี่ยนแปลงตามเหตุการณ์ ภาษาที่จัดอยู่ใน กลุ่มนี้ได้แก่ SIMSCRIPT และ GASP

  19. - ภาษาเชิงกิจกรรม (Activity-oriented languages) เป็นภาษาที่ใช้กับระบบที่พิจารณารายละเอียดของ เงื่อนไขภายใต้กิจกรรมต่าง ๆ ซึ่งรายละเอียดของ เงื่อนไขเหล่านี้จะไม่มีตารางเวลากำหนดที่แน่นอน หรือไม่มีเวลาของแบบจำลองที่กำหนดไว้ เงื่อนไข จะเป็นเงื่อนไขที่ส่งผลให้กิจกรรมเกิดขึ้น

  20. ภาษาเชิงกิจกรรมควรจะมีคุณสมบัติดังนี้ภาษาเชิงกิจกรรมควรจะมีคุณสมบัติดังนี้ • แบบจำลองใช้เหตุการณ์ถัดไปหรือตัวแปร • ของเวลาเป็นการเพิ่มค่ารูปแบบของเวลา • กระบวนการจำลองเป็นกระบวนการที่ต้องการติดต่อ • และโต้ตอบ (Interactive) ที่ค่อนข้างสูงแต่ไม่มี • การกำหนดจำนวนของคุณลักษณะที่คงที่การเกิด • เหตุการณ์ถูกควบคุมโดยโปรแกรมการตรวจสอบ • รอบของกิจกรรม (Cyclic scanning activity • programs) • ภาษาที่จัดอยู่ในกลุ่มนี้ได้แก่ CSL

  21. - ภาษาเชิงกระบวนการ (Process-oriented languages) ลักษณะหลักของภาษาที่เน้นกระบวนการนั้น จะกระทำกับระบบที่มีกระบวนการทำงานรวมเพียงกระบวนการเดียวซึ่งประกอบด้วยจำนวนของส่วนย่อยต่าง ๆ หรือเซกเมนต์ที่อธิบายได้ด้วยลำดับของกิจกรรม แต่ละเซกเมนต์มีพฤติกรรมที่เขียนเป็นโปรแกรมควบคุมที่เป็นอิสระจากกัน สำหรับการควบคุมการรับข้อมูลจะมีคำสั่งที่ประกอบเซกเมนต์ให้ทำงานแล้วส่งผลควบคุมนั้นกลับมา ดังนั้นแบบจำลองจะถูกกำหนดเป็นความต่อเนื่องของการเกิดกระบวนการ ภาษาที่จัดอยู่ในกลุ่มนี้ได้แก่ SIMULA

  22. ภาษาที่อยู่ภายใต้ทิศทางของการทำงาน (Transaction-flow oriented language) จัดเป็นกลุ่มย่อยของภาษาเชิงกระบวนการที่จะแทนเส้นทางการวิ่งของกิจกรรมด้วยบล็อก แบบจำลองของระบบถูกแทนด้วยผังการทำงานที่ประกอบด้วยบล็อกของภาษา โปรแกรมจะสร้างการทำงาน (Transaction) แล้วปฏิบัติการทำงานนั้นในบล็อกและส่งการทำงานเหล่านั้นไปตามผังการทำงาน การเขียนโปรแกรมด้วยภาษานี้จะลดความยุ่งยากด้วยการกำหนดการแทนผังการทำงาน ภาษาที่อยู่ในกลุ่มนี้ที่เป็นที่รู้จักกันทั่วไปคือ GPSS

  23. ตัวอย่างของภาษาเฉพาะที่นิยมใช้โดยทั่วไปตัวอย่างของภาษาเฉพาะที่นิยมใช้โดยทั่วไป GASP เป็นภาษาเฉพาะที่เป็นกลุ่มของโปรแกรมย่อยที่เขียนด้วยภาษา FORTRAN แต่ละโปรแกรมย่อยจะทำหน้าที่บางอย่างที่มักจะใช้การจำลองแบบปัญหา ผู้เขียนโปรแกรมจะเพียงแต่สร้างโปรแกรมหลักแล้วเรียกใช้โปรแกรมย่อยเหล่านั้นมาต่อกันเป็นโปรแกรม GPSS เป็นภาษาเฉพาะที่พัฒนาโดยไอบีเอ็มและมีรูปแบบคำสั่งในการเขียนเฉพาะทาง โดยปัญหาที่เหมาะสมกับการใช้ภาษานี้ควรเป็นปัญหาที่มีองค์ประกอบชั่วคราวที่ใช้ในระบบ เช่น วัตถุดิบ ลูกค้าที่เข้ารับบริการ เป็นต้น

  24. ตัวอย่างของภาษาเฉพาะที่นิยมใช้โดยทั่วไป (ต่อ) SIMSCRIPT เป็นภาษาที่พัฒนาโดยบริษัทแรนด์ คอร์ปอเรชัน (RAND Corporation) ซึ่งแนวทางในการสร้างโปรแกรมจะเป็นการจัดเรียงของความต่อเนื่องของเหตุการณ์ที่จะเกิดขึ้นในระบบ CSMP เป็นภาษาที่พัฒนาโดยไอบีเอ็ม และใช้กับแบบจำลองอนาล็อกที่อาศัยดิจิตอลคอมพิวเตอร์ในการปฏิบัติการ มักใช้กับปัญหาที่อยู่ในรูปของสมการนอนลิเนียร์ สมการอนุพันธ์ สมการอินทิเกรชัน

  25. A Brief History of Simulation • Simulation has been around for some time. • Early simulations were event-driven (see SimscriptMODSIM) and frequently military applications. • In the 1960’s Geoffrey Gordon developed the transaction (process) based orientation that we are now familiar with. • Gordon’s software was called General Purpose Simulation System (GPSS). • GPSS was originally intended for analyzing time sharing options on mainframe computers. • The software was included as a standard library on IBM 360s and its use was quite widespread.

  26. 5.3 SIMSCRIPT พัฒนาขึ้นโดยบริษัทแรนด์ คอร์ปอเรชัน ในปีช่วงต้นปีค.ศ. 1960 และเปิดตัวครั้งแรกในปี 1962 และจากนั้นก็ได้ถูกพัฒนาประสิทธิภาพซึ่งมีการเผยแพร่ออกมาเป็นเวอร์ชันต่าง ๆ ซึ่งได้แก่ SIMSCRIT I.5 เป็นต้น ในปี 1968 บริษัทได้ผลิตเวอร์ชันที่สมบูรณ์คือ SIMSCRIPT II ซึ่งเป็นที่แพร่หลายและรู้จักกันในวงการซอฟต์แวร์ของการจำลองแบบปัญหา และเวอร์ชันล่าสุดคือ SIMSCRIPT II.5 ถูกนำเผยแพร่ในปี 1972

  27. เนื่องจากภาษานี้ได้ถูกพัฒนาด้วยภาษา FORTRAN จึงมีลักษณะคล้ายคลึงกับภาษา FORTRAN และสามารถนำไปใช้เป็นภาษาสำหรับการจำลองปัญหาแบบไม่ต่อเนื่อง โดยสามารถใช้กับเครื่อง IBM 7090, 7094, 360 และ 370 series

  28. 5.4 GPSS GPSS ย่อมาจาก General Purpose Simulation System เป็นภาษาสำหรับการจำลองปัญหาแบบไม่ต่อเนื่อง ที่ได้รับการพัฒนามาตั้งแต่การเริ่มต้นการจำลองแบบปัญหา ผู้พัฒนาคือ Geoffrey Gordon ในปี 1961 โดยครั้งแรกพัฒนาขึ้นเพื่อใช้กับเครื่อง IBM 704, 709 และ 7090 GPSS เป็นภาษาที่เหมาะกับการสร้างแบบจำลองปัญหาด้านการจราจรและปัญหาระบบแถวคอย โดยการเขียน GPSS นั้นจะแตกต่างจาก SIMSCRIPT โดยเริ่มจากการสร้างแผนภาพบล็อก (Block diagrams) เพื่อแสดงการเครือข่ายของการเชื่อมโยง

  29. บล็อกของงานต่าง ๆ และการเขียนโปรแกรมจะใช้ฟังก์ชันสำหรับการทำงานของบล็อกที่กำหนดขึ้น งานที่เกิดขึ้นระหว่างบล็อกจะเรียกว่า transactions ตัวอย่างของการทำงานหรือ transactions ได้แก่ ลูกค้า ข่าวสาร ส่วนประกอบของเครื่อง เครื่องยนต์ เป็นต้น

  30. ตัวอย่างของบล็อกที่ใช้กันทั่วไปตัวอย่างของบล็อกที่ใช้กันทั่วไป GENERATE เป็นฟังก์ชันในการสร้างการทำงานหรือ transactions QUEUE เป็นฟังก์ชันในการสร้างแถวคอยของการ ทำงาน และจัดการข้อมูลทางด้านสถิติของ แถวคอย TABULATE เป็นฟังก์ชันในการจัดระเบียบของเวลาใน การมาถึงของการทำงานในระบบการ จำลองปัญหา TERMINATE เป็นฟังก์ชันในการล้างการทำงาน ที่เสร็จเรียบร้อยหรือตามที่ระบุให้ออกจากระบบ ADVANCE เป็นฟังก์ชันในการนำเข้าการทำงานแล้วติดตามจนกระทั่งการทำงานเสร็จสมบูรณ์ ด้านการคำนวณทางคณิตศาสตร์พื้นฐานทั่วไป

  31. GPSS จะมีคำสั่งหรือฟังก์ชันในการคำนวณไว้สำหรับเรียกใช้ได้ทันที นั่นคือมี built inmath functions และ built in random variate generators ตัวอย่างแผนภาพบล็อกที่ใช้กับภาษา GPSS สามารถแสดงได้ดังรูป 5.3 และรูปแบบของภาษาในการเขียนโปรแกรมสามารถแบ่งออกคอลัมน์ต่าง ๆ สำหรับการเขียนคำสั่งเป็น 4 ส่วน คือ ลาเบล (Label) คำสั่งปฏิบัติการ (Operator) ตัวปฏิบัติการ (Operands) และคอมเมนต์ (Comments) ซึ่งแต่ละส่วนจะมีขอบเขตของคอลัมน์ดังแสดงในตาราง 5.1

  32. ตาราง 5.1 แสดงหมายเลขคอลัมน์สำหรับการเขียนโปรแกรม GPSS

  33. รูป 5.3 แสดงสัญลักษณ์ของแผนภาพบล็อก GPSS

  34. Assume an M/M/1system. Interarrival time = 2.0 minutes (exponential) Service time = 1.0 minutes (exponential). Assume an infinite queue. * Simulation of M/M/1 system SIMULATE GENERATE RVEXPO(1, 2.0) QUEUE SERVQ SEIZE SERVER ADVANCE RVEXPO(2, 1.0) RELEASE SERVER TERMINATE 1 * * CONTROL STATEMENTS * START 1000 END GPSS Code

  35. 5.5 SIMULA SLAM และ SIMAN SIMULA ย่อมาจาก SIMUlation Language พัฒนามาจากภาษาสำหรับการใช้งานทั่วไปคือ ALGOL 60 ภาษานี้ถูกพัฒนาขึ้นโดยมีวัตถุประสงค์คือต้องการจะสร้างภาษาเฉพาะการจำลองแบบปัญหาที่มีความคล่องตัวสามารถปรับเปลี่ยนเงื่อนไขหรือควบคุมการทำงานต่าง ๆ ได้เหมือนกับภาษาใช้งานทั่ว ๆ ไป ขณะที่ GPSS และ SIMSCRIPT เป็นภาษาเฉพาะการจำลองที่นิยมกันในสหรัฐอเมริกา SIMULA กลับได้รับความนิยมในแถบยุโรป เนื่องจากภาษานี้มีพื้นฐานมาจากคำสั่งภาษา ALGOL ผู้ใช้จึงควรมีความรู้พื้นฐานเกี่ยวกับภาษา ALGOL

  36. แนวความคิดของภาษาจะเป็นการทำงานของโพรเซส ซึ่งสามารถทำงานในแบบขนาน และกลุ่มของโพรเซสที่ทำงานร่วมกันจะเรียกว่าเฟสปฏิบัติการ (Active phases) โดยแต่ละโพรเซสจะทำการนำข้อมูลเข้ามาและทำการประมวลผลตามกฏหรือเงื่อนไขที่กำหนดไว้ SLAM ย่อมาจาก Simulation Language for Alternative Modeling ได้ถูกพัฒนาขึ้นในปี 1972 โดย อลัน พริทส์เกอร์และเดวิส เพกเดน (Alan Pritsker and David Pegden) เพื่อใช้กับเครื่อง VAX และ UNIX ซึ่งเป็นเครื่องกลุ่มเวิร์กสเตชัน (workstations) โดยภาษานี้ถูกพัฒนามาจากภาษา FORTRAN แต่เนื่องจาก SLAM นั้นใช้เวลาในการคอมไพล์นาน จึงได้มีการพัฒนาให้มีการคอมไพล์ให้เร็วขึ้นด้วยการแยกส่วนของโปรแกรมออกเป็น โปรแกรมย่อย ๆ โดยภาษาที่ได้รับการพัฒนานี้ถูกเรียกว่า SLAM II

  37. 1 RESOURCE,,SERVER,1,{1}; • 2 CREATE,EXPON(2,1),0.0,,INF,1; • 3 ACTIVITY; • 4 AWAIT,1,{{SERVER,1}},ALL,,NONE,1; • 5 ACTIVITY,1,EXPON(1,1); • 6 FREE,{{SERVER,1}},1; • 7 ACTIVITY; • 8 TERMINATE,INF; • 1 GEN; • 2 LIMITS; • 3 INITIALIZE,0.0,1000,YES,,NO; • 4 NET; • 5 FIN; • แสดงตัวอย่างการเขียนโปรแกรม SLAM II

  38. สำหรับ SIMAN ย่อมาจาก SIMulation Analysis ซึ่งเดนนิส เพกเดน (Dennis Pegden) ได้ทำการ พัฒนาขึ้นในปี 1983 โดยมีเป้าหมายให้ใช้กับงาน กับเครื่องคอมพิวเตอร์ส่วนบุคคล และมีรูปแบบการ เขียนที่แน่นอนและชัดเจน จากนั้นได้ถูกพัฒนา ต่อให้มีความสามารถในการทำรูปภาพจำลองได้ และเสนอออกมาในปี 1985

  39. BEGIN; • CREATE,,EX(2,1); • QUEUE, 1; • SEIZE: SERVER; • DELAY: EX(1,1); • RELEASE:SERVER:DISPOSE; • END; • BEGIN; • DISCRETE, 1000, 1, 1; • RESOURCES: 1, SERVER; • REPLICATE,1; • END; แสดงตัวอย่างการเขียนภาษา SIMAN

  40. SIMAN AND SLAM • SIMAN is tailored for the PC market. • SLAM remains focused on workstations. • SIMAN introduces an animation package (CINEMA) about 1985 or so. • The animation is an add on unit for the model. • Originally it required specialized (& expensive) hardware. • SLAM responds with a PC version of SLAM in the late 1980s (which also has animation). • Both firms develop software to integrate factory scheduling into simulation runs.

  41. 5.6 การเลือกใช้ภาษา - การใช้งานได้ทั่วไปและการเขียนโปรแกรม ภาษาที่ใช้ควรมีฟังก์ชันในการเขียนและสามารถ ในควบคุมการทำงานที่ครอบคลุมแอพพลิเคชัน ที่มีรูปแบบหลากหลายได้ รวมทั้งนำเสนอขั้นตอน วิธีที่ดี มีความถูกต้องและมีประสิทธิภาพ เช่น ภาษาที่เลือกใช้ควรมีความสอดคล้องและ เหมาะสมกับลักษณะเฉพาะของปัญหาที่ต้องการ สร้างแบบจำลอง

  42. - ความสะดวกในการใช้งาน หมายถึงภาษาสามารถใช้งานได้ง่ายมีความเป็นธรรมชาติที่สอดคล้องกับระบบของแบบจำลอง ซึ่งอยู่ภายใต้เงื่อนไขของโปรแกรมคอมพิวเตอร์ ผู้ใช้สามารถแก้ไขโปรแกรมได้ง่าย มีความสะดวกในการสร้างเอกสารและปรับเปลี่ยนการออกแบบการทดลองได้ง่าย

  43. - ประสิทธิภาพของเครื่อง ภาษาที่ใช้จะต้องมีความเหมาะสมกับเครื่องคอมพิวเตอร์ที่ใช้ในการสร้างแบบจำลอง มีความรวดเร็วในการคอมไพล์และได้โปรแกรมที่มีคุณภาพ ซึ่งจะขึ้นอยู่กับโครงสร้างของภาษาที่ใช้ ประสิทธิภาพของเครื่องนั้นสามารถวัดได้จาก ความเร็วในการประมวลผลและขนาดของหน่วยความจำที่ต้องการใช้ในการดำเนินงาน

  44. - ความคุ้มค่าในการลงทุน ข้อจำกัดสำหรับการพิจารณาเลือกใช้ภาษาที่สำคัญอย่างหนึ่งคือค่าใช้จ่ายต่าง ๆ ที่จะเกิดขึ้นจากการสร้างแบบจำลอง ไม่ว่าจะเป็นการลงทุนทางด้านซอฟต์แวร์หรือฮาร์ดแวร์ ซึ่งจะต้องให้ผลที่คุ้มค่าต่อการสร้างตัวแบบจำลอง

  45. Early PC Versions • By the mid-80s the PC market is dominant. • Mainframes are expensive. • Cycles are expensive. • Central IS groups are expensive. • Engineers become computer experts. • A lot of IE’s end up writing simulations. • There are a number of issues: • User development cycles are very long. • Total memory (model, entities, etc) limited to about 32k by FORTRAN/C and early versions of DOS. • Simulation language development tends to lag OS development.

  46. SIMULATORS • Advent of Windows 3.0/3.1. • Mass penetration of PCs. • Powerful hardware and software (especially OOC) becomes available. • We start to see the creation of a variety of simulators. • The simulators are usually graphically oriented (drag & drop model development),have integrated animation, and low purchase cost. • Huge number of simulators come onto the market. • These often lack statistical rigour.

  47. Today’s Market • There has been something of a rationalization in terms of the number of simulation languages/simulators available. • See the May 1999 edition of IIE Solutions. • The large simulation companies have all been bought or sold at least a couple of times in the past two – three years. • SLAM  Frontstep Systems (a logistics software supplier). Not in active development (last release ’99). • SIMAN  Rockwell Software (logistics & controls).

  48. Trends • Virtual reality animations. • Advanced statistical functions • Curve fitting for input data. • Automatic detection of warm up • Output analysis modules (including replication). • Bolt on “Optimizers” – Tools to search for optimal settings of parameters.

More Related