{"id":16782715,"url":"https://github.com/andrei-straut/gaps","last_synced_at":"2026-04-16T11:31:21.940Z","repository":{"id":29763678,"uuid":"33307504","full_name":"Andrei-Straut/gaps","owner":"Andrei-Straut","description":"Genetic Algorithm Path Search","archived":false,"fork":false,"pushed_at":"2018-04-11T17:19:34.000Z","size":2558,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-16T21:23:39.703Z","etag":null,"topics":["angular","angularjs","bootstrap","genetic-algorithm","genetic-algorithms","graph-algorithms","graph-theory","graphs","java","javascript","jgrapht","visjs","websocket","websockets"],"latest_commit_sha":null,"homepage":"https://www.andreistraut.info/gaps","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Andrei-Straut.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-02T12:26:16.000Z","updated_at":"2018-08-22T13:49:46.000Z","dependencies_parsed_at":"2022-07-22T08:20:03.421Z","dependency_job_id":null,"html_url":"https://github.com/Andrei-Straut/gaps","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/Andrei-Straut/gaps","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Andrei-Straut%2Fgaps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Andrei-Straut%2Fgaps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Andrei-Straut%2Fgaps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Andrei-Straut%2Fgaps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Andrei-Straut","download_url":"https://codeload.github.com/Andrei-Straut/gaps/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Andrei-Straut%2Fgaps/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31883700,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T09:23:21.276Z","status":"ssl_error","status_checked_at":"2026-04-16T09:23:15.028Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["angular","angularjs","bootstrap","genetic-algorithm","genetic-algorithms","graph-algorithms","graph-theory","graphs","java","javascript","jgrapht","visjs","websocket","websockets"],"created_at":"2024-10-13T07:48:00.709Z","updated_at":"2026-04-16T11:31:21.921Z","avatar_url":"https://github.com/Andrei-Straut.png","language":"JavaScript","readme":"[![Build Status](https://img.shields.io/jenkins/s/https/www.andreistraut.info/jenkins/view/GAPS/job/GAPS-master.svg)](https://www.andreistraut.info/jenkins/view/GAPS/job/GAPS-master/) [![Tests](https://img.shields.io/jenkins/t/https/www.andreistraut.info/jenkins/view/GAPS/job/GAPS-master.svg)](https://www.andreistraut.info/jenkins/view/GAPS/job/GAPS-master/lastCompletedBuild/)\n\nGAPS (*Genetic Algorithm Path Search*)\n==============\nFor a more detailed description, please see [Wiki page](https://github.com/Andrei-Straut/gaps/wiki)  \nSee [the project in action](http://gaps.azurewebsites.net)  \nAnd because we shouldn't take anyone's word for it, [latest build information](http://gaps.azurewebsites.net/build)  \n\nWhat is GAPS?\n--------------\nA webapp started as a small side project doing path searches in graphs using genetic algorithms\n\nHow does it work?\n--------------\nFor a description on genetic algorithms, [Wikipedia has it (loosely) covered](http://en.wikipedia.org/wiki/Genetic_algorithm). For graph theory, [Wikipedia has it covered again](http://en.wikipedia.org/wiki/Graph_theory). Putting the two and two together, and combining some great frameworks and technologies (see Thanks section), GAPS was born.\n\nJust like any standard genetic algorithm. Picks a random number of initial paths, then it combines and mutates them until a good solution / stop condition is reached.\n\nHow well does it perform?\n--------------\nFor small graphs (30 - 100 nodes, 100 - 1000 edges), in ~10% of cases it outperforms [JGraphT's](https://github.com/jgrapht/jgrapht) KShortestPath algorithm when it concerns path costs. In terms of runtime performance, it is slower, however, there's a chance of finding better paths.\n\nIn most cases, it loses to JGraphT, but barely, usually either tied up, or coming close behind.\n\nWhat are the limits?\n--------------\nStarting from around 100 nodes / 1000 edges, it becomes a bit sluggish client-side due to graph rendering issues. However, if installed and run client-side (web interface is just a wrapper, websocket service means you can use GAPS simply as an API), it performs well even for very large graphs (100k nodes, 1M edges).\n\nWhat are the future plans?\n--------------\nPlease check the [issues page](https://github.com/Andrei-Straut/gaps/issues) for a list of upcoming features.\n\nSpecial thanks\n--------------\n[JGAP](http://jgap.sourceforge.net/) helped a lot to get stuff off the ground quickly, and the possibilities of customization are practically endless.\n\n[JGraphT](https://github.com/jgrapht/jgrapht), awesome framework for dealing with graphs.\n\n[Binary Cart](http://binarycart.com/), one of the best bootstrap templates out there, keep it up guys! :thumbsup:\n\n[Bootstrap](http://getbootstrap.com/) - no explanation needed, it just works!\n\n[AngularJS](https://angularjs.org/) was love at first sight, and a lasting relationship since then, 'nuff said\n\n[Vis.js](http://visjs.org/), Because rendering graphs and visualizing data in the browser should be this easy\n\n[Angular UI notification](https://github.com/alexcrack/angular-ui-notification) because users should always be in the loop\n\n[Bootstrap slider](http://www.eyecon.ro/bootstrap-slider/) and [Bootstrap toggle](http://www.bootstraptoggle.com/) two of the few plugins out there that actually work without extensive hacking or adaptation. Nice work!\n\nAlso, special special thanks to [Pedro Serra](https://github.com/pdiogomserra) for being that wall I could bounce ideas from, and generally for listening to me being geek for hours (ok, minutes at most) on end","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrei-straut%2Fgaps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrei-straut%2Fgaps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrei-straut%2Fgaps/lists"}