SN Applied Sciences

, 1:799 | Cite as

Structural health monitoring based on the hybrid ant colony algorithm by using Hooke–Jeeves pattern search

  • Abhishek Shakya
  • Mayank MishraEmail author
  • Damodar Maity
  • Giuseppe Santarsiero
Research Article
Part of the following topical collections:
  1. Engineering: Bio-Inspired Optimization Algorithms


Structural health monitoring is crucial for the timely damage diagnosis of civil infrastructure. This paper explores the damage detection method based on the ant colony algorithm (ACO) by using Hooke–Jeeves (HJ) pattern search for intensification. The HJ is incorporated into the ACO to improve its performance in detecting damages. The damage is simulated by reducing the stiffness of the structural members, via elastic modulus reduction factor. Four civil engineering structures of varying complexity are analysed for low- and high-level damage scenarios to test the efficacy of the proposed approach. An inverse problem is formulated to minimise the objective function based on the frequency response function rather than using the frequency and mode-shape-based approach. The analysis results indicate that the proposed method can locate damages and identify their severity with higher precision than previously used GA, SPSO, and UPSO can.


Ant colony optimisation Frequency response function Hooke and Jeeves method Modal parameter Damage assessment 

1 Introduction

Structures should be able to support various loading conditions by deforming or developing stresses within permissible limits. The presence of damages in a structure increases stresses or deformations, which can lead to failure. Damages in the structure can be induced owing to several factors, such as fatigue, the degradation and deterioration of material, accidental damage, wind, earthquakes, and other mechanical vibrations. To ensure regular safe operation and avoid disaster, the structural system must be inspected and evaluated for any possible deterioration. The major application of this research area is the monitoring of the overall composition and integrity of civil engineering structures by identifying damage in several components of the building. Important applications of the damage detection techniques are in the aftermath of seismic events especially for strategic structures as, for example, hospital buildings. The prompt resumption of healthcare activities is of fundamental importance to the surrounding community affected by a disaster [1]. They could be also applied in integration with continuous monitoring of special structures in order to get real-time functionality and safety evaluations.

The presence of damages changes the physical properties of the structures, such as the mass, stiffness, and damping. The changes in the physical properties alter the dynamic characteristics of the structure, such as the frequency, mode shapes, damping ratio, and frequency response functions (FRFs). Therefore, changes in the vibration components of buildings can be attributed to changes in the stiffness matrix and mass matrix, which can help in damage identification [2, 3, 4]. Numerical simulations are conducted with the measured vibration data from the damaged structure to assess the location and extent of damage. Numerous researchers have proposed several structural responses for detecting and assessing damages. The natural frequency is one of the simplest and easiest structural responses to experimentally obtain. The changes in natural frequencies can be very low even for a large percentage of damages. In some cases, the changes in natural frequencies caused due to variations in environmental conditions are significantly more than those caused due to the introduction of damages [5]. Moreover, for a structure with symmetrical geometry, materials, and boundaries, two different states of damage in two symmetrical elements can generate the same changes in natural frequencies [6].

Through a comprehensive literature review, Salawu and Williams [7] established some conclusions regarding damage detection through changes in frequency. Ramos et al. [8] used Bayesian statistics to quantify damage as reduction in elastic modulus leading to change in frequency in a church in Portugal. In general, frequency changes alone do not imply the existence of damage. Abdo and Hori [9] studied damage detection by considering the changes in the global dynamic characteristics. They established a numerical relationship between the changes in the rotation of mode shapes and the damage characteristics. The rotational mode shape was observed to be a sensitive damage indicator. Zang et al. [10] proposed structural damage assessment based on the frequency response correlation criterion. However, this criterion is limited to numerical studies because it requires FRFs at all the nodal points of the discretised model, which is difficult to obtain experimentally. Kouchmeshky and Aquino [11] described a coevolutionary algorithm that interactively explores for damage scenarios and uses the changes in the FRFs as an indicator of structural damage. The feasibility of this methodology was demonstrated using a bridge truss. Mishra et al. [12] integrated rebound hammer and ultrasonic pulse velocity measurements from a case study building at Kharagpur to predict residual compressive strength, as another indicator for masonry walls degradation. Nozarian and Esfandiari [13] proposed an element-level damage (changes in stiffness and damping) identification technique by using the measured FRF and natural frequency of the structures. Esfandiari et al. [14] also proposed damage assessment through a structural model updated using the FRF. The ability of this method for recognising the location and severity of damages in the structural stiffness and mass was analysed through a truss model.

Damage identification problems are generally tackled as inverse problems [15], in which the input damage is given and the objective function is optimised to minimise the error between the analytical and actual output. However, such a model also has certain disadvantages. A small noise or change in the sensor data can lead to false damages reported by the model. Therefore, a well-structured functional form of the objective function is proposed in Sect. 3 to locate and quantify damage, whose solution is obtained through optimisation techniques. Several linear–nonlinear, local–global, and stochastic–deterministic techniques have been used to obtain the solution of the objective function [16]. Traditional deterministic approaches cannot correctly identify damages because they get trapped in multiple local minima and are time-consuming [17]. Almost all conventional optimisation methods do not guarantee the global minima and are highly sensitive to the initial conditions. These methods are ineffective if the optimisation function has a large set of variables. Consequently, the heuristic approaches have gained popularity in the past few years. Several swarm-based heuristic approaches, such as the genetic algorithm (GA) [18, 19, 20, 21, 22], simulated annealing (SA) [23, 24], tabu search [25], standard particle swarm optimisation (SPSO) [26, 27, 28, 29], unified particle swarm optimisation (UPSO) [30, 31], artificial bee colony (ABC) [32, 33], ant colony optimisation (ACO) [34, 35, 36], charged system search [37], and ant lion optimisation [38], as well as their hybrid versions [39, 40, 41, 42] have been used in the previous studies.

A metaheuristic algorithm based on the ant behaviour was developed in the early 1990s by Dorigo and Gambardella [43, 44]. This population-based technique is inspired by the behaviour of real ants and their communication scheme in which they use a pheromone trail. However, the expansion to continuous variables is a new development in the history of ACO. In the recent literature, ACO has been used to successfully solve several problems, such as the travelling salesman problem [43], flow shop scheduling problem [45], and vehicle routing problems [46]. Juang et al. [47] used continuous ACO to design fuzzy rule-based systems. A new route selection technique based on pheromone levels was developed for early solution formation. Simulations were conducted on the fuzzy control of three nonlinear systems to verify the performance of continuous ACO.

The application of the ACO algorithm for the damage assessment of structures is a recent development, and few studies regarding this topic are found. Yu and Xu [48] used a ACO-based algorithm for structural damage assessment. The damage assessment problem was transformed into a constrained optimisation problem, which was solved using the continuous ACO algorithm. According to the numerical simulations for single and multiple damages of a two-storeyed rigid frame structure, the method of Yu and Xu could locate weak damage or multiple damages with enhanced noise immunity. Majumdar et al. [35] used the ACO algorithm to detect and assess structural damages in terms of the natural frequency changes caused due to damage. An inverse problem was formulated in terms of the changes in the natural frequencies of the damaged structure compared with the natural frequencies of the undamaged structure. Moreover, the application of the damage assessment method was experimentally verified using the ACO algorithm on a fabricated beam structure. The results indicated that the developed method could detect the damages and estimate the damage amount. Cottone et al. [49] used ACO for damage detection in structures using lévy variables for random searching owing to their wider exploration potential. They applied the ACO method for the case of not-well spaced frequency systems. Furthermore, Braun et al. [50] used different variants of ACO algorithm for damage detection in structures under noisy experimental data.

The objective of this study is to develop a global nondestructive method for structural damage assessment through an inverse process by using the FRF, the natural frequency objective function (Sect. 3), ACO (global search), and Hooke–Jeeves (HJ) search (local search) (Sect. 4). Consequently, four structures of varying complexity are assessed for damage location and quantification in Sect. 5. Pattern search methods of Hooke and Jeeves have been successfully used in optimisation problems by combining them with other algorithms such as SA [51], ABC [52], GA [53], PSO [54], bat algorithm [55], and metropolis algorithm [56]. In recent studies, Altinoz and Yilmaz [57] used multi-objective HJ integrated with Newton–Raphson method to improve the performance of HJ algorithm, while Chen et al. [58] utilised HJ to optimise input parameters in computational fluid dynamics simulation. Gao et al. [59] used multi-objective HJ in optimising set-point temperatures to enhance thermal performances in furnace operations.

2 Finite element formulations

The study considers beam, truss, and frame elements for the three examples analysed. For the cantilever beam (Sect. 5.1), two-noded elements having two degrees of freedom (DOF), one vertical (\(Y_1\)) and one rotational (\(R_1\)) at each node (Fig. 1a). The stiffness matrices and mass matrices with rigidity of beam (EI) and cross-sectional area (A) at element level are formulated as:
$$\begin{aligned}{}[K_{ei}] = \frac{E I}{L^3} \begin{pmatrix} 12 &{}\quad 6 L &{}\quad -12 &{}\quad 6 L \\ 6 L &{}\quad 4 L^2 &{}\quad -6 L &{}\quad 2 L^2 \\ -12 &{}\quad -6 L &{}\quad 12 &{}\quad -6 L \\ 6 L &{}\quad 2 L^2 &{}\quad -6 L &{}\quad 4 L^2 \\ \end{pmatrix} \end{aligned}$$
and mass matrix as follows:
$$\begin{aligned}{}[M_{ei}] = \frac{\rho A I}{420} \begin{pmatrix} 156 &{}\quad 22 L &{}\quad 54 &{}\quad -13 L \\ 22 L &{}\quad 4 L^2 &{}\quad 13 L &{}\quad -3 L^2 \\ 54 &{}\quad 13 L &{}\quad 156 &{}\quad -22 L \\ -13 L &{}\quad -3 L^2 &{}\quad -22 L &{}\quad 4 L^2 \\ \end{pmatrix} \end{aligned}$$
where E, L and \(\rho\) are the Young’s modulus, length, and density of the member, respectively.
Fig. 1

a Beam element, b 3D truss element, c 2D frame element

For the truss structure modelled in Sect. 5.2, two-dimensional two-noded bar elements with horizontal (\(X_1\)) and vertical DOF (\(Y_1\)) in each node (Fig. 1b). The stiffness and mass matrices of these elements in a local coordinate system can be formulated as:
$$\begin{aligned}{}[K_{ei}]= & {} \frac{EA}{L} \begin{pmatrix} 1 &{}\quad -1 \\ -1 &{}\quad 1 \end{pmatrix} \end{aligned}$$
$$\begin{aligned}{}[M_{ei}]= & {} \frac{\rho A L}{6} \begin{pmatrix} 2 &{}\quad 1 \\ 1 &{}\quad 2 \end{pmatrix} \end{aligned}$$
Lastly for plane frame modelled in Sect. 5.4, two-noded beam element with three DOF at each node (\(X_1\), \(Y_1\), \(R_1\) shown in Fig. 1c) is used with element stiffness matrix and mass matrices as follows:
$$\begin{aligned}{}[K_{ei}]= & {} \begin{pmatrix} \frac{EA}{L}&{}\quad 0 &{}\quad 0 &{}\quad -\frac{EA}{L} &{}\quad 0 &{}\quad 0 \\ 0 &{}\quad \frac{12 E I}{L^3} &{}\quad \frac{ 6 E I}{L^2} &{}\quad 0 &{}\quad -\frac{12 E I}{L^3} &{} \frac{6 E I}{L^2} \\ 0 &{}\quad \frac{6 E I}{L^2} &{}\quad \frac{4 E I}{L} &{}\quad 0 &{}\quad -\frac{6 E I}{L^2} &{}\quad \frac{2 E I}{L} \\ -\frac{EA}{L}&{}\quad 0 &{}\quad 0 &{}\quad \frac{EA}{L} &{}\quad 0 &{}\quad 0 \\ 0 &{}\quad -\frac{12 E I}{L^3} &{}\quad -\frac{ 6 E I}{L^2} &{}\quad 0 &{}\quad \frac{12 E I}{L^3} &{}\quad -\frac{6 E I}{L^2} \\ 0 &{}\quad \frac{6 E I}{L^2} &{} \frac{2 E I}{L} &{}\quad 0 &{}\quad -\frac{6 E I}{L^2} &{}\quad \frac{4 E I}{L} \\ \end{pmatrix} \end{aligned}$$
$$\begin{aligned}{}[M_{ei}]= & {} \frac{\rho A I}{420} \begin{pmatrix} 140 &{}\quad 0 &{}\quad 0 &{}\quad 70 &{}\quad 0 &{}\quad 0 \\ 0 &{}\quad 156 &{}\quad 22 L &{}\quad 0 &{}\quad 54 &{}\quad -13 L \\ 0 &{}\quad 22 L &{}\quad 4 L^2 &{}\quad 0 &{}\quad 13 L &{}\quad -3 L^2 \\ 70 &{}\quad 0 &{}\quad 0 &{}\quad 140 &{}\quad 0 &{}\quad 0 \\ 0 &{}\quad 54 &{}\quad 13 L &{}\quad 0 &{}\quad 156 &{}\quad -22 L \\ 0 &{}\quad -13 L &{}\quad -3 L^2 &{}\quad 0 &{}\quad -22 L &{}\quad 4 L^2 \\ \end{pmatrix} \end{aligned}$$
The matrices are at an element level is then transformed in global coordinate system using the transformation matrix T:
$$\begin{aligned}{}[K_{ei}]'= & {} [T]^t [Ke_i] [T] \end{aligned}$$
$$\begin{aligned}{}[M_{ei}]'= & {} [T]^t [M_{ei}] [T] \end{aligned}$$
where \([T]^t\) represents the matrix transpose of transformation matrix T can be given as follows:
$$\begin{aligned}{}[T] = \begin{pmatrix} \xi _1 &{}\quad \xi _2 &{}\quad \xi _3 &{}\quad 0 &{}\quad 0 &{}\quad 0 \\ \eta _1 &{}\quad \eta _2 &{}\quad \eta _3 &{}\quad 0 &{}\quad 0 &{}\quad 0 \\ \zeta _1 &{}\quad \zeta _2 &{}\quad \zeta _3 &{}\quad 0 &{}\quad 0 &{}\quad 0 \\ 0 &{}\quad 0 &{}\quad 0 &{}\quad \xi _1 &{}\quad \xi _2 &{}\quad \xi _3 \\ 0 &{}\quad 0 &{}\quad 0 &{}\quad \eta _1 &{}\quad \eta _2 &{}\quad \eta _3 \\ 0 &{}\quad 0 &{}\quad 0 &{}\quad \zeta _1 &{}\quad \zeta _2 &{}\quad \zeta _3 \end{pmatrix} \end{aligned}$$
where \(\xi _1\), \(\eta _1\), and \(\zeta _1\) are direction cosines of the global axis X with respect to a local XYZ coordinate system. Similarly, (\(\xi _2\), \(\eta _2\), \(\zeta _2\)) and (\(\xi _3\), \(\eta _3\), \(\zeta _3\)) are direction cosines of global Y and Z axes with respect to an XYZ coordinate system, respectively.

3 Formulation of the FRF

To solve damage assessment problems, various objective functions are formulated, which are then optimised for a set of design variables (damage parameters associated with each element). The optimised objective functions indicate the location and extent of damage. An FRF expresses the relation between the structural response and the applied force on the structure, which is a function of the frequency. The structural response can include the displacement, velocity, or acceleration. Therefore, the displacement and acceleration responses obtained using the aforementioned formulations can be expressed as FRFs. The relationship between the input force and output response of the structural system is represented in Fig. 2.
Fig. 2

Relation between the input force and output response of the system

FRFs are represented through a transfer function of the system (i.e. the relation between the output and input). Hence, the relationship between the structural response and applied force is represented by the following equations:
$$\begin{aligned} H(\omega )= \frac{X(\omega )}{F(\omega )} \end{aligned}$$
where \(H(\omega )\) is an FRF, \(F(\omega )\) is a force function, and \(X(\omega )\) is a response function (such as displacement, velocity, and acceleration). The FRF for the displacement of the kth node (DOF) with a single excitation force at the jth DOF can be calculated as follows:
$$\begin{aligned} H_{jk}(\omega )= \sum _{i=1}^{n} \frac{\phi _{ji} \phi _{ki}}{(\omega ^2_{ni}-\omega ^{2}_{n})} \end{aligned}$$
where \(\phi _{ji}\) is ith structural mode shape of the jth DOF, \(\omega _{ni}\) is the ith natural frequency, \(\omega _n\) is the forcing frequency, and n is the number of natural frequencies considered. Thus, the shape of the kth FRF is defined as the deflection of the structure in the measured DOF due to a unit harmonic excitation at the kth DOF.
The study simulates the damage by reducing the elemental stiffness matrix of ith element [\(Ke_{i}\)] by a scalar variable \(\eta _i\) \(\in\) [0 1] for ith element denoting the damage vector associated with the damaged structure. Hence, updated global structural stiffness matrix of the damaged structure \([K_d]\) of DOF dimension can be represented as follows:
$$[K_d]_{{\mathrm{DOF}} \times {\mathrm{DOF}}} = \sum _{i=1}^{N_{\mathrm{FEM}}} (1 - \eta _i) Ke_i$$
where \(N_\mathrm{FEM}\) are the total number of finite elements discretised in the model.
Combined damage indicators are often used to eliminate some of the disadvantages associated with individual damage indicators. Hence, the combination of natural frequencies and mode shapes is expected to provide superior damage assessment. The error function is based on a combination of the FRF and frequency, which are functions of the damage index. The objective function used in this study derived from Mohan et al. [27] and Mishra et al. [38] is given as follows:
$$\begin{aligned}&F_{\rm obj} (\eta ) \nonumber \\&\quad = \sqrt{\sum _{i=1}^{n} \Bigg (\frac{\omega _{ndi}^{*}-\omega _{ndi}}{\omega _{ndi}} \Bigg )^2} \nonumber \\&\qquad + \sqrt{\frac{1}{R}\frac{1}{Q}\sum _{a=1}^{R} \sum _{p=1}^{Q} \Bigg ( \frac{|H_{ak}(\omega _p,\eta )-H_{ak}(\omega _p,\eta )^m|}{{\mathrm{max}} (H_{ak}(\omega _p,\eta )^m)}\Bigg )^2} \end{aligned}$$
where \(\omega _{ndi}*\) and \(\omega _{ndi}\) denote the computed and actual frequencies of the damaged structure, index k representing the excitation degree of freedom (DOF), \(H_{ak}\) and \(H_{ak}^m\) denote the computed and actual receptance, R and Q denoting the number of responses considered in the study and index of excitation frequency. The frequency part exclusively matches the frequency of the damaged structure with an updated model. The FRF part of the objective function matches the FRF curves, which form the modal information of the structure. The computation of natural frequencies and FRF for both undamaged and damaged scenarios is done by code written in MATLAB environment [60]. The damage vector \((\eta _1, \eta _2,...,\eta _{N_\mathrm{FEM}})\) is computed by minimising the objective function \(F_{\rm obj} (\eta )\) formulated using Eq. 13, which is then solved using an optimisation technique.
Fig. 3

ACO: Ants forming an optimised path from the nest to food

4 ACO algorithm

4.1 ACO—Basic formulation

ACO is based on the cooperative behaviour of real ant colonies to find the shortest path from their nest to a food source (Fig. 3). For any design variable, a discrete set of permissible values are assigned. The ACO process is explained in the following text. The ant colony starts from home node to travel various paths from the first combination to the last combination until the destination node in each iteration. In iteration 1, all the ants start from home to destination node, by randomly selecting a value. The nodes selected along the path visited by an ant for discrete ACO represent a possible candidate solution. The probability \(p_{ij}^k\) for kth ant in choosing the next node while located at ith node is given as follows [43].
$$\begin{aligned} p_{ij}^{k}= {\left\{ \begin{array}{ll} \frac{\tau _{ij}^\alpha \eta _{ij}^\beta }{\sum _{l \in N_i^k}^{} \tau _{il}^\alpha \eta _{il}^\beta } &{}\quad \hbox {if} j \in N_i^k \\ 0 &{}\quad \hbox {otherwise} \end{array}\right. } \end{aligned}$$
where \(N_i^k\) represents the available neighbourhood for kth ant located at node i. \(\tau _{ij}\) is the pheromone amount at node ij (\(\tau _{ij}\)=1 for iteration 1). The parameters \(\alpha\) and \(\beta\) determine the weightage between the pheromone and heuristic information and \(\eta\) is the heuristic weight. After all the ants complete their paths, the pheromones on the globally best path are updated using the updating rule given by Eq. 15. After completion of the path, the ant deposits some pheromone \(\tau _{ij}\) for all m ants on the path according to the local updating rule.
$$\begin{aligned} \tau _{ij} \leftarrow (1-\rho ) \times \tau _{ij} + \sum _{k=1}^{m} \Delta \tau _{ij}^{k} \end{aligned}$$
where \(\rho\) denote the pheromone evaporation factor varying between 0 to 1. The optimisation process is terminated until the termination criteria are reached. The values of the design variables (damage vectors in our study) for the path with largest pheromone levels are considered as the components of the optimum solution vector. Finally, at the optimum solution, most ants travel along the same best converged path (Fig. 3) with maximum pheromone concentration. The flowchart used in the study for damage detection is shown in Fig. 4. The output of the ACO is the damage vector \(\eta\) = [\(\eta _1\), \(\eta _2\), ..., \(\eta _{N_\mathrm{FEM}}\)], represents the damage condition of the structure in terms of both location and severity.
Fig. 4

Workflow for ACO

4.2 ACO—Elitist Ant System (EAS) version

Different versions of ACO have been applied in various fields. One such version is the EAS. The EAS is obtained using all the solutions generated in the respective iteration as well as the best-so-far solution for updating the pheromone values. The best-so-far solution is given a higher weightage than all the other solutions present in the current iteration. This is done to increase the exploitation of the best-so-far solution by introducing a strong bias towards the solution components.
$$\begin{aligned} \tau _{ij}^{l} = \tau _{ij}^{\rm old} + \sum _{k=1}^{m} \Delta \tau _{ij}^{k} \end{aligned}$$
\(\tau _{ij}^{\rm old}\) denotes the amount of pheromone leftover after the previous iteration. The evaporation is represented as follows:
$$\begin{aligned} \tau _{ij} \leftarrow (1-\rho ) \times \tau _{ij} + \Delta \tau _{ij}^{\rm best} \end{aligned}$$
\(\Delta \tau _{ij}^{\rm best}\) is the pheromone deposited by the best ant k.
The evaporation rate \(\rho\) is taken as 0.1, and the pheromone deposited \(\Delta \tau _{ij}^{k}\) is computed as follows:
$$\begin{aligned} \Delta \tau _{ij}^{k} = {\left\{ \begin{array}{ll} \frac{Q}{L_k} &{}{\mathrm{if\;ant\;k\;uses\;path\;in\;its\;tour }}\\ 0 &{} {\mathrm{otherwise}} \end{array}\right. } \end{aligned}$$
is a Q constant and \(L_k\) signifies the quality of the solution.

4.3 Formulation of HJ search

The pattern search method proposed by Hooke and Jeeves [61] in 1961 consists of a progression of exploratory moves about a base point, followed by pattern moves. Exploratory moves are conducted to find the best point in the vicinity of the current point. Pattern moves involve jumping in the direction of change. If the change is better, then continue, or else reduce size of the exploratory move and continue. The procedure of HJ search is summarised in the following text.

4.3.1 Exploratory moves

The exploratory move probes value of the objective function \(f_{\rm obj}\) (Eq. 13) in the vicinity of current base point \(\eta _0\). Each damage vector \(\eta _i\) (i= 1,2,...,\(N_\mathrm{FEM}\)) is given an increment \(\delta _i\) in both positive (\(\eta _{1i}=\eta _{0i}+\delta _i\)) and negative directions (\(\eta _{1i}=\eta _{0i}-\delta _i\)) to new position \(\eta _{1i}\), and the new objective function value at updated position is checked. The increment \(\delta\) for all the dimensions \(N_\mathrm{FEM}\) is taken as 0.01 in the current study (i.e. damage is searched in 1.0% increments for exploratory move around the current base point). The move is regarded as a successful move (i.e. objective function value is decreased, (\(f_{\rm obj}(\eta _{11},\eta _{12},\ldots \eta _{N_{1\mathrm{FEM}}})\) < (\(f_{\rm obj}(\eta _{01},\eta _{02},...\eta _{N_{0\mathrm{FEM}}})\), then the updated position of damage vector is stored. After all the damage vector dimensions are explored by increasing i from 1 to \(N_{\rm FEM}\), a new base point (\(\eta _{1}\)) is reached. Else for cases when \(\eta _{1}\) = \(\eta _{0}\), no decrease in objective function value is achieved (i.e. (\(f_{\rm obj}(\eta _{1})>f_{\rm obj}(\eta _{0})\))), otherwise the exploratory move is a success and the position of point is stored in a temporary vector \(\eta _{1}\), with objective function value \(f_{\rm obj}(\eta _{1})\).

4.3.2 Pattern moves

A pattern move is conducted to accelerate the search process by utilising the knowledge gained in advance about \(f_{\rm obj}(\eta _{1})\) in identifying the direction of best search. A move is carried out from \(\eta _{1}\) towards the \(\eta _{1}\) - \(\eta _{0}\) direction [62]. A move in the aforementioned direction decreases the value of the objective function. Thus, the objective function is computed at the next pattern point (\(\eta _{2}\)), which is given as follows:
$$\begin{aligned} \eta _{2} = \eta _0 + \alpha \times (\eta _{1} - \eta _0) \end{aligned}$$
where \(\alpha\) is the acceleration coefficient for pattern move taken as 2 in this study. The search is conducted with a new sequence of exploratory moves about point \(\eta _{2}\). If the objective function value at updated point \(f_{\rm obj} (\eta _{2})\) obtained is less than \(f_{\rm obj} (\eta _{1})\), then a new base point (\(\eta _{2}\)) is stored. If the lowest function value obtained is not less than \(f_{\rm obj}(\eta _{1})\), the pattern move from \(\eta _{1}\) is abandoned and we continue with a new sequence of exploratory moves about \(\eta _{1}\). For the next iteration, step length is reduced by half (\(\delta\)=\(\delta /2\)), i.e. the step size reduction factor. The minimum value is obtained until the step length for each variable is reduced to a stated value of termination parameter \(\epsilon\) = 0.0005.

In the current study, ACO (Sect. 4.2) and Hooke–Jeeves search explained in Sect. 4.3 are combined at the iteration level. Each ant is represented by a set of damage vectors \(\eta\), whose dimension is the number of elements discretised in the finite element model. For the first iteration, the parameters to be optimised are randomly distributed between 0 and 1. For each ant, the loss objective value (Eq. 13) is calculated. The one with the minimum objective function is the elitist ant. The pheromone value is updated along with a set of optimised variables. The ACO helps in exploration and bit of exploitation as well. However, it was found in previous research experiments that it sometimes got stuck in local minima in case of multidimensional space. So, HJ search is added so that the exploitation phase can be handled to avoid trapping in local minima. After one iteration, the ant position is updated using HJ search. It helps in the exploitation of the nearby area. Then, the second iteration is completed by calculating the objective function value for each ant and the process continues. If the exploitation does not result in a successful minimisation of objective function after several iterations, then the area is discarded and it resets to its original position. Therefore, it avoids local minima.

5 Analysis and results

The evaluation of damage detection capability of the ACO-HJ approach is presented in this section. Cantilever beam, plane truss, double-storey building, and 2D frame are assessed for various types of input damage vectors with low- and high-level damages. The performance of EAS+HJ is compared with other state-of-the-art approaches [19, 27], namely GA, and PSO. For each damage scenario, ten numerical simulations were carried out and the best solution (i.e. the one with least objective function value) is reported in each damage case for comparing with other examples. The number of ants for ACO, i.e. ant colony size, was taken as 10 for all examples, with the maximum number of iteration fixed at 200. The value of algorithmic specific parameter used in ACO signifying pheromone evaporation rate (\(\rho\)) was kept at 10% obtained after some trials. The objective function uses first six natural frequencies and FRFs for all the damage scenarios considered in the aforementioned examples obtained using finite element code written in MATLAB [60].
Fig. 5

Cantilever beam

5.1 Cantilever beam

Figure 5 illustrates the specifications of the cantilever beam. The beam is divided into ten members and fixed at one side. When 80% damage is introduced in the first element, we observe a decline in the natural frequency for several modes (Table 1). The EAS+HJ model correctly identifies the location of 80% damage in the first element without the detection of any noise in the other elements (Fig. 6a).
Table 1

Natural frequency of the undamaged and damaged cantilever beam (80% damage in element 1)


Initial state undamaged

Damaged state 80% in element 1
















In the case of two-element damage (Fig. 6b) (90% in the first element and 70% in the fifth element), our model correctly quantifies the damage with precision. In the case of three-element damage (Fig. 6c) (90% in the first element, 70% in the fifth element, and 55% in the eighth element), the damage is recognised within 1% error, which is acceptable under practical conditions.
Fig. 6

Comparison for a one-element damage (80% in the first element), b two-element damage (90% in the first element and 70% in the fifth element), c three-element damage (90% in the first element, 70% in the fifth element, and 55% in the eighth element) of the cantilever beam

Fig. 7

Comparison for a one-element damage (35% in the first element), b two-element damage (15% in the fourth element and 25% in the seventh element), c three-element damage (30% in the third element, 10% in the fifth element, and 20% in the ninth element) of the cantilever beam

Considerable research in damage detection has been conducted over a long time for the early detection of any damage; however, many of the developed algorithms have failed in suitable damage detection. Damages below 30% are not easily identified because a small noise or error in the data leads to the misidentification of damage in several members. Our EAS+HJ model clearly identified 35% damage in the first element without the detection of any noise in the other elements (Fig. 7a). For two-element damage (Fig. 7b) (15% in the fourth element and 25% in the seventh element), the damage was correctly identified; however, a small error was perpetuated among the other elements. The error was within 1%, which is practically acceptable. For three-element damage (Fig. 7c), the damage was correctly identified. The proposed model performed better than other algorithms. For low-level damages, our model exhibited a suitable performance with a low error in the other elements. SPSO, GA and UPSO with several types of objective functions (frequency based on current example) are also susceptible to noise in several elements, which decreases the accuracy of its prediction.
Fig. 8

2D planar truss [63]

5.2 2D planar truss

Figure 8 displays the specification of the 2D planar truss. The truss is divided into 25 members and fixed on one side, with roller support on the other side. When 30% damage is introduced in the fifth element, we observe a decline in the natural frequency of several modes (Table 2). The EAS+HJ model correctly identifies the location of 30% damage in the fifth element without the detection of any noise in the other elements as reported in Fig. 9a.
Table 2

Natural frequencies for the undamaged and damaged truss (30% damage in element 5)


Initial state undamaged

Damaged state 30% in element 5
















Fig. 9

Comparison for the a one-element (30% in the fifth element), b two-element damage (25% in the first element and 15% in the 12th element), c three-element damage (25% in the second element, 20% in the 12th element, and 15% in the 22nd element) scenario of the truss

For two-element damage as shown in Fig. 9b (25% in the first element and 15% in the 12th element), our model recognises damages in the correct set of elements within an error of 1%. Certain damages are detected in other elements; however, these damages are very low and practically acceptable. Other algorithms are also affected by the same problem. For three-element damage (Fig. 9c), our model has a similar performance to the UPSO with the FRF and frequency objective function. In the case of one-element, two-element, and three-element damages, the performance of the EAS+HJ algorithm surpasses that of other algorithms.
Fig. 10

Double-storey building

5.3 Double-storey building

Figure 10 illustrates the specifications of a two-storey building. The building comprises 16 members supported on four fixed supports. When 90% damage is introduced in the first element, we observe a decline in the natural frequency for several modes as reported in Table 3. The EAS+HJ model correctly identifies the location of 90% damage in the first element without the detection of any noise in the other elements as shown in Fig. 11a.
Table 3

Natural frequencies for the undamaged and damaged double storey (90% damage in element 1)


Initial state undamaged

Damaged state 90% in element 1
















Fig. 11

Comparison for the a one-element (90% in the first element), b two-element (40% in the first element and 50% in 11th element), c three-element damage (90% in the first, 70% in fourth, and 55% in 14th element) scenario for two-storey building

For two-element damage (40% in the first element and 50% in the 11th element as shown in Fig. 11b), our model correctly quantifies the damage with precision. Moreover, low-level damage (e.g. 40% damage) is also detected by our model with accuracy. For three-element damage (90% in the first element, 70% in the fourth element, and 55% in the 14th element as shown in Fig. 11c), the damage is recognised within 1% error, which is acceptable under practical conditions. Thus, our model exhibits a suitable performance for low damage detection.
Fig. 12

Plane frame structure [27]

5.4 Plane frame

Finally, plane frame is chosen to compare damage detection results with those of previous studies. Fig. 12 illustrates the plane frame described in the paper of Mohan et al. [27]. It consists of 28 members. Thus, we can now determine whether our algorithm is suitable for detecting damage in a large structure, where the number of control variables to be optimised is large. Previous studies have used the GA and PSO with the objective function consisting of frequency and FRF functions as well as their combinations. For the plane frame, our model outperforms the other algorithms in terms of accuracy and precision.
Table 4

The natural frequencies of the undamaged and damaged plane frame (75% damage in element 1)


Initial state (undamaged)

Damaged state (75% in element 1)
















Fig. 13

Comparison for the a single-element (80% in the first), b two-element (90% in the first element and 70% in eighth element), c three-element damage (80% in the first element, 70% in eighth, and 55% in 10th element) scenario of the plane frame

The natural frequency decreases as damage (75% damage in the first element) is introduced for several mode shapes as reported in Table 4. When 80% damage is introduced in the first element, the GA exhibits a poor performance; however, the PSO algorithm and the proposed model exhibit a suitable performance (Fig. 13a). The proposed model outperforms PSO because no noise is detected in the other elements. For 85% damage in the first element and 70% damage in eighth element (Fig. 13b), the results of the GA are far from accurate. The PSO results are in the vicinity of accurate results; however, noise is detected in the other elements. The EAS+HJ algorithm clearly identifies the damage in the correct elements.

When damage is introduced in three elements (80% in the first element, 70% in the eighth element, and 55% in the tenth element) (Fig. 13c), the GA does not provide promising results. Unsuitable results are obtained possibly because the objective function is selected as frequency-oriented only. PSO provides superior results when the FRF is considered as the objective function (Fig. 13a–c). The proposed EAS+HJ model provides the best results among the three algorithms, with only 1% error in the correct elements. The model provides the best results due to the objective function formulation, which is a weighted function of the frequency and FRF. Furthermore, no noise is detected in our model.

6 Conclusions

The major contribution of this study is the newly developed global nondestructive method for structural damage detection using an inverse process based on FRF and the natural frequency-based objective function. In this study, a numerical investigation is performed using different structures. The numerical results indicate that the damage detection method can identify and quantify various damages scenarios in structures. The model exhibits a suitable performance in detecting low damages with correct precision. A comparative numerical study indicates that the FRF-based method is more accurate than the natural frequency and mode-based methods for identifying damage to the stiffness of a structure. The optimisation algorithm includes the main steps of elitist ACO and local search technique based on HJ to improve its solution accuracy. The local search algorithm (HJ search) is more accurate than the algorithms proposed in previous studies; thus, it is a suitable approach for applications of structural damage detection. Thus, the proposed method for damage detection is superior to the methods used in previous studies and is very promising for complex structures such as infilled reinforced concrete frame buildings, where the damage can be concentrated on both structural and non-structural elements.

In future studies, laboratory tests can be conducted to verify the proposed method before its application to real buildings. To further improve the speed and accuracy of the model, other techniques, such as the sub-structuring method, can be tested. The accuracy of the model can be tested after introducing noise data into it. Various other versions of ACO (e.g. the MAX–MIN and rank-based ant systems) can be used to obtain superior results.


Compliance with ethical standards

Conflict of interest

The Authors declare that they have no conflict of interest financial or otherwise.


  1. 1.
    Santarsiero G, Di Sarno L, Giovinazzi S, Masi A, Cosenza E, Biondi S (2018) Performance of the healthcare facilities during the 2016–2017 Central Italy seismic sequence. Bull Earthq Eng. CrossRefGoogle Scholar
  2. 2.
    Cawley P, Adams RD (1979) The location of defects in structures from measurements of natural frequencies. J Strain Anal Eng Des 14(2):49–57CrossRefGoogle Scholar
  3. 3.
    Doebling SW, Farrar CR, Prime MB, Shevitz DW (1996) Damage identification and health monitoring of structural and mechanical systems from changes in their vibration characteristics: A literature review. Technical Report, Los Alamos National LaboratoryGoogle Scholar
  4. 4.
    Wang Z, Lin RM, Lim MK (1997) Structural damage detection using measured frf data. Comput Methods Appl Mech Eng 147(1):187–197zbMATHCrossRefGoogle Scholar
  5. 5.
    Grimmelsman KA, Pan A, Aktan AE (2007) Analysis of data quality for ambient vibration testing of the henry hudson bridge. J Intell Mater Syst Struct 18(8):765–775CrossRefGoogle Scholar
  6. 6.
    Dado MHF, Shpli OA (2003) Crack parameter estimation in structures using finite element modeling. Int J Solids Struct 40(20):5389–5406zbMATHCrossRefGoogle Scholar
  7. 7.
    Salawu OS (1997) Detection of structural damage through changes in frequency: a review. Eng Struct 19(9):718–723CrossRefGoogle Scholar
  8. 8.
    Ramos LF, Miranda T, Mishra M, Fernandes FM, Manning E (2015) A Bayesian approach for NDT data fusion: the Saint Torcato church case study. Eng Struct 84:120–129CrossRefGoogle Scholar
  9. 9.
    Abdo MAB, Hori M (2002) A numerical study of structural damage detection using changed in rotation of mode shapes. J Sound Vib 251(2):227–239CrossRefGoogle Scholar
  10. 10.
    Zang C, Friswell MI, Imregun M (2007) Structural health monitoring and damage assessment using frequency response correlation criteria. J Eng Mech 133(9):981–993CrossRefGoogle Scholar
  11. 11.
    Kouchmeshky B, Aquino W, Billek AE (2008) Structural damage identification using co-evolution and frequency response functions. Struct Control Health Monit 15(2):162–182CrossRefGoogle Scholar
  12. 12.
    Mishra M, Bhatia AS, Maity D (2019) Support vector machine for determining the compressive strength of brick-mortar masonry using ndt data fusion (case study: Kharagpur, india). SN Appl Sci 1(6):564CrossRefGoogle Scholar
  13. 13.
    Nozarian MM, Esfandiari A (2009) Structural damage identification using frequency response function. Mater Sci Forum 33:443–449Google Scholar
  14. 14.
    Esfandiari A, Bakhtiari-Nejad F, Rahai A, Sanayei M (2009) Structural model updating using frequency response function and quasi-linear sensitivity equation. J Sound Vib 326(3):557–573CrossRefGoogle Scholar
  15. 15.
    Sandesh S, Shankar K (2009) Damage identification of a thin plate in the time domain with substructuring—an application of inverse problem. Int J Appl Sci Eng 7:79–93Google Scholar
  16. 16.
    Fan W, Qiao P (2011) Vibration-based damage identification methods: a review and comparative study. Struct Health Monit 10(1):83–111CrossRefGoogle Scholar
  17. 17.
    Mishra M, Gunturi VR, Maity D (2019) Teaching–learning-based optimisation algorithm and its application in capturing critical slip surface in slope stability analysis. Soft Comput. CrossRefGoogle Scholar
  18. 18.
    Hao H, Xia Y (2002) Vibration-based damage detection of structures by genetic algorithm. J Comput Civil Eng 16(3):222–229CrossRefGoogle Scholar
  19. 19.
    Maity D, Tripathy RR (2005) Damage assessment of structures from changes in natural frequencies using genetic algorithm. Struct Eng Mech 19(1):21–42CrossRefGoogle Scholar
  20. 20.
    Na C, Kim SP, Kwak HG (2011) Structural damage evaluation using genetic algorithm. J Sound Vib 330(12):2772–2783CrossRefGoogle Scholar
  21. 21.
    Gomes HM, Silva NRS (2008) Some comparisons for damage detection on structures using genetic algorithms and modal sensitivity method. Appl Math Model 32(11):2216–2232zbMATHCrossRefGoogle Scholar
  22. 22.
    Boonlong K (2014) Vibration-based damage detection in beams by cooperative coevolutionary genetic algorithm. Adv Mech Eng 6:624949CrossRefGoogle Scholar
  23. 23.
    He RS, Hwang SF (2006) Damage detection by an adaptive real-parameter simulated annealing genetic algorithm. Comput Struct 84(31):2231–2243CrossRefGoogle Scholar
  24. 24.
    Kourehli SS, Bagheri A, Amiri GG, Ghafory-Ashtiany M (2013) Structural damage detection using incomplete modal data and incomplete static response. KSCE J Civil Eng 1:216–223CrossRefGoogle Scholar
  25. 25.
    Arafa M, Youssef A, Nassef A (2010) A modified continuous reactive Tabu search for damage detection in beams. In: Proceedings of the 36th design automation conference, pp. 1161–1169, Quebec, Canada. SRI InternationalGoogle Scholar
  26. 26.
    Kang F, Li JJ, Xu Q (2012) Damage detection based on improved particle swarm optimization using vibration data. Appl Soft Comput 12(8):2329–2335CrossRefGoogle Scholar
  27. 27.
    Mohan SC, Maiti DK, Maity D (2013) Structural damage assessment using frf employing particle swarm optimization. Appl Math Comput 219(20):10387–10400MathSciNetzbMATHGoogle Scholar
  28. 28.
    Nanda B, Maity D, Maiti DK (2014a) Modal parameter based inverse approach for structural joint damage assessment using unified particle swarm optimization. Appl Math Comput 242:407–422MathSciNetzbMATHGoogle Scholar
  29. 29.
    Jebieshia TR, Maiti DK, Maity D (2015) Damage assessment of composite structures using particle swarm optimization. Int J Aerosp Syst Eng 2(2):24–28Google Scholar
  30. 30.
    Nanda B, Maity D, Maiti DK (2014b) Crack assessment in frame structures using modal data and unified particle swarm optimization technique. Adv Struct Eng 17(5):747–766CrossRefGoogle Scholar
  31. 31.
    Bharadwaj N, Damodar M, Maiti DK (2014) Damage assessment from curvature mode shape using unified particle swarm optimization. Struct Eng Mech 52(2):307–322zbMATHCrossRefGoogle Scholar
  32. 32.
    Casciati S, Elia L (2017) Potential of two metaheuristic optimization tools for damage localization in civil structures. J Aerosp Eng 30(2):B4016012CrossRefGoogle Scholar
  33. 33.
    Ding ZH, Huang M, Lu ZR (2016) Structural damage detection using artificial bee colony algorithm with hybrid search strategy. Swarm Evol Comput 28:1–13CrossRefGoogle Scholar
  34. 34.
    Yu L, Xu P (2011) Structural health monitoring based on continuous ACO method. Microelectron Reliab 51(2):270–278CrossRefGoogle Scholar
  35. 35.
    Majumdar A, Maiti DK, Maity D (2012) Damage assessment of truss structures from changes in natural frequencies using ant colony optimization. Appl Math Comput 218(19):9759–9772zbMATHGoogle Scholar
  36. 36.
    Majumdar A, Nanda B, Maiti DK, Maity D (2014) Structural damage detection based on modal parameters using continuous ant colony optimization. Adv Civil Eng. CrossRefGoogle Scholar
  37. 37.
    Kaveh A, Zolghadr A (2015) An improved CSS for damage detection of truss structures using changes in natural frequencies and mode shapes. Adv Eng Softw 80:93–100CrossRefGoogle Scholar
  38. 38.
    Mishra M, Barman SK, Maity D, Maiti DK (2019) Ant lion optimisation algorithm for structural damage detection using vibration data. J Civil Struct Health Monit 9(1):117–136CrossRefGoogle Scholar
  39. 39.
    Sahoo B, Maity D (2007) Damage assessment of structures using hybrid neuro-genetic algorithm. Appl Soft Comput 7(1):89–104CrossRefGoogle Scholar
  40. 40.
    Sandesh S, Shankar K (2010) Application of a hybrid of particle swarm and genetic algorithm for structural damage detection. Inverse Probl Sci Eng 18(7):997–1021zbMATHCrossRefGoogle Scholar
  41. 41.
    Barman SK, Maiti DK, Maity D (2017) A new hybrid unified particle swarm optimization technique for damage assessment from changes of vibration responses. In: International conference on theoretical, applied, computational and experimental mechanics, IIT Kharagpur, pp 28–30Google Scholar
  42. 42.
    Chen Z, Yu L (2018) A new structural damage detection strategy of hybrid pso with monte carlo simulations and experimental verifications. Measurement 122:658–669CrossRefGoogle Scholar
  43. 43.
    Dorigo M, Gambardella LM (1997) Ant colonies for the travelling salesman problem. Biosystems 43(2):73–81CrossRefGoogle Scholar
  44. 44.
    Dorigo M, Caro GD, Gambardella LM (1999) Ant algorithms for discrete optimization. Artif Life 5(2):137–172CrossRefGoogle Scholar
  45. 45.
    Shyu SJ, Lin BMT, Yin PY (2004) Application of ant colony optimization for no-wait flowshop scheduling problem to minimize the total completion time. Comput Ind Eng 47(2):181–193CrossRefGoogle Scholar
  46. 46.
    Bell JE, McMullen PR (2004) Ant colony optimization techniques for the vehicle routing problem. Adv Eng Inf 18(1):41–48CrossRefGoogle Scholar
  47. 47.
    Juang C, Jeng T, Chang Y (2016) An interpretable fuzzy system learned through online rule generation and multiobjective aco with a mobile robot control application. IEEE Trans Cybern 46(12):2706–2718CrossRefGoogle Scholar
  48. 48.
    Huang Q, Xu YL, Li JC, Su ZQ, Liu HJ (2012) Structural damage detection of controlled building structures using frequency response functions. J Sound Vib 331(15):3476–3492CrossRefGoogle Scholar
  49. 49.
    Cottone G, Scimemi GF, Pirrotta A (2014) \(\alpha\)-stable distributions for better performance of ACO in detecting damage on not well spaced frequency systems. Probab Eng Mech 35:29–36Google Scholar
  50. 50.
    Braun CE, Chiwiacowsky LD, Gómez AT (2015) Variations of ant colony optimization for the solution of the structural damage identification problem. Procedia Comput Sci 51:875–884. CrossRefGoogle Scholar
  51. 51.
    Tsai DM, Chen MC (1996) A simulated annealing approach for optimization of multi-pass turning operations. Int J Prod Res 34(10):2803–2825zbMATHCrossRefGoogle Scholar
  52. 52.
    Kang F, Li J, Li H (2013) Artificial bee colony algorithm and pattern search hybridized for global optimization. Appl Soft Comput 13(4):1781–1791CrossRefGoogle Scholar
  53. 53.
    Long Q, Wu C (2014) A hybrid method combining genetic algorithm and Hook–Jeeves method for constrained global optimization. J Ind Manag Optim 10(4):1279–1296MathSciNetzbMATHCrossRefGoogle Scholar
  54. 54.
    Futrell BJ, Ozelkan EC, Brentrup D (2015) Optimizing complex building design for annual daylighting performance and evaluation of optimization algorithms. Energy Build 92:234–245CrossRefGoogle Scholar
  55. 55.
    Yang Z, Zhang J, Zhou W, Peng X (2017) Hooke–Jeeves bat algorithm for systems of nonlinear equations. In: 13th international conference on natural computation, fuzzy systems and knowledge discovery (ICNC-FSKD), pp. 542–547Google Scholar
  56. 56.
    Rios-Coelho AC, Sacco WF, Henderson N (2010) A metropolis algorithm combined with Hooke–Jeeves local search method applied to global optimization. Appl Math Comput 217(2):843–853MathSciNetzbMATHGoogle Scholar
  57. 57.
    Tolga AO, Egemen YA (2019) Multiobjective Hooke–Jeeves algorithm with a stochastic Newton–Raphson-like step-size method. Expert Syst Appl 117:166–175CrossRefGoogle Scholar
  58. 58.
    Denggao Chen, Zhi Zhang, Zhenshan Li, Zian Lv, Ningsheng Cai (2018) Optimizing in-situ char gasification kinetics in reduction zone of pulverized coal air-staged combustion. Combust Flame 194:52–71CrossRefGoogle Scholar
  59. 59.
    Gao B, Wang C, Hu Y, Tan CK, Roach PA, Varga L (2018) Function value-based multi-objective optimisation of reheating furnace operations using Hooke-Jeeves algorithm. Energies 11(9):2324. CrossRefGoogle Scholar
  60. 60.
    MATLAB. version 7.10.0 R2010a (2010) The mathworks inc. natick massachusettsGoogle Scholar
  61. 61.
    Hooke R, Jeeves TA (1961) Direct search solution of numerical and statistical problems. J ACM 8(2):212–229zbMATHCrossRefGoogle Scholar
  62. 62.
    Torczon V (1997) On the convergence of pattern search algorithms. SIAM J Optim 7(1):1–25MathSciNetzbMATHCrossRefGoogle Scholar
  63. 63.
    Hibbeler RC ( 2002) Structural analysis. Pearson Education (Singapore) Pte. Ltd., Delhi. ISBN 81-7808-750-2Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Department of Civil EngineeringIndian Institute of TechnologyKharagpurIndia
  2. 2.Scuola di IngegneriaUniversità degli Studi della BasilicataPotenzaItaly

Personalised recommendations