{"id":19280385,"url":"https://github.com/sraaphorst/dispersive-flies-optimization","last_synced_at":"2025-10-12T14:18:36.986Z","repository":{"id":84877864,"uuid":"163575351","full_name":"sraaphorst/dispersive-flies-optimization","owner":"sraaphorst","description":"A Python implementation of the Dispersive Flies Optimization algorithm, and an implementation to find Steiner systems","archived":false,"fork":false,"pushed_at":"2022-12-04T10:58:12.000Z","size":15,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-24T05:17:45.137Z","etag":null,"topics":["flies","heuristic-search-algorithms","particle-swarm-optimization","pso","python3","sqs","steiner-systems","sts","swarm-intelligence","swarm-intelligence-algorithms"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sraaphorst.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2018-12-30T09:15:39.000Z","updated_at":"2022-12-08T11:35:44.000Z","dependencies_parsed_at":"2023-03-02T21:45:40.152Z","dependency_job_id":null,"html_url":"https://github.com/sraaphorst/dispersive-flies-optimization","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sraaphorst/dispersive-flies-optimization","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sraaphorst%2Fdispersive-flies-optimization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sraaphorst%2Fdispersive-flies-optimization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sraaphorst%2Fdispersive-flies-optimization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sraaphorst%2Fdispersive-flies-optimization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sraaphorst","download_url":"https://codeload.github.com/sraaphorst/dispersive-flies-optimization/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sraaphorst%2Fdispersive-flies-optimization/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279011597,"owners_count":26084963,"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","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["flies","heuristic-search-algorithms","particle-swarm-optimization","pso","python3","sqs","steiner-systems","sts","swarm-intelligence","swarm-intelligence-algorithms"],"created_at":"2024-11-09T21:18:03.916Z","updated_at":"2025-10-12T14:18:36.957Z","avatar_url":"https://github.com/sraaphorst.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dispersive Flies Optimization\n\nThis is an implementation in Python (using numpy) of the swarm algorithm called _Dispersive Flies Optimization_.\n\nThe concept is based on the swarming behaviour of flies near food sources. It is a bare-bones swarm intelligence\nalgorithm (i.e. it has very few tunable parameters), where:\n\n1. The exploratory phase is based on randomly altering a fly's coordinates (rather like mutation in a genetic\nalgorithm); and\n\n2. The exploitative phase is based on a fly adjusting its\ncoordinates based on those of its closest neighbour of highest fitness and the fly with the overall best fitness.\n\nThe use of the fly with the best fitness has been criticized by some, since this information would not be available to\nflies in real swarm intelligence; the authors of the article, however, have stated that it is unneccessary, and I will\nbe doing experiments where it can be disabled to see how performance compares.\n\nThe article for the Dispersive Flies Optimization can be found here:\n\nhttps://annals-csis.org/Volume_2/pliks/142.pdf\n\nIt is also described on Wikipedia:\n\nhttps://en.wikipedia.org/wiki/Dispersive_flies_optimisation\n\nAlong with the implementation are two programs to employ the algorithm:\n\n1. An implementation that chases a mouse cursor around a window in two dimensions; and\n\n2. An implementation to find _Steiner systems._\n\nA `S(t, k, v)` Steiner system is a set of `k`-sets from a `v`-set such that every `t`-set appears in\nexactly one `k`-set. A simple example is `S(2, 3, 7)`, the _Steiner triple system of order 7_, also denoted `STS(7)`.\nLet `{0, ..., 6}` be the `v`-set. The `STS(7)` is thus, unique up to isomorphism, of the form:\n\n```\n{0, 1, 2}\n{0, 3, 4}\n{0, 5, 6}\n{1, 3, 5}\n{1, 4, 6}\n{2, 3, 6}\n{2, 4, 5}\n```\n\nThis is also called the _Fano plane_ and is the _projective plane of order 2._\n\nMore on Steiner systems can be read at:\n\nhttps://en.wikipedia.org/wiki/Steiner_system\n\nThe algorithm is able to find an STS of order 9 with relative ease:\n\n```\n(0, 1, 3)\n(0, 2, 5)\n(0, 4, 6)\n(0, 7, 8)\n(1, 2, 7)\n(1, 4, 8)\n(1, 5, 6)\n(2, 3, 4)\n(2, 6, 8)\n(3, 5, 8)\n(3, 6, 7)\n(4, 5, 7)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsraaphorst%2Fdispersive-flies-optimization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsraaphorst%2Fdispersive-flies-optimization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsraaphorst%2Fdispersive-flies-optimization/lists"}