Determining ultimate bearing capacity of shallow foundations using a genetic programming system