The goal of the research is to use mathematical programming techniques to obtain a better understanding of the general problem of separation of several multicomponent sources into several multicomponent product streams which may (or may not) have all the components of the feed streams. The approach is to generate a superstructure that contains all possible separation sequences imbedded into, formulating the resulting optimization problem as a nonlinear programming problem (NLP) and solving that NLP by some standard algorithm. The solution to this NLP yields the separation tasks to be used, the order in which these tasks occur and the corresponding flow rates and compositions of the inter - connecting streams. Routines will be investigated that will incorporate heat integration into these algorithms. Because utility costs are very high for distillation columns, the economic advantages of heat integration can substantially affect the cost of the product. Heat integration of two or more distillation columns is possible because there exist more than one heat source (overhead vapor and bottoms product) and heat sink (feed and recycle streams through the reboiler).