Abstract

Fuzziness is a key concern in modern industry and, thus, its implementation in manufacturing process modeling is of high practical importance for a wide industrial audience. The scientific contribution of the present attempt lies on the fact that the assembly line balancing problem of type 2 (SALBP-2) is approached for a real manufacturing process by introducing fuzzy processing times. The main scope of this work is the solution of the SALBP-2, which is an NP-hard problem, for a real manufacturing process considering fuzziness in the processing times. Since the data obtained from realistic situations are imprecise and uncertain, the consideration of fuzziness for the solution of SALBP-2 is of great interest. Thus, real data values for the processing times are gathered and estimated with uncertainty. Then, fuzzy processing times are used for finding the optimum cycle time. The optimization tool for the solution of the fuzzy SALBP-2 is a Genetic Algorithm (GA). The validity of the proposed approach is tested on the construction process of a metallic robotic arm. The experimental results demonstrate the effectiveness and efficiency of the proposed GA in determining the optimum sequence of the tasks assigned to workstations which provides the optimum fuzzy cycle time.

1. Introduction

In mass production systems, an important problem is the assembly line problem. An assembly line is a manufacturing technique according to which parts are added in sequence from workstation to workstation until the final assembly is produced. Each station has to complete a set of tasks on parts moving along the line. There are numerous studies related with assembly line systems which focus on the determination of the set of tasks which have to be assigned to each workstation under a given cycle and the constraints of precedence relationships. This kind of problem is well known as the simple assembly line balancing problem (SALBP) [1].

The most famous versions of the abovementioned problem are the SALBP type 1 (SALBP-1) and the SALBP type 2 (SALBP-2). SALBP-1 [215] is present when the aim is to effectively assign tasks to workstations by minimizing the number of stations for a prespecified cycle time. This problem commonly arises when new assembly lines are to be designed by a company. On the other hand, SALBP-2 [1622] is present when the aim is to minimize the cycle time for a specific number of stations. This kind of problem usually arises when changes in the production process of a product are to take place in the effort to improve the line efficiency. Several methods have been proposed for the solution of SALBP problems such as genetic algorithms (GAs) [2, 5, 17], ant colony optimization [5, 9, 22], particle swarm optimization [10, 11, 14], Petri net [4, 10, 18], tabu search [3], bacterial foraging optimization [15], or other heuristic algorithms [8, 12, 13, 1921]. Battaïa and Dolgui [23] have provided a very interesting survey, covering about 300 studies, which analyzes relevant research on balancing flow lines within many different industrial contexts. A more recent review regarding the assembly line balancing problem (ALBP) has been provided by Sivasankaran and Shahabudeen [24].

In a realistic manufacturing environment, the task time may be random due to worker fatigue, low skill levels, job dissatisfaction, poorly maintained equipment, defects in raw materials, etc. Since data in real-world problems are often afflicted with uncertainty, imprecision, and vagueness due to both machine and human factors, they can only be estimated with uncertainty. Several researchers [25] have been attempted to incorporate fuzzy information in their effort to solve SALBP through various types of algorithms. Kalender et al. [26] have been developed to solve traditional ALBP with fuzzy operation times. Ozcan and Toklu [27] have presented a fuzzy goal programming model for imprecise goals for two-sided assembly line balancing. Tapkan et al. [28] have solved two-sided ALPB by employing positional, zoning, and synchronous task constraints via a bees algorithm. Mutlu and Ozgormus [29] have considered the physical workload of a task as a fuzzy concept and proposed a fuzzy linear programming model to solve ALPB. La Scalia et al. [30] have used fuzzy set theory as a viable alternative method for modelling and solving the stochastic ALPB. In several attempts, GAs have been adopted to solve SALBP in conjunction with fuzzy logic. Tsujimura et al. [31] have illustrated via a numerical experiment that a GA is an appropriate tool to solve fuzzy scheduling problems. In another attempt, Gen et al. [32] have used a numerical example to solve ALPB with fuzzy processing time by using GAs with the objective of minimizing the total operation time in each workstation. Similarly, a GA based approach for both types of fuzzy ALPB has been presented by Khoshalhan and Zegordi [33]. Zacharia and Nearchou [34] have presented a fuzzy extension of the SALBP-2 with fuzzy job processing times to deal with the uncertainty occurring in production systems. In an interesting study [35], ALBP has been modeled through a multicriteria fuzzy GA.

Few are the very recent attempts regarding line balancing problems which incorporate fuzzy considerations. Characteristically, Alavidoost et al. [36] have formulated multiobjective straight and U-shaped ALBPs with the fuzzy task processing times. In another attempt, a new approach based on queuing theory has been demonstrated by Khalili et al. [37] for solving the ALBP using fuzzy prioritization techniques. On the other hand, a heuristic has been proposed by Avikal et al. [38] to assign the disassembly, though, tasks to the workstations under its precedence constraints incorporating fuzzy analytic hierarchy process. Nevertheless, the latest attention-grabbing studies associated with the ALBP commonly do not utilize fuzzy concepts. In an interesting effort, Su et al. [39] have conducted study on balancing a mixed-model assembly line of Type E based on a Petri net model. More recently, new lower bounds for the SALBP have been introduced and empirically evaluated [40]. Additionally, a mixed integer programming model has been developed for the parallel two-sided ALBP [41]. Furthermore, an innovative parallel assembly line configuration has been introduced for U-shaped lines [42]. Finally, Roshani and Giglio [43] have addressed the multimanned ALPB, with the objective of minimizing the cycle time.

In the present paper, the SALBP-2 regarding the construction of a real robotic arm is under investigation. The metal parts of the robotic arm are manufactured in four machining workstations. In order to deal with the variability of the task operation times, fuzzy set theory [44] is adopted as a very promising approach for modeling and solving stochastic problems. The fuzzy theory is then combined with an appropriate GA [45, 46] for solving the fuzzy SALBP-2 of the robot’s metal frame. To handle more realistically the manufacturing of the robot’s metal frame, the processing time for each job is considered as fuzzy and is represented by triangular fuzzy membership functions. In an attempt to treat relevant imprecise data, fuzzy numbers are introduced to represent the processing time of each job, where the membership function of a fuzzy data represents the grade of satisfaction of a decision maker. The main contribution of this paper is to enhance the real manufacturing process of a robotic arm in terms of time reduction, using an optimization algorithm (GA) by simultaneously considering the variability and ambiguity associated with real situations. To the authors’ best knowledge, this is the first time that the SALBP-2 combined with GA and fuzziness is applied in the manufacturing process of a robotic structure.

The rest of the paper is organized as follows: Section 2 summarizes the arithmetics of fuzzy numbers, gives the background of the fuzzy assembly line balancing of type 2, and presents the practical problem of manufacturing the robot components. Section 3 presents the proposed optimization approach applied for the fuzzy ALBP of the robotic arm. Computational results concerning the performance of the GA are presented in Section 4, while conclusions and directions for future work are pointed out and discussed in Section 5.

2. The Fuzzy Assembly Line Balancing Problem

2.1. Arithmetic and Ranking Fuzzy Number

Compared to traditional binary sets (where variables may take on true or false values), fuzzy logic variables may have a truth value that ranges in degree between 0 and 1. Fuzzy logic has been extended to handle the concept of partial truth, where the truth value may range between completely true and completely false.

A fuzzy set is a class of objects with a continuum of grades of membership. Such a set is characterized by a membership (characteristic) function which assigns to each object a grade of membership ranging between zero and one. The membership function which represents a fuzzy set is usually denoted by . For an element , the value is called the membership degree of in the fuzzy set . The membership degree quantifies the grade of membership of the element to the fuzzy set . The value 0 means that is not a member of the fuzzy set; the value 1 means that is fully a member of the fuzzy set. The values between 0 and 1 characterize fuzzy members, which belong to the fuzzy set only partially.

Due to the nature of processing times, the most commonly used fuzzy sets in depicting these values are triangular fuzzy numbers (TFNs) [47] that establish extreme points to represent the most likely and least likely values for the individual variables. In this work, the time variables will be represented as TFNs. TFN is denoted as a triplet of points, i.e., , where . In the adapted fuzzy heuristics, the tasks’ fuzzy processing times are accumulated using the fuzzy addition operator. In particular, by assuming a second TFN , where , then the following arithmetics between and may be performed [48]:

To compare the fuzzy numbers, some criteria to rank the fuzzy sets should be presented. The ranking method in this work involves three ordered criteria [49] which are explained in the following.

The greatest associate ordinary number is used as a first criterion for ranking:

If does not rank the fuzzy numbers, then those which have the best maximum presumption (the mode) will be chosen:

If and do not rank the fuzzy numbers, then the divergence (the distance between two end-points) will be used as third criterion:

Consider a set composed of the TFNs with . A TFN is called major and denoted as when dominates all the others in some criterion, in , that is, (the operator max is the discrete maximum). The decision maker chooses some criteria and determines its order of dominance. If the first criterion can not determine the major TFN, then the second criterion follows and so on. On the contrary, a TFN is called minor when dominated by all others in and this operation is represented as min.

2.2. Fundamentals of Fuzzy Assembly Line Balancing of Type 2

The fuzzy SALBP can be stated as follows: workstations are arranged along an assembly line. Manufacturing a single product on the line requires the partitioning of the total work into a set of elementary operations called tasks. Each task is performed on exactly one station and requires a fuzzy processing time . Let be the station load of station (i.e., the set of tasks assigned to ), with a cumulated fuzzy task time . The tasks are partially ordered by precedence relations defining a directed acyclic graph (DAG) with being the set of the nodes denoting the tasks in and being the set of the edges representing the precedence constraints among these tasks. The assembly line is associated with a fuzzy cycle time denoting the maximum processing time available for each station. The aim of SALBP-2 is the minimization of the fuzzy cycle time (i.e., the maximization of the production rate) given the number of workstations .

3. The Proposed Optimization Approach

GAs [45, 46] are optimization techniques which simulate the natural selection mechanism observed in the biological evolution process. A GA has global and parallel search capability which is suitable for solving demanding problems of high nonlinearity. A GA, in contrast with common search techniques, starts with an initial set of random solutions called population (individuals) which satisfy the constraints of the problem. Chromosome is called each individual in the population representing a solution to the problem at hand. Each chromosome comprises a number of structures known as genes. The chromosomes are then regressed via iterations which are commonly known as generations. During each iterative procedure, i.e., generation, the chromosomes are estimated by utilizing some measures of fitness. This means that, in every generation, the fitness of every individual in the population is calculated. Then the more fit individuals are selected from the current population, and each individual’s genome is changed to form the population of the next generation. This new population is then used in the next iteration of the algorithm. The next generation is created according to the fitness values by forming new chromosomes. These chromosomes arise by merging two chromosomes from the current generation by using a crossover operator or by changing a chromosome via utilizing a mutation operator. The complete set of chromosomes is called genotype, and the resulting organism is called phenotype. Generally, the GA after numerous generations converges to the best chromosome, which represents the ideal solution to the problem. A typical GA includes a genetic representation of the solution domain and an efficient fitness function to evaluate the solution domain.

The proposed GA according to the requirements of the present study has the following basic components: (a) the representation mechanism which is a method to transform phenotypes into genotypes, (b) the decoding mechanism which is a method to map phenotypes to solutions, (c) the evaluation mechanism which is a method to compute the cost-function for each genotype, (d) the mechanism which generates the initial population of the genotypes, (e) the mechanism which generates new genotypes by applying operators on the entire population, (f) the control parameters, and (g) the termination condition. The block diagram of the present GA is illustrated in Figure 1 while its main steps are explained with more detail in the following subsections.

3.1. The Representation Mechanism

A GA can only find possible solutions to a problem when the solutions are transformed into a representation which the GA may handle. Thus, an appropriate representation mechanism is required to transform possible solutions within the context of the original problem, called phenotypes, into individuals within the context of the GA, called genotypes. This encoding may be realized via a string of binary code, real-valued numbers, integers, or a tree structure. Nevertheless, for mechanical engineering problems the most efficient representation is a string of real-valued numbers. Thus, in the present study a real-valued GA has been adopted in which genotypes are represented by floating-point vectors. Since ALBP solutions are represented by strings of integers [1], the utilized representation mechanism should allow mapping from the genotypic state-level (the real-valued vectors) to the phenotypic level (the actual ALB solutions). This is realized by a simplified, however, efficient topological ordering scheme which is based on the relative priorities imposed by the components of a genotype. Assuming the task of the ALBP with precedence relations given by a DAG , the utilized representation mechanism aims to generate a topological sort of from a specific -dimensional floating-point vector (genotype). Each vector’s component () represents the relative priority of task (). The topological sort is therefore a ranking of all the tasks in line with their priorities and precedence constraints. During the procedure, the tasks with no predecessors are identified and put in set . Then, the task in which has the highest gene’s value in is removed from and placed in the next available position of a new string (initially empty) called partial schedule (PS). The process is continued until the completion of PS is achieved.

3.2. The Decoding Mechanism

After encoding a specific genotype into a phenotype, the decoding mechanism is required to assign the tasks in the generated task-sequence into the stations. The proposed technique [49] seems to be more effective in contrast with other traditional schemes [1] and therefore preferred in the proposed GA. The utilized scheme consists of the following steps:

Step 1. Set equal to the theoretical minimum fuzzy cycle time; i.e., .

Step 2. Assign as many tasks as possible into the first workstations. Assign all the remaining tasks to the last workstation .

Step 3. Calculate the fuzzy work load for each workstation () and the potential fuzzy workload (), where is the sum of and the processing time of the first task assigned to ()-th station ().

Step 4. Set and .

Step 5. If , then go to Step 2; else return .

3.3. The Evaluation Mechanism

The evaluation mechanism corresponds to the computation of the objective function for each phenotype of the current population. The objective of SALBP-2 is to minimize the fuzzy cycle time . The objective function has to be transformed to the fitness function , which is evaluated for all the chromosomes of the population. The value of the fitness function for one chromosome expresses its ability to survive and be reproduced in the next generation. The fitness function is the inverse of the objective function:

Equation (5) aims to maximize the fitness function and consequently forcing to a minimum value. For the evaluation of the solution candidates, (2) is applied to compare the fuzzy numbers.

3.4. The Initial Population

In order to initialize the process, the solutions in the first generation have to be defined. Commonly, this is done randomly since the main desire is to spread the first individuals over the complete search space before converging to more promising regions. Nevertheless, when the area of the optimum solution may be estimated beforehand, then the algorithm could be initiated around this area to speed up the convergence.

3.5. The Genetic Operators

A genetic operator is used in GAs to maintain the genetic diversity. Genetic operators such as crossover, mutation, and selection are used in GAs to assure genetic variation for the process of evolution. Roulette wheel selection [50] is the best known selection operator and thus adopted here. The concept is to evaluate selection probability for each chromosome proportionally to the fitness value. Then a model roulette wheel is made which displays these probabilities. The selection process is based on spinning the specific wheel the number of times equal to the population size. Crossover is an operator which aims to produce new individuals by joining parts of several individuals of the previous generation. The selection of individuals is made randomly according to a predefined probability, i.e., one-point crossover rate [50]. Mutation is required to insert new genetic material into the population by slightly modifying the genotype representation. In this way, the early convergence to local minima is avoided. The modification is applied stochastically to discover potential better solutions based on the current best solutions. The mutation operator is applied by changing a random gene (i.e., a floating number) according to a small-predefined probability (mutation rate) [50]. Figures 2 and 3 demonstrate two application examples of these operators on random selected chromosomes. For the sake of simplicity, the presented chromosomes have a length of 10, although in our problem the length of the chromosomes is 57.

3.6. Control Parameters

The most important control parameters are the population size, the crossover ratio, the mutation rate, and the elitism.

Population size is one of the most important topics in evolutionary computation since small population size may lead the algorithm to poor solutions while a large population size may require a much more computational time to find a solution. The population size selection should be made according to the nature and the complexity of the current problem. In the present work, a variety of tests have been made considering the influence of the population size on the convergence of the algorithm. The algorithm has been run several times starting with different population sizes and the convergence has been evaluated. Finally, the population size has been set to 100 for the SALBP-2 under investigation which involves 4 workstations and 57 tasks.

The crossover rate controls the frequency with which the crossover is applied. The higher crossover rate is, the more quickly new individuals are added to the population. Several convergence tests have proved the effectiveness of a crossover rate equal to 0.8 for the purpose of the present research.

The mutation rate defines the probability according to which the position of each individual in the intermediate population undergoes a random change. A GA with a too high mutation rate will inevitably become a random search. Thus, the mutation rate is typically chosen to be less than 0.4. The value of 0.1 has been chosen here after a considerable number of trials.

When creating new population via crossover and mutation, there is a chance that the best chromosome will be lost. Elitism [50] is a method according to which the best chromosome is copied to the new population. A comparison involving the best chromosome between current and previous generation is required. Elitism increases the performance of the GA since it prevents the loss of the best-found solution.

3.7. Termination Conditions

The termination condition should be theoretically satisfied and thus end the algorithm when the optimum solution has been found. However, for many optimization problems, the ideal solution is unknown and therefore there is always an uncertainty whether better solutions exist. In addition stochastic procedures may require a significant computational cost and take a long time to converge to the optimum solution. Commonly used termination conditions are therefore based on the maximum allowed number of iterations (generations) which however present limitations since it is difficult to determine beforehand the number of generations needed to find near-optimum solutions. Thus, in the proposed scheme, the termination of the GA is chosen to occur when the repetitions of the same solution have reached a predefined number. Consequently, the algorithm terminates when a specific chromosome has appeared for a sufficiently large number of times.

4. Description of Assembly under Investigation

The robotic arm, which is manufactured for the requirements of the present study, is a 6-degree-of-freedom manipulator. It is mainly constructed from a 3 mm aluminum sheet, has a length of about 600 mm, and has the ability to pick up a small object of 0.3 kg. In order to keep the design as simple as possible, the pivoting parts include six standard step motors. Additionally, the robotic arm under investigation incorporates a controller which governs the arm movements and operations. A simple, scalable control system has been adopted to allow control in a Cartesian coordinate system, which offers expandability for future research. The idea behind the specific design is to investigate the potential of developing a simple robotic arm capable of moving small objects. The skeleton of the robotic arm is constructed by using exclusively aluminum bars and sheets, whereas basic conventional machines are used during the manufacturing process.

Figure 4 depicts the manufactured robotic arm consisting of a waist, a shoulder, an elbow, a wrist, and a gripper which are connected to each other via metal links. These links are appropriately designed and machined so that they may offer stability, smooth motion, and, if required, effective support for specific motors.

The mechanical design of the robotic arm includes a heavy bottom base of 20 mm thick aluminum. The aluminum base is designed in such way that it provides enough space for the more powerful motor which is responsible for the waist rotation. A column joined with a lighter upper base is manufactured to offer smooth shoulder rotation and appropriate motor support. The link/arm 1 connects the shoulder and elbow while the link/arm 2 connects the elbow with the wrist. The second link is formed in such a way to bracket both the elbow rotation and wrist bend motors. The wrist rotation motor is attached on link/arm 3 which connects the wrist bend with the wrist rotation mechanisms. The gripper is appropriately attached on the outer edge of this third link. All these robotic parts are coupled with appropriate cylindrical joints. The metal frame of the above described robotic arm is composed of several aluminum components which are illustrated and numbered in Figure 5.

The metal components of the robotic frame are machined using conventional processes in which appropriate pieces of raw material are progressively cut and/or formed into the desired final shape and size. The whole machining process takes place in a simple assembly line of four workstations. The assembly line under consideration includes four types of machining operations, i.e., milling, drilling, lathing, and bending. Conventional machines such as those depicted in Figure 6 are utilized for the purpose of the present study.

5. Computational Study

According to Figure 5, in order to construct the metal structure of the robotic arm, 14 different types of components should be manufactured using the aforementioned machines that do not work in parallel. To be more precise, a total of number of 26 parts should be machined since the robotic arm design requires 4 and 10 items of components 13 and 14, respectively. All experiments have taken place in the laboratory of Computer Numerical Control Machines (CNC Lab) in the Mechanical Engineering Department of the Technological Educational Institute (TEI) of Western Greece, using milling, lathe, bending, and drilling machines. A number of 10 students (representing 10 “workers” with different capabilities) have participated actively in the experiments. Table 1 summarizes the fuzzy execution times for the 57 total tasks associated with the robot components. The computational study is focused on finding the optimum sequence of tasks assigned to stations which may lead to the minimum total fuzzy time for executing all tasks.

Considering fuzziness for the processing times, fuzzy data are represented by triangular fuzzy numbers. TFN is one of the most commonly used in the literature shapes of fuzzy numbers representation [47] composed of three estimates (the lowest expected, the most likely, and the highest expected) of the unknown individual value. The reason of using triangular fuzzy shapes is because of their computational simplicity in comparison with other fuzzy shapes, considering the calculations in (1). TFNs differ from statistical distributions in the fact that they do not require historical data to establish their values. This is a major advantage of using TFNs as opposed to statistics.

In practice, this was achieved by assigning the 57 total tasks to 10 “workers” and writing down the resulting times. For all tasks, the most likely values for the TFNs (i.e., the fuzzy element with the membership value of 1) are considered to be the middle written times at the last column of Table 1. These most likely values for each task were set equal to the average of the corresponding ten measured times by the ten “workers”. The extreme TFN values in Table 1 were taken equal to the minimum and maximum times of the 10 execution times provided by the “workers”, respectively. In a fuzzy set , the minimum time represents the optimistic value , the maximum time represents the pessimistic value , and the middle time represents the most plausible value . Although, in practice, the actual time is more possible to be longer and not shorter than , we decided to set the most likely value in the middle of the two extreme values in order to keep “equal distances” between the optimistic and pessimistic value. Generally speaking, a shifted triangular fuzzy number for modeling the uncertainty would be more realistic; however, in our problem, the variations in times were rather small giving us the opportunity for the above admittance.

The precedence constraints are summarized in Table 2. For each row, the task in the first column precedes the task in the second column and the task in the second column precedes the task in the third column.

The minimum fuzzy cycle time is yielded considering the total fuzzy processing time for each of the 57 tasks (see Table 1) as well as the precedence relations given above. The resulting minimum fuzzy cycle time after running the proposed GA is (8150, 8211, 8259) s. Concerning the station load for each workstation, it is provided by the GA best solution, considering the aforementioned constraints, and involves the task sequence assigned to each workstation. In particular, Workstation 1 starts with task 53 and after finishing, it continues with task 24 and so on until it finishes with task 3. Similarly, Workstation 2 starts with task 22, then accomplishes task 38, and finishes with task 10. The robotic arm is manufactured when all tasks assigned to each workstation have been accomplished. For the problem addressed here, the resulting task sequence and the fuzzy station time for each workstation are presented in Table 3. The simulation test was implemented in Matlab and run on a Pentium IV 2.13 GHz core2 PC and the CPU time was 993 sec. Given the nature and the complexity of the present problem, a rather insignificant computational effort was required. However, it has to be mentioned that the selection of a larger population size would significantly increase the CPU time. Auspiciously, various numerical tests on the population size showed that the selection of a population size larger than 100 had a negligible effect on the convergence of the method.

Figure 7 depicts the triangular membership function for the fuzzy cycle time. It is clear that the least likely values are 8150 and 8259 while it is found that the most likely value is 8211.

To compare the fuzzy numbers, the greatest associate ordinary number (see (2)) is used. Thus, the value for the cycle time presented in the following has been calculated through (2), and Figures 8, 9, and 10 illustrate the evolution of the GA through the generations for the best, average, and worst individuals, respectively. It is clear from Figure 8 that the best cycle time (equal to 8207.75 s corresponding to (8150, 8211, 8259) s) is achieved in the 1459th generation.

6. Conclusions

Due to the fact that the nature of manufacturing systems is accompanied with uncertainty, the main idea for this paper is to treat the problem considering fuzziness in the operation times. Thus, the main focus of this work lies on the construction process considering variability and ambiguity associated with real situations. In this context, this paper studies the solution of the fuzzy ALBP problem type 2 for the real problem of constructing a robotic arm. The robot components are formed using a number of machine tools, which are handled by a specific number of “workers”. The metal parts of the robotic arm are manufactured in four machining workstations. The construction process is enhanced in terms of time reduction using a GA that takes into account fuzziness in times and is subject to the constraints imposed by the precedence relations.

The proposed approach was tested in a real manufacturing environment, where real data was yielded for the simulation tests. The experimental results demonstrated that the approach is effective and efficient at determining the optimum fuzzy cycle time for the accomplishment of robotic arm construction without violating the precedence constraints. Considering future research, a U-shaped assembly line layout could be applied, where stations work at two segments of the line facing each other simultaneously.

Data Availability

All the data (numerical, experimental, figures, diagrams, tables, etc.) used to support the findings of our study are included within the article. Thus, data sharing regarding the aforementioned paper is totally allowed and any reader can access the data supporting the conclusions of the study.

Conflicts of Interest

The authors declare that they have no conflicts of interest.

Acknowledgments

This research has been cofinanced by the European Union (European Social Fund, ESF) and Greek national funds through the Operational Program “Education and Lifelong Learning” of the National Strategic Reference Framework (NSRF), Research Funding Program: ARCHIMEDES III. Investing in Knowledge Society through the European Social Fund.