{"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/differentiable-quality-diversity","title":"Differentiable Quality Diversity","arxiv_id":"2106.03894","date":"2021-06-07","proceeding":"NeurIPS 2021 12","authors":["Matthew C. Fontaine","Stefanos Nikolaidis"],"abstract":"Quality diversity (QD) is a growing branch of stochastic optimization research that studies the problem of generating an archive of solutions that maximize a given objective function but are also diverse with respect to a set of specified measure functions. However, even when these functions are differentiable, QD algorithms treat them as \"black boxes\", ignoring gradient information. We present the differentiable quality diversity (DQD) problem, a special case of QD, where both the objective and measure functions are first order differentiable. We then present MAP-Elites via a Gradient Arborescence (MEGA), a DQD algorithm that leverages gradient information to efficiently explore the joint range of the objective and measure functions. Results in two QD benchmark domains and in searching the latent space of a StyleGAN show that MEGA significantly outperforms state-of-the-art QD algorithms, highlighting DQD's promise for efficient quality diversity optimization when gradient information is available. Source code is available at https://github.com/icaros-usc/dqd.","url_abs":"https://arxiv.org/abs/2106.03894v3","url_pdf":"https://arxiv.org/pdf/2106.03894v3.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":"differentiable-quality-diversity","repo_url":"https://github.com/icaros-usc/dqd","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":null},{"paper_slug":"differentiable-quality-diversity","repo_url":"https://github.com/icaros-usc/pyribs","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"jax","reach":null},{"paper_slug":"differentiable-quality-diversity","repo_url":"https://github.com/morgangiraud/leniax","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"jax","reach":null}],"tasks":[{"task_slug":"diversity","task_name":"Diversity"},{"task_slug":"stochastic-optimization","task_name":"Stochastic Optimization"}],"methods":[{"method_slug":"adaptive-instance-normalization","method_name":"Adaptive Instance Normalization"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"feedforward-network","method_name":"Feedforward Network"},{"method_slug":"r1-regularization","method_name":"R1 Regularization"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2106.03894","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2106.03894"}},"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":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/icaros-usc/dqd","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/morgangiraud/leniax","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/icaros-usc/pyribs","reach":null}],"summary":{"ran_draft_wrong":4,"unverified":2},"by_repo_kind":{"official":{"samples":6,"ran":4,"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":5,"samples":[{"code_sha256_prefix":"1d77b2b9701bce2f","entry":"calc_measures","repo":"icaros-usc/dqd","repo_kind":"official","path":"experiments/lin_proj/lin_proj.py","file_url":"https://github.com/icaros-usc/dqd/blob/HEAD/experiments/lin_proj/lin_proj.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1d77b2b9701bce2f"}},{"code_sha256_prefix":"70d176fc5677f1c2","entry":"calc_rastrigin","repo":"icaros-usc/dqd","repo_kind":"official","path":"experiments/lin_proj/lin_proj.py","file_url":"https://github.com/icaros-usc/dqd/blob/HEAD/experiments/lin_proj/lin_proj.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"70d176fc5677f1c2"}},{"code_sha256_prefix":"00e9bd511bbd070c","entry":"calc_sphere","repo":"icaros-usc/dqd","repo_kind":"official","path":"experiments/lin_proj/lin_proj.py","file_url":"https://github.com/icaros-usc/dqd/blob/HEAD/experiments/lin_proj/lin_proj.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"00e9bd511bbd070c"}},{"code_sha256_prefix":"27471fbc290031c0","entry":"sphere","repo":"icaros-usc/pyribs","repo_kind":"official","path":"examples/bop_elites.py","file_url":"https://github.com/icaros-usc/pyribs/blob/HEAD/examples/bop_elites.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"27471fbc290031c0"}},{"code_sha256_prefix":"3b62676a00b36819","entry":"EmitterBase","repo":"icaros-usc/dqd","repo_kind":"official","path":"ribs/emitters/_gradient_emitter.py","file_url":"https://github.com/icaros-usc/dqd/blob/HEAD/ribs/emitters/_gradient_emitter.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3b62676a00b36819"}},{"code_sha256_prefix":"cbe17e8db427a582","entry":"GradientEmitter","repo":"icaros-usc/dqd","repo_kind":"official","path":"ribs/emitters/_gradient_emitter.py","file_url":"https://github.com/icaros-usc/dqd/blob/HEAD/ribs/emitters/_gradient_emitter.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cbe17e8db427a582"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}