An approach to optimal assignment of tasks with precedence relationships to multiple robots is proposed. The robots are assumed to share a common workspace and work cooperatively to accomplish a given process plan consisting of a set of tasks. The optimal task assignment is defined to be the one that results in spending the least amount of time to complete the plan under the criterion that no robot collision will occur when the assigned tasks are performed. The ordering of the tasks in the process plan is described by a topological tree, which is then expanded to form a larger state-space tree without redundant tree paths. Each path in the expanded tree represents a partially developed assignment of the tasks to the robots, and a graph formulation scheme is presented for estimating the cost of the assignment. A collision-free motion schedule for each robot based on each task assignment can be obtained by finding the minimaximal path in a disjunctive graph formulated by the scheme. By using the A* algorithm, a search method for finding the optimal assignment with the minimum cost is presented. Some heuristic rules are also proposed to speed up the search process. Simulation results are illustrated to show the effectiveness of the proposed approach.