Repeatedly improving an output by generating versions, evaluating them, and using feedback to create better versions.