Evolutionary Computation Projects: Differential Evolution, Probabilistic Graphical Models, and KL Divergence
A collection of three projects developed for the Evolutionary Computation course, covering constrained optimization, probabilistic graphical models, and divergence analysis between multivariate Gaussian distributions.
Implementation of a SHADE-style Differential Evolution (DE) algorithm incorporating two constraint-handling strategies, evaluated on constrained optimization problems from the CEC benchmark suite.
| Strategy | Description |
|---|---|
| Feasibility Tournament | Prioritizes feasible solutions; among feasible candidates, selects the one with the best objective value |
| Adaptive Penalty Method | Penalizes infeasibility using a coefficient that increases as the optimization progresses |
current-to-pbest/1mutation strategy with external archive- SHADE boundary correction via bisection
- Decreasing tolerance for equality constraints (
ε-decay) - 30 independent runs per benchmark problem
- Automatic CSV export of experimental results
pip install numpy pandas
python Tarea1_Evolutivo_MaganaLuisa.pyGenerated files:
resultados_penalizacion_adaptable.csvresultados_torneo_factibilidad.csv
Implementation and comparison of two Estimation of Distribution Algorithms (EDAs) for binary variables.
| Model | Structure | Learning Algorithm |
|---|---|---|
| MIMIC | Linear chain | Greedy ordering based on entropy and consecutive mutual information |
| Dependency Tree | Maximum spanning tree | Chow-Liu algorithm (Kruskal's algorithm over mutual information) |
- Sum of mutual information across model edges
- Estimated KL divergence between the true distribution and the learned model using Monte Carlo sampling
Linear chain:
0 → 1 → 2 → 3 → 4 → 5
Nonlinear tree with a branched dependency structure.
pip install numpy pandas
python Codigo_Tarea2_Evolutivo_MaganaLuisa.py --n 30000 --seed 42Comparison of three probabilistic models over 10-dimensional Gaussian data, evaluating how accurately they approximate the target distribution:
[ P = \mathcal{N}(0, \Sigma) ]
| Model | Description |
|---|---|
| Dependency Tree (Chow-Liu) | Maximum spanning tree constructed from correlation coefficients |
| Independence Model | Diagonal covariance approximation that ignores dependencies |
| Chain Model (MIMIC) | Greedy variable ordering based on absolute correlations |
- Analytical KL divergence (D_{KL}(P \parallel Q)) between multivariate Gaussian distributions
- Conditional sampling using Breadth-First Search (BFS) traversal from the root of the tree or chain structure
pip install numpy pandas
python Tarea3_MaganaLuisa.pyGenerated files:
kl_summary.csvdependency_tree_edges.csvchain_order.csv
- Python 3
numpypandas- External module:
de_restricted(required for Assignment 1 and must be located in the same directory)
These projects explore several fundamental topics in evolutionary computation and probabilistic modeling:
- Constrained evolutionary optimization
- Differential Evolution and adaptive parameter control
- Estimation of Distribution Algorithms (EDAs)
- Probabilistic graphical models
- Mutual information and dependency learning
- Kullback–Leibler divergence
- Approximation of high-dimensional probability distributions
Together, they provide practical implementations of optimization and probabilistic learning techniques commonly used in evolutionary computation, machine learning, and statistical modeling research.