{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/fast-mcmc-sampling-algorithms-on-polytopes","title":"Fast MCMC sampling algorithms on polytopes","arxiv_id":"1710.08165","date":"2017-10-23","proceeding":null,"authors":["Yuansi Chen","Raaz Dwivedi","Martin J. Wainwright","Bin Yu"],"abstract":"We propose and analyze two new MCMC sampling algorithms, the Vaidya walk and\nthe John walk, for generating samples from the uniform distribution over a\npolytope. Both random walks are sampling algorithms derived from interior point\nmethods. The former is based on volumetric-logarithmic barrier introduced by\nVaidya whereas the latter uses John's ellipsoids. We show that the Vaidya walk\nmixes in significantly fewer steps than the logarithmic-barrier based Dikin\nwalk studied in past work. For a polytope in $\\mathbb{R}^d$ defined by $n >d$\nlinear constraints, we show that the mixing time from a warm start is bounded\nas $\\mathcal{O}(n^{0.5}d^{1.5})$, compared to the $\\mathcal{O}(nd)$ mixing time\nbound for the Dikin walk. The cost of each step of the Vaidya walk is of the\nsame order as the Dikin walk, and at most twice as large in terms of constant\npre-factors. For the John walk, we prove an\n$\\mathcal{O}(d^{2.5}\\cdot\\log^4(n/d))$ bound on its mixing time and conjecture\nthat an improved variant of it could achieve a mixing time of\n$\\mathcal{O}(d^2\\cdot\\text{polylog}(n/d))$. Additionally, we propose variants\nof the Vaidya and John walks that mix in polynomial time from a deterministic\nstarting point. The speed-up of the Vaidya walk over the Dikin walk are\nillustrated in numerical examples.","url_abs":"http://arxiv.org/abs/1710.08165v3","url_pdf":"http://arxiv.org/pdf/1710.08165v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"fast-mcmc-sampling-algorithms-on-polytopes","repo_url":"https://github.com/DavidWalz/polytope-sampling","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null},{"paper_slug":"fast-mcmc-sampling-algorithms-on-polytopes","repo_url":"https://github.com/yuachen/polytopewalk","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/1710.08165","atlas_url":"https://app.syntology.ai/?focus=1710.08165","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1710.08165"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/DavidWalz/polytope-sampling","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yuachen/polytopewalk","reach":null}],"summary":{"ran_draft_wrong":1,"ran_fixture":1,"ran_honours":1,"unverified":3},"by_repo_kind":{"listed":{"samples":6,"ran":3,"repositories":2}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"f90ed90ed7661c5f","entry":"affine_subspace","repo":"DavidWalz/polytope-sampling","repo_kind":"listed","path":"polytope/polytope.py","file_url":"https://github.com/DavidWalz/polytope-sampling/blob/HEAD/polytope/polytope.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f90ed90ed7661c5f"}},{"code_sha256_prefix":"7ff546c6aa011921","entry":"chebyshev_center","repo":"DavidWalz/polytope-sampling","repo_kind":"listed","path":"polytope/polytope.py","file_url":"https://github.com/DavidWalz/polytope-sampling/blob/HEAD/polytope/polytope.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7ff546c6aa011921"}},{"code_sha256_prefix":"ce7212d9ce214dd4","entry":"constraints_from_bounds","repo":"DavidWalz/polytope-sampling","repo_kind":"listed","path":"polytope/polytope.py","file_url":"https://github.com/DavidWalz/polytope-sampling/blob/HEAD/polytope/polytope.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ce7212d9ce214dd4"}},{"code_sha256_prefix":"9b9a7236ec3891de","entry":"generateDikinWalkSamples","repo":"yuachen/polytopewalk","repo_kind":"listed","path":"polytopewalk/pwalk.py","file_url":"https://github.com/yuachen/polytopewalk/blob/HEAD/polytopewalk/pwalk.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9b9a7236ec3891de"}},{"code_sha256_prefix":"7237796869902da4","entry":"generateJohnWalkSamples","repo":"yuachen/polytopewalk","repo_kind":"listed","path":"polytopewalk/pwalk.py","file_url":"https://github.com/yuachen/polytopewalk/blob/HEAD/polytopewalk/pwalk.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7237796869902da4"}},{"code_sha256_prefix":"997e8a03cfacfce7","entry":"generateVaidyaWalkSamples","repo":"yuachen/polytopewalk","repo_kind":"listed","path":"polytopewalk/pwalk.py","file_url":"https://github.com/yuachen/polytopewalk/blob/HEAD/polytopewalk/pwalk.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"997e8a03cfacfce7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}