Due 05.Apr.26 (Tue)
Before you tackle the homework, remind yourself of our general hw policies
Reading: Rosen §§ 4.1-4.4
You may want to look at
some q&a on this hw.
I originally had used ``insert a digit''
then re-wrote the problem as ``replace a letter by a digit'',
but I was too glib about this revision:
A student points out that ``table'' and ``fable'' could each lead
to ``5able''.
So, either:
state: team2-to-serve input: Succeed [indicates team 2 served successfully.] state: team1-to-return5 input: Fail [oops, team 1 failed to return the ball.] state: team-2-to-serve ...Specify the 4-state FSM best modeling a volleyball game. Express your answer in table format.
1 This number is based on looking at /usr/dict/words on some standard UNIX releases, which contains 3877, 4072, and 3621 words of length 6,7,8 resp. (back)
2 This approach is used by AOL, though their counting might be somewhat suspect: in the past, they've offered 700 free hours to be used within a month; some months don't even have 700 hrs! It makes one wonder whether this marketing is really better than just offering something like "first month free" (and if so, why?). (back)
3 An explanation of why a less-accurate answer might be considered more correct:
When there is noise (or assumptions) in the input, the output isn't entirely inaccurate, and implying accuracy that isn't there is actually misleading. Like bad sci-fi movies that I loved as a kid: ``The doctor says the tribe of dolphin-parakeets will die if their planet's temperature goes above 132.4 degrees!'', and the heroes manage to fix the A/C just as the temperature climbs to 132.39 degrees, whew.
Given the problem was making gross estimates anyway (and, unless remembering details, like that a year is a tad longer than 365.24 days) that's why answers with more than a couple of digits of accuracy are less correct.
A more rigourous treatment would give error bounds to all inputs, so that bounds could be propogated through to include in the answer. (back)
4 Well, you might be writing code for MegaProVolleyballPlus, and the referee might actually be the physics simulator, which is calculating the outcome based on your or another module's output. (back)
5 We'll consider a return as a single event, and not model how it might be made up of up to three individual hits by one team. Clearly, you could certainly model the up-to-three hits by refining your FSM, though it might need inputs (the ref) distinguishing between a hit which wasn't a return but wasn't drop-the-ball either. (back)
6 This was how we played in my (dreaded) junior high PE; however more competitive volleyball might only allow re-serves when the serve hit the net; I'm not sure.
Regardless, Once a re-serve resolves, the botched serve is forgotten; thus there can be a re-serve every single volley. (back)
7 Well in real volleyball, there are apparently "rally points" in overtime, a mode where every play results in somebody getting a point. You can see that we could also model this, but it would require a referee input telling us to switch into rally mode, and would also mean a bunch more states. (back)
8 The direct way to model the points would be to augment our definition of FSM to allow a couple of integer variables, let certain states modify them, and allow transitions to depend on them.
It's more cumbersome (but possible) to do this even without augmenting the FSM with variables. For every possible score (how many possible scores are there?), we could make a copy of the simple FSM, and then tweak the scoring transitions. (back)
[an error occurred while processing this directive] [an error occurred while processing this directive]