Metadata-Version: 2.4
Name: digneapy
Version: 0.3.0
Summary: Python version of the DIGNEA code for instance generation
Author-email: Alejandro Marrero <amarrerd@ull.edu.es>
License: GNU GENERAL PUBLIC LICENSE
                              Version 3, 29 June 2007
        
            Python Boilerplate contains all the boilerplate you need to create a Python package.
            Copyright (C) 2023  Alejandro Marrero
        
            This program is free software: you can redistribute it and/or modify
            it under the terms of the GNU General Public License as published by
            the Free Software Foundation, either version 3 of the License, or
            (at your option) any later version.
        
            This program is distributed in the hope that it will be useful,
            but WITHOUT ANY WARRANTY; without even the implied warranty of
            MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
            GNU General Public License for more details.
        
            You should have received a copy of the GNU General Public License
            along with this program.  If not, see <http://www.gnu.org/licenses/>.
        
        Also add information on how to contact you by electronic and paper mail.
        
          You should also get your employer (if you work as a programmer) or school,
        if any, to sign a "copyright disclaimer" for the program, if necessary.
        For more information on this, and how to apply and follow the GNU GPL, see
        <http://www.gnu.org/licenses/>.
        
          The GNU General Public License does not permit incorporating your program
        into proprietary programs.  If your program is a subroutine library, you
        may consider it more useful to permit linking proprietary applications with
        the library.  If this is what you want to do, use the GNU Lesser General
        Public License instead of this License.  But first, please read
        <http://www.gnu.org/philosophy/why-not-lgpl.html>.
        
        
Project-URL: homepage, https://github.com/DIGNEA/DIGNEApy
Project-URL: source, https://github.com/DIGNEA/DIGNEApy
Project-URL: issues, https://github.com/DIGNEA/DIGNEApy/issues
Keywords: dignea,optimization,instance generation,quality-diversity,NS
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering
Classifier: Typing :: Typed
Classifier: Operating System :: Unix
Classifier: Operating System :: MacOS
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: AUTHORS.md
Requires-Dist: deap>=1.4
Requires-Dist: fcmaes>=1.6.11
Requires-Dist: keras>=3.5.0
Requires-Dist: matplotlib>=3.8.4
Requires-Dist: numpy>=2.2.0
Requires-Dist: pandas>=2.2.2
Requires-Dist: pyarrow>=21.0.0
Requires-Dist: pybind11>=3.0.1
Requires-Dist: scikit-learn>=1.5.0
Requires-Dist: scipy>=1.13.0
Requires-Dist: seaborn>=0.13.2
Requires-Dist: torch>=2.0.0
Provides-Extra: test
Requires-Dist: pytest>=3; extra == "test"
Dynamic: license-file

# DIGNEApy
---
Diverse Instance Generator with Novelty Search and Evolutionary Algorithms
  
[![Test](https://github.com/DIGNEA/DIGNEApy/actions/workflows/python-app.yml/badge.svg)](https://github.com/DIGNEA/DIGNEApy/actions/workflows/python-app.yml)
[![Coverage Status](https://coveralls.io/repos/github/DIGNEA/DIGNEApy/badge.svg?branch=main)](https://coveralls.io/github/DIGNEA/DIGNEApy?branch=main)
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)


Repository containing the Python version of DIGNEA, a Diverse Instance Generator with Novelty Search and Evolutionary Algorithms. This framework is an extensible tool for generating diverse and discriminatory instances for any desired domain. The instances obtained generated will be biased to the performance of a *target* in a specified portfolio of algorithms. 

* Documentation: https://dignea.github.io
* Contributing: https://github.com/DIGNEA/DIGNEApy/blob/main/CONTRIBUTING.md
* Bug reports: https://github.com/DIGNEA/DIGNEApy/issues
* A brief tutorial on how to create domains and solvers can be found [here](docs/tutorial/0_getting_started.md)
  
Installation:
```python
    python3 -m pip install digneapy
```

## Publications

DIGNEA and DIGNEApy has been used in the following publications:

* Alejandro Marrero, Eduardo Segredo, and Coromoto Leon. 2021. A parallel genetic algorithm to speed up the resolution of the algorithm selection problem. Proceedings of the Genetic and Evolutionary Computation Conference Companion. Association for Computing Machinery, New York, NY, USA, 1978–1981. DOI:https://doi.org/10.1145/3449726.3463160

* Marrero, A., Segredo, E., León, C., Hart, E. 2022. A Novelty-Search Approach to Filling an Instance-Space with Diverse and Discriminatory Instances for the Knapsack Problem. In: Rudolph, G., Kononova, A.V., Aguirre, H., Kerschke, P., Ochoa, G., Tušar, T. (eds) Parallel Problem Solving from Nature – PPSN XVII. PPSN 2022. Lecture Notes in Computer Science, vol 13398. Springer, Cham. https://doi.org/10.1007/978-3-031-14714-2_16

* Alejandro Marrero, Eduardo Segredo, Emma Hart, Jakob Bossek, and Aneta Neumann. 2023. Generating diverse and discriminatory knapsack instances by searching for novelty in variable dimensions of feature-space. In Proceedings of the Genetic and Evolutionary Computation Conference (GECCO '23). Association for Computing Machinery, New York, NY, USA, 312–320. https://doi.org/10.1145/3583131.3590504
  
* Marrero, A., Segredo, E., León, C., & Hart, E. 2024. Learning Descriptors for Novelty-Search Based Instance Generation via Meta-evolution. In Genetic and Evolutionary Computation Conference (GECCO ’24), July 14–18, 2024, Melbourne, VIC, Australia. https://doi.org/10.1145/3638529.3654028

* Alejandro Marrero, Eduardo Segredo, Coromoto León, Emma Hart; Synthesising Diverse and Discriminatory Sets of Instances using Novelty Search in Combinatorial Domains. Evolutionary Computation 2024; doi: https://doi.org/10.1162/evco_a_00350

* Marrero, A. 2024. Evolutionary Computation Methods for Instance Generation in Optimisation Domains. PhD thesis. Universidad de La Laguna. https://riull.ull.es/xmlui/handle/915/37726

## How to Cite DIGNEA

If you use DIGNEA in your research work, please cite the following:

> **DIGNEA: A tool to generate diverse and discriminatory instance suites for optimisation domains**  
> Alejandro Marrero, Eduardo Segredo, Coromoto León, Emma Hart  
> *SoftwareX*, Volume 22, 2023, Page 101355  
> DOI: [10.1016/j.softx.2023.101355](https://doi.org/10.1016/j.softx.2023.101355)  
> URL: [https://www.sciencedirect.com/science/article/pii/S2352711023000511](https://www.sciencedirect.com/science/article/pii/S2352711023000511)  
> **Keywords**: Instance generation, Novelty search, Evolutionary algorithm, Optimisation, Knapsack problem  
> **Abstract**:  
> To advance research in the development of optimisation algorithms, it is crucial to have access to large test-beds of diverse and discriminatory instances from a domain that can highlight strengths and weaknesses of different algorithms. The DIGNEA tool enables diverse instance suites to be generated for any domain, that are also discriminatory with respect to a set of solvers of the user's choice. Written in C++, and delivered as a repository and as a Docker image, its modular and template-based design enables it to be easily adapted to multiple domains and types of solvers with minimal effort. This paper exemplifies how to generate instances for the Knapsack Problem domain.
