Optimizing temporal pulse patterns for stimulation delivery to a subject includes: generating a first generation pulse pattern; delivering stimulation according to the first generation pattern to a subject; measuring efficacy, efficiency and side-effect parameters affected by the delivered stimulation; determining a fitness of the first generation pattern using the measured parameters; generating a second generation pattern using the first generation pattern according to the determined fitness of the first generation temporal pattern; and delivering stimulation according to the second generation pattern. Iterative further optimization may include crossing any particular generation temporal pulse pattern with at least one other temporal pulse pattern to generate offspring patterns for further use and optimization. Immigrant random patterns may be added, and offspring patterns may receive point mutations. Optimization may be conducted using a computational model prior to treatment of a human subject and further optimization may occur using feedback from the subject.