Problem Set 1 - Post-mortem =========================== Problem set 1 was marked out of 50. The allocation of these 50 marks is as follows: 1. 10 marks 2. 10 marks 3. (a) 4 marks (b) 4 marks (c) 2 marks 4. (a) 4 marks (b) 3 marks (c) 3 marks 5. 10 marks For the programming questions (1,5), up to three marks were deducted for each major error, for example, Question 1: incorrect throughput, incorrect input distributions, incorrect system view, insufficient commenting, etc. Question 5: incorrect chi-squared value, incorrect number of runs, incorrect test statistic for runs up runs down test, insufficient commenting, etc. If a deduction was made for not having header comments (see cc1.2 below) in question 1, we did not deduct again for this in question 5. It was still possible to lose marks in both questions for inadequate general comments (see cc1.1 below). For the other questions (2,3,4), up to four marks were deducted for each major error or incorrect answer. In some cases we gave partial credit if the solution was close to correct. In general, the assignments were extremely well done. I'll outline the most common problems with each question, and then list the deduction codes (canonical comments) that were written on the assignments. This coding system was used so that the TAs didn't have to write so many comments on the assignment papers. 1. For question one, a common problem was the incorrect use of a facility to handle queueing in the computer system. A facility is not really needed for this question because queueing is already included in the computer system response time that you were given for this question (see cc1.5 below). It was possible to correctly implement this question using a facility. Many students used a facility with the scheduling discipline set as "inf_srv" (infinite servers), and received full credit. Students had trouble with the "system view" distribution. We were looking for a histogram that displayed the computer system response time. Common problems were (1) showing a qhistogram, instead of a regular histogram, and (2) showing a distribution of both the think time and the system response time. Most people correctly calculated the throughput as the total number of commands divided by the total simulation time. 2. Most people received perfect marks for this question. A few students did not realize that this was an Erlang distribution, and proceeded to develop a messy double integral formula. Only two students managed to get the correct answer using the complicated double integral cdf formula. 3. Most students correctly answered part (a) and part (c). Most difficulties were with part (b). There were several ways to attack part (b). The solution that we have shown determines the probability of dying in an odd year, and the probability of dying in an even year. Since these probabilities add to one and there is a relationship between the odd and even probability, we are able to simplify to determine the probability of dying in an odd year. Several students were also successful at using a geometric series in determining the probability of dying in an odd year. 4. This question was extremely well done. Most students received perfect marks for this question. These questions simply involved the application of the normal, triangular, and uniform cdf functions. 5. This question was also well done. The chi-squared error test didn't cause much trouble. The most common reason for getting an incorrect chi-squared value was because the students did not correctly convert between floating point and integers in their calculations. There was a little difficulty in determining the number of runs for the "runs up runs down" test. Usually students were off by just one or two runs, indicating that the problem was in setting up the starting state. Canonical Comments for Problem Set 1 ==================================== The following codes were used to denote problem areas in your problem sets. You will find these comment codes written throughout your problem set. cc1.1 -- Your program does not have adequate comments. We expect all variables, procedures, and major sections of code to be commented. If you code something that may not be obvious to someone reading your code, you must comment it. cc1.2 -- Your program does not have header comments, or its header comments are not adequate. The header comments at the top of every program should include a description of your program, the question number, the names, login IDs, student IDs, etc. Note that if you were deducted for this in question 1 (-2), then no further deduction was made in programming question 5. cc1.3 -- throughput calculation is not correct. It should be number_of_commands / total__simulation_time. cc1.4 -- We want the throughput for this particular simulation, not the theoretical value. cc1.5 -- The facility that you have declared has queueing; however, queueing has already been included in the system response time. Your facility should not using a scheduling policy that queues processes. If you wish to use a facility, its scheduling discipline must be set to inf_srv (infinite servers). cc1.6 -- Use the uniform() function to generate your uniform distribution. cc1.7 -- The response time mean in your simulation should be approx. 4. The minimum should be approx. 2, and the maximum should be approx. 6. Your values are not in this range, so you have likely specified the wrong random number generator or the wrong arguments for it. cc1.8 -- The think time mean in your simulation should be approx. 8. The minimum should be approx. 4, and the maximum should be approx. 12. Your values are not in this range, so you have likely specified the wrong random number generator or the wrong arguments for it. cc1.9 -- You have shown a distribution for the total of the think time plus the response time. The time in the computer system is just the response time. You should have shown the distribution for that (to show the "system view"). cc1.10 -- You were asked for a view of the distribution of time in the computer system ("system view"), thus you must use a regular histogram. The histogram should show the time distribution of the system response time. cc1.11 -- You must generate 24 terminal session processes that run 'simultaneously' (in simulated time). cc1.12 -- You have not clearly indicated which part of your output is the "system view" that was required for this question. cc1.13 -- You have not shown the simulation throughput value. cc2.1 -- X = X1+X2 is an Erlang with k*theta=1, k=2 and theta=0.5. cc3.1 -- This is due to the memoryless property. cc3.2 -- We are looking for an exact answer. The exact answer is 1/(1+e^(-.25)). cc4.1 -- Use the formula for a Triangular distribution. cc5.1 -- The number of runs was not calculated correctly. The number of runs should be 66. cc5.2 -- The uniform() function in CSIM should be used to generate the random number for this question. Any range of random numbers is fine, but uniform(0.0,1.0) works well when it comes to splitting the random numbers into intervals for the Chi-Squared test.