{"id":16706942,"url":"https://github.com/jacobusmmsmit/cotsopt","last_synced_at":"2026-02-02T16:40:27.695Z","repository":{"id":40585407,"uuid":"486377500","full_name":"jacobusmmsmit/CoTSOpt","owner":"jacobusmmsmit","description":"Exploring explores different ways of solving the combinatorial problem of choosing which time series sum together to give an overall time series of interest.","archived":false,"fork":false,"pushed_at":"2022-06-26T19:39:41.000Z","size":2783,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-21T05:05:14.003Z","etag":null,"topics":["combinatorial-optimization","discrete-optimization","time-series"],"latest_commit_sha":null,"homepage":"","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jacobusmmsmit.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}},"created_at":"2022-04-27T23:07:56.000Z","updated_at":"2022-09-29T12:52:59.000Z","dependencies_parsed_at":"2022-08-27T20:30:36.107Z","dependency_job_id":null,"html_url":"https://github.com/jacobusmmsmit/CoTSOpt","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jacobusmmsmit/CoTSOpt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacobusmmsmit%2FCoTSOpt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacobusmmsmit%2FCoTSOpt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacobusmmsmit%2FCoTSOpt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacobusmmsmit%2FCoTSOpt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jacobusmmsmit","download_url":"https://codeload.github.com/jacobusmmsmit/CoTSOpt/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacobusmmsmit%2FCoTSOpt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29015301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T16:17:30.374Z","status":"ssl_error","status_checked_at":"2026-02-02T15:58:50.469Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["combinatorial-optimization","discrete-optimization","time-series"],"created_at":"2024-10-12T19:36:58.528Z","updated_at":"2026-02-02T16:40:27.674Z","avatar_url":"https://github.com/jacobusmmsmit.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Combinatorial Time Series Optimisation (CoTSOpt)\n\nThis repository explores different ways of solving the combinatorial problem of choosing which time series sum together to give an overall time series of interest. \nCurrently it is in a very early exploratory stage, and so the code is not at all engineered properly. Files in the (currently non-existant) `src` folder will represent the documented public API of the code, and `scripts` will contain the exploration and application of this API.\n\nSimply put, we want to solve the problem Ax ≈ b, for a binary vector x and some notion of what approximately equal means. The depth comes from the fact that binary/combinatorial optimisation is not an easy task, and there are many ways to go about doing so. Another source of interest is that there are cases where x may be binary for all but a few entries, in which case it would be good to identify which these are and estimate their values.\n\nBy the end of this project I hope to have:\n- A fully documented API, allowing users to solve CoTS problems with various methods,\n- A brief document motivating, exploring, and explaining the theory of the problem\n\nCurrent methods I am exploring are:\n- An MCMC approach with `Turing.jl`\n- A continuous relaxation approach with `Optim.jl`\n- A pure binary optimisation approach with `JuMP.jl` and `Juniper.jl`\n\nMethods I have on my radar are:\n- Hidden markov models\n\nHere's an example output of the MCMC approach using real data:\n\n![Example output](/figures/train_test_example.png)\n\nImportantly, the MCMC approach does not *force* the variables to be binary, only strongly encourages them to do so. On the other hand, we can solve the problem with JuMP to enforce the variables to be binary and achieve similar results:\n\n![Example output JuMP](/figures/jump_realdata_example.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacobusmmsmit%2Fcotsopt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjacobusmmsmit%2Fcotsopt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacobusmmsmit%2Fcotsopt/lists"}