A computer-implemented method for computational drug design using an evolutionary algorithm, comprising: defining a set of n achievement objectives (O A 1-n ), where n is at least one; defining a population (P G=0 ) of at least one molecule; and selecting an initial population (P parent ) of at least one molecule (I 1 -I n ) from the population (P G=0 ); characterised in that the method further comprises evaluating members (I 1 -I n ) of the initial population (P parent ) against at least one of the n achievement objectives (O A 1-x ), where x is from 1 to n; wherein the evaluating comprises: calculating the parameters of each member (I 1 -I n ) of the initial population (P parent ) for the at least one achievement objective (O A 1-x ); and calculating the vector distance (VD) from each member (I 1 -I n ) to the at least one achievement objective (O A 1-x ),wherein the vector distance (VD) between each member (I 1 -I n ) and the at least one achievement objective (O A 1-x ) is defined as: VD = ∑ p = 1 n x I p − x A p 2 where a desired value of each parameter p for each of the achievement objectives (O A 1-n ) has coordinates (x I 1 ,...,x I n ), and a calculated value of the corresponding parameter p for each member (I 1 -I n ) of the initial population has coordinates (x A 1 ,...,x A n ). defining a set of n achievement objectives (O A 1-n ), where n is at least one; defining a population (P G=0 ) of at least one molecule; and selecting an initial population (P parent ) of at least one molecule (I 1 -I n ) from the population (P G=0 ); characterised in that the method further comprises evaluating members (I 1 -I n ) of the initial population (P parent ) against at least one of the n achievement objectives (O A 1-x ), where x is from 1 to n; wherein the evaluating comprises: calculating the parameters of each member (I 1 -I n ) of the initial population (P parent ) for the at least one achievement objective (O A 1-x ); and calculating the vector distance (VD) from each member (I 1 -I n ) to the at least one achievement objective (O A 1-x ),wherein the vector distance (VD) between each member (I 1 -I n ) and the at least one achievement objective (O A 1-x ) is defined as: VD = ∑ p = 1 n x I p − x A p 2 where a desired value of each parameter p for each of the achievement objectives (O A 1-n ) has coordinates (x I 1 ,...,x I n ), and a calculated value of the corresponding parameter p for each member (I 1 -I n ) of the initial population has coordinates (x A 1 ,...,x A n ). calculating the parameters of each member (I 1 -I n ) of the initial population (P parent ) for the at least one achievement objective (O A 1-x ); and calculating the vector distance (VD) from each member (I 1 -I n ) to the at least one achievement objective (O A 1-x ),wherein the vector distance (VD) between each member (I 1 -I n ) and the at least one achievement objective (O A 1-x ) is defined as: VD = ∑ p = 1 n x I p − x A p 2 where a desired value of each parameter p for each of the achievement objectives (O A 1-n ) has coordinates (x I 1 ,...,x I n ), and a calculated value of the corresponding parameter p for each member (I 1 -I n ) of the initial population has coordinates (x A 1 ,...,x A n ). <EOS>