In artificial genetic search, multimodal functions are optimized by inducing the natural concepts of niche and species into a population of strings. In this paper, a number of methods are suggested for this purpose. Specifically, crowding and sharing function methods are compared on the basis of their performance on a number of test functions. Simulation results show that a GA with sharing is able to converge and distribute trials at all the peaks of the functions, whereas a GA with crowding is unable to maintain subpopulations at all the peaks. Two forms of sharing functions are considered, so-called phenotypic and genotypic sharing, and a mating restriction scheme is implemented to improve on-line performance.