Sustainable development is now a major concern in most developed countries, resulting in stricter regulations concerning the impact of the products during their manufacturing, use and end of life. Life cycle assessment (LCA) is a methodology used to quantify the environmental burdens (i.e. emissions of pollutants into the environment or depletion of natural resources) and impacts (i.e. actual quantitative measure of the harmful effect of the burdens on the environment) associated with a product, process, or service across its whole life cycle (from raw material extraction to disposal).LCA can be effectively used to reorganize any industrial process in order to improve its environmental performances. The application of LCA and Eco-design principles provides valuable insights into the design process. Unfortunately, LCA does not include a systematic way of generating process alternatives for environmental improvements.This limitation can be overcome by coupling LCA with optimization tools. In this framework, LCA can be employed to assess technological solutions from an environmental perspective, whereas optimization algorithms automatically seek the best ones according to the predefined criteria.There are two broad approaches we can take to optimization for LCA. One is multi-objective programming or multi-objective optimization, which has been used in the past in this context. A more novel approach, constraint programming, has not yet been applied here, in part because there are fewer experts in this area that have taken the time to engage this particular problem. The present project will consider both approaches, assessing their relative strengths and weaknesses. This will be done by developing models and testing them on real case studies whose data will come from previous LCA studies conducted by CRTE. Our goal is the development of tools that are both flexible and perspicacious.