private void checkParameters(){

        for(double d : discounts){
            if(d <= 0.0 || d >= 1.0){
                throw new IllegalArgumentException("Discounts must be in (0.0, 1.0)");
            }
        }

        if(infiniteDiscount <= 0.0 || infiniteDiscount >= 1.0){
            throw new IllegalArgumentException("Infinite discount must be in (0.0, 1.0)");
        }

        if(depth < 0){
            throw new IllegalArgumentException("Depth must be greater than or equal to 0");
        }

        if(maxNumberRestaurants < 1){
            throw new IllegalArgumentException("maxNumberRestaurants must be greater than or equal to one");
        }

        if(maxSequenceLength < 1024){
            throw new IllegalArgumentException("maxSequenceLength must be greater than or equal to 1024.  There is "
                    + "very little harm, in terms of memory, done by setting this to be quite large.");
        }

        if(maxCustomersInRestaurant <= 0){
            throw new IllegalArgumentException("maxCustomersInRestaurant must be > 0");
        }
    }