{"id":19788050,"url":"https://github.com/s-martin/galib","last_synced_at":"2025-05-01T00:30:47.840Z","repository":{"id":39006618,"uuid":"169313568","full_name":"s-martin/galib","owner":"s-martin","description":"Modernized GAlib","archived":false,"fork":false,"pushed_at":"2024-10-20T20:38:00.000Z","size":26291,"stargazers_count":2,"open_issues_count":16,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-21T07:46:15.975Z","etag":null,"topics":["c-plus-plus","cpp","cpp17","galib","genetic-algorithm"],"latest_commit_sha":null,"homepage":"https://s-martin.github.io/galib/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/s-martin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-02-05T21:11:54.000Z","updated_at":"2024-10-20T20:34:02.000Z","dependencies_parsed_at":"2022-08-09T07:35:43.165Z","dependency_job_id":"240b503d-f59a-4ba4-a9e7-0f77473d00e0","html_url":"https://github.com/s-martin/galib","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-martin%2Fgalib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-martin%2Fgalib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-martin%2Fgalib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-martin%2Fgalib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/s-martin","download_url":"https://codeload.github.com/s-martin/galib/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224228535,"owners_count":17277015,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","cpp","cpp17","galib","genetic-algorithm"],"created_at":"2024-11-12T06:25:57.336Z","updated_at":"2024-11-12T06:25:57.976Z","avatar_url":"https://github.com/s-martin.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Modern GAlib: A (modernized) C++ Genetic Algorithm Library\n\n![GitHub last commit (branch)](https://img.shields.io/github/last-commit/s-martin/galib/master)\n\n[![CI-Linux](https://github.com/s-martin/galib/actions/workflows/ci-linux.yml/badge.svg)](https://github.com/s-martin/galib/actions/workflows/ci-linux.yml) [![CI-Windows](https://github.com/s-martin/galib/actions/workflows/ci-windows.yml/badge.svg)](https://github.com/s-martin/galib/actions/workflows/ci-windows.yml) [![CodeQL](https://github.com/s-martin/galib/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/s-martin/galib/actions/workflows/codeql-analysis.yml)\n\n[![Coverage Status](https://coveralls.io/repos/github/s-martin/galib/badge.svg?branch=master)](https://coveralls.io/github/s-martin/galib?branch=master)\n\nCopyright (c) 1994-1996 MIT, 1996-2005 Matthew Wall\n\nGAlib is a C++ library of genetic algorithm objects.  With GAlib you can add\nevolutionary algorithm optimization to almost any program using any data\nrepresentation and standard or custom selection, crossover, mutation,\nscaling, and termination methods.\n\nGAlib was originally developed by Matthew Wall.\n\nModernized GAlib from version 3.0 on is a fork of the [original GAlib](http://lancet.mit.edu/ga) and modernized the original code using C++17 technology.  \n\nThe library requires a C++ compiler conforming to C++17. It has been tested with\n\n- Visual Studio 2019\n- GCC 8.3, 9.4 (Ubuntu)\n- LLVM/Clang 10.0.0 (Ubuntu)\n\nGraphic examples (XWindows) are available, as are\nparallel, distributed implementations using PVM.  There are about 30 examples\nthat illustrate various ways to use GAlib on a variety of problems.\nIn addition many unit tests are available.\n\n## WHERE TO GET IT\n\nModernized GAlib:\n\n\u003chttps://github.com/s-martin/galib\u003e\n\nOriginal GAlib 2.4.7:\n\n\u003chttp://lancet.mit.edu/ga\u003e\n\n\u003cftp://lancet.mit.edu/pub/ga/\u003e\n\n## COMPILATION\n\nCMake is used for compilation. There are three things to build: the library, the examples\nand the unit tests. Here is the short version of how to build and test everything:\n\n### Windows\n\nUsing [vcpkg](https://github.com/microsoft/vcpkg) to install dependencies and [chocolatey](https://chocolatey.org) to install tools is recommended.\n\n- Clone or download the repository\n\n- Install dependencies: `vcpkg install boost-test boost-program-options boost-predef`\n\n- Install coverage tools: `choco install opencppcoverage`\n\n#### Visual Studio 2019 or later\n\n- Open path in Visual Studio as CMake project.\n\n#### Previous versions of Visual Studio\n\n- `md build \u0026\u0026 cd build`\n\n- `cmake ../ -DCMAKE_TOOLCHAIN_FILE=\u003cpath to vcpkg\u003e/scripts/buildsystems/vcpkg.cmake`\n\n- Open created Visual Studio solution file in `build` directory\n\n### Linux (Ubuntu)\n\n- `sudo apt install libboost-test-dev libboost-program-options-dev libx11-dev libxt-dev libxaw7-dev`\n\nIf you want to use code coverage:\n\n- `sudo apt install lcov gcovr`\n\nIf you want to use Doxygen:\n\n- `sudo apt install doxygen mscgen dia graphviz`\n\nIf you want to use PVM examples:\n\n- `sudo apt install pvm-dev`\n\nConfigure and build:\n\n- `mkdir build \u0026\u0026 cd build`\n\n- `cmake ../` (if you don't want to build examples append `-DBUILD_EXAMPLES=OFF`, if you want to build PVM append `-DBUILD_PVM=ON`)\n\n- `make`\n\nRun unit tests:\n\n- `make test`\n\nRun unit tests and create coverage:\n\n- `make GAlib_lcov`\n\n- `make GAlib_gcov`\n\n### Building shared libraries\n\nTo build shared libraries append `-DBUILD_SHARED_LIBS:BOOL=ON` to the above `cmake` command.\n\nSee also \u003chttps://cmake.org/cmake/help/v3.15/variable/BUILD_SHARED_LIBS.html\u003e in the CMake docs.\n\n### Common Errors\n\nIf that does not work, then here are the files you might have to modify:\n\n- ga/gaconfig.h  - this contains the macros that control library options\n\nIf you still have problems, look at Installation.html in the doc directory.\n\n## DOCUMENTATION\n\nDoxygen API documentation is available at \u003chttps://s-martin.github.io/galib/\u003e.\n\nMore general documentation is available at `/doc`.\n\n### Documentation of original GAlib (until 2.4.7)\n\nList of bugs is at \u003chttp://lancet.mit.edu/ga/Bugs.html\u003e\n\n#### Original Mailing Lists\n\nThere are two GAlib mailing lists: \u003cgalib@mit.edu\u003e and \u003cgalib-announce@mit.edu\u003e\nThe first list is an unmoderated list intended as a forum for galib users to\nhelp each other.  The second is only for announcements about GAlib updates.\nTo subscribe, send email to \u003cgalib-request@mit.edu\u003e (or galib-announce-request)\nwith the word 'subscribe' as the subject and nothing in the body of the email.\nTo unsubscribe, send email with the word 'unsubscribe' as the subject.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs-martin%2Fgalib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fs-martin%2Fgalib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs-martin%2Fgalib/lists"}