{"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/arxiv-2602-04119","title":"Synthesizable Molecular Generation via Soft-constrained GFlowNets with Rich Chemical Priors","arxiv_id":"2602.04119","date":"2026-02-04","proceeding":"ICML","authors":["Hyeonah Kim","Minsu Kim","Celine Roget","Dionessa Biton","Louis Vaillancourt","Yves V. Brun","Yoshua Bengio","Alex Hernandez-Garcia"],"abstract":"The application of generative models for experimental drug discovery campaigns is severely limited by the difficulty of designing molecules de novo that can be synthesized in practice. Previous works have leveraged Generative Flow Networks (GFlowNets) to impose hard synthesizability constraints through the design of state and action spaces based on predefined reaction templates and building blocks. Despite the promising prospects of this approach, it currently lacks flexibility and scalability. As an alternative, we propose S3-GFN, which generates synthesizable SMILES molecules via simple soft regularization of a sequence-based GFlowNet. Our approach leverages rich molecular priors learned from large-scale SMILES corpora to steer molecular generation towards high-reward, synthesizable chemical spaces. The model induces constraints through off-policy replay training with a contrastive learning signal based on separate buffers of synthesizable and unsynthesizable samples. Our experiments show that S3-GFN learns to generate synthesizable molecules ($\\geq 95\\%$) with higher rewards in diverse tasks.","url_abs":"https://arxiv.org/abs/2602.04119","url_pdf":"https://arxiv.org/pdf/2602.04119","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2602.04119","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2602.04119"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/hyeonahkimm/s3gfn","reach":null}],"summary":{"ran_violates":1,"unverified":2},"by_repo_kind":{"found_in_text":{"samples":3,"ran":1,"repositories":1}},"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":"1061c8464b631df1","entry":"safe","repo":"hyeonahkimm/s3gfn","repo_kind":"found_in_text","path":"src/s3gfn/scoring_function.py","file_url":"https://github.com/hyeonahkimm/s3gfn/blob/HEAD/src/s3gfn/scoring_function.py","link_basis":"plan_row","language":"python","status":"ran_violates","verification_level":2,"contract_check":"VIOLATES","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1061c8464b631df1"}},{"code_sha256_prefix":"f19d3a5719b35922","entry":"init_empty","repo":"hyeonahkimm/s3gfn","repo_kind":"found_in_text","path":"src/gflownet/config.py","file_url":"https://github.com/hyeonahkimm/s3gfn/blob/HEAD/src/gflownet/config.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":"f19d3a5719b35922"}},{"code_sha256_prefix":"608a22fb3e61a9e4","entry":"unique","repo":"hyeonahkimm/s3gfn","repo_kind":"found_in_text","path":"experiments/pmo/main/s3gfn/utils.py","file_url":"https://github.com/hyeonahkimm/s3gfn/blob/HEAD/experiments/pmo/main/s3gfn/utils.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":"608a22fb3e61a9e4"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}