Scheduling of Telecommunications Via Satellite
Contents
Problem description
A digital telecommunications system via satellite consists of a satellite and a set of stations on earth which serve as interfaces with the terrestrial network. With SS-TDMA (Satellite-Switch, Time Division Multiple Access) access technology, the satellite divides its time among the stations. Consider for example the transmissions from four transmitter stations in the US to four receiver stations in Europe. The following table gives a possible 4 × 4 traffic matrix. TRAFtr is the quantity of data transmitted from station t to station r. It is expressed in seconds of transmission duration, because all lines have the same constant transmission rate.
Matrix TRAF with its lower bound LB
+----+--+--+--+--+-------+ |TRAF| 1| 2| 3| 4| rowt | +----+--+--+--+--+-------+ | 1 | 0| 7|11|15| 33 | | 2 |15| 8|13| 9| 45 | | 3 |17|12| 6|10| 45 | | 4 | 6|13|15| 4| 38 | +----+--+--+--+--+-------+ |colr|38|40|45|38|LB = 45| +----+--+--+--+--+-------+
The satellite has a switch that allows any permutation between the four transmitters and the four receivers. The figure below gives an example of a permutation connecting the transmitters 1 to 4 to the receivers 3, 4, 1, and 2 respectively. These connections allow routing a part of the traffic matrix, called a mode. A part of a matrix entry transmitted during a mode is a packet of data. A mode is thus a 4 × 4 matrix M with at most one non-zero packet per row and column and such that Mtr <= TRAFtr for all t, r. To every mode corresponds a slice of a schedule as shown in the figure.
+----+--+--+--+--+ +---------+---------------+ |TRAF| 1| 2| 3| 4| |Stations | Packets | +----+--+--+--+--+ +---------+---------------+ | 1 | 0| 0|11| 0| | 1 --> 3 |-----11---> | | 2 | 0| 0| 0| 9| | 2 --> 4 |------9-> | | 3 |15| 0| 0| 0| | 3 --> 1 |-----15------->| | 4 | 0|13| 0| 0| | 4 --> 2 |-----13-----> | +----+--+--+--+--+ +---------+---------------+ |colr|38|40|45|38|LB = 45 +----+--+--+--+--+
Example of a mode and associated schedule
A valid schedule of transmissions defines a sequence of permutations for the on-board switch that routes all the traffic of the matrix TRAF. In other words, this boils down to decomposing TRAF into a sum of mode matrices. An element of TRAF may be fragmented, like TRAF31 that is only partially transmitted in the mode represented in the figure above. A fragmented element will appear in several packets and several modes of the final decomposition. The duration of a mode is the length of its longest packet. The objective is to find a schedule with minimal total duration.
Variables
traffic A matrix describing the traffic
Reference
Applications of optimization... Gueret, Prins, Seveaux
% Marcus Edvall, Tomlab Optimization Inc, E-mail: tomlab@tomopt.com % Copyright (c) 2005-2009 by Tomlab Optimization Inc., $Release: 7.2.0$ % Written Oct 7, 2005. Last modified Apr 8, 2009.
Problem setup
PriLev = 1; if PriLev > 0 % if: PriLev > 0 sequence = []; % then: let us catch all x_k pmins = []; end traffic = [ 0 7 11 15;... 15 8 13 9;... 17 12 6 10;... 6 13 15 4]; n1 = size(traffic, 1); rowsum = sum(traffic,1); colsum = sum(traffic,2); LB = max(max([rowsum;colsum'])); q = zeros(n1,n1); for t=1:n1 for r=1:n1 q = min([LB-rowsum(t);LB-colsum(r)]); traffic(r,t) = traffic(r,t) + q; rowsum(t) = rowsum(t) + q; colsum(r) = colsum(r) + q; end end TQBS = traffic; flow = tom('flow',n1,n1,'int'); pmin = tom('pmin',1,1); % Bounds bnds = {0 <= flow <= 1, pmin >= 0}; while sum(sum(TQBS)) > 0.01 temp = TQBS > 0; temp = spones(temp); con1 = {sum(temp.*flow,2) == 1}; con2 = {sum(temp.*flow,1) == 1}; con3 = {sum(temp.*TQBS.*flow,2) >= pmin}; objective = -pmin; constraints = {bnds, con1, con2, con3}; options = struct; options.solver = 'cplex'; options.name = 'Satellite Scheduling'; sol = ezsolve(objective,constraints,[],options); TQBS = TQBS + sol.flow*(subs(objective,sol)); if PriLev > 0 sequence = [sequence sol.flow(:)]; pmins = [pmins sol.pmin]; end end if PriLev > 0 for t = 1:size(sequence,2), disp(['Transmission ' num2str(t) ' transfers ' num2str(pmins(t)) ' packet(s) of data' ]) this = reshape(sequence(1:end,t),n1,n1); this(find(this < 0.5)) = 0; % remove bad zeros for j = 1:n1, disp([' from station ' num2str(j) ' to ' num2str(find(this(j,:))) ]) end end end % MODIFICATION LOG % % 051122 med Created. % 060116 per Added documentation. % 060126 per Moved disp to end % 060131 per cleaned up help text % 071218 ango Multiple CPLEX solutions handled gracefully % 090308 med Converted to tomSym
Problem type appears to be: mip ===== * * * =================================================================== * * * TOMLAB - Tomlab Optimization Inc. Development license 999001. Valid to 2010-02-05 ===================================================================================== Problem: --- 1: Satellite Scheduling f_k -13.000000000000000000 f(x_0) 0.000000000000000000 Solver: CPLEX. EXIT=0. INFORM=101. CPLEX Branch-and-Cut MIP solver Optimal integer solution found FuncEv 9 CPU time: 0.015625 sec. Elapsed time: 0.015000 sec. Problem type appears to be: mip ===== * * * =================================================================== * * * TOMLAB - Tomlab Optimization Inc. Development license 999001. Valid to 2010-02-05 ===================================================================================== Problem: --- 1: Satellite Scheduling f_k -10.999999999999995000 sum(|constr|) 0.000000000000000111 f(x_k) + sum(|constr|) -10.999999999999995000 f(x_0) 0.000000000000000000 Solver: CPLEX. EXIT=0. INFORM=101. CPLEX Branch-and-Cut MIP solver Optimal integer solution found FuncEv 13 Problem type appears to be: mip ===== * * * =================================================================== * * * TOMLAB - Tomlab Optimization Inc. Development license 999001. Valid to 2010-02-05 ===================================================================================== Problem: --- 1: Satellite Scheduling f_k -7.000000000000000000 sum(|constr|) 0.000000000000003437 f(x_k) + sum(|constr|) -6.999999999999996400 f(x_0) 0.000000000000000000 Solver: CPLEX. EXIT=0. INFORM=101. CPLEX Branch-and-Cut MIP solver Optimal integer solution found FuncEv 12 Problem type appears to be: mip ===== * * * =================================================================== * * * TOMLAB - Tomlab Optimization Inc. Development license 999001. Valid to 2010-02-05 ===================================================================================== Problem: --- 1: Satellite Scheduling f_k -6.000000000000000000 f(x_0) 0.000000000000000000 Solver: CPLEX. EXIT=0. INFORM=101. CPLEX Branch-and-Cut MIP solver Optimal integer solution found FuncEv 9 Problem type appears to be: mip ===== * * * =================================================================== * * * TOMLAB - Tomlab Optimization Inc. Development license 999001. Valid to 2010-02-05 ===================================================================================== Problem: --- 1: Satellite Scheduling f_k -3.000000000000000000 f(x_0) 0.000000000000000000 Solver: CPLEX. EXIT=0. INFORM=101. CPLEX Branch-and-Cut MIP solver Optimal integer solution found FuncEv 8 CPU time: 0.015625 sec. Elapsed time: 0.015000 sec. Problem type appears to be: mip ===== * * * =================================================================== * * * TOMLAB - Tomlab Optimization Inc. Development license 999001. Valid to 2010-02-05 ===================================================================================== Problem: --- 1: Satellite Scheduling f_k -3.000000000000000000 f(x_0) 0.000000000000000000 Solver: CPLEX. EXIT=0. INFORM=101. CPLEX Branch-and-Cut MIP solver Optimal integer solution found FuncEv 4 Problem type appears to be: mip ===== * * * =================================================================== * * * TOMLAB - Tomlab Optimization Inc. Development license 999001. Valid to 2010-02-05 ===================================================================================== Problem: --- 1: Satellite Scheduling f_k -0.999999999999992890 f(x_0) 0.000000000000000000 Solver: CPLEX. EXIT=0. INFORM=101. CPLEX Branch-and-Cut MIP solver Optimal integer solution found Problem type appears to be: mip ===== * * * =================================================================== * * * TOMLAB - Tomlab Optimization Inc. Development license 999001. Valid to 2010-02-05 ===================================================================================== Problem: --- 1: Satellite Scheduling f_k -1.000000000000001800 f(x_0) 0.000000000000000000 Solver: CPLEX. EXIT=0. INFORM=101. CPLEX Branch-and-Cut MIP solver Optimal integer solution found Transmission 1 transfers 13 packet(s) of data from station 1 to 4 from station 2 to 3 from station 3 to 1 from station 4 to 2 Transmission 2 transfers 11 packet(s) of data from station 1 to 3 from station 2 to 1 from station 3 to 2 from station 4 to 4 Transmission 3 transfers 7 packet(s) of data from station 1 to 1 from station 2 to 2 from station 3 to 4 from station 4 to 3 Transmission 4 transfers 6 packet(s) of data from station 1 to 2 from station 2 to 4 from station 3 to 3 from station 4 to 1 Transmission 5 transfers 3 packet(s) of data from station 1 to 2 from station 2 to 1 from station 3 to 4 from station 4 to 3 Transmission 6 transfers 3 packet(s) of data from station 1 to 2 from station 2 to 4 from station 3 to 1 from station 4 to 3 Transmission 7 transfers 1 packet(s) of data from station 1 to 4 from station 2 to 2 from station 3 to 1 from station 4 to 3 Transmission 8 transfers 1 packet(s) of data from station 1 to 4 from station 2 to 1 from station 3 to 2 from station 4 to 3