# Approaching of balancing problem through simulation.

1. INTRODUCTION

In many cases, experiences on real objects are difficult to make and need a big amount of funds and human resources for make then acceptably.

Nowadays, grace of computing facilities of electronic computers, that are big amount of memory and computing speed, it acts modeling methods improving, complex systems modeling with simulation techniques having a privileged place.

The problem of technical process balancing supposes the grouping of phases in workstations so the sum of operating times of the phases which are in a station to be less then or equal to a value R called rhythm. For approached model of balancing problem, R is fixed and is the same for all stations. The phases of technical process must be executed in a certain order in the meaning that certain phases can't have place before others. Order relations between phases reflect technologically, real development of the process and are called relation of precedence. Mathematically, they form an acyclic digraph (James, 2000). Balancing objective is the reaching of the smallest number of station having prior property.

Because in simulation programs, random number generation has a relatively big part of total computer operating time, it is necessary to find efficient ways to do this, to get random strings with big cyclicity.

Another important feature in technical line simulation is also the testing of acyclicity of the graph of precedence relations.

In this work we follow making an algorithm for simulate a technical process, relied on random generation of the main characteristics of working phases, which will be considered in solving balancing problem of a technical line whereon an only model of a product is assembled, operating times are established and line operating rhythm is fixed, relied also on solving the two essential features above mentioned.

2. SIMULATION OF A TECHNICAL LINE WHICH IS SUBJECT TO THE BALANCING PROCESS

2.1 Possibilities of random number generation

For realistic reproduce certain elements of simulated system, and also for solving some numeric problems, it appears the need of existence of some numbers "happily chosen".

In simulation programs, generation of random numbers has a relative big part of computer running time.

We'll mark F = {1,2, ..., n} the manifold of technical process' phases which follow to be simulated and t = {t(1),t(2), ..., t(n)}, the vector of operating times associated to the phases.

Within this context, we purpose to build a function having property that it has equal likelihoods to generate its values. So, we consider the function rnd defined like this: for a natural number n, rnd(n) is a natural number between 0 and n-1. If we want a real value, let's say a number between -2 and 3, having two exact digits, we use an expression like rnd (500)/100--2.

If maximum number of phases is marked maxphases the number of the phases from process will be rnd(maxphases)+1.

We consider operating time of each phase at most equal to maxtime time units, therefore for the phase i, t(i) = rnd(100 x maxtime)/100 + 0.01 (it is computed with at most two exact digits and cannot be zero).

As follows, we consider that arithmetic operations that will be used for generate such function (rnd), are with 32 bits that is, every result of an arithmetic operation is considered as the rest of the division of real result by 2 (32). This value has chosen because it is enough for usual needs and is easy to be used in programming.

There is considered the string [{x.sub.n}.sub.n[greater than or equal to]0] defined like:

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII] (1)

where a and b are odd numbers (a is a number of shape a = 4 x k +1).

Such string, especially a and b are prime numbers, has an extreme long cyclicity and is good enough for usual needs.

If to its value there is added also that of the standard function which generates random numbers, from the libraries of several programming languages, and it is set by the time counter and computer's internal clock, the result can be of a big variety.

There is also the possibility of combination of two or three strings of mentioned type, their sum being a string having a very long cyclicity and in this case the result being very easy to compute too.

2.2. Acyclicity test of the graph of precedence relations

Let be maxphases maximum number of process' phases and maxtime maximum operating time of a phase.

At the beginning we'll establish the number of phases (nrphases) and operating times of phases.

For i = 1 , nrphases t(i) = rnd(maxtime) + 0.01 .

The number of phases is randomly generated.

After this, phases' names are read. For each phase, we generate then the operating time. Making a precedence relation follows.

A precedence relation (shortly, a precedence) can be considered as a couple ([f.sub.1], [f.sub.2]) where [f.sub.1] = rnd(nrphases) [f.sub.2] = rnd (nrphases) and [f.sub.1] [not equal to] [f.sub.2] .

That means that [f.sub.2] operates before [f.sub.1]. Clearly, the first care we have is not to have the relation already generated and [f.sub.1] [not equal to] [f.sub.2] . After that, total operating time and maximum operating time for a phase (the biggest operating time of generated phases) are computed. This computing is very important because if in balancing problem, a rhythm is smaller than maximum working time for a phase, the problem is wrong (Vernadat, 1996).

After that, we must decide whether precedence relation we put in is correct. It not, it will be cancelled in the sense of cancellation of its value in precedence matrix.

There are two ways to do the test. First, it is necessary to clarify what means that precedence ([f.sub.1], [f.sub.2]) is correct, that is, if [f.sub.2] can precede [f.sub.1] . The relation is correct if and only if no phase precede itself. If we have precedence of type ([f.sub.1] , [f.sub.2]) and ([f.sub.2], [f.sub.1]), between indirect predecessors of [f.sub.1] is also [f.sub.1] as predecessor of [f.sub.2] and we reach up-mentioned contradiction.

Acyclicity test of precedence relations reduces to establish if no phase precede itself. A checking method consists of the establishing of all predecessors of each phase. For this, we purpose the following algorithm:

Algorithm 1

Step 1. We consider [F.sub.1] the manifold of f predecessors. Let k = 1.

Step 2. k = k + 1. We consider [F.sub.k] the manifold of direct predecessors of the phases from [F.sub.k-1].

If [F.sub.k] [not equal to] [F.sub.k-1] we repeat step 2.

Step 3. If f [not member] [F.sub.k] , the precedence is not correct.

Otherwise it is correct.

Another method supposes weight computing of all technical process phases. The weight of a phase is the sum of its time with times of all its direct or indirect predecessors. Therefore, if a phase has no predecessor, its weight is equal to its working time. If the phase has predecessors, there is computed the sum of the times of precedent phases with computed weights. To have an acyclic graph of precedence relations, we must compute the weight of all phases and reciprocally, if there is a phase whose weight can't be computed, the graph is cyclic (Swamidass, 2002).

2.3 Simulation Algorithm

As follows, we'll describe an algorithm of simulation of a technical process, in the meaning of random generation of the main characteristics of working phases that will be considered for solving balancing problem of a technical line whereon an only model of a product is assembled, operating times are established and line operating rhythm is fixed.

The algorithm is the fruit of authors' research in the wide and very complex domain of the problematic of technical line balancing (Coculescu, 2005).

Algorithm 2

Step 1. There is randomly generated the number of phases and for each phase, working time is generated.

Step 2. Matrix PRED of precedence relations is initialized by zeros. This matrix has a number of lines equal to the number of phases and 20 columns.

Step 3. nrfail = 0;

Step 4. A triplet ([f.sub.1], [f.sub.2], p) is generated where [f.sub.1] = rnd(nrphases) , [f.sub.2] = rnd(nrphases) , p = rnd(20). If [f.sub.2] [not equal to] [f.sub.1] we make PRED([f.sub.1], p) = [f.sub.2] in the meaning that the phase [f.sub.2] precedes [f.sub.1]. If [f.sub.1] = [f.sub.2] or PRED( [f.sub.1], [f.sub.2]) [not equal to] 0 , we repeat step 4.

Step 5. There is checked with algorithm 1 if the matrix PRED corresponds to an acyclic graph of precedence relations,

Step 6. If the graph is cyclic, PRED([f.sub.1], p) = 0 and if nrfail < 10000 go to step 4. Else STOP.

Step 7. If the graph is acyclic, go to step 3.

3. CONCLUSIONS

Balancing using in industrial practice, can be facilitated by making a program which additional to a more efficient implementation of selected algorithms must offer the possibility of a comparative analysis of the methods used for solving balancing problem approached concerning the quality of given solutions.

Because this action demands the using of a relative big number of problem instance, we considered necessary the making of possibility of random generation of these models, being known that their gaining from real technical processes is difficult.

The idea we started from, was that to build a function which to have equal likelihoods of generation its values. For this, we combined standard random number generator of C programming language, with the values of random string (1) of natural parameters a, b, c.

By helping of gained function (rnd) there was realized a simulation model of real technical process in the meaning of random generation of the main characteristics of working phases that will be considered in solving balancing problem of a technical line whereon an only model of a product is assembled, operating times are established and line operating rhythm is fixed.

Simulation algorithm and its informatics implementation have been then integrated in a program, proving very useful within the process of testing performances of used methods for solving the approached balancing problem (Coculescu, 2005).

General rules from technical line simulation process shown in this work, can be applied for simulation other models, from other domain, especially of economic ones.

This paper was developed within the research Project "Development and the Implementation of the Integrated Management System (DI-IMS)", no. 2387/2007, PNCDI_II, developed on National Research Plan, it course being set it up to 2010. The institutional partners cover different activity fields, from various industries.

4. REFERENCES

Coculescu, C.; (2005). Modeling and Simulation of Economic Processes. Concepts, Models and Balancing Algorithms, Juristic Universe Editing Press, ISBN 973-8446-44-9, Bucharest

Filip, F.G.; Barbat, B. (1999). Industrial Informatics--New Paradigms and Applications, Technical Editing Press, ISBN 973-31-1324-7, Bucharest

James, A.J. (2000), Next Generation Manufacturing. Methods and Techniques, Wiley, ISBN 978-0471360063

Swamidass, P.M. (2002). Innovations in Competitive Manufacturing, AMACOM, ISBN 978-0814471401

Vernadat, F. (1996). Enterprise Modeling and Integration: Principles and Applications, Springer, ISBN 978-0412605505