1. A method of optimising allocation of resources for a resource allocation problem, the problem being defined by problem variables, problem expressions, problem constraints and an objective function to be optimised in accordance with a predetermined optimisation criterion, wherein the problem variables are representative of at least some of resources to be allocated, temporal parameters associated with allocation of the resources, tasks to be performed, costs associated with allocation of resources, capabilities of the resources and capacity of the resources, the problem expressions are representative of relationships between the problem variables, and the problem constraints are representative of constraints placed upon the problem variables, the method comprising the steps of i. building a model of said resource allocation problem in accordance with said problem variables, problem expressions, problem constraints, and objective function, ii. generating a solution to the modelled problem, the initial solution comprising a set of values representative of at least some of the problem variables, iii. applying a change to the solution by modifying one or more values in the set, iv. identifying problem expressions directly and/or indirectly dependent on the modified values, v. of the dependent problem expressions identified at step (iv), a. selecting an identified problem expression from the dependent problem expressions identified at step (iv), b. evaluating whether one or more inputs to the selected problem expression has changed, c. if the or each input has not changed, marking the selected problem expression, and all problem expressions dependent on the said selected problem expression as unchanged, d. selecting the next problem expression identified at step (iv), and e. repeating steps (b)-(d) until there are no further problem expressions to be selected.