Skip to content

Repository files navigation

Computing Optimal Populations for Binary Problems using Logic Minimization

This repository contains the code to replicate the results discussed in the paper "Computing Optimal Populations for Binary Problems using Logic Minimization" published in the Evolutionary Computation Journal (MIT Press)

Directory Structure

  • espresso-logic-master should contain the source code of the espresso logic minimizer available from here.

  • notebooks-binary-functions contains two python notebooks and the files needed to generate the optimal population for binary functions (single-step problems).

  • q-learning contains the configuration files to compute the optimal action-value functions using XCSLib and for verifying the optimality of the populations generated by our approach (see the instructions below). For example, confsys.woods1q is the configuration file to run Q-learning on Woods1 while confsys.woods1v is the configuration file needed to verify the performance of the optimal population generated by our approach. The qlearning directory of each grid problem contains a pla.zip containing all the pla files that are needed to generate the optimal classifier population. Note that, generating the optimal solution for Woods2 is very expensive since ESPRESSO needs all the 2^24 configurations for all the 8 actions. In the directory qlearning/woods2/ the file pla.zip already contains the minimized PLA files.

  • notebooks-multistep-problems contains the python notebooks and the files needed to generate the optimal population for the grid problems.

  • xcslib-1.3 contains the version of XCSLib that has been used to run the experiments.

Instructions

Step 1: Build XCSLib

Enter the directory xcslib-1.3-clean and run

"make woods"

which creates the executables for the version of XCS for the Woods environment.

Step 1: Generate optimal q-tables

Move to the directory "experiments-qlearning" and run the command "sh ./generate_optimal_qtables.sh" which computes all the q-tables for the multistep problems discussed in the paper.

Move to the directory "notebooks-multistep-problems" and run the first notebook "01 ComputeOptimalGeneralization.ipynb" which generates the optimal populations. We can also run the second notebook "02 PrintSummaryStatistics.ipynb" that prints some statistics as a LaTeX table.

Step 2: Verify that the solutions perform optimally

Move to the directory "experiments-qlearning" and run the command "sh ./run_optimal_populations.sh" which applies XCS using the optimal populations to all the problems discussed in the paper.

After XCS is applied starting from the optimal populations, move back to the notebook directory and execute third notebook "02 PrintSummaryStatistics.ipynb" that computes the performance of the minimized solutions.

Comparison with XCS population before and after condensation

We included a tar file with all the files needed to run the experiments discussed in Section 7 (Table 6) on all the grids with all the settings. In each directory we provide all the configuration files needed to run XCS and the summary files we generated for average number of steps, population size, etc.

We can provide the original data but it requires around 110GBs since we saved many intermediate populations and trace files.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages