0% found this document useful (0 votes)
34 views

MATLAB Code for solving Traffic Signal Timing Optimization using the Firefly Optimization Algorithm

The document presents MATLAB code for optimizing traffic signal timing using the Firefly Optimization Algorithm. It defines a problem with two decision variables representing green times for two roads and aims to minimize total waiting time through iterative evaluations. The final optimized signal timings are 60 seconds for both roads, achieving a best waiting time of 110 seconds after 50 iterations.

Uploaded by

nayanavinod999
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)
34 views

MATLAB Code for solving Traffic Signal Timing Optimization using the Firefly Optimization Algorithm

The document presents MATLAB code for optimizing traffic signal timing using the Firefly Optimization Algorithm. It defines a problem with two decision variables representing green times for two roads and aims to minimize total waiting time through iterative evaluations. The final optimized signal timings are 60 seconds for both roads, achieving a best waiting time of 110 seconds after 50 iterations.

Uploaded by

nayanavinod999
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/ 5

MATLAB Code for solving Traffic Signal Timing

Optimization using the Firefly Optimization Algorithm

% Firefly Optimization Algorithm for Traffic Signal Timing Optimization

clc; clear; close all;

%% Problem Definition

nVars = 2; % Number of decision variables: [Green Time for Road 1, Green Time for Road 2]

VarMin = 10; % Minimum Green Time (Seconds)

VarMax = 60; % Maximum Green Time (Seconds)

% Objective Function (Minimizing Total Waiting Time)

ObjectiveFunction = @(x) TrafficCongestionCost(x);

%% Firefly Algorithm Parameters

nFireflies = 20; % Number of fireflies (solutions)

maxIter = 50; % Maximum iterations

alpha = 0.2; % Randomness factor

gamma = 1; % Light absorption coefficient

beta0 = 1; % Base attractiveness

% Initialize Fireflies

fireflies = rand(nFireflies, nVars) * (VarMax - VarMin) + VarMin;

brightness = zeros(nFireflies, 1);

% Evaluate initial brightness (fitness)

for i = 1:nFireflies

brightness(i) = ObjectiveFunction(fireflies(i, :));

end

%% Firefly Algorithm Loop


for iter = 1:maxIter

for i = 1:nFireflies

for j = 1:nFireflies

if brightness(j) < brightness(i) % Move towards brighter firefly

r = norm(fireflies(i, :) - fireflies(j, :)); % Distance

beta = beta0 * exp(-gamma * r^2); % Attractiveness

% Update position

fireflies(i, :) = fireflies(i, :) + ...

beta * (fireflies(j, :) - fireflies(i, :)) + ...

alpha * (rand(1, nVars) - 0.5) * (VarMax - VarMin);

% Boundary check

fireflies(i, :) = max(fireflies(i, :), VarMin);

fireflies(i, :) = min(fireflies(i, :), VarMax);

% Evaluate new brightness

brightness(i) = ObjectiveFunction(fireflies(i, :));

end

end

end

% Best solution in the current iteration

[bestValue, bestIndex] = min(brightness);

bestSolution = fireflies(bestIndex, :);

% Display progress

fprintf('Iteration %d: Best Waiting Time = %.2f seconds\n', iter, bestValue);

end

%% Display Final Results


disp('Optimized Signal Timings:');

fprintf('Green Time for Road 1: %.2f sec\n', bestSolution(1));

fprintf('Green Time for Road 2: %.2f sec\n', bestSolution(2));

%% Traffic Congestion Cost Function (Objective Function)

function waitingTime = TrafficCongestionCost(x)

% Simulated traffic congestion based on signal timing

greenTime1 = x(1); % Green light for Road 1

greenTime2 = x(2); % Green light for Road 2

% Traffic flow simulation: more green time reduces waiting time

vehicleFlow1 = 100 - (greenTime1 * 0.8); % Traffic delay factor

vehicleFlow2 = 100 - (greenTime2 * 0.7);

% Total waiting time (lower is better)

waitingTime = vehicleFlow1 + vehicleFlow2;

end

RESULT
Iteration 1: Best Waiting Time = 116.48 seconds
Iteration 2: Best Waiting Time = 116.48 seconds
Iteration 3: Best Waiting Time = 116.48 seconds
Iteration 4: Best Waiting Time = 116.48 seconds
Iteration 5: Best Waiting Time = 115.14 seconds
Iteration 6: Best Waiting Time = 115.14 seconds
Iteration 7: Best Waiting Time = 115.14 seconds
Iteration 8: Best Waiting Time = 115.14 seconds
Iteration 9: Best Waiting Time = 115.14 seconds
Iteration 10: Best Waiting Time = 115.14 seconds
Iteration 11: Best Waiting Time = 115.14 seconds
Iteration 12: Best Waiting Time = 115.14 seconds
Iteration 13: Best Waiting Time = 115.14 seconds
Iteration 14: Best Waiting Time = 115.14 seconds
Iteration 15: Best Waiting Time = 115.14 seconds
Iteration 16: Best Waiting Time = 115.14 seconds
Iteration 17: Best Waiting Time = 114.23 seconds
Iteration 18: Best Waiting Time = 114.23 seconds
Iteration 19: Best Waiting Time = 114.23 seconds
Iteration 20: Best Waiting Time = 114.23 seconds
Iteration 21: Best Waiting Time = 110.35 seconds
Iteration 22: Best Waiting Time = 110.35 seconds
Iteration 23: Best Waiting Time = 110.35 seconds
Iteration 24: Best Waiting Time = 110.35 seconds
Iteration 25: Best Waiting Time = 110.35 seconds
Iteration 26: Best Waiting Time = 110.35 seconds
Iteration 27: Best Waiting Time = 110.00 seconds
Iteration 28: Best Waiting Time = 110.00 seconds
Iteration 29: Best Waiting Time = 110.00 seconds
Iteration 30: Best Waiting Time = 110.00 seconds
Iteration 31: Best Waiting Time = 110.00 seconds
Iteration 32: Best Waiting Time = 110.00 seconds
Iteration 33: Best Waiting Time = 110.00 seconds
Iteration 34: Best Waiting Time = 110.00 seconds
Iteration 35: Best Waiting Time = 110.00 seconds
Iteration 36: Best Waiting Time = 110.00 seconds
Iteration 37: Best Waiting Time = 110.00 seconds
Iteration 38: Best Waiting Time = 110.00 seconds
Iteration 39: Best Waiting Time = 110.00 seconds
Iteration 40: Best Waiting Time = 110.00 seconds
Iteration 41: Best Waiting Time = 110.00 seconds
Iteration 42: Best Waiting Time = 110.00 seconds
Iteration 43: Best Waiting Time = 110.00 seconds
Iteration 44: Best Waiting Time = 110.00 seconds
Iteration 45: Best Waiting Time = 110.00 seconds
Iteration 46: Best Waiting Time = 110.00 seconds
Iteration 47: Best Waiting Time = 110.00 seconds
Iteration 48: Best Waiting Time = 110.00 seconds
Iteration 49: Best Waiting Time = 110.00 seconds
Iteration 50: Best Waiting Time = 110.00 seconds

Optimized Signal Timings:


Green Time for Road 1: 60.00 sec
Green Time for Road 2: 60.00 sec

You might also like