Computational Intelligence


Darwin Optimization Framework

Darwin Optimization Framework is designed and developed as the general tool for rapid implementation of optimization applications. The framework encapsulates the search algorithms, parallel computing/evaluating possible solutions and constraint handling methods. The core search engines are generalized from three Bentley products Darwin Calibrator and Darwin Designer and Darwin Scheduler as embedded and released as optimization modeling tools of Bentley Water Solution. Darwin framework allows parallel optimization on a single many-core machine and a cluster of many-core machines. It enables user to solve single and multi objective optimization problems with linear, nonlinear, inequity and equity constraints.

The framework relives developers from implementing and integrating the optimization algorithm with an analysis solver, and thus allows developers to focus on defining, formulating and implementing the domain applications. The application can be implemented in a class library, which is built as an independent DLL dynamically loaded at run time. Therefore, Darwin optimization framework enables rapid prototype and implementation of optimization projects. 

Software Prototype:

  1. Genetic Algorithm Optimization wiki on Be Community
  2. Download Darwin (version 0.91) Installation File on Be Community
  3. Darwin (version 0.91) User Manual
  4. Darwin (version 0.91) Demo

Published Papers:

  1. Wu, Z. Y., Wang, Q., Butala, S. & Mi, T. (2011) "Generalized Framework for High Performance", CCWI 2011, Exeter, UK.
  2. Wu, Z. Y., Butala, S. and Yan, X. G. (2010) "High Performance Cloud Computing for Optimizing Water Distribution Pump Operation" the 10th Hydroinformatic Conference, Tianjin, China.

 

GPU-based Artificial Neural Network Computing
Graphics Processing Unit (GPU) has a highly parallelized computing architecture and is very suitable for massive parallel computing tasks. When it is compared to modern CPUs (with 2 or more cores), a modern GPU has hundreds of cores that provides an incredible computational platform for a wide variety of tasks. With this powerful parallel architecture, GPU is not only suitable for graphical computing purposes, but also for general purpose computations. Thus, GPUs today can be used for general purpose computations on floating point operations at tera bytes speed per second. A new era of GPU computing starts with the introduction of Compute Unified Device Architecture (CUDA). CUDA-enabled GPU facilitates the implementation of general purpose computation on GPU.
As the first project of exploring GPU computing, Artificial Neural Network (ANN) computing, in particular, the ANN training is parallelized with CUDA-enabled GPU. A GPU-based ANN has been successfully implemented and applied as ANN meta-model for capturing the domain knowledge of a large water distribution system. The results obtained with the trained ANN show good agreement with the hydraulic modeling results. It proves to be adequate surrogate solver to replace the hydraulic model for other applications. In addition, GPU-based ANN can achieve a great speedup in training with input data when comparing with the conventional CPU-based ANN. This is of great advantage in embedding the trained ANN model for real time optimization applications in which timely training ANN on a new dataset is critical.

  

Published Papers:

  1. Wu, Z. Y and Eftekharian A.A. (2011). "Parallel Artificial Neural Network Using
    CUDA-enabled GPU for Extracting Hydraulic Domain Knowledge of Large Water
    Distribution Systems
    ", in proceeding of 2011
    World Environmental & Water Resources Congress on May 22-26, 2011, Palm
    Springs, California, USA.
  2. Behandish, M. and Wu, Z.Y. "GPU-based Artificial Neural Network Configuration and Training for Water Distribution System Analysis ", ASCE Annual
    World Environmental and Water Resources Congress, May 21 – 24, 2012,
    Albuquerque, New Mexico, USA.
  3. Wu, Z. Y and Behandish M. (2012) "Comparing Methods of Parallel Genetic Optimization for Pump Scheduling using Hydraulic Model and GPU-Based Ann Meta-Model", WDSA2012, Adelaide, Australia
  4. Wu, Z. Y and Behandish M. (2012) "Real-Time Pump Scheduling using Genetic Algorithm and Artificial Neural Network Based on Graphics Processing Unit", WDSA2012, Adelaide,
    Australia

 

Genetic Programming

Genetic Programming (GP) is one of evolutionary computing algorithms to enable computing machines to achieve artificial intelligence by automatically generating and evolving computer programs or models. Since 1990's, many successful applications have been made in many areas, including but not limited to the induction of an explicit mathematic model from data, so-called data-driven modeling, and solving sophisticated differential equations. GP has similar working mechanics to genetic algorithms (GA), but unlike GA that is to search for a numerical solution to a given problem. Instead, GP is to breed mathematic models or computer programs for a problem with the given dataset. It starts with a population of randomly generated mathematic models, and evolves the models by emulating the principles of natural selection and genetic reproduction. It is similar to GA in that GP optimizes a population of computer programs according to a fitness landscape determined by a given computational task and that GP generates a new population of solutions by operations including crossover and mutation. It is domain-independent method for inducing the optimized mathematic model. Differences of GP methods lie in how a model is represented and the variations of solution reproduction operators.

 

Published Papers:

  1. Wu, Z. Y. and Yan, X. G. (2010) "Gene Expression Approach for Short-Term Water Demand Forecasting", WDSA2010, Sept 11 – 13, 2010, Tucson, Arizona, USA
  2. Wu, Z. Y. and Yan, X. G. (2010) "Genetic Programming Approach for Water Distribution Demand Forecasting" the 10th Hydroinformatic Conference, Tianjing, China.

 

High Performance Cloud Computing
 
The concept of cloud computing can be traced back to ideas such as utility computing, which envisioned a future where packaged information technology services would be metered and delivered to customers much like electricity, gas and water. Cloud is a number of connected servers that are accessible for users over internet to perform the desired computing tasks. Users do not need to have knowledge of, expertise in, or control over the technology infrastructure in the cloud that supports them. A cloud environment enables users to run applications by deploying them over a secured web portal to the cloud, which acts like a virtual datacenter. The physical cloud resources may reside in a number of locations, the details of which are not typically known to the users. Cloud resources are offered as a service on an as-needed basis, and delivered by IP-based connectivity. It allows organizations and users to deliver highly-scalable and reliable applications cost-effectively. This yields tremendous advantage for enterprises that depend on or benefit from either large-scale or bursty applications, such as executing computationally-intensive simulation and optimization analysis, which usually requires for evaluating tens of thousands of solutions. This project demonstrated that high performance computing (HPC) can be achieved via cloud computing. A prototype of HPC cloud computing is developed and applied to structural and water system optimization analysis. Good performance speedup is achieved. The HCP cloud computing prototype developed in this research has laid the base for Bentley cloud computing and multidisciplinary optimization framework.
 
Published Papers:
  1. Wu, Z. Y., Butala, S. and Yan, X. G. (2010) "High Performance Cloud Computing for Optimizing Water Distribution Pump Operation" the 10th Hydroinformatic Conference, Tianjin, China.
  2. Wu, Z. Y. (2011). "High Performance Optimization of Civil Infrastructure Systems on a Cloud." proceeding of ICCES11, Nanjing, China
  3. Wu, Z. Y. and Khaliefa M. (2012). "Cloud Computing for High Performance Optimization of Water Distribution Systems" ASCE Annual World Environmental and Water Resources Congress, May 21 – 24, 2012, Albuquerque, New Mexico, USA.