0% found this document useful (0 votes)
18 views9 pages

Nzelu Collins - 2020374063 - Colony Algorithm

This document presents two assignments by Nzelu Collins for IPE 512, focusing on production forecasting using the Ant Colony Algorithm and queueing model analysis for Brixwell Industries. The first assignment optimizes production quantities of PVC pipes and gutters over five months, while the second analyzes customer service efficiency using M/M/1 and M/M/3 queueing models. Results indicate that the Ant Colony Algorithm can effectively maximize production, and the queueing analysis highlights the importance of adequate staffing to improve service delivery.

Uploaded by

DAVIS ISIBOR
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views9 pages

Nzelu Collins - 2020374063 - Colony Algorithm

This document presents two assignments by Nzelu Collins for IPE 512, focusing on production forecasting using the Ant Colony Algorithm and queueing model analysis for Brixwell Industries. The first assignment optimizes production quantities of PVC pipes and gutters over five months, while the second analyzes customer service efficiency using M/M/1 and M/M/3 queueing models. Results indicate that the Ant Colony Algorithm can effectively maximize production, and the queueing analysis highlights the importance of adequate staffing to improve service delivery.

Uploaded by

DAVIS ISIBOR
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

IPE 512 Assignment: Production

Forecasting Using Ant Colony Algorithm


Name: Nzelu Collins
Reg No: 63
Algorithm Used: Ant Colony Algorithm
Company: Brixwell Industries (Products: PVC Pipes, Gutters, Water Collectors)
Course Code: IPE 512
Course Title: Applied Stochastic Process
Lecturer: Dr. Ezeliora

1. Introduction
This assignment applies the Ant Colony Algorithm (ACO) to forecast and optimize five months
of production quantity at Brixwell Industries, in accordance with the requirements for registration
numbers 61–70 in IPE 512. The colony algorithm is a bio-inspired optimization approach that
simulates the foraging behavior of ants to solve complex problems, especially in production
scheduling and resource allocation.

2. Context of Production
Brixwell Industries is a manufacturer of PVC pipes, gutters, and water collectors, with a primary
focus on pipes and gutters. Efficient production forecasting and optimization enable the
company to plan ahead, meet customer demands, and minimize operational costs.

3. Model Assumptions and Data


● Production scheduling is to be optimized for the next 5 months.

● Production quantities are to be determined for pipes and gutters.

● Simulated monthly demand data is used for model demonstration.

Sample Data (units):

Month PVC Pipes Gutters


1 500 350

2 520 370

3 540 360

4 560 380

5 580 390

Constraints:

● Total production per month is limited by factory capacity (e.g., 1000 units/month for
pipes and gutters combined).

● The objective is to maximize production (meet demand) while minimizing costs (e.g.,
material, labor, downtime).

4. Model Development: (Ant Colony Optimization)


The ant colony algorithm is applied to search for the optimal monthly production plan that
maximizes output while meeting demand and capacity constraints. In a simplified Python
simulation, we iteratively construct solutions, update pheromones (solution quality), and select
the best plan.

5. Python Implementation (Simplified ACO)


import numpy as np

# Parameters
months = 5
products = ['PVC Pipes', 'Gutters']
demand = np.array([
[500, 350],
[520, 370],
[540, 360],
[560, 380],
[580, 390],
])
capacity = 1000 # total production units/month
ants = 10
iterations = 50
best_solution = None
best_score = -np.inf

# Initialize pheromone trails


pheromone = np.ones((months, 2))

for it in range(iterations):
for ant in range(ants):
solution = []
for m in range(months):
pipe = np.random.randint(demand[m][0], min(capacity, demand[m][0]+100))
gutter = min(capacity - pipe, demand[m][1] + np.random.randint(0, 50))
solution.append([pipe, gutter])
score = np.sum(solution)
if score > best_score:
best_score = score
best_solution = solution
# Pheromone update (reinforcement)
for m in range(months):
pheromone[m] += 0.1 * np.array(solution[m])

# Output best plan


for i, (pipe, gutter) in enumerate(best_solution, start=1):
print(f"Month {i}: PVC Pipes = {pipe}, Gutters = {gutter}")
print(f"Total production units (5 months): {int(best_score)}")

Result :

Month 1: PVC Pipes = 593, Gutters = 391


Month 2: PVC Pipes = 602, Gutters = 395
Month 3: PVC Pipes = 605, Gutters = 395
Month 4: PVC Pipes = 583, Gutters = 417
Month 5: PVC Pipes = 659, Gutters = 341
Total production units (5 months): 4981

6. Results
● Optimal monthly production quantities for PVC pipes and gutters (see Python
output).

● Total production units over 5 months.

● The colony algorithm provides a near-optimal schedule meeting demand and factory
capacity.

7. Interpretation and Conclusion


Using an Ant Colony Algorithm, Brixwell Industries can efficiently allocate its resources,
maximize production, and meet customer demands for PVC pipes and gutters over the next five
months. This approach leverages bio-inspired optimization and can be extended to more
complex scheduling problems in industrial settings.
IPE 512 Assignment 2: Queueing Model
Analysis for Brixwell Industries
Name: Nzelu Collins
Reg No: 63
Case Study: Brixwell Industries (PVC Pipes and Gutters)
Course Code: IPE 512
Course Title: Applied Stochastic Process
Lecturer: Dr. Ezeliora

1. Introduction
This assignment uses queueing theory to analyze the customer order and service process at
Brixwell Industries, which manufactures PVC pipes and gutters. The queueing analysis is
conducted for both a single line/single channel (M/M/1) and a single line/multiple channel
(M/M/3) model over 5 days (hourly basis), with the aim to assess efficiency, identify bottlenecks,
and optimize service delivery.

2. Case Study Overview: Brixwell Industries


● Location: [Insert location, e.g., Onitsha]

● Operation Hours: 8 AM – 5 PM (9 hours/day)

● Duration: 5 Days (Monday to Friday) = 45 hours

● Service Point: Customer order/dispatch unit for PVC pipes and gutters

3. Assumptions & Input Parameters


Parameter Value

Arrival rate (λ) 6 customers/hour

Service rate (μ) 4 customers/hour/server


Servers (c) 1 for M/M/1, 3 for M/M/3

Time Horizon 5 days × 9 hrs = 45 hrs


Customers arrive at an average of 6 per hour.

● Each service desk/staff can serve 4 customers per hour.

4. System 1: M/M/1 Model (Single Server)


Formulas Used
● Utilization (ρ) = λ / μ

● L (avg. # in system) = ρ / (1 - ρ)

● Lq (avg. # in queue) = ρ² / (1 - ρ)

● W (avg. time in system) = L / λ

● Wq (avg. time in queue) = Lq / λ

Calculations
● λ = 6, μ = 4 → ρ = 6 / 4 = 1.5 (150% utilization)

● Since ρ > 1, the system is unstable—demand exceeds what one server can handle.
Queue grows without bound.

Conclusion: One staff cannot serve 6 customers/hour at a 4-customer/hour rate. Queue grows
uncontrollably, causing significant delays.

5. System 2: M/M/3 Model (Three Servers)


Parameters
● λ = 6 customers/hour
● μ = 4 customers/hour/server

● c = 3 servers

● ρ = λ / (cμ) = 6 / (3×4) = 0.5 (system is stable)

Step-by-step Calculations Using Erlang-C Formula


Step 1: Calculate P₀ (probability system is empty)

● a = λ / μ = 6 / 4 = 1.5

● Sum = (a^0)/0! + (a^1)/1! + (a^2)/2! = 1 + 1.5 + 1.125 = 3.625

● Last Term = (a^3) / (3! * (1 - ρ)) = 3.375 / (6 × 0.5) = 3.375 / 3 = 1.125

● Denominator = 3.625 + 1.125 = 4.75

● P₀ = 1 / 4.75 ≈ 0.211

Step 2: Average number in queue (Lq):

● Lq = (P₀ × a^c × ρ) / (c! × (1 - ρ)^2)

● Lq = (0.211 × 3.375 × 0.5) / (6 × 0.25) ≈ (0.356) / 1.5 ≈ 0.24

Step 3: Average number in system (L):

● L = Lq + a = 0.24 + 1.5 = 1.74

Step 4: Average waiting time in queue (Wq):

● Wq = Lq / λ = 0.24 / 6 = 0.04 hr = 2.4 minutes

Step 5: Average time in system (W):

● W = Wq + 1/μ = 0.04 + 0.25 = 0.29 hr = 17.4 minutes

Conclusion: With three servers, the system is stable and wait times are minimal, significantly
improving service.

6. Python Code for M/M/1 and M/M/3 Models


import math

# INPUT PARAMETERS
arrival_rate = 6 # λ = customers per hour
service_rate = 4 # μ = customers per hour per server
servers = 3 # c

# PART 1: M/M/1 SYSTEM (Single Server)


print("=== M/M/1 (Single Server) ===")
rho_mm1 = arrival_rate / service_rate
if rho_mm1 >= 1:
print("System is unstable. Utilization (ρ) =", round(rho_mm1, 2))
else:
L = rho_mm1 / (1 - rho_mm1)
Lq = rho_mm1 ** 2 / (1 - rho_mm1)
W = L / arrival_rate
Wq = Lq / arrival_rate
print(f"Utilization (ρ): {round(rho_mm1, 2)}")
print(f"Average number in system (L): {round(L, 2)}")
print(f"Average number in queue (Lq): {round(Lq, 2)}")
print(f"Average time in system (W): {round(W * 60, 1)} minutes")
print(f"Average time in queue (Wq): {round(Wq * 60, 1)} minutes")

# PART 2: M/M/3 SYSTEM (Three Servers)


print("\n=== M/M/3 (Three Servers) ===")
c = servers
rho = arrival_rate / (c * service_rate)
if rho >= 1:
print(f"System is unstable. Utilization (ρ) = {round(rho, 3)}")
else:
a = arrival_rate / service_rate
sum_terms = sum([(a ** n) / math.factorial(n) for n in range(c)])
last_term = (a ** c) / (math.factorial(c) * (1 - rho))
P0 = 1 / (sum_terms + last_term)
Lq = ((P0 * (a ** c) * rho) / (math.factorial(c) * (1 - rho) ** 2))
L = Lq + a
Wq = Lq / arrival_rate
W = Wq + (1 / service_rate)
print(f"Utilization (ρ): {round(rho, 3)}")
print(f"Probability system is empty (P₀): {round(P0, 3)}")
print(f"Average number in queue (Lq): {round(Lq, 2)}")
print(f"Average number in system (L): {round(L, 2)}")
print(f"Average time in queue (Wq): {round(Wq * 60, 1)} minutes")
print(f"Average time in system (W): {round(W * 60, 1)} minutes")

Python Result :

=== M/M/1 (Single Server) ===


System is unstable. Utilization (ρ) = 1.5

=== M/M/3 (Three Servers) ===


Utilization (ρ): 0.5
Probability system is empty (P₀): 0.211
Average number in queue (Lq): 0.24
Average number in system (L): 1.74
Average time in queue (Wq): 2.4 minutes
Average time in system (W): 17.4 minutes

7. Insights & Reflection


This queueing analysis demonstrates the critical impact of proper staffing at Brixwell Industries’
order unit. While a single server creates bottlenecks, three service points result in efficient and
satisfactory customer flow. The methodology is essential for continuous improvement and
resource planning in production firms.

8. Conclusion
Queueing theory provides Brixwell Industries with the analytical tools needed to optimize
customer service operations, minimize wait times, and enhance resource utilization for long-
term growth.

You might also like