Optimal portfolio search using efficient surface and three-dimensional utility function