Using GA with CIGAR to solve the free form surface problem