Muutke küpsiste eelistusi

E-raamat: Computer Simulation: A Foundational Approach Using Python

(King Fahd University of Petroleum and Minerals (KFUPM), Saudi Arabia)
  • Formaat - PDF+DRM
  • Hind: 61,09 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

Computer simulation is an effective and popular universal tool that can be applied to almost all disciplines. Requiring only basic knowledge of programming, mathematics, and probability theory, Computer Simulation: A Foundational Approach Using Python takes a hands-on approach to programming to introduce the fundamentals of computer simulation.

Typically, simulation involves two key steps: modeling and implementation. In this book, these processes are divided to minimize confusion and help introductory students grasp the transition to stochastic simulation. Modeling is covered in the first half of each chapter and is presented with event graphs and design of experiments. Then, as a tool of choice for scientists and engineers, Python programs are used throughout the book to help students implement their knowledge. The chapters are aided by a heavy use of Illustrations, and many examples are provided to re-enforce the concepts presented. The book also features a full chapter of case studies, as well as real working code, encouraging students to compare results obtained from simulation with those obtained using analytical methods. Additionally, most of the necessary mathematics is abstracted by procedures that show how the mathematical techniques can be implemented in the real world. This helps make the shift from models to programs straightforward.

Some other features of this book are:

  • Simulation programs are divided into two distinct components: simulator and model.
  • Both simulation without an event list and with an event list are covered.
  • The single-queue single-server queuing system is used as a running example throughout the book
  • A complete chapter on the Monte Carlo method and variance-reduction techniques are included.

The main target of the book is computer science and engineering students who are interested mainly in directly applying the techniques to their research problems. The book will be of great interest to senior undergraduate and starting graduate students in the fields of computer science and engineering and industrial engineering.

Arvustused

"This book is highly recommended for a graduate course in modeling and simulation. It is also recommended for an introductory course in modeling and simulation for a senior undergraduate course. In addition, it can be a good reference for researchers, working engineers and scientists who work in modeling and simulation and optimization. It is a good addition to the field of modeling and simulation. I hope you will enjoy the book as much as I have enjoyed reviewing it." Mohammad S. Obaidat, Past President of the Society for Modeling and Simulation International, SCS, and Editor-in-Chief, International Journal of Communication Systems

List of Programs
xv
List of Figures
xix
List of Tables
xxvii
Foreword xxix
Preface xxxi
About the Author xxxiii
Abbreviations xxxv
Symbols xxxvii
Part I The Fundamentals
Chapter 1 Introduction
3(10)
1.1 The Pillars Of Science And Engineering
3(1)
1.2 Studying The Queueing Phenomenon
4(1)
1.3 What Is Simulation?
5(1)
1.4 Lifecycle Of A Simulation Study
6(3)
1.5 Advantages And Limitations Of Simulation
9(1)
1.6 Overview Of The Book
10(1)
1.7 Summary
11(2)
Chapter 2 Building Conceptual Models
13(14)
2.1 What Is A Conceptual Model?
13(2)
2.2 Elements Of A Conceptual Model
15(3)
2.2.1 Entities
15(1)
2.2.2 Attributes
15(1)
2.2.3 State Variables
16(1)
2.2.4 Events
17(1)
2.2.5 Activities
17(1)
2.3 The Single-Server Queueing System
18(4)
2.4 State Diagrams
22(1)
2.5 Actual Time Versus Simulated Time
23(1)
2.6 Summary
24(1)
2.7 Exercises
24(3)
Chapter 3 Simulating Probabilities
27(12)
3.1 Random Experiments And Events
27(1)
3.2 What Is Probability?
28(2)
3.3 Computing Probabilities
30(2)
3.4 Probability As A Sample Mean
32(4)
3.5 Summary
36(1)
3.6 Exercises
36(3)
Chapter 4 Simulating Random Variables and Stochastic Processes
39(30)
4.1 What Are Random Variables?
39(7)
4.1.1 Probability Mass Functions
40(1)
4.1.2 Cumulative Distribution Functions
41(2)
4.1.3 Probability Density Functions
43(1)
4.1.4 Histograms
44(2)
4.2 Some Useful Random Variables
46(10)
4.2.1 Bernoulli
46(1)
4.2.2 Binomial
47(1)
4.2.3 Geometric
48(1)
4.2.4 Poisson
49(1)
4.2.5 Uniform
50(3)
4.2.6 Exponential
53(1)
4.2.7 Erlang
54(1)
4.2.8 Normal
54(1)
4.2.9 Triangular
55(1)
4.3 Stochastic Processes
56(2)
4.4 Dynamic System Evolution
58(2)
4.5 Simulating Queueing Processes
60(7)
4.5.1 Discrete-Time Markov Chains
62(2)
4.5.2 Continuous-Time Markov Chains
64(3)
4.6 Summary
67(1)
4.7 Exercises
67(2)
Chapter 5 Simulating the Single-Server Queueing System
69(24)
5.1 Simulation Model
69(6)
5.2 Collecting Simulated Data
75(1)
5.3 Performance Laws
76(8)
5.3.1 Throughput
76(1)
5.3.2 Utilization
76(1)
5.3.3 Response Time
77(2)
5.3.4 E[ N(t)]
79(3)
5.3.5 P[ N]
82(2)
5.4 Independent Simulation Runs
84(2)
5.5 Transient And Steady Phases
86(5)
5.6 Summary
91(1)
5.7 Exercises
91(2)
Chapter 6 Statistical Analysis of Simulated Data
93(16)
6.1 Populations And Samples
93(2)
6.2 Probability Distribution Of The Sample Mean
95(2)
6.3 Confidence Intervals
97(7)
6.3.1 Interpretations
100(2)
6.3.2 Why Not Always Use a 99% Confidence Interval?
102(2)
6.4 Comparing Two System Designs
104(1)
6.5 Summary
105(1)
6.6 Exercises
105(4)
Part II Managing Complexity
Chapter 7 Event Graphs
109(14)
7.1 What Is An Event Graph?
109(2)
7.2 Examples
111(6)
7.2.1 The Arrival Process
111(1)
7.2.2 Single-Server Queueing System
112(2)
7.2.3 Multiple-Server Queueing System
114(1)
7.2.4 Single-Server Queueing System with a Limited Queue Capacity
114(1)
7.2.5 Single-Server Queuing System with Failure
115(1)
7.2.6 Single-Server Queuing System with Reneging
116(1)
7.2.7 Single-Server Queuing System with Balking
116(1)
7.3 Translating Event Graphs Into Code
117(3)
7.4 Summary
120(1)
7.5 Exercises
120(3)
Chapter 8 Building Simulation Programs
123(16)
8.1 Time-Driven Simulation
123(3)
8.2 Event-Driven Simulation
126(1)
8.3 Writing Event-Driven Simulation Programs
127(7)
8.4 Programming Issues
134(1)
8.4.1 Event Collision
134(1)
8.4.2 Identifiers for Packets
134(1)
8.4.3 Stopping Conditions for the Simulation Loop
134(1)
8.5 Summary
135(1)
8.6 Exercises
135(4)
Part III Problem-Solving
Chapter 9 The Monte Carlo Method
139(26)
9.1 Estimating The Value Of π
139(3)
9.2 Numerical Integration
142(2)
9.3 Estimating A Probability
144(5)
9.3.1 Buffon's Needle Problem
144(2)
9.3.2 Reliability
146(3)
9.4 Variance Reduction Techniques
149(12)
9.4.1 Control Variates
149(2)
9.4.2 Stratified Sampling
151(2)
9.4.3 Antithetic Sampling
153(3)
9.4.4 Dagger Sampling
156(2)
9.4.5 Importance Sampling
158(3)
9.5 Summary
161(1)
9.6 Exercises
161(4)
Part IV Sources of Randomness
Chapter 10 Random Variate Generation
165(22)
10.1 The Inversion Method
165(8)
10.1.1 Continuous Random Variables
167(2)
10.1.2 Discrete Random Variables
169(2)
10.1.2.1 Generating a Bernoulli Variate
171(1)
10.1.2.2 Generating a Binomial Variate
172(1)
10.1.2.3 Generating a Geometric Variate
173(1)
10.2 The Rejection Method
173(4)
10.3 The Composition Method
177(2)
10.4 The Convolution Method
179(3)
10.5 Specialized Methods
182(4)
10.5.1 The Poisson Distribution
182(2)
10.5.2 The Normal Distribution
184(2)
10.6 Summary
186(1)
10.7 Exercises
186(1)
Chapter 11 Random Number Generation
187(22)
11.1 Pseudo-Random Numbers
187(2)
11.2 Characteristics Of A Good Generator
189(1)
11.3 Just Enough Number Theory
190(2)
11.3.1 Prime Numbers
190(1)
11.3.2 The Modulo Operation
190(1)
11.3.3 Primitive Roots for a Prime Number
191(1)
11.4 The Linear Congruential Method
192(1)
11.5 The Multiplicative Congruential Method
193(1)
11.5.1 2k Modulus
193(1)
11.5.2 Prime Modulus
194(1)
11.6 Linear Feedback Shift Registers
194(5)
11.7 Statistical Testing Of RNGs
199(6)
11.7.1 The Chi-Squared Test
199(2)
11.7.2 The Poker Test
201(1)
11.7.3 The Spectral Test
202(2)
11.7.4 The Lag Plot
204(1)
11.8 Summary
205(1)
11.9 Exercises
205(4)
Part V Case Studies
Chapter 12 Case Studies
209(26)
12.1 Network Reliability
209(9)
12.2 Packet Delivery Over A Wireless Channel
218(8)
12.3 Simple ARQ Protocol
226(7)
12.4 Summary
233(1)
12.5 Exercises
233(2)
Appendix A Overview of Python
235(16)
A.1 Basics
235(2)
A.2 Input And Output
237(1)
A.3 Bitwise Operators
238(1)
A.4 Lists
239(1)
A.5 List Functions
240(1)
A.6 Generating Random Numbers And Random VARI-ATES
241(1)
A.7 Implementing The Event List
242(2)
A.7.1 Priority Queue
242(1)
A.7.2 Heap Queue
242(1)
A.7.3 Sorting a List
243(1)
A.8 Passing A Function Name As An Argument
244(1)
A.9 Tuples As Records
245(1)
A.10 Plotting
245(6)
Appendix B An Object-Oriented Simulation Framework
251(16)
Appendix C The Chi-Squared Table
267(2)
Appendix D The t-Distribution Table
269(2)
Bibliography 271(2)
Index 273
Yahya E. Osais is a faculty in the department of computer engineering at King Fahd University of Petroleum and Minerals (KFUPM), Dhahran, Saudi Arabia. He obtained his B.Sc. and M.Sc. from the same department in 2000 and 2003, respectively. In 2010, he obtained his Ph.D. from the department of systems and computer engineering at Carleton university, Ontario, Canada. Dr. Osais regulary teaches a graduate course on computer simulation for students in the college of computer science and engineering at KFUPM. He also teaches courses on computer engineering design and web technologies. His current research interest includes stochastic modeling and simulation, cyberphysical systems, and Internet of things.