User Tools

Site Tools


lab7

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
lab7 [2017/02/18 20:31] francklab7 [2019/03/14 01:13] (current) franck
Line 1: Line 1:
-The beam search strategy uses the breadth-first search strategy to build its state space.  At each level of the search tree, it generates only a limited number of successors of the states at the current level.  To simplify matters, we limit that number to two.  In general, the beam search strategy would pick the two "best" successors.  Again, to simplify matters, our beam search strategy will select the two "left-most" successors.  Consider, for example, the following state space diagram.+====== Lab 7 ======
  
-{{:public:beamsearch.png|}}+You are asked to implement a solution to the sleeping barber problem in Java.  Some Java code has already been developed (see below).  First, we describe the problem.
  
-While traversing the state space, the beam search strategy will visit the states labelled ABC, E and F.+The barber has one barber's chair and a waiting room containing a number of chairs in it.  When the barber finishes cutting a customer's hairhe dismisses the customer and goes to the waiting room to see if there are others waiting.  If there arehe brings one of them back to the chairs and cut their hair.  If there are nonehe returns to the chair and sleeps in it.
  
-Create a search strategynamed BeamSearchwhich implements the beam search strategy.  Only add notifications related to SearchListeners (no need for dealing with the attribute doneetcetera).+Each customerwhen they arrivelooks to see what the barber is doing.  If the barber is sleepingthe customer wakes him up.  If the barber is cutting hair, the customer stays in the waiting room.  If there is a free chair in the waiting room, the customer sits in it and waits their turn.  If there is no free chair, the customer leaves.
  
-To receive feedback, submit your test case using the submit command before Tuesday Febraury 28:\\ +The waiting room is represented by the class WaitingRoom and the barber and the customers are represented by Barber and Customer threads.  The API of these classes can be found [[http://www.eecs.yorku.ca/course_archive/2018-19/W/4315/lab7/barber.api/index.html|here]].  Implement the classes WaitingRoom and Barber.  An implementation of the Customer class can be found [[http://www.eecs.yorku.ca/course_archive/2018-19/W/4315/lab7/Customer.java.txt|here]].  The sleeping barber app can be found [[http://www.eecs.yorku.ca/course_archive/2018-19/W/4315/lab7/Main.java.txt|here]]. 
-submit 4315 lab7 BeamSearch.java+ 
 +Since randomization is used in some of the classes, different runs of the app may produce different outputs. 
 +<code> 
 +Barber sleeps 
 +Customer 4 enters 
 +Customer 4 sits down 
 +Barber wakes up 
 +Customer 4 gets a haircut 
 +Customer 4 leaves 
 +Customer 3 enters 
 +Customer 3 sits down 
 +Customer 1 enters 
 +Customer 1 sits down 
 +Customer 3 gets a haircut 
 +Customer 3 leaves 
 +Customer 0 enters 
 +Customer 0 sits down 
 +Customer 2 enters 
 +Customer 2 sits down 
 +Customer 1 gets a haircut 
 +Customer 1 leaves 
 +Customer 0 gets a haircut 
 +Customer 0 leaves 
 +Customer 2 gets a haircut 
 +Customer 2 leaves 
 +Barber is done for the day 
 +</code> 
 +In the above run, there are never more than three customers in the waiting room and therefore all customers get a haircut. 
 +<code> 
 +Barber sleeps 
 +Customer 1 enters 
 +Customer 1 sits down 
 +Barber wakes up 
 +Customer 2 enters 
 +Customer 2 sits down 
 +Customer 3 enters 
 +Customer 3 sits down 
 +Customer 4 enters 
 +Customer 4 leaves because no chair is free 
 +Customer 0 enters 
 +Customer 0 leaves because no chair is free 
 +Customer 1 gets a haircut 
 +Customer 1 leaves 
 +Customer 2 gets a haircut 
 +Customer 2 leaves 
 +Customer 3 gets a haircut 
 +Customer 3 leaves 
 +Barber is done for the day 
 +</code> 
 +In the above run, customers 4 and 0 leave before getting a haircut since all chairs in the waiting room are occupied. 
 + 
 +To receive feedback, submit your code **before** March 23 using the submit command:\\ 
 +<code> 
 +submit 4315 lab7 <name of class>.java 
 +</code>
  
  
lab7.1487449884.txt.gz · Last modified: 2017/02/18 20:31 by franck

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki