1. A method for estimating the performance of and/or detecting faults in components of a multi-component system, the performance of each component in the system being defined by one or more performance parameters x, and the performance parameters x being related to measurement parameters z which can be expressed as a function h( ) of the performance parameters x and operating parameters w defining an operating condition of the system; the method comprising: (a) defining a series of fault classes corresponding to possible outcomes in terms of faulty components, (b) creating an initial population of strings for each fault class, each string comprising a plurality of elements corresponding to the performance parameters x and operating parameters w, values being assigned to the string elements which represent estimated values of said parameters and which are constrained only to indicate fault affected values for performance parameters defining the performance of the fault affected component or components of the respective class, and (c) optimising an objective function J(x,w) which gives a measure of the consistency between measured values of the measurement parameters z collected from the system and calculated values of the measurement parameters; the optimisation being an Evolutionary Program based method comprising the repetitively performed steps of: (i) evaluating the objective function for each string and, on the basis of this evaluation, assigning a fitness value to each string, and (ii) creating a next generation population of strings using a selection operator and at least one of a cross-over operator and a mutation operator, the selection operator employing the assigned fitness values to determine the strings that survive to the next generation, the cross-over operator, if used, being constrained to operate on pairs of strings from the same fault class, and the mutation operator, if used, being constrained so that it does not operate on string elements representing performance parameters other than those performance parameters associated with the fault affected components within the respective class, the Evolutionary Program based method further comprising: associating a set of convergence criteria with the string population, and at intervals during population evolution monitoring the population for conformity with the convergence criteria, wherein if the population does not conform with the convergence criteria the string membership of the population is altered and/or the probability of string mutation and/or cross-over in the sub-population is varied with the intention of improving the convergence of subsequent generation string populations.