Evolutionary algorithms and swarm intelligence techniques have been shown to successfully solve optimization problems where the goal is to find a single optimal solution. In multimodal domains where the goal is the locate multiple solutions in a single search space, these techniques fail. Niching algorithms extend existing global optimization algorithms to locate and maintain multiple solutions concurrently. In this thesis, strategies are developed that utilize the unique characteristics of the particle swarm optimization algorithm to perform niching. Shrinking topological neighborhoods and optimization with multiple subswarms are used to identify and stably maintain niches. Solving systems of equations and multimodal functions are used to demonstrate the effectiveness of the new algorithms.