Homework-9
pdf
keyboard_arrow_up
School
Georgia Institute Of Technology *
*We aren’t endorsed by this school
Course
6501
Subject
Industrial Engineering
Date
Dec 6, 2023
Type
Pages
6
Uploaded by EarlKnowledge12611
Homework 9
2023-10-25
Question 12.1
Describe a situation or problem from your job, everyday life, current events, etc., for which a design of
experiments approach would be appropriate.
Answer for Q 12.1
A Design of Experiments (DOE) approach can indeed be adapted to optimize my purchase of a second-hand
Mazda car, ensuring that I get the best value for my money within my budget. This approach will help me
find the right balance among various factors that influence the car’s age, trim, technology, location, mileage,
and price. Here’s a structured plan to achieve this:
1. Define the Factors (Variables):
•
Age of the car (in years)
•
Trim level (e.g., base, touring, grand touring)
•
Technology features (e.g., infotainment, safety, navigation)
•
Location of the dealer (e.g., urban, suburban, rural)
•
Mileage of the car (in miles)
•
Price of the car (in dollars)
2. Set the Levels for Each Factor:
•
Age: 1 year, 2 years, 3 years, etc.
•
Trim: Base, Touring, Grand Touring
•
Technology: Basic, Navigation, Premium Sound System
•
Location: NY, NJ
•
Mileage: Low, Medium, High
•
Price: My budget constraint (e.g., $10,000, $15,000, $20,000, etc.)
3. Create a Full Factorial Design - Generate a matrix that combines different levels of each factor to
create a set of combinations. Each combination represents a potential car.
4. Define Response Variables:
•
Reliability (based on my car age and mileage)
•
Value for my money (based on my price and features)
•
Overall condition (based on my car age and dealer location)
•
Estimated resale value (based on my trim level and technology)
5. Collect Data and Evaluate Cars:
1
•
For each combination from the factorial design, assess cars available in my area or within a reasonable
travel distance. Collect data on my car age, mileage, price, trim, technology features, dealer location,
and overall condition.
•
Evaluate each car based on the response variables I defined.
6. Analyze the Results:
•
Use statistical analysis to determine which combination of factors leads to the best trade-off between
my car age, trim, technology, location, mileage, and price to meet my criteria for reliability, value,
condition, and resale value.
•
Consider other factors, such as vehicle history reports, accident records, and maintenance history, in
my analysis.
7. Make an Informed Decision:
•
Based on the results of my DOE analysis, I can make an informed decision on which second-hand
Mazda car to purchase.
Select the car that offers the best value for my money while meeting my
budget constraints and preferences.
Question 12.2
To determine the value of 10 different yes/no features to the market value of a house (large yard, solar
roof, etc.), a real estate agent plans to survey 50 potential buyers, showing a fictitious house with different
combinations of features. To reduce the survey size, the agent wants to show just 16 fictitious houses. Use
R’s FrF2 function (in the FrF2 package) to find a fractional factorial design for this experiment: what set
of features should each of the 16 fictitious houses have? Note: the output of FrF2 is “1” (include) or “-1”
(don’t include) for each feature.
Answer for Q 12.2
rm
(
list=
ls
())
library
(FrF2)
## Loading required package: DoE.base
## Loading required package: grid
## Loading required package: conf.design
## Registered S3 method overwritten by ’DoE.base’:
##
method
from
##
factorize.factor conf.design
##
## Attaching package: ’DoE.base’
## The following objects are masked from ’package:stats’:
##
##
aov, lm
2
## The following object is masked from ’package:graphics’:
##
##
plot.design
## The following object is masked from ’package:base’:
##
##
lengths
set.seed
(
1
)
fractional.factorial
=
FrF2
(
nruns =
16
,
nfactors =
10
)
fractional.factorial
##
A
B
C
D
E
F
G
H
J
K
## 1
-1 -1 -1
1
1
1
1 -1
1 -1
## 2
1
1 -1 -1
1 -1 -1 -1
1
1
## 3
-1
1
1 -1 -1 -1
1
1 -1
1
## 4
-1 -1 -1 -1
1
1
1
1 -1
1
## 5
1 -1 -1 -1 -1 -1
1 -1 -1 -1
## 6
1 -1
1
1 -1
1 -1
1 -1 -1
## 7
1
1 -1
1
1 -1 -1
1 -1 -1
## 8
-1
1 -1 -1 -1
1 -1
1
1 -1
## 9
-1 -1
1
1
1 -1 -1 -1 -1
1
## 10 -1 -1
1 -1
1 -1 -1
1
1 -1
## 11 -1
1 -1
1 -1
1 -1 -1 -1
1
## 12
1 -1 -1
1 -1 -1
1
1
1
1
## 13
1 -1
1 -1 -1
1 -1 -1
1
1
## 14 -1
1
1
1 -1 -1
1 -1
1 -1
## 15
1
1
1
1
1
1
1
1
1
1
## 16
1
1
1 -1
1
1
1 -1 -1 -1
## class=design, type= FrF2
Above shows the 16 fictitious houses with and without features.
Question 13.1
For each of the following distributions, give an example of data that you would expect to follow this distri-
bution (besides the examples already discussed in class).
Answer for Q 13.1
•
a. Binomial - The number of successful free throw shots made by a basketball player in a fixed
number of attempts. If we observe a basketball player making shots with a known success rate
(probability ‘p’) in a fixed number of attempts (‘n’), this data might follow a binomial distribution.
•
b. Geometric - The number of coin flips needed to get heads for the first time. In this case, each flip
of the coin has a constant probability ‘p’ of success (getting heads), and we are interested in the
number of attempts required until the first success.
•
c. Poisson - The number of phone calls received at a call center in a given hour. If phone calls arrive
randomly, with a known average rate of calls per hour, the distribution of calls per hour might
be modeled using a Poisson distribution.
3
Your preview ends here
Eager to read complete document? Join bartleby learn and gain access to the full version
- Access to all documents
- Unlimited textbook solutions
- 24/7 expert homework help
•
d. Exponential - The time between arrivals of customers at a service center or the time it takes for a
light bulb to burn out. The exponential distribution is commonly used to model the time between
events occurring at a constant rate, such as arrivals, failures, or decay.
•
e. Weibull - The time until a piece of equipment in a manufacturing plant fails.
The Weibull
distribution is often used in reliability engineering to model the distribution of lifetimes for items
that may have different failure modes over time.
Question 13.2
In this problem you, can simulate a simplified airport security system at a busy airport. Passengers arrive
according to a Poisson distribution with lambda_1 = 5 per minute (i.e., mean inter-arrival rate mu_1 = 0.2
minutes) to the ID/boarding-pass check queue, where there are several servers who each have exponential
service time with mean rate mu_2 = 0.75 minutes. [Hint: model them as one block that has more than one
resource.] After that, the passengers are assigned to the shortest of the several personal-check queues, where
they go through the personal scanner (time is uniformly distributed between 0.5 minutes and 1 minute).
Use the Arena software (PC users) or Python with SimPy (PC or Mac users) to build a simulation of the
system, and then vary the number of ID/boarding-pass checkers and personal-check queues to determine
how many are needed to keep average wait times below 15 minutes. [If you’re using SimPy, or if you have
access to a non-student version of Arena, you can use lambda_1 = 50 to simulate a busier airport.]
Answer for Q 13.2
I attached my code here:
import simpy
import random
from statistics import mean
# Define simulation parameters
lambda_1
=
50
# Arrival rate (passengers per minute)
lambda_2
=
0.75
# Service rate at ID/boarding-pass check (1/minutes)
min_personal_check_time
=
0.5
# Minimum time for personal check (minutes)
max_personal_check_time
=
1
# Maximum time for personal check (minutes)
simulation_time
=
60
*
12
# Total simulation time (minutes)
total_passenger
=
0
# Create a class to represent the airport security system
class
AirportSecuritySystem:
def __init__
(self, env, num_checkers, num_personal_check_queues):
self.env
=
env
self.id_checkers
=
simpy.Resource(env, capacity
=
num_checkers)
self.personal_check_queues
=
[simpy.Resource(env)
for
_
in
range(num_personal_check_queues)]
self.waiting_times
=
[]
def
id_boarding_pass_check(self, passenger):
with
self.id_checkers.request() as request:
yield
request
yield
self.env.timeout(
1
/
lambda_2)
# Exponential service time
def
personal_check(self, passenger):
queue_choice
=
min(enumerate(self.personal_check_queues), key
=
lambda
q: len(q[
1
].users))
4
with
queue_choice[
1
].request() as request:
yield
request
yield
self.env.timeout(random.uniform(min_personal_check_time, max_personal_check_time))
# Define the passenger arrival process
def
passenger_arrival(env, airport_security):
global
total_passenger
passenger_id
=
0
while
True:
yield
env.timeout(random.expovariate(lambda_1))
passenger_id
+=
1
total_passenger
+=
1
env.process(passenger_processing(env, airport_security, passenger_id))
# Define the passenger processing (ID/boarding-pass check and personal check)
def
passenger_processing(env, airport_security, passenger_id):
env.timeout(
0
)
# Time spent in the ID/boarding-pass check
# Record the time when the passenger enters the personal check queue
start_time
=
env.now
yield
env.process(airport_security.personal_check(passenger_id))
# Calculate the waiting time for this passenger and store it
waiting_time
=
env.now
-
start_time
airport_security.waiting_times.append(waiting_time)
Figure 1: Result
By running different combinations of the number of checkers and number of queues, under the current
settings, the optimal number of checker is 15 AND optimal number of check queues is 21, with minimal
waiting time of 0.62 min.
However, this result cannot hold for every time due to the uncertainty. Yet, we can observe that there are
many reasons why the average time may not decease when adding more checkers, which can be:
•
Bottleneck in Personal Check Queues: The most significant bottleneck in the process might be the
personal check queues rather than the ID/boarding-pass check. If you have 20 personal check queues
but a small number of passengers, this can lead to inefficient resource usage.
5
•
Low Arrival Rate: If the arrival rate of passengers (lambda_1) is low, increasing the number of checkers
might not have a substantial impact on wait times because there aren’t enough passengers to keep all
the checkers busy.
•
Service Rate (lambda_2): The service rate at the ID/boarding-pass check (lambda_2) might be too
low. Increasing the number of checkers won’t help if they are not utilized efficiently.
To improve or optimize the number of checkers and queues, we should also consider the cost of operating
the airport and the following options:
•
Dynamic Queue Management: Implement a system where the number of open personal check queues
can dynamically adjust based on the number of arriving passengers. For example, if there are only a
few passengers, we might not need all 20 queues open.
•
Adjust Arrival Rate: Arrange flights within a certain interval to increase the passenger arrival rate
(lambda_1) to better match the capacity of the security system. This will help keep all the checkers
busy and reduce wait times.
•
Optimize Service Rates: Ensure that the service rates at both the ID/boarding-pass check and personal
check are reasonable. If the service rate at the ID check is much slower than the personal check, it
might still create a bottleneck.
•
Collect More Data: Since 50 for the arrival rate may not be correct, probably a guess just for homework,
we can collect more data from the simulation, such as the number of passengers waiting in the personal
check queues and the utilization of the checkers, to better understand where the bottleneck is occurring.
6
Your preview ends here
Eager to read complete document? Join bartleby learn and gain access to the full version
- Access to all documents
- Unlimited textbook solutions
- 24/7 expert homework help