diff --git a/dev/404.html b/dev/404.html index 090ca9b..ccfee93 100644 --- a/dev/404.html +++ b/dev/404.html @@ -8,14 +8,14 @@ - +
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.
- + \ No newline at end of file diff --git a/dev/assets/app.DdD1tG3e.js b/dev/assets/app.CzeOka30.js similarity index 95% rename from dev/assets/app.DdD1tG3e.js rename to dev/assets/app.CzeOka30.js index 7b9cd90..a95684a 100644 --- a/dev/assets/app.DdD1tG3e.js +++ b/dev/assets/app.CzeOka30.js @@ -4,4 +4,4 @@ function __vite__mapDeps(indexes) { } return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) } -import{j as o,a8 as p,a9 as u,aa as l,ab as c,ac as f,ad as d,ae as m,af as h,ag as g,ah as A,Y as P,d as _,u as v,l as R,z as w,ai as y,aj as C,ak as E,a6 as b}from"./chunks/framework.RTxADYK2.js";import{R as T}from"./chunks/theme.DeBDsvx_.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(T),S=_({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return R(()=>{w(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&y(),C(),E(),s.setup&&s.setup(),()=>b(s.Layout)}});async function j(){globalThis.__VITEPRESS__=!0;const e=L(),a=D();a.provide(u,e);const t=l(e.route);return a.provide(c,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return h(S)}function L(){let e=o,a;return g(t=>{let n=A(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=P(()=>import(n),__vite__mapDeps([]))),o&&(e=!1),r},s.NotFound)}o&&j().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{j as createApp}; +import{j as o,a8 as p,a9 as u,aa as l,ab as c,ac as f,ad as d,ae as m,af as h,ag as g,ah as A,Y as P,d as _,u as v,l as R,z as w,ai as y,aj as C,ak as E,a6 as b}from"./chunks/framework.RTxADYK2.js";import{R as T}from"./chunks/theme.DJOtTGwT.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(T),S=_({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return R(()=>{w(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&y(),C(),E(),s.setup&&s.setup(),()=>b(s.Layout)}});async function j(){globalThis.__VITEPRESS__=!0;const e=L(),a=D();a.provide(u,e);const t=l(e.route);return a.provide(c,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return h(S)}function L(){let e=o,a;return g(t=>{let n=A(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=P(()=>import(n),__vite__mapDeps([]))),o&&(e=!1),r},s.NotFound)}o&&j().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{j as createApp}; diff --git a/dev/assets/chunks/@localSearchIndexroot.CYAG39c_.js b/dev/assets/chunks/@localSearchIndexroot.CYAG39c_.js deleted file mode 100644 index b2bc832..0000000 --- a/dev/assets/chunks/@localSearchIndexroot.CYAG39c_.js +++ /dev/null @@ -1 +0,0 @@ -const i='{"documentCount":86,"nextId":86,"documentIds":{"0":"/dev/constraints/constraint_commons#ConstraintCommons.jl","1":"/dev/constraints/constraint_commons#Key-Features-and-Functionalities","2":"/dev/constraints/constraint_commons#Parameters","3":"/dev/constraints/constraint_commons#Performances-–-TODO","4":"/dev/constraints/constraint_commons#Languages","5":"/dev/constraints/constraint_commons#Performances-–-TODO-2","6":"/dev/constraints/constraint_commons#Extensions","7":"/dev/constraints/constraint_commons#Performances-–-TODO-3","8":"/dev/constraints/constraint_commons#Sampling","9":"/dev/constraints/constraint_commons#Performances-–-TODO-4","10":"/dev/constraints/constraint_commons#Extrema","11":"/dev/constraints/constraint_commons#Performances-–-TODO-5","12":"/dev/constraints/constraint_commons#Dictionaries","13":"/dev/constraints/constraint_commons#Performances-–-TODO-6","14":"/dev/constraints/constraint_domains#ConstraintDomains.jl:-Defining-and-Exploring-Variable-Domains-within-JuliaConstraints","15":"/dev/constraints/constraint_domains#Key-Features-and-Functionalities","16":"/dev/constraints/constraint_domains#Empowering-Constraint-Programming-in-Julia","17":"/dev/constraints/constraint_domains#Commons","18":"/dev/constraints/constraint_domains#Extension-to-Base-module","19":"/dev/constraints/constraint_domains#Performances","20":"/dev/constraints/constraint_domains#Continuous","21":"/dev/constraints/constraint_domains#Extension-to-Base-module-2","22":"/dev/constraints/constraint_domains#Discrete","23":"/dev/constraints/constraint_domains#Extension-to-Base-module-3","24":"/dev/constraints/constraint_domains#General","25":"/dev/constraints/constraint_domains#Exploration","26":"/dev/constraints/constraint_domains#Parameters","27":"/dev/constraints/constraint_models#ConstraintModels.jl","28":"/dev/constraints/constraints#Constraints.jl:-Streamlining-Constraint-Definition-and-Integration-in-Julia","29":"/dev/constraints/constraints#Key-Features-and-Functionalities","30":"/dev/constraints/constraints#Enabling-Advanced-Modeling-in-Constraint-Programming","31":"/dev/constraints/constraints#Basic-tools","32":"/dev/constraints/constraints#Usual-constraints-(based-on-and-including-XCSP3-core-categories)","33":"/dev/constraints/constraints#Generic-Constraints","34":"/dev/constraints/constraints#Constraints-defined-from-Languages","35":"/dev/constraints/constraints#Comparison-based-Constraints","36":"/dev/constraints/constraints#Counting-and-Summing-Constraints","37":"/dev/constraints/constraints#SECTION-Connection-Constraints","38":"/dev/constraints/constraints#SECTION-Packing-and-Scheduling-Constraints","39":"/dev/constraints/constraints#SECTION-Constraints-on-Graphs","40":"/dev/constraints/constraints#SECTION-Elementary-Constraints","41":"/dev/cp/advanced#Advanced-Constraint-Programming-Techniques","42":"/dev/cp/advanced#Global-Constraints-and-Their-Uses","43":"/dev/cp/advanced#Search-Strategies-and-Optimization","44":"/dev/cp/applications#Applying-Optimization-Methods","45":"/dev/cp/applications#Case-Studies-and-Real-World-Applications","46":"/dev/cp/applications#From-Theory-to-Practice","47":"/dev/cp/contribution#Community-and-Contribution","48":"/dev/cp/contribution#Joining-the-JuliaConstraint-Community","49":"/dev/cp/contribution#Future-Directions","50":"/dev/cp/cp101#Constraint-Programming-101","51":"/dev/cp/cp101#What-is-Constraint-Programming?","52":"/dev/cp/cp101#Basic-Concepts-and-Terminology","53":"/dev/cp/cp101#How-CP-differs-from-other-optimization-techniques","54":"/dev/cp/ecosystem#Exploring-JuliaConstraint-Packages","55":"/dev/cp/ecosystem#Package-Overviews","56":"/dev/cp/ecosystem#Installation-and-Getting-Started-Guides","57":"/dev/cp/getting_started#Getting-Started-with-Julia-for-CP-and-Optimization","58":"/dev/cp/getting_started#Why-Julia?","59":"/dev/cp/getting_started#Setting-Up-Your-Julia-Environment","60":"/dev/cp/getting_started#Your-First-Julia-CP-Model","61":"/dev/cp/intro#Welcome-to-Julia-Constraints","62":"/dev/cp/models#Building-and-Analyzing-Models","63":"/dev/cp/models#Modeling-Best-Practices","64":"/dev/cp/models#Performance-Analysis-and-Improvement","65":"/dev/cp/opt#Dive-into-Optimization","66":"/dev/cp/opt#Understanding-Optimization","67":"/dev/cp/opt#Metaheuristics-Overview","68":"/dev/cp/opt#Mathematical-Programming-Basics","69":"/dev/cp/tuto_xp#Tutorials-and-Experiments","70":"/dev/cp/tuto_xp#Hands-On-Tutorials","71":"/dev/cp/tuto_xp#Experimental-Analysis","72":"/dev/full_api#Full-API","73":"/dev/index-old#JuliaConstraints","74":"/dev/index-old#Operational-Research-vs-Constraint-Programming","75":"/dev/index-old#Constraint-Based-Local-Search","76":"/dev/learning/compositional_networks#CompositionalNetworks.jl","77":"/dev/learning/constraint_learning#ConstraintLearning.jl","78":"/dev/learning/qubo_constraints#QUBOConstraints.jl","79":"/dev/meta/meta_strategist#MetaStrategist.jl","80":"/dev/perf/benchmark_ext#BenchmarkTools-Extension","81":"/dev/perf/perf_checker#PerfChecker.jl","82":"/dev/perf/perf_interface#Interfacing-PerfChecker","83":"/dev/public_api#Public-API","84":"/dev/solvers/cbls#CBLS.jl","85":"/dev/solvers/local_search_solvers#LocalSearchSolvers.jl"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,46],"1":[4,2,162],"2":[1,2,59],"3":[2,4,1],"4":[1,2,92],"5":[2,4,1],"6":[1,2,41],"7":[2,4,1],"8":[1,2,42],"9":[2,4,1],"10":[1,2,31],"11":[2,4,1],"12":[1,2,36],"13":[2,4,1],"14":[9,1,42],"15":[4,9,167],"16":[5,9,54],"17":[1,9,141],"18":[4,10,92],"19":[1,10,1],"20":[1,9,131],"21":[4,10,99],"22":[1,9,143],"23":[4,10,103],"24":[1,9,19],"25":[1,9,96],"26":[1,9,102],"27":[2,1,5],"28":[9,1,39],"29":[4,9,169],"30":[6,9,56],"31":[2,9,119],"32":[10,9,114],"33":[2,18,152],"34":[4,18,13],"35":[3,18,15],"36":[4,18,15],"37":[3,1,15],"38":[5,1,14],"39":[4,1,12],"40":[3,1,12],"41":[4,1,1],"42":[5,4,12],"43":[4,4,12],"44":[3,1,1],"45":[6,3,11],"46":[4,3,18],"47":[3,1,1],"48":[4,3,14],"49":[2,3,13],"50":[3,1,1],"51":[5,3,10],"52":[4,3,10],"53":[7,3,10],"54":[3,1,1],"55":[2,3,13],"56":[5,1,13],"57":[8,1,1],"58":[3,8,16],"59":[5,8,12],"60":[5,8,14],"61":[4,1,35],"62":[4,1,1],"63":[3,4,12],"64":[4,4,11],"65":[3,1,1],"66":[2,3,12],"67":[2,3,11],"68":[3,3,12],"69":[3,1,1],"70":[3,3,11],"71":[2,3,15],"72":[2,1,571],"73":[1,1,122],"74":[5,2,93],"75":[4,2,80],"76":[2,1,403],"77":[2,1,232],"78":[2,1,106],"79":[2,1,5],"80":[2,1,26],"81":[2,1,5],"82":[2,1,18],"83":[2,1,395],"84":[2,1,251],"85":[2,1,506]},"averageFieldLength":[3.1627906976744184,4.325581395348836,64.81395348837209],"storedFields":{"0":{"title":"ConstraintCommons.jl","titles":[]},"1":{"title":"Key Features and Functionalities","titles":["ConstraintCommons.jl"]},"2":{"title":"Parameters","titles":["ConstraintCommons.jl"]},"3":{"title":"Performances – TODO","titles":["ConstraintCommons.jl","Parameters",null]},"4":{"title":"Languages","titles":["ConstraintCommons.jl"]},"5":{"title":"Performances – TODO","titles":["ConstraintCommons.jl","Languages",null]},"6":{"title":"Extensions","titles":["ConstraintCommons.jl"]},"7":{"title":"Performances – TODO","titles":["ConstraintCommons.jl","Extensions",null]},"8":{"title":"Sampling","titles":["ConstraintCommons.jl"]},"9":{"title":"Performances – TODO","titles":["ConstraintCommons.jl","Sampling",null]},"10":{"title":"Extrema","titles":["ConstraintCommons.jl"]},"11":{"title":"Performances – TODO","titles":["ConstraintCommons.jl","Extrema",null]},"12":{"title":"Dictionaries","titles":["ConstraintCommons.jl"]},"13":{"title":"Performances – TODO","titles":["ConstraintCommons.jl","Dictionaries",null]},"14":{"title":"ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints","titles":[]},"15":{"title":"Key Features and Functionalities","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints"]},"16":{"title":"Empowering Constraint Programming in Julia","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints"]},"17":{"title":"Commons","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints"]},"18":{"title":"Extension to Base module","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints","Commons"]},"19":{"title":"Performances","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints","Commons"]},"20":{"title":"Continuous","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints"]},"21":{"title":"Extension to Base module","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints","Continuous"]},"22":{"title":"Discrete","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints"]},"23":{"title":"Extension to Base module","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints","Discrete"]},"24":{"title":"General","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints"]},"25":{"title":"Exploration","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints"]},"26":{"title":"Parameters","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints"]},"27":{"title":"ConstraintModels.jl","titles":[]},"28":{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","titles":[]},"29":{"title":"Key Features and Functionalities","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"30":{"title":"Enabling Advanced Modeling in Constraint Programming","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"31":{"title":"Basic tools","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"32":{"title":"Usual constraints (based on and including XCSP3-core categories)","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"33":{"title":"Generic Constraints","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia","Usual constraints (based on and including XCSP3-core categories)"]},"34":{"title":"Constraints defined from Languages","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia","Usual constraints (based on and including XCSP3-core categories)"]},"35":{"title":"Comparison-based Constraints","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia","Usual constraints (based on and including XCSP3-core categories)"]},"36":{"title":"Counting and Summing Constraints","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia","Usual constraints (based on and including XCSP3-core categories)"]},"37":{"title":"SECTION - Connection Constraints","titles":[]},"38":{"title":"SECTION - Packing and Scheduling Constraints","titles":[]},"39":{"title":"SECTION - Constraints on Graphs","titles":[]},"40":{"title":"SECTION - Elementary Constraints","titles":[]},"41":{"title":"Advanced Constraint Programming Techniques","titles":[]},"42":{"title":"Global Constraints and Their Uses","titles":["Advanced Constraint Programming Techniques"]},"43":{"title":"Search Strategies and Optimization","titles":["Advanced Constraint Programming Techniques"]},"44":{"title":"Applying Optimization Methods","titles":[]},"45":{"title":"Case Studies and Real-World Applications","titles":["Applying Optimization Methods"]},"46":{"title":"From Theory to Practice","titles":["Applying Optimization Methods"]},"47":{"title":"Community and Contribution","titles":[]},"48":{"title":"Joining the JuliaConstraint Community","titles":["Community and Contribution"]},"49":{"title":"Future Directions","titles":["Community and Contribution"]},"50":{"title":"Constraint Programming 101","titles":[]},"51":{"title":"What is Constraint Programming?","titles":["Constraint Programming 101"]},"52":{"title":"Basic Concepts and Terminology","titles":["Constraint Programming 101"]},"53":{"title":"How CP differs from other optimization techniques","titles":["Constraint Programming 101"]},"54":{"title":"Exploring JuliaConstraint Packages","titles":[]},"55":{"title":"Package Overviews","titles":["Exploring JuliaConstraint Packages"]},"56":{"title":"Installation and Getting Started Guides","titles":[]},"57":{"title":"Getting Started with Julia for CP and Optimization","titles":[]},"58":{"title":"Why Julia?","titles":["Getting Started with Julia for CP and Optimization"]},"59":{"title":"Setting Up Your Julia Environment","titles":["Getting Started with Julia for CP and Optimization"]},"60":{"title":"Your First Julia CP Model","titles":["Getting Started with Julia for CP and Optimization"]},"61":{"title":"Welcome to Julia Constraints","titles":[]},"62":{"title":"Building and Analyzing Models","titles":[]},"63":{"title":"Modeling Best Practices","titles":["Building and Analyzing Models"]},"64":{"title":"Performance Analysis and Improvement","titles":["Building and Analyzing Models"]},"65":{"title":"Dive into Optimization","titles":[]},"66":{"title":"Understanding Optimization","titles":["Dive into Optimization"]},"67":{"title":"Metaheuristics Overview","titles":["Dive into Optimization"]},"68":{"title":"Mathematical Programming Basics","titles":["Dive into Optimization"]},"69":{"title":"Tutorials and Experiments","titles":[]},"70":{"title":"Hands-On Tutorials","titles":["Tutorials and Experiments"]},"71":{"title":"Experimental Analysis","titles":["Tutorials and Experiments"]},"72":{"title":"Full API","titles":[]},"73":{"title":"JuliaConstraints","titles":[null]},"74":{"title":"Operational Research vs Constraint Programming","titles":[null,"JuliaConstraints"]},"75":{"title":"Constraint-Based Local Search","titles":[null,"JuliaConstraints"]},"76":{"title":"CompositionalNetworks.jl","titles":[]},"77":{"title":"ConstraintLearning.jl","titles":[]},"78":{"title":"QUBOConstraints.jl","titles":[]},"79":{"title":"MetaStrategist.jl","titles":[]},"80":{"title":"BenchmarkTools Extension","titles":[]},"81":{"title":"PerfChecker.jl","titles":[]},"82":{"title":"Interfacing PerfChecker","titles":[]},"83":{"title":"Public API","titles":[]},"84":{"title":"CBLS.jl","titles":[]},"85":{"title":"LocalSearchSolvers.jl","titles":[]}},"dirtCount":0,"index":[["≠",{"2":{"84":2}}],["σ",{"2":{"78":2}}],["`function",{"2":{"85":1}}],["`struct",{"2":{"85":1}}],["``",{"2":{"84":6}}],["```julia",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["`",{"2":{"77":1}}],["η",{"2":{"77":1}}],["q",{"2":{"77":7}}],["qubooptimizer",{"2":{"77":2}}],["qubo",{"2":{"77":4,"78":5}}],["qubogradientoptimizer",{"2":{"77":4}}],["quboconstraints",{"0":{"78":1},"2":{"1":1,"77":1,"78":8}}],["quot",{"2":{"73":4}}],["yes",{"2":{"85":1}}],["yet",{"2":{"15":1,"17":1,"20":1,"29":1,"72":2}}],["y",{"2":{"73":1,"77":4,"85":2}}],["you",{"2":{"73":1}}],["your",{"0":{"59":1,"60":1}}],["+",{"2":{"33":1,"72":1,"73":1,"76":7}}],["|",{"2":{"84":4}}],["|x",{"2":{"84":4}}],["|>",{"2":{"33":1,"72":1}}],["||",{"2":{"33":2,"72":2}}],["∉",{"2":{"33":3,"72":3}}],["≤",{"2":{"18":4,"21":4,"23":4,"72":4}}],["heuristic",{"2":{"75":2}}],["helps",{"2":{"73":1}}],["help",{"2":{"73":2,"74":1}}],["hot",{"2":{"78":3}}],["hold",{"2":{"77":1}}],["holds",{"2":{"73":1}}],["hosts",{"2":{"73":1}}],["how",{"0":{"53":1},"2":{"29":1,"42":1,"48":1,"64":1,"71":1}}],["high",{"2":{"73":1}}],["highlight",{"2":{"61":1}}],["highlighting",{"2":{"48":1,"58":1}}],["highest",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1,"85":1}}],["https",{"2":{"32":1,"72":1,"83":1}}],["hamming",{"2":{"76":4,"77":3}}],["have",{"2":{"33":1,"45":1,"72":1,"75":1,"76":4}}],["hands",{"0":{"70":1}}],["hand",{"2":{"32":1,"72":1,"74":1,"83":1}}],["handling",{"2":{"28":1,"29":2}}],["handled",{"2":{"20":1,"72":1}}],["handle",{"2":{"17":1,"72":1,"85":2}}],["handles",{"2":{"15":1}}],["half",{"2":{"25":1,"72":1,"83":1}}],["has",{"2":{"8":1,"72":1,"76":1,"78":1,"80":1,"83":1,"85":10}}],["9",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["86",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["89",{"2":{"17":2,"20":2,"22":2,"72":2,"83":2,"85":1}}],["4",{"2":{"17":1,"20":1,"22":1,"33":13,"72":14,"83":1,"84":4,"85":1}}],["42",{"2":{"17":3,"20":3,"22":3,"72":3,"83":3}}],["28",{"2":{"85":1}}],["225",{"2":{"76":1}}],["200",{"2":{"76":2,"77":1}}],["2009",{"2":{"32":1,"72":1,"83":1}}],["2",{"2":{"17":2,"20":2,"22":2,"33":22,"72":24,"83":2,"84":2,"85":1}}],["69",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["56",{"2":{"85":1}}],["53",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["5",{"2":{"17":3,"20":3,"22":3,"33":17,"72":20,"73":1,"83":3,"84":6,"85":1}}],["3",{"2":{"17":4,"20":4,"22":4,"33":15,"72":19,"83":4,"84":2,"85":1}}],["∪",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["00514",{"2":{"32":1,"72":1,"83":1}}],["0",{"2":{"17":4,"18":2,"20":4,"21":1,"22":4,"23":1,"31":2,"32":2,"72":11,"76":16,"83":8,"84":6,"85":9}}],["10",{"2":{"73":1,"76":2,"85":2}}],["101",{"0":{"50":1},"1":{"51":1,"52":1,"53":1}}],["100",{"2":{"25":2,"72":2,"76":2,"83":2,"85":1}}],["10000",{"2":{"85":1}}],["1000",{"2":{"25":1,"72":1,"83":1}}],["10^6",{"2":{"25":1,"72":1,"83":1}}],["123",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["12",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["1",{"2":{"12":2,"17":6,"20":6,"22":6,"33":24,"72":32,"76":2,"78":2,"83":8,"84":2,"85":4}}],["δ",{"2":{"10":1,"72":1,"77":1,"83":1}}],["∈",{"2":{"6":1,"15":1,"17":1,"18":8,"21":8,"23":8,"33":3,"72":9,"83":1,"85":3}}],["vov",{"2":{"84":2}}],["v",{"2":{"76":3,"84":4,"85":3}}],["vi",{"2":{"84":1}}],["viable",{"2":{"76":6}}],["vision",{"2":{"49":1}}],["vital",{"2":{"29":1}}],["vs",{"0":{"74":1},"2":{"31":1}}],["verbose",{"2":{"85":4}}],["verbosity",{"2":{"85":1}}],["very",{"2":{"74":1}}],["versatile",{"2":{"33":2,"72":2}}],["versatility",{"2":{"16":1}}],["vectorofvariables",{"2":{"84":1}}],["vectors",{"2":{"76":3}}],["vector",{"2":{"4":1,"17":1,"18":4,"20":2,"21":3,"22":1,"23":3,"25":1,"26":1,"33":6,"72":13,"76":23,"78":2,"83":3,"84":2,"85":1}}],["var",{"2":{"85":12}}],["variety",{"2":{"75":1}}],["variableinfo",{"2":{"84":1}}],["variables",{"2":{"32":1,"33":2,"52":1,"72":3,"73":1,"76":6,"78":2,"83":1,"84":5,"85":26}}],["variable",{"0":{"14":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1},"2":{"14":1,"15":1,"16":1,"18":3,"21":3,"23":3,"29":1,"76":2,"84":4,"85":40}}],["various",{"2":{"10":1,"15":1,"17":1,"29":1,"43":1,"70":1,"72":1,"75":1,"83":1}}],["vars=dictionary",{"2":{"85":1}}],["vars=",{"2":{"33":5,"72":5}}],["vars",{"2":{"2":1,"33":12,"72":13,"76":6,"84":2,"85":24}}],["valparameterdomain",{"2":{"26":1}}],["value",{"2":{"18":8,"21":7,"22":2,"23":10,"26":1,"31":3,"72":13,"76":5,"78":1,"83":8,"84":6,"85":20}}],["values",{"2":{"17":2,"20":2,"22":3,"31":2,"72":5,"83":4,"84":6,"85":11}}],["validity",{"2":{"33":1,"72":1}}],["valid",{"2":{"17":1,"33":3,"72":4,"74":2,"78":5,"83":1}}],["valsparameterdomain",{"2":{"26":1}}],["vals",{"2":{"2":1,"72":1,"76":8}}],["val",{"2":{"2":1,"12":2,"17":1,"72":4,"76":20,"83":3,"85":8}}],["x2",{"2":{"85":2}}],["x1",{"2":{"85":2}}],["x``or",{"2":{"77":1}}],["x̅",{"2":{"77":4}}],["xto",{"2":{"76":1}}],["xcsp",{"2":{"29":1,"33":2,"34":2,"35":3,"36":4,"37":4,"38":2,"39":1,"40":1,"72":2}}],["xcsp3",{"0":{"32":1},"1":{"33":1,"34":1,"35":1,"36":1},"2":{"2":3,"4":1,"29":3,"32":1,"72":2,"83":1}}],["x",{"2":{"8":2,"10":2,"18":10,"21":10,"23":10,"31":6,"33":16,"72":33,"73":2,"76":168,"77":33,"78":8,"83":10,"84":31,"85":68}}],["x3c",{"2":{"4":3,"17":6,"18":9,"20":11,"21":8,"22":11,"23":8,"26":4,"72":29,"76":2,"77":1,"83":14,"84":29,"85":91}}],["keep",{"2":{"78":1}}],["keyword",{"2":{"85":1}}],["keywords",{"2":{"76":1}}],["key",{"0":{"1":1,"15":1,"29":1},"2":{"52":1}}],["known",{"2":{"76":2,"85":1}}],["k",{"2":{"76":2,"85":1}}],["kind=",{"2":{"85":1}}],["kind",{"2":{"10":1,"25":1,"26":1,"72":2,"83":1,"85":6}}],["kinds",{"2":{"4":1}}],["kargs",{"2":{"2":1,"32":1,"72":1,"77":6,"83":1}}],["==",{"2":{"18":1,"72":1,"78":1}}],["=",{"2":{"2":1,"12":2,"17":9,"18":4,"20":9,"21":4,"22":9,"23":4,"25":7,"31":2,"33":4,"72":29,"73":1,"76":19,"77":12,"78":4,"83":20,"84":35,"85":49}}],["nbits",{"2":{"76":2}}],["nbsp",{"2":{"2":2,"4":7,"6":3,"8":1,"10":1,"12":1,"17":6,"18":5,"20":7,"21":4,"22":9,"23":5,"24":2,"25":3,"26":5,"31":8,"32":2,"33":2,"72":67,"76":77,"77":28,"78":7,"83":35,"84":45,"85":142}}],["n",{"2":{"76":4,"78":3}}],["nvars",{"2":{"76":12}}],["nvalues",{"2":{"36":1}}],["name=",{"2":{"76":1}}],["name",{"2":{"32":7,"72":7,"76":6,"83":7,"85":8}}],["nature",{"2":{"20":1,"22":1,"72":1,"83":1}}],["normalized",{"2":{"76":1}}],["norm",{"2":{"76":2}}],["no",{"2":{"32":1,"33":1,"38":1,"72":2,"76":2,"77":1,"83":1}}],["nonnegative",{"2":{"84":1}}],["none",{"2":{"78":1,"84":6}}],["nonlinear",{"2":{"66":1}}],["non",{"2":{"25":2,"72":2,"77":4,"83":2,"85":1}}],["not",{"2":{"20":1,"33":3,"72":4,"76":2,"78":1,"84":1,"85":1}}],["nothing",{"2":{"6":5,"18":4,"21":2,"23":2,"25":1,"31":4,"33":2,"72":11,"76":4,"77":2,"83":5,"84":2}}],["notebooks",{"2":{"80":1}}],["note",{"2":{"2":1,"32":1,"72":1,"83":1,"84":1}}],["number",{"2":{"17":1,"21":3,"22":2,"23":3,"25":3,"31":2,"72":9,"76":28,"77":2,"78":3,"83":7,"84":6,"85":12}}],["numbers",{"2":{"15":2,"76":2}}],["neighbours",{"2":{"85":2}}],["neighbourhood",{"2":{"85":2}}],["never",{"2":{"85":1}}],["network",{"2":{"76":1}}],["networks",{"2":{"74":1}}],["new",{"2":{"29":2,"32":1,"72":1,"73":1,"83":1,"84":6,"85":2}}],["necessary",{"2":{"14":1,"85":3}}],["needs",{"2":{"15":1,"25":1,"32":1,"72":2,"76":1,"83":2}}],["need",{"2":{"1":1,"10":1}}],["write",{"2":{"73":1,"76":2}}],["wrappers",{"2":{"73":1}}],["wrapping",{"2":{"73":1}}],["was",{"2":{"82":1,"85":1}}],["way",{"2":{"33":2,"72":2}}],["warning",{"2":{"31":1,"72":1}}],["why",{"0":{"58":1}}],["what",{"0":{"51":1},"2":{"61":1}}],["whole",{"2":{"31":1,"72":1,"83":1,"85":1}}],["which",{"2":{"18":1,"72":1,"76":2}}],["while",{"2":{"15":1,"74":2,"75":1,"85":5}}],["whether",{"2":{"16":1,"30":1}}],["where",{"2":{"15":1,"17":5,"18":5,"20":5,"21":4,"22":5,"23":4,"26":2,"32":1,"33":1,"45":1,"72":12,"74":1,"75":2,"76":3,"83":6,"84":2,"85":69}}],["when",{"2":{"6":2,"18":2,"21":1,"23":1,"72":2,"76":17,"77":2,"84":1,"85":2}}],["weight",{"2":{"78":1}}],["weigthing",{"2":{"77":1}}],["weigth",{"2":{"76":1}}],["weigths",{"2":{"76":17,"77":5}}],["weigths=nothing",{"2":{"76":1}}],["weigthed",{"2":{"76":1}}],["welcome",{"0":{"61":1}}],["we",{"2":{"6":1,"8":1,"10":1,"12":1,"84":1}}],["w",{"2":{"4":2,"26":2,"72":2,"76":2,"77":2,"83":2}}],["worse",{"2":{"85":3}}],["world",{"0":{"45":1},"2":{"46":1,"61":1}}],["works",{"2":{"31":1,"72":1,"83":1}}],["work",{"2":{"29":2}}],["working",{"2":{"28":1,"30":1}}],["workflows",{"2":{"1":1}}],["workflow",{"2":{"1":1}}],["word",{"2":{"4":6,"26":2,"72":6,"83":1}}],["wide",{"2":{"29":1}}],["will",{"2":{"2":1,"25":1,"32":1,"72":2,"76":6,"77":1,"78":1,"80":1,"82":1,"83":2,"84":2}}],["with",{"0":{"57":1},"1":{"58":1,"59":1,"60":1},"2":{"1":3,"4":1,"15":1,"29":4,"30":1,"31":4,"53":1,"56":1,"72":5,"73":3,"74":3,"75":1,"76":28,"77":3,"80":1,"83":1,"84":2,"85":8}}],["without",{"2":{"1":1,"76":17}}],["within",{"0":{"14":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1},"2":{"0":1,"14":1,"15":1,"28":1,"29":3,"33":6,"55":1,"72":6,"85":1}}],["up",{"0":{"59":1},"2":{"59":1,"85":1}}],["upcoming",{"2":{"49":1}}],["unrolled",{"2":{"76":1}}],["understanding",{"0":{"66":1},"2":{"74":1}}],["underpin",{"2":{"14":1}}],["unacceptable",{"2":{"33":2,"72":2}}],["unique",{"2":{"33":1,"72":1,"84":1}}],["union",{"2":{"2":1,"4":2,"12":1,"18":2,"21":1,"23":1,"24":2,"26":2,"32":1,"72":7,"83":4,"84":2,"85":69}}],["unless",{"2":{"32":1,"72":1,"83":1}}],["unordered",{"2":{"22":1,"72":1}}],["until",{"2":{"8":1,"72":1,"83":1}}],["utility",{"2":{"29":1}}],["utilities",{"2":{"8":1}}],["utilized",{"2":{"0":1,"1":1,"33":1,"72":1}}],["us",{"2":{"84":1}}],["usage",{"2":{"80":1}}],["usability",{"2":{"1":1}}],["using",{"2":{"60":1,"73":1,"77":1}}],["usually",{"2":{"33":1,"72":1,"85":1}}],["usual",{"0":{"32":1},"1":{"33":1,"34":1,"35":1,"36":1},"2":{"2":5,"29":5,"31":1,"32":5,"33":4,"72":13,"83":5}}],["uses",{"0":{"42":1},"2":{"74":2,"75":2,"77":1}}],["useful",{"2":{"33":1,"72":1,"75":2,"85":1}}],["used",{"2":{"4":3,"17":1,"72":4,"74":1,"76":2,"77":2,"78":1,"83":1,"84":2,"85":1}}],["use",{"2":{"1":1,"8":1,"22":1,"29":1,"58":1,"72":1,"75":2,"76":1,"83":1,"84":1,"85":2}}],["user",{"2":{"1":1,"30":1,"85":2}}],["users",{"2":{"1":3,"16":1,"29":2}}],["give",{"2":{"76":1}}],["given",{"2":{"4":1,"31":1,"72":2,"76":6,"77":6,"78":2,"83":2,"84":8}}],["gt",{"2":{"73":1}}],["guides",{"0":{"56":1}}],["guide",{"2":{"46":1,"59":1}}],["graph",{"2":{"85":1}}],["graphs",{"0":{"39":1}}],["gradient",{"2":{"77":1}}],["greater",{"2":{"76":8}}],["groundwork",{"2":{"16":1}}],["good",{"2":{"75":1}}],["goal",{"2":{"73":1}}],["golomb",{"2":{"33":1,"72":1}}],["goes",{"2":{"29":1}}],["global",{"0":{"42":1},"2":{"29":1,"33":4,"42":1,"72":4,"76":5,"77":2,"84":5}}],["genetic",{"2":{"67":1,"76":4,"77":3}}],["generalstate",{"2":{"85":2}}],["general",{"0":{"24":1},"2":{"85":1}}],["generated",{"2":{"76":18}}],["generates",{"2":{"26":1,"72":1,"76":2,"83":1}}],["generate",{"2":{"15":1,"26":2,"72":2,"76":13,"77":2,"83":1}}],["generation",{"2":{"15":1,"76":2}}],["generating",{"2":{"15":2}}],["generic",{"0":{"33":1},"2":{"0":1,"1":2,"33":1,"72":1,"73":1,"84":1,"85":2}}],["getting",{"0":{"56":1,"57":1},"1":{"58":1,"59":1,"60":1},"2":{"56":1}}],["get",{"2":{"15":1,"17":1,"72":1,"83":1,"84":2,"85":17}}],["g",{"2":{"1":1,"66":1,"76":12}}],["gap",{"2":{"1":1}}],["rawoptimizerattribute",{"2":{"84":2}}],["rand",{"2":{"15":1,"17":1,"18":16,"21":9,"23":9,"26":8,"72":13,"83":1,"85":2}}],["randomly",{"2":{"18":2,"21":1,"23":1,"26":1,"72":1,"85":1}}],["random",{"2":{"15":2,"18":2,"21":1,"23":1,"26":2,"72":2,"83":1,"85":2}}],["rangedomain",{"2":{"15":1,"17":1,"20":1,"22":3,"24":2,"72":5,"83":3}}],["ranges",{"2":{"15":3,"22":1,"72":1,"83":1}}],["range",{"2":{"14":1,"15":1,"17":1,"20":1,"22":3,"29":2,"72":3,"83":3}}],["runtime",{"2":{"85":1}}],["run",{"2":{"77":1,"84":1,"85":5}}],["ruler",{"2":{"33":2,"72":2}}],["right",{"2":{"76":15}}],["rich",{"2":{"16":1}}],["round",{"2":{"85":1}}],["routing",{"2":{"74":1}}],["robust",{"2":{"30":1}}],["role",{"2":{"1":1,"68":1}}],["roles",{"2":{"1":1}}],["r",{"2":{"17":2,"20":2,"22":2,"72":2,"83":2}}],["remote",{"2":{"85":2}}],["remotely",{"2":{"85":1}}],["ref",{"2":{"85":6}}],["recommended",{"2":{"84":1,"85":1}}],["recognize",{"2":{"4":1}}],["rev",{"2":{"76":4}}],["related",{"2":{"77":1,"80":1}}],["relatively",{"2":{"76":1,"85":1}}],["relying",{"2":{"1":1}}],["replace",{"2":{"85":1}}],["repositories",{"2":{"73":1}}],["represent",{"2":{"15":1}}],["representing",{"2":{"15":1}}],["reach",{"2":{"76":1}}],["readers",{"2":{"46":1,"48":1,"61":1}}],["realm",{"2":{"16":1}}],["real",{"0":{"45":1},"2":{"15":1,"17":3,"20":5,"22":4,"31":1,"46":1,"61":1,"72":7,"83":6,"84":2}}],["regularization",{"2":{"76":2}}],["regular",{"2":{"34":1}}],["re",{"2":{"32":1,"72":1,"83":1,"85":1}}],["reinforcement",{"2":{"25":1,"72":1,"73":1,"83":1}}],["resume",{"2":{"85":1}}],["result",{"2":{"76":18}}],["results",{"2":{"29":1}}],["resulting",{"2":{"1":1}}],["restart",{"2":{"85":6}}],["restricting",{"2":{"85":2}}],["restriction",{"2":{"31":2,"72":2,"83":2}}],["restricted",{"2":{"18":1,"21":1,"23":1,"85":4}}],["researchers",{"2":{"28":1}}],["research",{"0":{"74":1},"2":{"16":1,"30":1,"49":1,"73":1,"74":1}}],["resources",{"2":{"15":1}}],["respectively",{"2":{"15":1}}],["returns",{"2":{"6":2,"18":5,"21":3,"23":3,"25":1,"26":1,"72":5,"83":1,"85":1}}],["return",{"2":{"4":3,"17":3,"18":5,"20":3,"21":8,"22":3,"23":8,"26":2,"31":6,"72":19,"76":23,"77":4,"83":10,"84":2,"85":21}}],["required",{"2":{"25":1,"72":1,"78":1,"82":1,"83":1}}],["requirements",{"2":{"4":2,"72":2}}],["requiring",{"2":{"1":1}}],["reduce",{"2":{"74":1,"76":3}}],["reduced",{"2":{"25":1,"72":1,"83":1}}],["reducing",{"2":{"1":1}}],["redundant",{"2":{"1":1,"29":1}}],["mts",{"2":{"85":7}}],["move",{"2":{"85":3}}],["moisumequalparam",{"2":{"84":2}}],["moisequentialtasks",{"2":{"84":1}}],["moipredicate",{"2":{"84":2}}],["moiordered",{"2":{"84":1}}],["moiminusequalparam",{"2":{"84":2}}],["moilessthanparam",{"2":{"84":2}}],["moierror",{"2":{"84":5}}],["moieq",{"2":{"84":1}}],["moidistdifferent",{"2":{"84":1}}],["moialwaystrue",{"2":{"84":1}}],["moiallequalparam",{"2":{"84":2}}],["moiallequal",{"2":{"84":1}}],["moialldifferent",{"2":{"84":1}}],["moi",{"2":{"84":22}}],["most",{"2":{"78":1}}],["more",{"2":{"76":1}}],["module",{"0":{"18":1,"21":1,"23":1}}],["modeled",{"2":{"85":1}}],["model",{"0":{"60":1},"2":{"29":1,"33":2,"60":1,"72":2,"84":25,"85":75}}],["modeling",{"0":{"30":1,"63":1},"2":{"1":1,"15":1,"16":1,"30":1,"73":1}}],["models",{"0":{"62":1},"1":{"63":1,"64":1},"2":{"1":1,"15":1,"63":1,"64":1,"73":2,"74":2}}],["mincut",{"2":{"85":2}}],["min",{"2":{"84":1}}],["minkowski",{"2":{"76":1}}],["minusequalparam",{"2":{"84":2}}],["minus",{"2":{"76":24}}],["minimization",{"2":{"84":1}}],["minimizes",{"2":{"1":1}}],["minimum",{"2":{"10":1,"37":1,"72":1,"83":1}}],["minimal",{"2":{"4":2,"72":2,"76":2,"83":2,"85":3}}],["mixed",{"2":{"73":1}}],["mission",{"2":{"61":1}}],["missing",{"2":{"20":2,"22":2,"26":16,"31":4,"32":8,"34":4,"35":6,"36":8,"37":8,"38":4,"39":2,"40":2}}],["metric=hamming",{"2":{"76":1,"77":1}}],["metric",{"2":{"76":8,"77":6}}],["metasolver",{"2":{"85":4}}],["metastrategist",{"0":{"79":1},"2":{"79":1}}],["metadata",{"2":{"73":1}}],["metaheuristics",{"0":{"67":1},"2":{"53":1}}],["method",{"2":{"2":1,"4":2,"6":2,"17":1,"18":3,"20":1,"21":3,"22":1,"23":3,"32":1,"72":56,"76":86,"77":26,"78":6,"82":1,"83":27,"84":14,"85":128}}],["methods",{"0":{"44":1},"1":{"45":1,"46":1},"2":{"0":1,"1":2,"4":1,"15":2,"17":1,"26":1,"29":2,"53":1,"72":2,"76":2,"83":1,"85":3}}],["meaningful",{"2":{"71":1}}],["means",{"2":{"32":2,"72":2,"83":2}}],["measurement",{"2":{"85":1}}],["measure",{"2":{"29":1,"76":2}}],["merge",{"2":{"15":1,"20":2,"22":2,"72":2,"83":2,"85":1}}],["merging",{"2":{"15":1}}],["membership",{"2":{"15":1}}],["mutable",{"2":{"85":2}}],["mutually",{"2":{"76":4,"77":1}}],["much",{"2":{"75":1}}],["must",{"2":{"15":1,"17":1,"22":1,"33":2,"72":4,"74":1,"83":2,"84":1}}],["multithreading",{"2":{"85":1}}],["multithreaded",{"2":{"85":1}}],["multiplication",{"2":{"6":1,"72":1}}],["multiple",{"2":{"1":1}}],["multivalued",{"2":{"4":4,"72":3,"83":2}}],["macro",{"2":{"84":1}}],["mainsolver",{"2":{"85":7}}],["mainly",{"2":{"84":1}}],["main",{"2":{"76":1,"85":5}}],["map",{"2":{"76":1}}],["may",{"2":{"75":1}}],["matter",{"2":{"84":1}}],["matrix",{"2":{"77":2,"78":2}}],["matrices",{"2":{"77":1,"78":1}}],["mathoptinterface",{"2":{"84":12}}],["maths",{"2":{"76":1}}],["mathematical",{"0":{"68":1},"2":{"68":1,"74":2,"75":1}}],["match",{"2":{"33":3,"72":3}}],["matches",{"2":{"33":3,"72":3}}],["marks",{"2":{"33":2,"72":2}}],["made",{"2":{"32":1,"72":1,"83":1}}],["making",{"2":{"28":1,"75":1}}],["makes",{"2":{"73":1}}],["make",{"2":{"8":1,"31":1,"73":1,"74":1,"77":3,"85":1}}],["max",{"2":{"25":2,"72":2,"76":3,"83":2,"84":1,"85":10}}],["maximum",{"2":{"10":1,"15":1,"17":1,"20":1,"22":1,"37":1,"72":2,"76":1,"83":2,"85":6}}],["manhattan",{"2":{"76":1}}],["manufacturing",{"2":{"74":1}}],["managing",{"2":{"29":1}}],["manages",{"2":{"85":1}}],["managed",{"2":{"85":1}}],["manage",{"2":{"1":1,"85":1}}],["manipulations",{"2":{"16":1}}],["manipulation",{"2":{"14":1,"15":2,"28":1,"29":1}}],["many",{"2":{"8":1,"72":1,"83":1}}],["mdd",{"2":{"4":5,"26":1,"34":1,"72":5,"83":4}}],["mdash",{"2":{"2":2,"4":7,"6":3,"8":1,"10":1,"12":1,"17":6,"18":5,"20":7,"21":4,"22":9,"23":5,"24":2,"25":3,"26":5,"31":8,"32":2,"33":2,"72":67,"76":77,"77":28,"78":7,"83":35,"84":45,"85":142}}],["mmds",{"2":{"4":1}}],["m",{"2":{"2":2,"32":2,"72":2,"83":2,"85":139}}],["clear",{"2":{"75":1}}],["cbls",{"0":{"84":1},"2":{"73":3,"75":3,"77":1,"84":31,"85":1}}],["csps",{"2":{"73":1}}],["circuit",{"2":{"39":1}}],["cut",{"2":{"85":1}}],["current",{"2":{"76":2,"85":1}}],["currently",{"2":{"18":2,"21":1,"23":1,"26":1,"72":1,"84":1}}],["cumulative",{"2":{"38":1}}],["central",{"2":{"28":1}}],["cplex",{"2":{"73":1}}],["cp",{"0":{"53":1,"57":1,"60":1},"1":{"58":1,"59":1,"60":1},"2":{"28":2,"29":2,"30":2,"43":1,"45":1,"51":1,"59":1,"60":1,"61":1,"63":1,"71":1,"73":9,"74":4}}],["c",{"2":{"18":1,"21":1,"23":1,"31":14,"33":9,"72":23,"76":8,"83":14,"85":31}}],["choose",{"2":{"85":1}}],["chuffed",{"2":{"73":1}}],["checks",{"2":{"33":1,"72":1}}],["check",{"2":{"18":1,"20":1,"21":1,"22":1,"23":1,"26":8,"31":3,"32":4,"34":2,"35":3,"36":4,"37":4,"38":2,"39":1,"40":1,"72":1,"76":1,"78":1,"85":10}}],["checking",{"2":{"15":1}}],["chains",{"2":{"74":1}}],["chapter",{"2":{"61":1}}],["channel",{"2":{"37":1}}],["changes",{"2":{"15":1,"20":1,"22":1,"72":2,"75":1,"83":1}}],["characteristics",{"2":{"15":1}}],["capacited",{"2":{"85":1}}],["capacity",{"2":{"85":1}}],["capabilities",{"2":{"30":1}}],["capability",{"2":{"29":1}}],["called",{"2":{"76":1,"85":2}}],["case",{"0":{"45":1}}],["cardinality",{"2":{"36":1}}],["categories",{"0":{"32":1},"1":{"33":1,"34":1,"35":1,"36":1}}],["cater",{"2":{"15":1}}],["catalog",{"2":{"29":1}}],["can",{"2":{"1":3,"17":1,"29":1,"32":1,"48":1,"61":1,"72":2,"75":1,"76":3,"78":1,"83":2,"84":2,"85":1}}],["created",{"2":{"85":1}}],["create",{"2":{"76":1,"84":1}}],["creation",{"2":{"29":1}}],["critical",{"2":{"1":1,"14":1}}],["crucial",{"2":{"1":1,"15":1,"29":1}}],["cosntraints",{"2":{"85":1}}],["cosntriction",{"2":{"85":1}}],["cost",{"2":{"85":19}}],["costs",{"2":{"74":1,"85":20}}],["copy",{"2":{"84":5}}],["cops",{"2":{"73":1}}],["co",{"2":{"76":9}}],["covering",{"2":{"70":1}}],["cover",{"2":{"68":1,"82":1}}],["collaborate",{"2":{"48":1}}],["collections",{"2":{"10":2,"72":1,"83":1}}],["collection",{"2":{"1":1,"12":1,"18":2,"21":1,"23":1,"25":2,"26":1,"72":4,"73":1,"76":3,"77":3,"83":3,"84":2,"85":5}}],["count",{"2":{"36":1,"76":68}}],["counting",{"0":{"36":1}}],["counter",{"2":{"12":2,"72":2,"83":2,"85":1}}],["conditions",{"2":{"74":1,"85":1}}],["conduct",{"2":{"71":1}}],["concerned",{"2":{"74":2}}],["concepts",{"0":{"52":1},"2":{"52":1,"67":1}}],["concept",{"2":{"25":3,"29":2,"31":9,"32":1,"33":4,"72":16,"76":6,"83":9,"84":5}}],["conflict",{"2":{"33":1,"72":1}}],["conflicted",{"2":{"33":3,"72":3}}],["conflicts",{"2":{"33":6,"72":6}}],["conflicts=nothing",{"2":{"33":1,"72":1}}],["configuration",{"2":{"33":6,"72":6,"76":2,"77":4,"84":1,"85":3}}],["configurations",{"2":{"8":1,"25":2,"33":4,"72":7,"77":1,"83":3,"85":1}}],["configure",{"2":{"15":1}}],["convert",{"2":{"17":1,"24":3,"72":4,"76":3,"83":1}}],["containing",{"2":{"85":1}}],["container",{"2":{"76":1,"84":1}}],["contains",{"2":{"31":1,"32":1,"72":2,"76":1,"83":2}}],["content",{"2":{"61":1}}],["contexts",{"2":{"29":1}}],["context",{"2":{"17":1,"72":1,"83":1}}],["contraints",{"2":{"85":2}}],["contrast",{"2":{"53":1,"75":1}}],["contribute",{"2":{"48":1}}],["contribution",{"0":{"47":1},"1":{"48":1,"49":1}}],["contiguous",{"2":{"76":8}}],["contiuous",{"2":{"20":1,"22":1,"72":1,"83":1}}],["continuousdomain",{"2":{"15":1,"20":2,"72":2,"83":1}}],["continuous",{"0":{"20":1},"1":{"21":1},"2":{"14":1,"15":2,"17":2,"20":2,"22":1,"72":3,"83":3}}],["connection",{"0":{"37":1}}],["connecting",{"2":{"6":1,"72":1}}],["connector",{"2":{"6":1,"72":1}}],["cons=dictionary",{"2":{"85":1}}],["considered",{"2":{"85":1}}],["considers",{"2":{"4":1}}],["cons",{"2":{"85":31}}],["constriction",{"2":{"85":4}}],["constrained",{"2":{"85":2}}],["constrains",{"2":{"85":1}}],["constraintprogrammingextensions",{"2":{"73":1}}],["constraintmodels",{"0":{"27":1},"2":{"27":1,"73":1}}],["constrainttranslator",{"2":{"1":1}}],["constraintlearning",{"0":{"77":1},"2":{"1":1,"77":27}}],["constraintdomains",{"0":{"14":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1},"2":{"1":1,"14":1,"15":3,"16":2,"17":6,"20":7,"22":9,"25":3,"26":3,"72":25,"73":1,"83":18}}],["constraint",{"0":{"16":1,"28":1,"30":1,"41":1,"50":1,"51":1,"74":1,"75":1},"1":{"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"42":1,"43":1,"51":1,"52":1,"53":1},"2":{"0":1,"1":3,"2":4,"8":1,"14":2,"15":1,"16":2,"18":3,"21":3,"23":3,"25":2,"28":1,"29":10,"30":2,"31":14,"32":4,"33":14,"61":1,"72":37,"73":5,"74":1,"75":5,"76":6,"77":4,"78":1,"83":20,"84":29,"85":33}}],["constraintsolver",{"2":{"73":1}}],["constraints",{"0":{"28":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"42":1,"61":1},"1":{"29":1,"30":1,"31":1,"32":1,"33":2,"34":2,"35":2,"36":2},"2":{"0":1,"1":1,"2":3,"4":3,"14":1,"28":3,"29":17,"30":5,"31":8,"32":6,"33":6,"42":1,"52":1,"72":22,"73":4,"74":3,"75":2,"77":1,"78":1,"83":11,"85":20}}],["constraintcommons",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1},"2":{"0":1,"1":4,"2":2,"4":7,"8":1,"10":1,"12":1,"26":2,"32":1,"72":14,"83":8}}],["constructor",{"2":{"77":3,"84":1,"85":1}}],["construct",{"2":{"4":1,"17":3,"20":3,"22":3,"26":1,"72":5,"76":2,"83":4,"85":3}}],["constant",{"2":{"2":1,"31":1,"32":1,"72":3,"83":2}}],["core",{"0":{"32":1},"1":{"33":1,"34":1,"35":1,"36":1},"2":{"2":2,"4":1,"29":4,"32":1,"72":2,"83":1}}],["come",{"2":{"84":1}}],["combinatorial",{"2":{"51":1,"74":1}}],["community",{"0":{"47":1,"48":1},"1":{"48":1,"49":1},"2":{"48":1}}],["commitment",{"2":{"30":1}}],["commons",{"0":{"17":1},"1":{"18":1,"19":1}}],["common",{"2":{"1":1,"73":1}}],["comparison",{"0":{"35":1},"2":{"76":6}}],["compatible",{"2":{"1":1}}],["components",{"2":{"29":1,"76":2}}],["compose",{"2":{"76":12}}],["composed",{"2":{"25":1,"72":1,"76":2,"83":1}}],["compositions",{"2":{"76":1}}],["compositional",{"2":{"76":1}}],["compositionalnetworks",{"0":{"76":1},"2":{"1":1,"76":76,"77":3}}],["composition",{"2":{"76":24}}],["comprehensive",{"2":{"16":1,"30":1,"33":2,"72":2}}],["computational",{"2":{"15":1,"58":1}}],["computes",{"2":{"85":1}}],["computed",{"2":{"32":1,"72":1,"76":17,"83":1}}],["compute",{"2":{"10":2,"20":1,"22":1,"72":2,"76":3,"77":1,"78":1,"83":2,"84":1,"85":17}}],["complex",{"2":{"16":1,"28":1,"29":1,"42":1,"74":2,"75":1}}],["complexity",{"2":{"1":1,"70":1}}],["completely",{"2":{"76":1}}],["completed",{"2":{"1":1}}],["complete",{"2":{"1":1,"15":1,"25":2,"72":2,"76":4,"83":1}}],["code",{"2":{"1":1,"76":5}}],["cohesive",{"2":{"1":1}}],["df",{"2":{"77":2}}],["ds",{"2":{"77":2}}],["do",{"2":{"76":1}}],["dom",{"2":{"76":8,"77":2}}],["domain",{"2":{"15":10,"16":1,"17":21,"18":1,"20":13,"21":1,"22":16,"23":1,"25":1,"26":1,"72":30,"73":1,"76":3,"77":3,"78":4,"83":29,"85":20}}],["domains",{"0":{"14":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1},"2":{"14":2,"15":8,"16":1,"17":4,"18":3,"20":8,"21":2,"22":7,"23":2,"24":2,"25":6,"26":1,"52":1,"72":22,"76":6,"77":2,"83":17,"85":3}}],["does",{"2":{"33":3,"72":3,"84":1}}],["documentation",{"2":{"27":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"84":1,"85":1}}],["documenter",{"2":{"20":1,"22":1,"26":8,"31":2,"32":4,"34":2,"35":3,"36":4,"37":4,"38":2,"39":1,"40":1}}],["docstring",{"2":{"20":2,"22":2,"26":16,"31":4,"32":8,"34":4,"35":6,"36":8,"37":8,"38":4,"39":2,"40":2,"84":26,"85":29}}],["d₂",{"2":{"20":2,"22":2,"72":2,"83":2}}],["d₁",{"2":{"20":2,"22":2,"72":2,"83":2}}],["draw",{"2":{"18":2,"21":1,"23":1,"26":1,"72":1,"85":5}}],["d5",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["d4",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["d3",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["d2",{"2":{"17":3,"20":3,"22":3,"72":3,"83":3}}],["d1",{"2":{"17":2,"20":2,"22":2,"72":2,"83":2}}],["dynamic",{"2":{"15":3,"17":1,"20":1,"72":2,"83":1,"85":11}}],["d",{"2":{"12":1,"17":14,"18":29,"20":7,"21":23,"22":9,"23":26,"24":1,"26":12,"72":50,"77":2,"83":22,"85":9}}],["during",{"2":{"8":1,"76":1}}],["duplication",{"2":{"1":1}}],["diff",{"2":{"76":4}}],["differs",{"0":{"53":1}}],["difference",{"2":{"10":2,"17":1,"20":1,"22":1,"72":2,"76":10,"83":2}}],["different",{"2":{"1":1,"15":1,"31":1,"33":3,"35":1,"72":4,"74":1,"85":1}}],["directions",{"0":{"49":1}}],["directly",{"2":{"1":1,"29":1,"33":1,"72":1}}],["dive",{"0":{"65":1},"1":{"66":1,"67":1,"68":1},"2":{"42":1}}],["dict",{"2":{"32":1,"72":1,"83":1}}],["dictionaryview",{"2":{"85":1}}],["dictionary",{"2":{"12":1,"29":2,"31":1,"32":1,"72":3,"83":3,"85":6}}],["dictionaries",{"0":{"12":1},"1":{"13":1},"2":{"12":1}}],["dispatch",{"2":{"77":1,"85":2}}],["discuss",{"2":{"43":1,"58":1,"71":1}}],["discreteset",{"2":{"84":3}}],["discretedomain",{"2":{"15":1,"17":1,"18":3,"20":1,"21":3,"22":3,"23":3,"26":1,"72":6,"83":2}}],["discrete",{"0":{"22":1},"1":{"23":1},"2":{"14":1,"15":2,"17":1,"20":1,"22":4,"72":5,"77":1,"83":4,"85":1}}],["distributed",{"2":{"85":1}}],["distdifferent",{"2":{"84":2}}],["dist",{"2":{"33":2,"72":2,"85":1}}],["distances",{"2":{"33":1,"72":1}}],["distance",{"2":{"17":2,"20":1,"22":1,"33":3,"72":5,"76":3,"83":2,"85":1}}],["distinguishes",{"2":{"15":1}}],["diagram",{"2":{"4":1,"72":1,"83":1}}],["diagrams",{"2":{"4":3,"72":2,"83":1}}],["dimension",{"2":{"84":6,"85":1}}],["dimparameterdomain",{"2":{"26":1}}],["dim",{"2":{"2":1,"72":1,"84":12,"85":4}}],["datatype",{"2":{"85":1}}],["dataframe",{"2":{"77":1}}],["data",{"2":{"1":1,"85":1}}],["deepcopy",{"2":{"85":1}}],["deeper",{"2":{"42":1}}],["debugging",{"2":{"85":1}}],["debinarize",{"2":{"78":1}}],["denotes",{"2":{"76":2}}],["density",{"2":{"25":1,"72":1,"83":1}}],["decrement",{"2":{"85":1}}],["decrease",{"2":{"85":2}}],["decay",{"2":{"85":3}}],["declare",{"2":{"33":1,"72":1}}],["decisions",{"2":{"74":1}}],["decision",{"2":{"4":4,"72":3,"83":2}}],["derived",{"2":{"33":1,"72":1}}],["delta",{"2":{"85":6}}],["delineation",{"2":{"33":2,"72":2}}],["delete",{"2":{"15":1,"17":1,"23":3,"31":1,"72":5,"83":4,"85":13}}],["deletion",{"2":{"15":1}}],["descent",{"2":{"77":1}}],["description",{"2":{"76":1,"84":36,"85":10}}],["descriptions",{"2":{"32":1}}],["describe",{"2":{"32":1,"85":3}}],["design",{"2":{"1":1}}],["designed",{"2":{"0":1,"28":1}}],["determined",{"2":{"85":1}}],["determine",{"2":{"76":1}}],["determining",{"2":{"15":1,"29":1}}],["deterministic",{"2":{"4":1,"72":1,"83":1}}],["details",{"2":{"20":1,"22":1,"26":8,"31":2,"32":4,"34":2,"35":3,"36":4,"37":4,"38":2,"39":1,"40":1}}],["depends",{"2":{"17":1,"72":1,"83":1,"85":1}}],["dependencies",{"2":{"1":1}}],["define",{"2":{"29":1,"32":1,"33":2,"51":1,"72":3,"76":1,"83":1}}],["defines",{"2":{"20":1,"22":1,"72":1,"76":1}}],["defined",{"0":{"34":1},"2":{"15":2,"17":1,"22":1,"29":1,"32":3,"33":3,"72":8,"76":2,"77":2,"83":4,"84":2,"85":1}}],["definitions",{"2":{"15":1}}],["definition",{"0":{"28":1},"1":{"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1},"2":{"14":1,"15":1,"28":1,"29":1,"30":1}}],["defining",{"0":{"14":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1},"2":{"15":1,"16":1,"29":2}}],["defaults",{"2":{"2":1,"12":1,"32":1,"72":2,"77":2,"83":2}}],["default",{"2":{"2":1,"18":1,"25":1,"32":1,"33":2,"72":5,"76":2,"77":4,"78":2,"83":2,"85":2}}],["developers",{"2":{"28":1}}],["developing",{"2":{"1":1}}],["development",{"2":{"0":1,"1":3}}],["objs=dictionary",{"2":{"85":1}}],["objs",{"2":{"85":7}}],["objectives",{"2":{"85":10}}],["objective",{"2":{"84":4,"85":24}}],["own",{"2":{"85":1}}],["o",{"2":{"77":1,"85":16}}],["others",{"2":{"73":1}}],["other",{"0":{"53":1},"2":{"53":1,"73":1,"74":1,"75":2,"85":2}}],["otherwise",{"2":{"4":1,"18":1,"21":1,"23":1,"26":1,"31":2,"72":4,"76":8,"83":3,"85":1}}],["oversampling",{"2":{"77":1}}],["oversample",{"2":{"8":2,"72":2,"83":2}}],["overview",{"0":{"67":1},"2":{"61":1}}],["overviews",{"0":{"55":1}}],["overlap",{"2":{"38":1}}],["over",{"2":{"10":1,"25":1,"29":1,"31":1,"33":2,"72":5,"76":1,"77":1,"83":3,"84":1,"85":1}}],["ouput",{"2":{"77":1}}],["output",{"2":{"76":2}}],["outputs",{"2":{"31":1,"72":1,"83":1}}],["outlined",{"2":{"29":1}}],["outcomes",{"2":{"1":1}}],["our",{"2":{"8":1}}],["opt",{"2":{"84":1}}],["optmizers",{"2":{"77":1}}],["optimize",{"2":{"74":1,"76":1,"77":11,"84":3}}],["optimizers",{"2":{"77":1}}],["optimizer",{"2":{"73":1,"77":6,"84":17,"85":3}}],["optimizing",{"2":{"74":1,"85":7}}],["optimization",{"0":{"43":1,"44":1,"53":1,"57":1,"65":1,"66":1},"1":{"45":1,"46":1,"58":1,"59":1,"60":1,"66":1,"67":1,"68":1},"2":{"29":1,"45":1,"46":1,"58":1,"59":1,"61":1,"63":1,"66":2,"68":1,"74":2,"85":2}}],["optimisation",{"2":{"73":1}}],["optionally",{"2":{"31":2,"72":2,"83":2}}],["optional",{"2":{"25":1,"32":1,"72":2,"76":8,"77":1,"78":1,"83":2,"85":2}}],["options",{"2":{"15":1,"77":2,"84":4,"85":32}}],["operation",{"2":{"76":3,"77":2}}],["operational",{"0":{"74":1},"2":{"74":1}}],["operations",{"2":{"6":1,"21":2,"23":2,"76":18,"77":3}}],["opparameterdomain",{"2":{"26":1}}],["op",{"2":{"2":1,"72":1,"76":1}}],["order",{"2":{"84":2}}],["ordered",{"2":{"35":1,"76":2,"84":3,"85":1}}],["originating",{"2":{"33":1,"72":1}}],["oriented",{"2":{"0":1}}],["org",{"2":{"32":1,"72":1,"83":1}}],["organizations",{"2":{"74":1}}],["organization",{"2":{"29":1,"55":1,"61":1}}],["or",{"2":{"1":1,"2":1,"6":1,"12":1,"15":4,"16":1,"17":2,"18":2,"20":1,"21":2,"22":1,"23":2,"30":1,"31":1,"32":1,"33":2,"49":1,"72":8,"73":2,"74":4,"75":2,"76":5,"78":1,"83":4,"85":6}}],["only",{"2":{"76":4,"78":1,"84":2,"85":1}}],["on",{"0":{"32":1,"39":1,"70":1},"1":{"33":1,"34":1,"35":1,"36":1},"2":{"1":2,"2":2,"4":1,"14":1,"15":1,"17":1,"25":1,"26":1,"32":1,"33":1,"43":1,"59":1,"72":7,"73":1,"74":3,"77":3,"78":1,"80":1,"83":4,"84":2,"85":2}}],["once",{"2":{"1":2}}],["one",{"2":{"1":1,"29":1,"33":1,"72":1,"76":6,"77":2,"78":5,"85":3}}],["often",{"2":{"74":1}}],["offer",{"2":{"29":1}}],["offering",{"2":{"16":1,"29":1,"30":1}}],["offers",{"2":{"1":1,"15":1,"30":1}}],["of",{"2":{"0":1,"1":9,"2":3,"4":3,"8":2,"10":4,"14":3,"15":8,"16":4,"17":3,"18":5,"20":5,"21":10,"22":6,"23":11,"25":14,"26":2,"28":1,"29":13,"30":1,"31":11,"32":4,"33":9,"46":1,"49":1,"58":2,"61":2,"64":1,"66":2,"68":1,"71":1,"72":61,"73":7,"74":2,"75":4,"76":91,"77":14,"78":3,"83":39,"84":16,"85":78}}],["lst",{"2":{"85":5}}],["l",{"2":{"76":12}}],["loop",{"2":{"85":8}}],["loss",{"2":{"77":2}}],["local",{"0":{"75":1},"2":{"75":1,"76":5,"77":1,"84":2,"85":7}}],["localsearchsolvers",{"0":{"85":1},"2":{"73":1,"77":1,"85":139}}],["lower",{"2":{"76":1}}],["lowest",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["low",{"2":{"25":1,"72":1,"73":1,"83":1}}],["loggingextra",{"2":{"85":1}}],["logging",{"2":{"85":1}}],["logic",{"2":{"33":2,"72":2}}],["log",{"2":{"20":1,"22":1,"26":8,"31":2,"32":4,"34":2,"35":3,"36":4,"37":4,"38":2,"39":1,"40":1,"85":1}}],["links",{"2":{"80":1,"85":1}}],["linear",{"2":{"53":1,"66":1,"78":3}}],["littledict",{"2":{"76":1}}],["like",{"2":{"53":1,"67":1}}],["limited",{"2":{"25":1,"72":1,"83":1}}],["limit",{"2":{"25":7,"72":7,"76":2,"83":7,"84":1,"85":10}}],["limits",{"2":{"15":1}}],["listed",{"2":{"33":2,"72":2}}],["list",{"2":{"2":2,"22":1,"23":1,"31":1,"33":8,"72":12,"83":3,"85":11}}],["less",{"2":{"84":2}}],["lessthanparam",{"2":{"84":2}}],["lesser",{"2":{"76":8}}],["leadsolvers",{"2":{"85":3}}],["leadsolver",{"2":{"85":1}}],["least",{"2":{"77":2}}],["learn",{"2":{"61":1,"76":6,"77":5,"78":1}}],["learned",{"2":{"29":1,"30":1,"76":1,"77":1}}],["learning",{"2":{"0":1,"1":6,"8":1,"15":1,"25":1,"29":2,"72":1,"73":1,"76":3,"77":1,"83":1}}],["level",{"2":{"73":2,"85":9}}],["levels",{"2":{"70":1}}],["left",{"2":{"32":1,"72":1,"76":15,"83":1}}],["length",{"2":{"15":1,"17":2,"18":1,"20":1,"21":6,"22":1,"23":6,"29":1,"31":4,"32":3,"72":17,"76":6,"83":9,"85":12}}],["lt",{"2":{"4":2,"17":1,"18":4,"21":4,"22":1,"23":4,"72":8,"83":2,"85":3}}],["launch",{"2":{"85":1}}],["last",{"2":{"85":1}}],["lazy",{"2":{"76":2}}],["lang",{"2":{"76":3}}],["lang=",{"2":{"76":1}}],["language=",{"2":{"76":1}}],["languageparameterdomain",{"2":{"26":1}}],["languages",{"0":{"4":1,"34":1},"1":{"5":1},"2":{"4":1}}],["language",{"2":{"2":1,"72":1,"76":6}}],["large",{"2":{"74":1,"75":1}}],["lays",{"2":{"16":1}}],["layered",{"2":{"76":1}}],["layers",{"2":{"76":8}}],["layer",{"2":{"0":1,"21":2,"23":2,"76":41,"77":4}}],["bariable",{"2":{"85":1}}],["base",{"0":{"18":1,"21":1,"23":1},"2":{"6":5,"17":3,"18":14,"21":9,"23":10,"24":3,"26":4,"72":28,"76":2,"78":2,"83":4,"84":2,"85":4}}],["based",{"0":{"32":1,"35":1,"75":1},"1":{"33":1,"34":1,"35":1,"36":1},"2":{"1":1,"2":2,"4":1,"12":1,"15":1,"26":1,"32":1,"72":5,"75":1,"77":2,"78":1,"80":1,"83":4,"84":2}}],["basics",{"0":{"68":1}}],["basic",{"0":{"31":1,"52":1},"2":{"0":1,"1":3,"15":1,"60":1,"77":1,"78":1}}],["binary",{"2":{"78":1}}],["binarize",{"2":{"78":2}}],["binarized",{"2":{"78":1}}],["binarization",{"2":{"77":2,"78":4}}],["bias",{"2":{"76":3}}],["bit",{"2":{"76":1,"78":1}}],["bits",{"2":{"76":3}}],["bitvector",{"2":{"76":5}}],["building",{"0":{"62":1},"1":{"63":1,"64":1},"2":{"63":1}}],["build",{"2":{"20":1,"22":1,"26":8,"31":2,"32":4,"34":2,"35":3,"36":4,"37":4,"38":2,"39":1,"40":1,"60":1,"73":1,"82":1,"84":2}}],["b",{"2":{"17":1,"18":8,"20":1,"21":8,"22":1,"23":8,"72":9,"83":1}}],["broad",{"2":{"14":1}}],["bridges",{"2":{"1":1}}],["bounded",{"2":{"76":1}}],["bounding",{"2":{"76":4}}],["bounds",{"2":{"17":1,"72":1,"83":1}}],["boolparameterdomain",{"2":{"26":1}}],["boolean",{"2":{"8":1,"29":1,"31":1,"72":2,"83":2,"84":1}}],["bool",{"2":{"2":1,"17":4,"20":4,"22":4,"72":5,"83":4,"84":2,"85":4}}],["both",{"2":{"0":1,"10":1,"14":1,"25":1,"28":1,"32":2,"33":2,"72":6,"74":1,"83":4}}],["begin",{"2":{"84":14,"85":23}}],["benchmarking",{"2":{"80":1}}],["benchmarktools",{"0":{"80":1},"2":{"80":1}}],["better",{"2":{"74":1,"85":2}}],["between",{"2":{"1":2,"2":1,"10":2,"15":1,"17":3,"20":2,"22":2,"32":1,"33":4,"72":9,"76":4,"83":5,"84":1,"85":1}}],["best",{"0":{"63":1},"2":{"63":1,"77":1,"85":1}}],["been",{"2":{"45":1,"80":1,"85":7}}],["behave",{"2":{"29":1}}],["behaviors",{"2":{"29":1,"30":1}}],["behavior",{"2":{"15":1,"25":1,"29":1,"72":1}}],["beware",{"2":{"25":1,"72":1,"83":1}}],["belongs",{"2":{"18":1,"21":1,"23":1,"85":2}}],["beyond",{"2":{"15":1,"29":1}}],["be",{"2":{"1":1,"15":1,"17":1,"25":2,"32":3,"33":3,"72":9,"74":2,"75":2,"76":7,"77":2,"78":1,"83":5,"84":2,"85":3}}],["by",{"2":{"0":1,"1":2,"4":1,"6":2,"15":1,"16":1,"18":1,"21":1,"22":1,"23":1,"25":1,"29":3,"30":1,"56":1,"70":1,"72":5,"75":1,"76":7,"77":4,"83":2,"85":10}}],["f2",{"2":{"85":2}}],["fetch",{"2":{"85":1}}],["few",{"2":{"82":1}}],["feasible",{"2":{"75":1}}],["features",{"0":{"1":1,"15":1,"29":1},"2":{"29":1,"55":1}}],["feature",{"2":{"0":1,"15":1,"29":1}}],["file",{"2":{"76":7}}],["find",{"2":{"75":5,"85":2}}],["finding",{"2":{"73":1,"74":1,"75":2}}],["first",{"0":{"60":1},"2":{"77":1,"85":1}}],["fields",{"2":{"31":1,"72":1,"83":1}}],["framework",{"2":{"73":1}}],["friendly",{"2":{"30":1}}],["from",{"0":{"34":1,"46":1,"53":1},"2":{"18":4,"21":2,"23":3,"26":2,"29":2,"33":4,"46":1,"61":1,"72":7,"74":1,"76":2,"77":1,"78":1,"83":1,"85":17}}],["float64",{"2":{"84":1,"85":5}}],["floor",{"2":{"25":1,"72":1,"83":1}}],["flexibility",{"2":{"29":2}}],["flexible",{"2":{"15":1,"25":2,"29":1,"30":1,"72":2,"76":2,"83":1}}],["faster",{"2":{"85":1}}],["fake",{"2":{"26":1,"72":1}}],["fakeautomaton",{"2":{"4":2,"15":1,"18":2,"21":1,"23":1,"26":5,"72":5}}],["fallback",{"2":{"17":1,"18":2,"20":1,"21":2,"22":1,"23":2,"72":4,"83":1}}],["false",{"2":{"4":1,"6":1,"8":1,"17":3,"18":3,"20":3,"21":3,"22":3,"23":3,"26":1,"31":1,"33":1,"72":10,"76":2,"83":6,"85":2}}],["facilitating",{"2":{"15":1,"30":1}}],["facilitates",{"2":{"1":1,"15":1}}],["facilitate",{"2":{"0":1,"28":1}}],["fa",{"2":{"4":1,"18":4,"21":2,"23":2,"26":3,"72":3}}],["f",{"2":{"4":1,"8":2,"29":1,"31":3,"72":6,"76":10,"83":6,"84":20,"85":7}}],["full",{"0":{"72":1}}],["future",{"0":{"49":1},"2":{"2":1,"25":1,"72":1,"83":1}}],["func",{"2":{"85":6}}],["funcs",{"2":{"76":2}}],["function",{"2":{"2":2,"4":2,"6":1,"8":2,"10":1,"12":2,"17":4,"18":5,"20":5,"21":4,"22":6,"23":5,"24":2,"25":3,"26":4,"29":2,"31":12,"32":4,"33":3,"72":14,"76":22,"77":4,"78":2,"83":11,"84":14,"85":16}}],["functionality",{"2":{"1":1}}],["functionalities",{"0":{"1":1,"15":1,"29":1},"2":{"1":1,"15":1,"16":1,"29":1}}],["functions",{"2":{"0":1,"1":2,"15":1,"76":3}}],["fundamentals",{"2":{"68":1}}],["fundamental",{"2":{"1":1,"33":1,"72":1}}],["fold",{"2":{"73":1}}],["following",{"2":{"17":1,"29":1,"31":1,"72":2,"76":3,"78":1,"83":2,"85":1}}],["follows",{"2":{"8":1,"84":2}}],["follow",{"2":{"2":1}}],["focuses",{"2":{"73":1,"74":2}}],["focusing",{"2":{"14":1}}],["foundation",{"2":{"15":1}}],["foundational",{"2":{"0":1,"1":1}}],["fostering",{"2":{"1":1}}],["forwarded",{"2":{"85":1}}],["forbidden",{"2":{"33":1,"72":1}}],["formal",{"2":{"85":1}}],["formated",{"2":{"76":1}}],["formatted",{"2":{"76":1}}],["format",{"2":{"2":1,"17":1,"72":1,"78":1,"83":1}}],["formulating",{"2":{"46":1}}],["formulation",{"2":{"15":1}}],["forseeable",{"2":{"2":1}}],["for",{"0":{"57":1},"1":{"58":1,"59":1,"60":1},"2":{"1":5,"2":1,"4":3,"6":1,"12":1,"14":1,"15":13,"16":3,"17":3,"18":3,"20":4,"21":3,"22":4,"23":3,"24":2,"25":1,"26":18,"27":1,"28":1,"29":6,"30":4,"31":5,"32":9,"33":5,"34":4,"35":6,"36":8,"37":8,"38":4,"39":2,"40":2,"49":1,"56":1,"58":1,"59":1,"63":1,"72":23,"73":5,"74":1,"75":3,"76":6,"77":8,"78":5,"79":1,"81":1,"83":8,"84":4,"85":18}}],["among",{"2":{"77":1,"85":1}}],["affect",{"2":{"76":1}}],["aggregate",{"2":{"76":1}}],["aggregations",{"2":{"76":1}}],["aggregation",{"2":{"76":4}}],["ag",{"2":{"76":2}}],["api",{"0":{"72":1,"83":1}}],["applies",{"2":{"76":1,"84":1}}],["applied",{"2":{"45":1,"76":1,"84":1,"85":2}}],["applicability",{"2":{"29":1}}],["applications",{"0":{"45":1},"2":{"14":1,"16":1}}],["application",{"2":{"1":2,"28":1,"29":1,"30":1,"76":1}}],["applying",{"0":{"44":1},"1":{"45":1,"46":1}}],["apply",{"2":{"29":1,"31":3,"72":3,"83":3}}],["approach",{"2":{"1":1,"29":1,"74":2}}],["about",{"2":{"73":1,"85":1}}],["absolute",{"2":{"76":2}}],["abs",{"2":{"32":1,"72":1,"76":4,"83":1}}],["abstractstring",{"2":{"85":2}}],["abstractstring=",{"2":{"6":1,"72":1}}],["abstractstate",{"2":{"85":1}}],["abstractsolver",{"2":{"85":70}}],["abstractscalarset",{"2":{"84":1}}],["abstractscalarfunction",{"2":{"84":1}}],["abstractoptimizer",{"2":{"77":2,"78":2,"84":1}}],["abstractvectorset",{"2":{"84":15}}],["abstractvector",{"2":{"76":19,"85":1}}],["abstractrange",{"2":{"17":1,"20":1,"22":2,"72":2,"83":2}}],["abstracting",{"2":{"16":1}}],["abstractdomain",{"2":{"15":3,"17":5,"18":6,"20":4,"21":5,"22":4,"23":5,"24":1,"26":2,"72":17,"83":10,"85":6}}],["abstractdictionary",{"2":{"12":1,"72":1,"83":1}}],["abstractdict",{"2":{"12":1,"72":1,"83":1}}],["abstractautomaton",{"2":{"4":3,"26":1,"72":4,"83":1}}],["abstractmultivalueddecisiondiagram",{"2":{"4":3,"72":3,"83":1}}],["abstract",{"2":{"0":1,"1":2,"4":2,"15":1,"17":1,"20":1,"22":1,"72":5,"77":2,"78":1,"83":3,"85":2}}],["ability",{"2":{"29":1}}],["avoid",{"2":{"31":1,"33":1,"72":2,"83":1,"85":1}}],["avoiding",{"2":{"29":1}}],["available",{"2":{"15":1,"30":1,"32":1,"72":1,"73":1,"83":1,"85":1}}],["arrangement",{"2":{"77":1}}],["ar",{"2":{"76":2}}],["arithmetic",{"2":{"76":5}}],["arxiv",{"2":{"32":1,"72":1,"83":1}}],["arbitrarydomain",{"2":{"22":1}}],["argmax",{"2":{"85":3}}],["argument",{"2":{"84":1}}],["arguments",{"2":{"17":1,"25":1,"31":2,"32":1,"33":2,"72":7,"76":4,"83":5,"84":13,"85":8}}],["args",{"2":{"17":4,"25":1,"29":1,"31":1,"72":6,"77":3,"78":1,"83":5}}],["areas",{"2":{"49":1}}],["are",{"2":{"1":2,"15":1,"20":1,"22":1,"25":1,"29":2,"32":2,"33":4,"72":9,"73":2,"74":2,"76":21,"83":4,"84":4,"85":2}}],["always",{"2":{"84":1}}],["alwaystrue",{"2":{"84":2}}],["already",{"2":{"76":2,"77":1,"85":1}}],["algorithm",{"2":{"75":2,"76":4,"77":3}}],["algorithms",{"2":{"67":1,"75":1}}],["alone",{"2":{"32":1,"72":1,"83":1}}],["also",{"2":{"15":1,"76":2}}],["allequalparam",{"2":{"84":2}}],["allequal",{"2":{"84":2}}],["alldifferent",{"2":{"84":2}}],["allocations",{"2":{"76":17}}],["allocation",{"2":{"74":1}}],["allows",{"2":{"29":2}}],["allowing",{"2":{"15":1,"33":2,"72":2}}],["all",{"2":{"10":1,"15":1,"20":1,"32":1,"33":1,"35":2,"72":4,"73":1,"75":1,"76":5,"83":3,"84":7,"85":4}}],["advantages",{"2":{"58":1}}],["advanced",{"0":{"30":1,"41":1},"1":{"42":1,"43":1},"2":{"15":1,"16":1,"29":1}}],["adjusted",{"2":{"25":1,"72":1}}],["added",{"2":{"84":1}}],["adding",{"2":{"32":1,"72":1,"83":1}}],["addition",{"2":{"15":1,"29":1}}],["addtionally",{"2":{"17":1,"72":1,"83":1}}],["add",{"2":{"15":1,"17":1,"22":2,"31":1,"72":4,"83":3,"84":6,"85":20}}],["attribution",{"2":{"85":1}}],["attributed",{"2":{"85":6}}],["attribute",{"2":{"85":2}}],["attached",{"2":{"85":1}}],["at",{"2":{"4":1,"15":1,"29":1,"32":1,"72":2,"76":2,"77":2,"78":1,"83":1,"85":1}}],["automatic",{"2":{"25":1,"72":1,"83":1}}],["automatically",{"2":{"25":1,"72":1}}],["automaton",{"2":{"4":7,"26":4,"72":10,"83":5}}],["automata",{"2":{"4":2,"15":1,"72":1}}],["action",{"2":{"76":2}}],["actively",{"2":{"1":1}}],["actual",{"2":{"76":1}}],["access",{"2":{"17":1,"72":1,"76":4,"83":1,"85":20}}],["accessing",{"2":{"15":1}}],["acceptable",{"2":{"33":2,"72":2}}],["accepted",{"2":{"31":2,"72":2,"83":2}}],["accepts",{"2":{"4":3,"26":1,"72":3,"83":1}}],["accept",{"2":{"4":6,"26":3,"72":7,"83":1}}],["across",{"2":{"1":2}}],["a",{"2":{"0":1,"1":6,"4":13,"12":2,"14":2,"15":2,"16":2,"17":9,"18":19,"20":5,"21":17,"22":7,"23":17,"25":6,"26":7,"28":1,"29":7,"30":1,"31":9,"32":8,"33":13,"46":1,"60":2,"72":79,"73":7,"74":4,"75":7,"76":55,"77":23,"78":10,"80":1,"83":41,"84":17,"85":51}}],["assuming",{"2":{"84":1}}],["assert",{"2":{"76":1}}],["assign",{"2":{"76":1,"85":1}}],["assignements",{"2":{"31":1,"72":1,"83":1}}],["assignment",{"2":{"31":1,"72":1,"83":1}}],["assignments",{"2":{"29":2}}],["aspect",{"2":{"1":1}}],["as",{"2":{"0":1,"1":1,"4":1,"8":1,"14":1,"15":1,"20":1,"22":3,"29":2,"31":1,"32":2,"33":2,"52":1,"72":9,"73":1,"74":2,"76":5,"77":1,"82":1,"83":5,"84":2,"85":6}}],["anonymous",{"2":{"76":1}}],["another",{"2":{"73":1}}],["angles",{"2":{"74":1}}],["annealing",{"2":{"67":1}}],["analyze",{"2":{"64":1,"74":1}}],["analyzing",{"0":{"62":1},"1":{"63":1,"64":1}}],["analysis",{"0":{"64":1,"71":1},"2":{"71":1,"74":1}}],["any",{"2":{"6":1,"17":2,"18":2,"21":2,"23":2,"31":2,"32":1,"33":4,"72":11,"76":2,"78":1,"83":5,"84":1,"85":1}}],["and",{"0":{"1":1,"14":1,"15":1,"28":1,"29":1,"32":1,"36":1,"38":1,"42":1,"43":1,"45":1,"47":1,"52":1,"56":1,"57":1,"62":1,"64":1,"69":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"29":1,"30":1,"31":1,"32":1,"33":2,"34":2,"35":2,"36":2,"48":1,"49":1,"58":1,"59":1,"60":1,"63":1,"64":1,"70":1,"71":1},"2":{"0":3,"1":14,"2":1,"4":1,"6":1,"8":1,"10":1,"14":2,"15":11,"16":4,"17":2,"20":1,"22":1,"25":2,"26":2,"28":3,"29":14,"30":2,"31":4,"32":3,"33":9,"42":1,"43":1,"45":1,"46":1,"48":1,"49":1,"51":1,"52":1,"53":1,"55":1,"56":1,"58":2,"59":2,"60":1,"61":2,"63":2,"64":1,"67":1,"68":1,"70":1,"71":1,"72":24,"73":3,"74":8,"75":3,"76":19,"77":10,"78":2,"80":1,"83":15,"84":2,"85":11}}],["an",{"2":{"0":1,"4":3,"6":1,"15":1,"17":2,"20":4,"21":1,"22":3,"23":1,"25":1,"28":1,"29":1,"31":1,"33":1,"46":1,"61":2,"72":13,"75":3,"76":25,"77":7,"78":1,"82":1,"83":7,"84":2,"85":11}}],["swap",{"2":{"85":2}}],["switch",{"2":{"76":1}}],["sltns",{"2":{"77":2}}],["smaller",{"2":{"75":1}}],["small",{"2":{"75":1}}],["scalarfunction",{"2":{"84":3}}],["scalars",{"2":{"76":1}}],["scalar",{"2":{"76":3}}],["science",{"2":{"58":1}}],["scenario",{"2":{"46":1}}],["scheduling",{"0":{"38":1},"2":{"74":1}}],["share",{"2":{"49":1,"63":1}}],["shared",{"2":{"0":1,"1":3}}],["show",{"2":{"76":4}}],["showcase",{"2":{"45":1}}],["should",{"2":{"33":3,"72":3,"76":2,"85":3}}],["shrink",{"2":{"31":1,"72":1}}],["sat",{"2":{"85":3}}],["satisfying",{"2":{"85":2}}],["satisfy",{"2":{"73":1,"74":1,"75":1}}],["satisfied",{"2":{"31":1,"72":1,"74":1,"83":1,"85":1}}],["satisfies",{"2":{"31":1,"72":1,"75":1,"83":1}}],["satisfaction",{"2":{"29":1,"33":2,"72":2,"73":1,"85":3}}],["say",{"2":{"78":1}}],["same",{"2":{"20":1,"22":1,"33":1,"72":2,"83":1}}],["samplings",{"2":{"15":1,"25":2,"72":2,"83":2}}],["sampling",{"0":{"8":1},"1":{"9":1},"2":{"8":2}}],["systems",{"2":{"74":2}}],["syntax",{"2":{"29":1,"84":2,"85":1}}],["symᵢ",{"2":{"32":1,"72":1,"83":1}}],["sym₂",{"2":{"32":1,"72":1,"83":1}}],["sym₁",{"2":{"32":1,"72":1,"83":1}}],["symmetries",{"2":{"29":3,"31":4,"32":1,"72":5,"83":5}}],["symmetry",{"2":{"29":1,"31":1,"72":1,"83":1}}],["symbols",{"2":{"6":2,"72":2,"76":9}}],["symbol",{"2":{"6":3,"31":1,"72":3,"76":1,"78":1,"85":3}}],["sqrt",{"2":{"25":1,"72":1,"83":1}}],["sudoku",{"2":{"85":1}}],["subs",{"2":{"85":3}}],["subsolvers",{"2":{"85":4}}],["subsolver",{"2":{"85":6}}],["subset",{"2":{"84":1}}],["sub",{"2":{"77":1,"85":1}}],["successfully",{"2":{"45":1}}],["such",{"2":{"1":1,"29":2,"33":1,"52":1,"72":1,"73":1,"74":2,"85":4}}],["sumequalparam",{"2":{"84":2}}],["summary",{"2":{"75":1}}],["summing",{"0":{"36":1}}],["sum",{"2":{"21":1,"23":1,"25":1,"36":1,"72":2,"76":5,"78":3,"83":1,"84":1}}],["supply",{"2":{"74":1}}],["supplies",{"2":{"73":1}}],["supported",{"2":{"33":4,"72":4}}],["support",{"2":{"15":1,"33":1,"72":1}}],["supports=nothing",{"2":{"33":1,"72":1}}],["supports",{"2":{"15":1,"29":1,"33":5,"72":5,"84":3}}],["supertype",{"2":{"15":3,"20":1,"22":1,"72":2,"83":2}}],["super",{"2":{"15":1,"17":1,"72":1,"83":1}}],["since",{"2":{"85":1}}],["single",{"2":{"76":3}}],["silent",{"2":{"84":1,"85":1}}],["sig",{"2":{"76":17}}],["signature",{"2":{"76":2}}],["significance",{"2":{"51":1}}],["significantly",{"2":{"29":1,"30":1}}],["simulated",{"2":{"67":1}}],["simple",{"2":{"25":1,"29":1,"32":1,"60":1,"72":2,"83":2}}],["simply",{"2":{"18":2,"21":1,"23":1,"26":1,"31":1,"72":2}}],["simplify",{"2":{"42":1}}],["simplifying",{"2":{"1":1}}],["simplifies",{"2":{"1":1,"29":1}}],["similar",{"2":{"17":1,"72":1,"83":1}}],["size",{"2":{"15":1,"17":5,"20":8,"22":8,"25":2,"72":12,"76":16,"77":7,"83":9,"84":2,"85":4}}],["situations",{"2":{"10":1}}],["split",{"2":{"77":1}}],["specialize",{"2":{"85":10}}],["specialized",{"2":{"76":2,"85":10}}],["specializing",{"2":{"85":1}}],["specific",{"2":{"29":1,"76":1,"77":2}}],["specifically",{"2":{"18":2,"21":1,"23":1,"26":1,"33":1,"72":2}}],["specification",{"2":{"2":1,"15":1}}],["specifications",{"2":{"2":1,"29":1,"32":1,"72":1,"83":1}}],["specified",{"2":{"18":2,"21":1,"23":1,"26":1,"72":1}}],["specifying",{"2":{"14":1,"33":2,"72":2}}],["space",{"2":{"25":4,"31":1,"33":2,"72":7,"74":1,"76":4,"83":5,"85":1}}],["spaces",{"2":{"8":1,"14":1,"15":1,"29":1}}],["span",{"2":{"20":1,"22":1,"72":1}}],["s2",{"2":{"6":1,"72":1}}],["s1",{"2":{"6":1,"72":1}}],["s",{"2":{"4":6,"15":2,"17":2,"20":2,"22":2,"26":8,"29":1,"30":1,"31":4,"32":4,"34":2,"35":3,"36":4,"37":4,"38":2,"39":1,"40":1,"72":10,"83":7,"85":109}}],["soon",{"2":{"84":1}}],["so",{"2":{"74":1}}],["sophisticated",{"2":{"30":1}}],["something",{"2":{"31":1,"72":1}}],["some",{"2":{"6":1,"8":1,"73":1,"76":1,"77":1,"80":1,"84":1}}],["source",{"2":{"2":2,"4":8,"6":3,"8":1,"10":1,"12":1,"17":10,"18":17,"20":11,"21":16,"22":13,"23":17,"24":2,"25":3,"26":9,"31":8,"32":2,"33":2,"72":67,"76":77,"77":28,"78":7,"83":35,"84":45,"85":142}}],["sols",{"2":{"76":1,"77":4}}],["solvername",{"2":{"84":1}}],["solver",{"2":{"73":1,"75":2,"77":1,"84":4,"85":29}}],["solvers",{"2":{"73":10,"75":3,"85":2}}],["solve",{"2":{"60":1,"73":2,"74":1,"85":3}}],["solving",{"2":{"16":1,"30":1,"43":1,"46":1,"51":1,"61":1,"74":4,"85":4}}],["sol",{"2":{"25":1,"72":1,"83":1}}],["solution",{"2":{"15":1,"33":2,"72":2,"74":1,"75":4,"76":1,"85":4}}],["solutions",{"2":{"0":1,"1":2,"25":10,"72":10,"73":1,"74":2,"75":4,"76":4,"77":8,"83":10,"85":9}}],["solely",{"2":{"1":1}}],["see",{"2":{"85":1}}],["serie",{"2":{"85":1}}],["serves",{"2":{"0":1,"15":1}}],["select",{"2":{"85":4}}],["selected",{"2":{"76":8,"77":2,"85":1}}],["sec",{"2":{"85":1}}],["seconds",{"2":{"85":1}}],["section",{"0":{"37":1,"38":1,"39":1,"40":1},"2":{"2":1,"80":1,"82":1}}],["sequentialtasks",{"2":{"84":2}}],["sequence",{"2":{"32":1,"72":1,"83":1}}],["separates",{"2":{"76":1}}],["sep",{"2":{"76":2}}],["several",{"2":{"10":1,"73":1}}],["seaperl",{"2":{"73":1}}],["searching",{"2":{"31":1,"72":1,"83":1}}],["searches",{"2":{"15":1}}],["search",{"0":{"43":1,"75":1},"2":{"8":1,"14":1,"15":3,"25":9,"29":1,"43":1,"67":1,"72":9,"74":1,"75":3,"76":11,"83":9,"85":1}}],["seamless",{"2":{"1":1}}],["seamlessly",{"2":{"1":1}}],["setting",{"0":{"59":1},"2":{"59":1,"85":1}}],["settings",{"2":{"15":1,"25":1,"72":1,"83":1,"85":1}}],["setdomain",{"2":{"17":1,"20":1,"22":3,"23":2,"72":5,"83":4}}],["sets",{"2":{"15":1,"77":3}}],["set",{"2":{"1":1,"4":1,"6":2,"16":1,"18":4,"21":2,"22":3,"23":2,"26":1,"33":8,"72":15,"74":1,"76":4,"77":11,"78":2,"83":3,"84":16,"85":22}}],["stop",{"2":{"85":5}}],["storing",{"2":{"73":1}}],["stores",{"2":{"22":1,"72":1}}],["store",{"2":{"20":1,"72":1,"76":3,"85":3}}],["step",{"2":{"56":2,"70":2,"85":3}}],["studies",{"0":{"45":1},"2":{"45":1}}],["stucture",{"2":{"31":1,"72":1,"83":1}}],["stipulates",{"2":{"33":1,"72":1}}],["stamp",{"2":{"85":4}}],["static",{"2":{"85":1}}],["statistical",{"2":{"74":1}}],["state",{"2":{"85":36}}],["status",{"2":{"84":1,"85":4}}],["started",{"0":{"56":1,"57":1},"1":{"58":1,"59":1,"60":1},"2":{"56":1}}],["starts",{"2":{"31":1,"72":1,"75":1,"85":2}}],["starting",{"2":{"31":1,"72":1,"85":1}}],["standout",{"2":{"29":1}}],["standard",{"2":{"28":1,"29":1,"30":1,"73":1}}],["standardization",{"2":{"1":1}}],["stands",{"2":{"14":1}}],["str",{"2":{"85":1}}],["strictly",{"2":{"31":3,"72":3,"76":2,"83":3}}],["string",{"2":{"18":4,"21":4,"23":4,"31":1,"72":5,"76":3,"85":1}}],["straightforward",{"2":{"29":1,"84":1}}],["strategies",{"0":{"43":1},"2":{"16":1,"43":1}}],["struct",{"2":{"17":1,"72":1,"85":4}}],["structure",{"2":{"4":3,"17":2,"26":1,"72":5,"75":1,"76":1,"77":1,"83":4,"85":5}}],["structures",{"2":{"0":1,"1":2}}],["streamlining",{"0":{"28":1},"1":{"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1},"2":{"1":1}}],["public",{"0":{"83":1}}],["pure",{"2":{"73":3}}],["purely",{"2":{"73":1}}],["purpose",{"2":{"55":1,"84":1}}],["purposes",{"2":{"16":1,"30":1,"77":1}}],["perform",{"2":{"85":1}}],["performance",{"0":{"64":1},"2":{"29":1,"58":1,"64":1,"85":1}}],["performances",{"0":{"3":1,"5":1,"7":1,"9":1,"11":1,"13":1,"19":1}}],["perfchecker",{"0":{"81":1,"82":1},"2":{"80":1,"81":1,"82":1}}],["per",{"2":{"78":1}}],["penalty",{"2":{"77":9}}],["pôpulation",{"2":{"77":1}}],["please",{"2":{"32":1,"72":1,"83":1}}],["platform",{"2":{"30":1}}],["plays",{"2":{"1":1}}],["p",{"2":{"32":3,"72":3,"76":1,"83":3,"84":1}}],["pool",{"2":{"85":1}}],["pop",{"2":{"77":2}}],["population",{"2":{"76":2,"77":2}}],["popsize=100",{"2":{"77":1}}],["popsize=200",{"2":{"76":1}}],["popsize",{"2":{"76":4}}],["post",{"2":{"61":1,"85":1}}],["possible",{"2":{"32":1,"72":1,"74":1,"83":1,"84":1,"85":2}}],["positive",{"2":{"31":4,"72":4,"76":11,"83":4}}],["point",{"2":{"18":3,"21":2,"23":2,"26":1,"72":2}}],["points",{"2":{"17":1,"20":1,"21":1,"22":3,"23":2,"72":5,"83":3}}],["powerful",{"2":{"29":1}}],["power",{"2":{"16":1}}],["pseudo",{"2":{"15":1,"26":1,"72":1}}],["pattern",{"2":{"76":1}}],["patternfolds",{"2":{"20":1,"72":1}}],["path",{"2":{"76":5,"85":5}}],["packing",{"0":{"38":1}}],["packages",{"0":{"54":1},"1":{"55":1},"2":{"0":2,"1":7,"4":2,"29":1,"59":1,"72":2,"73":4}}],["package",{"0":{"55":1},"2":{"0":1,"1":3,"2":1,"14":2,"15":3,"16":1,"28":2,"29":4,"55":1,"56":1}}],["paradigm",{"2":{"74":1}}],["param=nothing",{"2":{"76":1}}],["paramater",{"2":{"76":1}}],["parametric",{"2":{"31":1,"72":1,"76":2,"77":1,"83":1}}],["parameter",{"2":{"15":2,"25":1,"26":1,"72":2,"76":4,"77":1,"78":1,"83":1,"84":4}}],["parameters",{"0":{"2":1,"26":1},"1":{"3":1},"2":{"2":10,"15":3,"26":4,"29":1,"31":1,"32":8,"72":16,"77":5,"83":12}}],["params",{"2":{"29":1,"31":1,"72":1,"83":1}}],["param",{"2":{"25":2,"26":2,"31":4,"72":8,"76":87,"83":8,"84":24}}],["part",{"2":{"25":1,"31":1,"72":2,"73":1,"83":1}}],["partially",{"2":{"76":1}}],["partial",{"2":{"8":1,"25":1,"72":1,"76":2,"85":1}}],["pairs",{"2":{"33":1,"72":1}}],["pairvarsparameterdomain",{"2":{"26":1}}],["pair",{"2":{"2":1,"25":1,"33":17,"72":19,"76":1,"77":3,"83":1}}],["printing",{"2":{"85":2}}],["print",{"2":{"85":8}}],["primary",{"2":{"55":1}}],["practices",{"0":{"63":1},"2":{"63":1}}],["practice",{"0":{"46":1}}],["practical",{"2":{"1":1,"16":1,"30":1}}],["practitioners",{"2":{"30":1}}],["pretty",{"2":{"85":2}}],["precision",{"2":{"77":1}}],["preliminaries",{"2":{"77":2}}],["predict",{"2":{"77":1}}],["predictions",{"2":{"77":1}}],["prediction",{"2":{"77":1}}],["predicate",{"2":{"33":4,"72":4,"76":1,"84":2}}],["predicates",{"2":{"29":1}}],["preferences",{"2":{"31":1,"72":1,"83":1}}],["preference",{"2":{"29":1}}],["proportional",{"2":{"76":1}}],["properly",{"2":{"17":1,"72":1,"83":1}}],["properties",{"2":{"15":1,"29":1}}],["produce",{"2":{"76":1}}],["product",{"2":{"76":1}}],["productivity",{"2":{"1":1}}],["prod",{"2":{"76":2}}],["providing",{"2":{"1":1,"15":1,"16":1,"29":1,"30":1,"33":2,"72":2}}],["provided",{"2":{"76":17}}],["provide",{"2":{"1":1,"12":1,"15":1,"56":1,"70":1,"73":1,"84":1}}],["provides",{"2":{"0":1,"14":1,"15":1,"29":1,"61":1,"73":1,"80":1}}],["projects",{"2":{"1":1,"49":1}}],["proceed",{"2":{"1":1}}],["processes",{"2":{"8":1,"74":1}}],["process",{"2":{"1":2,"15":2,"25":1,"46":1,"72":1,"74":1,"77":1,"83":1,"85":3}}],["problems",{"2":{"14":1,"15":1,"16":1,"29":2,"30":1,"33":2,"42":1,"43":1,"51":1,"61":1,"66":1,"72":2,"73":4,"74":3,"75":6,"85":1}}],["problem",{"2":{"1":1,"15":2,"16":1,"46":1,"74":2,"75":1,"85":3}}],["programming",{"0":{"16":1,"30":1,"41":1,"50":1,"51":1,"68":1,"74":1},"1":{"42":1,"43":1,"51":1,"52":1,"53":1},"2":{"0":1,"1":2,"14":2,"16":2,"28":1,"30":1,"53":1,"61":1,"66":1,"68":1,"73":3,"74":2,"75":4}}],["phase",{"2":{"1":1,"76":1}}],["pivotal",{"2":{"1":1,"15":1,"28":1}}],["immutable",{"2":{"22":1,"72":1,"83":1}}],["impossible",{"2":{"75":1}}],["importance",{"2":{"61":1,"71":1}}],["improve",{"2":{"64":1,"74":1,"75":1}}],["improvement",{"0":{"64":1},"2":{"85":1}}],["improving",{"2":{"29":1,"85":1}}],["implemented",{"2":{"73":1}}],["implement",{"2":{"4":1,"17":1,"26":1,"72":2,"83":1}}],["implementations",{"2":{"15":1}}],["implementation",{"2":{"4":2,"72":2,"83":2}}],["impact",{"2":{"1":1,"43":1}}],["icns",{"2":{"77":1}}],["icnlocalsearchoptimizer",{"2":{"77":3}}],["icngeneticoptimizer",{"2":{"77":4}}],["icnoptimizer",{"2":{"77":3}}],["icnconfig",{"2":{"77":4}}],["icn=icn",{"2":{"76":1}}],["icn",{"2":{"21":2,"23":2,"32":1,"72":1,"76":35,"77":12,"83":1}}],["i`",{"2":{"18":1,"21":1,"23":1,"72":1}}],["i",{"2":{"18":10,"20":3,"21":8,"22":3,"23":8,"26":2,"72":11,"76":43,"85":1}}],["iff",{"2":{"76":2}}],["if",{"2":{"4":3,"17":1,"18":10,"21":9,"23":9,"25":2,"26":2,"31":3,"72":16,"76":14,"77":1,"78":4,"83":6,"85":14}}],["identity",{"2":{"76":10}}],["idparameterdomain",{"2":{"26":1}}],["id",{"2":{"2":1,"72":1,"85":13}}],["iterate",{"2":{"85":1}}],["iterations",{"2":{"85":3}}],["iteration",{"2":{"76":2,"85":8}}],["iter=100",{"2":{"76":2}}],["iter",{"2":{"76":8,"77":3,"85":1}}],["ith",{"2":{"18":2,"21":1,"23":1,"26":1,"72":1}}],["itv",{"2":{"17":2,"18":8,"20":2,"21":7,"22":2,"23":7,"26":3,"72":9,"83":2}}],["itself",{"2":{"76":1}}],["its",{"2":{"1":1,"20":1,"22":1,"29":2,"51":1,"55":1,"58":1,"61":1,"68":1,"72":1,"76":3,"85":2}}],["it",{"2":{"0":1,"17":1,"28":1,"31":1,"32":1,"33":6,"72":9,"73":2,"75":2,"76":3,"77":1,"78":1,"83":2,"84":1,"85":6}}],["inner",{"2":{"77":1,"85":1}}],["inf",{"2":{"85":1}}],["info",{"2":{"84":2,"85":6}}],["information",{"2":{"76":1,"77":1,"85":1}}],["infrastructure",{"2":{"14":1}}],["initial",{"2":{"75":1}}],["involves",{"2":{"73":1}}],["invalid",{"2":{"29":1,"31":1,"33":2,"72":3,"83":1}}],["introductory",{"2":{"61":1}}],["introduce",{"2":{"52":1,"55":1,"67":1,"85":1}}],["int",{"2":{"18":2,"21":2,"23":2,"25":1,"33":4,"72":5,"76":8,"83":1,"84":6,"85":30}}],["into",{"0":{"65":1},"1":{"66":1,"67":1,"68":1},"2":{"17":1,"42":1,"72":1,"76":4,"77":1,"78":1,"83":1,"85":1}}],["intend",{"2":{"85":1}}],["intensional",{"2":{"29":1,"33":1,"72":1}}],["intension",{"2":{"29":1,"33":2,"72":2}}],["integer",{"2":{"66":1,"73":1}}],["integrating",{"2":{"30":1}}],["integration",{"0":{"28":1},"1":{"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1},"2":{"29":3}}],["integrates",{"2":{"15":1}}],["integrate",{"2":{"1":1}}],["interdiction",{"2":{"85":2}}],["interfacing",{"0":{"82":1}}],["interfaced",{"2":{"80":1}}],["interface",{"2":{"1":3,"4":2,"17":1,"72":3,"73":3,"78":1,"82":1,"83":1,"84":1}}],["interpretable",{"2":{"76":1}}],["interval",{"2":{"17":1,"18":2,"20":4,"21":2,"22":3,"23":2,"26":1,"72":6,"83":1}}],["intervals",{"2":{"15":2,"17":2,"18":5,"20":4,"21":4,"22":2,"23":4,"24":2,"26":2,"72":10,"83":2}}],["intersect",{"2":{"15":1,"20":2,"22":1,"72":1,"83":1}}],["intersecting",{"2":{"15":1}}],["intersections",{"2":{"20":1,"22":1,"72":1,"83":1}}],["intersection",{"2":{"2":1,"32":1,"72":1,"83":1}}],["internally",{"2":{"76":1}}],["internals",{"2":{"15":1,"25":1,"72":1}}],["internal",{"2":{"4":1,"17":1,"72":2,"76":2,"83":1,"85":4}}],["interacting",{"2":{"29":1}}],["interact",{"2":{"1":1}}],["interoperability",{"2":{"0":1,"1":1}}],["instead",{"2":{"76":2,"78":1,"84":1,"85":1}}],["instructions",{"2":{"56":1}}],["installing",{"2":{"56":1}}],["installation",{"0":{"56":1}}],["instantiation",{"2":{"40":1}}],["instantiations",{"2":{"33":2,"72":2}}],["instance",{"2":{"15":1,"78":1,"85":2}}],["insertion",{"2":{"12":1,"72":1,"83":1,"84":1}}],["insert",{"2":{"12":1,"72":1,"83":1,"85":3}}],["inputs",{"2":{"15":1}}],["index",{"2":{"85":1}}],["independent",{"2":{"85":1}}],["independently",{"2":{"85":1}}],["industry",{"2":{"73":1}}],["indice",{"2":{"85":1}}],["indices",{"2":{"85":6}}],["indicate",{"2":{"85":2}}],["indicates",{"2":{"31":2,"72":2,"83":2}}],["individuals",{"2":{"77":1}}],["indispensable",{"2":{"28":1}}],["ind",{"2":{"12":1,"72":1,"83":1,"85":2}}],["inc",{"2":{"85":6}}],["increment",{"2":{"85":3}}],["incremental",{"2":{"84":1}}],["increase",{"2":{"12":1,"72":1,"83":1}}],["inclusive",{"2":{"76":3}}],["included",{"2":{"33":1,"72":1}}],["include",{"2":{"29":1,"73":1}}],["includes",{"2":{"1":1,"76":2}}],["including",{"0":{"32":1},"1":{"33":1,"34":1,"35":1,"36":1},"2":{"15":1,"29":1}}],["incorporation",{"2":{"29":1,"30":1}}],["incsert",{"2":{"12":2,"72":1,"83":1}}],["in",{"0":{"16":1,"28":1,"30":1},"1":{"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1},"2":{"0":1,"1":1,"4":2,"6":3,"10":1,"12":1,"16":1,"17":4,"18":8,"20":2,"21":10,"22":5,"23":11,"25":2,"26":1,"28":2,"29":3,"30":1,"31":2,"32":1,"33":2,"51":1,"61":1,"68":1,"71":1,"72":30,"73":7,"75":3,"76":22,"77":3,"83":14,"84":16,"85":16}}],["isempty",{"2":{"6":3,"18":5,"72":6}}],["is",{"0":{"51":1},"2":{"0":1,"1":4,"6":2,"15":2,"17":2,"18":7,"21":5,"23":5,"25":3,"26":1,"28":2,"29":3,"31":3,"32":3,"33":7,"72":23,"73":5,"74":5,"75":4,"76":48,"77":5,"78":5,"83":10,"84":8,"85":17}}],["tbw",{"2":{"77":4}}],["timestamps",{"2":{"85":1}}],["timelimitsec",{"2":{"84":1}}],["time",{"2":{"75":1,"76":1,"84":1,"85":27}}],["tips",{"2":{"63":1}}],["typically",{"2":{"74":1}}],["typemax",{"2":{"85":1}}],["typeof",{"2":{"84":6}}],["type",{"2":{"4":4,"15":2,"17":6,"20":2,"22":3,"24":1,"25":1,"26":1,"29":1,"31":1,"72":18,"75":2,"76":3,"77":7,"78":2,"83":11,"84":32,"85":17}}],["types",{"2":{"0":1,"1":2,"15":3,"66":1,"85":8}}],["tutorials",{"0":{"69":1,"70":1},"1":{"70":1,"71":1},"2":{"70":1}}],["tutorial",{"2":{"60":1}}],["tuples",{"2":{"33":6,"72":6}}],["tuple",{"2":{"17":5,"20":5,"22":5,"33":4,"72":9,"83":5}}],["temporary",{"2":{"85":1}}],["terminationstatuscode",{"2":{"84":1}}],["terminology",{"0":{"52":1}}],["testing",{"2":{"77":1,"84":1}}],["test",{"2":{"77":2}}],["teach",{"2":{"64":1}}],["techniques",{"0":{"41":1,"53":1},"1":{"42":1,"43":1},"2":{"74":2,"75":2}}],["tasks",{"2":{"85":1}}],["take",{"2":{"75":1}}],["tabu",{"2":{"67":1,"85":46}}],["targeted",{"2":{"25":1,"72":1,"76":1,"83":1,"85":3}}],["tailoring",{"2":{"15":1,"29":1}}],["t",{"2":{"4":2,"17":8,"20":11,"22":11,"26":1,"72":17,"83":12,"84":12,"85":7}}],["tr",{"2":{"76":58}}],["try",{"2":{"75":1}}],["tries",{"2":{"75":1}}],["train",{"2":{"77":2,"78":3}}],["training",{"2":{"76":1,"77":7}}],["transform",{"2":{"78":1}}],["transformations",{"2":{"76":3}}],["transformation",{"2":{"76":5}}],["transportation",{"2":{"74":1}}],["transition",{"2":{"1":2}}],["traditional",{"2":{"29":1}}],["true",{"2":{"4":3,"6":1,"8":1,"17":2,"18":3,"20":2,"21":2,"22":2,"23":2,"26":1,"31":1,"33":1,"72":11,"76":2,"77":1,"83":5,"84":2,"85":3}}],["two",{"2":{"4":1,"17":1,"20":3,"22":3,"33":1,"72":4,"73":1,"83":3,"84":1}}],["threads",{"2":{"85":8}}],["through",{"2":{"29":1,"46":1,"76":3,"77":2}}],["than",{"2":{"76":8,"84":2}}],["that",{"2":{"0":1,"1":6,"2":1,"14":1,"17":2,"18":2,"20":1,"21":2,"22":2,"23":2,"25":1,"29":1,"31":5,"32":2,"33":10,"61":1,"72":24,"73":3,"74":4,"75":5,"76":11,"77":3,"78":1,"83":10,"84":11,"85":10}}],["th",{"2":{"76":1}}],["those",{"2":{"29":1}}],["this",{"2":{"1":3,"2":1,"14":1,"15":1,"16":1,"25":1,"28":1,"29":3,"33":5,"72":6,"80":1,"82":1,"83":1,"85":3}}],["theory",{"0":{"46":1}}],["they",{"2":{"42":1,"48":1,"73":1,"74":1,"75":1}}],["them",{"2":{"33":1,"72":1,"73":1,"85":1}}],["then",{"2":{"25":1,"72":1,"83":1,"85":2}}],["these",{"2":{"15":1,"29":3,"75":1}}],["thereby",{"2":{"1":1,"14":1}}],["their",{"0":{"42":1},"2":{"1":1,"29":1,"43":1}}],["the",{"0":{"48":1},"2":{"0":2,"1":19,"2":7,"4":2,"6":3,"8":1,"10":5,"12":2,"14":4,"15":14,"16":5,"17":8,"18":6,"20":5,"21":9,"22":6,"23":10,"25":13,"26":5,"28":2,"29":19,"30":3,"31":16,"32":7,"33":26,"46":1,"48":1,"49":1,"55":1,"58":1,"61":3,"64":1,"68":1,"71":1,"72":92,"73":4,"74":3,"75":3,"76":133,"77":17,"78":2,"82":1,"83":53,"84":17,"85":120}}],["towards",{"2":{"76":1}}],["too",{"2":{"75":1}}],["tool",{"2":{"28":1}}],["toolkit",{"2":{"16":1}}],["tools",{"0":{"31":1},"2":{"15":1,"30":2}}],["topics",{"2":{"70":1}}],["together",{"2":{"32":1,"72":1,"83":1}}],["total",{"2":{"21":1,"23":1,"76":1}}],["todo",{"0":{"3":1,"5":1,"7":1,"9":1,"11":1,"13":1},"2":{"31":1,"72":1,"85":1}}],["to",{"0":{"18":1,"21":1,"23":1,"46":1,"61":1},"2":{"0":1,"1":2,"2":1,"4":1,"6":1,"8":1,"10":1,"12":1,"15":6,"17":4,"18":6,"20":2,"21":4,"22":1,"23":4,"25":3,"26":2,"28":2,"29":4,"30":2,"31":4,"32":2,"33":5,"48":1,"60":1,"61":1,"64":1,"71":1,"72":28,"73":3,"74":5,"75":9,"76":59,"77":12,"78":3,"80":1,"82":1,"83":13,"84":10,"85":49}}],["epoch",{"2":{"85":1}}],["err",{"2":{"84":3}}],["error",{"2":{"29":2,"31":7,"32":5,"72":10,"76":1,"77":1,"83":10,"84":4,"85":4}}],["eq",{"2":{"76":16,"84":2}}],["equality",{"2":{"84":1}}],["equal",{"2":{"35":1,"76":4,"84":3}}],["equivalent",{"2":{"18":1,"21":1,"23":1,"72":1}}],["euclidian",{"2":{"76":6}}],["especially",{"2":{"75":1}}],["essential",{"2":{"0":1,"15":1,"29":1,"59":1}}],["easy",{"2":{"73":1,"82":1}}],["ease",{"2":{"1":1,"16":1,"58":1}}],["each",{"2":{"21":1,"23":1,"31":1,"55":1,"56":1,"72":2,"76":1,"83":1,"85":1}}],["either",{"2":{"17":1,"20":1,"22":1,"72":1,"73":1,"76":3,"83":1}}],["educational",{"2":{"16":1,"30":1}}],["efficiency",{"2":{"16":1,"74":1}}],["efficiently",{"2":{"8":1,"84":1}}],["efficient",{"2":{"1":1,"63":1,"76":1}}],["embodies",{"2":{"16":1,"30":1,"33":2,"72":2}}],["empty",{"2":{"32":1,"72":1,"77":2,"83":1,"84":4,"85":11}}],["emptydomain",{"2":{"15":1,"17":2,"20":1,"22":1,"72":2,"83":1}}],["empowering",{"0":{"16":1}}],["emphasizes",{"2":{"1":1}}],["evaluation",{"2":{"77":1}}],["evaluated",{"2":{"29":1,"85":1}}],["evolves",{"2":{"85":1}}],["evolve",{"2":{"15":1}}],["everuseful",{"2":{"12":1}}],["elementary",{"0":{"40":1}}],["element",{"2":{"37":1,"77":2,"85":1}}],["elements",{"2":{"1":1,"8":1,"15":2,"17":1,"29":1,"72":2,"76":16,"83":2}}],["eltype",{"2":{"24":3,"72":3,"77":2}}],["eliminating",{"2":{"1":1}}],["exclu",{"2":{"76":3}}],["exclusive",{"2":{"76":8,"77":3}}],["excluded",{"2":{"33":1,"72":1}}],["exact",{"2":{"75":4}}],["example2",{"2":{"33":1,"72":1}}],["examples",{"2":{"33":2,"72":2,"80":1}}],["examine",{"2":{"29":1}}],["existing",{"2":{"73":1,"74":1}}],["express",{"2":{"84":1}}],["expansion",{"2":{"76":1}}],["export",{"2":{"76":1,"85":1}}],["explanation",{"2":{"66":1}}],["explicitly",{"2":{"33":2,"72":2}}],["explicit",{"2":{"33":2,"72":2}}],["explored",{"2":{"76":1}}],["explore",{"2":{"25":4,"72":4,"76":3,"83":1}}],["exploresettings",{"2":{"15":1,"25":1,"72":1,"83":1}}],["exploring",{"0":{"14":1,"54":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"55":1},"2":{"16":1}}],["explorations",{"2":{"29":1}}],["exploration",{"0":{"25":1},"2":{"8":1,"15":4,"25":2,"26":1,"72":3,"83":1}}],["experimental",{"0":{"71":1},"2":{"71":1}}],["experiments",{"0":{"69":1},"1":{"70":1,"71":1},"2":{"71":1}}],["experience",{"2":{"1":1}}],["expect",{"2":{"61":1}}],["expected",{"2":{"31":2,"72":2,"76":1,"83":2}}],["externally",{"2":{"85":1}}],["external",{"2":{"15":1}}],["extend",{"2":{"17":1,"24":1,"72":2,"82":1,"83":1}}],["extends",{"2":{"6":3,"18":7,"21":4,"23":4,"24":1,"26":2,"72":7,"77":3}}],["extended",{"2":{"6":1,"76":19}}],["extensions",{"0":{"6":1},"1":{"7":1}}],["extension",{"0":{"18":1,"21":1,"23":1,"80":1},"2":{"1":1,"33":6,"72":6,"80":1}}],["extrema",{"0":{"10":1},"1":{"11":1},"2":{"10":3,"72":2,"77":1,"83":2,"85":3}}],["extracts",{"2":{"2":1,"32":1,"72":1,"83":1}}],["extract",{"2":{"2":2,"32":1,"72":1,"83":1}}],["e",{"2":{"1":1,"66":1,"76":1,"85":1}}],["entry",{"2":{"85":1}}],["enforcing",{"2":{"33":2,"72":2}}],["encoding",{"2":{"78":5}}],["encode",{"2":{"77":1}}],["encourage",{"2":{"48":1}}],["encompass",{"2":{"33":1,"72":1}}],["encapsulate",{"2":{"85":2}}],["encapsulating",{"2":{"29":1}}],["encapsuler",{"2":{"20":1,"72":1}}],["enough",{"2":{"26":1,"72":1}}],["enhancement",{"2":{"29":1}}],["enhances",{"2":{"16":1,"30":1}}],["enhancing",{"2":{"1":2,"29":1}}],["enabling",{"0":{"30":1},"2":{"14":1}}],["enabled",{"2":{"85":1}}],["enable",{"2":{"1":1}}],["end``",{"2":{"85":1}}],["end",{"2":{"1":1,"4":2,"72":2,"84":6,"85":4}}],["ensure",{"2":{"78":1}}],["ensures",{"2":{"1":1,"29":1}}],["ensuring",{"2":{"1":2,"33":4,"72":4,"77":3,"84":9}}],["environment",{"0":{"59":1},"2":{"1":1}}],["etc",{"2":{"1":1}}],["ecosystem",{"2":{"0":1,"1":3,"14":1,"16":1,"28":1,"30":1,"73":1}}],["jacop",{"2":{"73":1}}],["jump",{"2":{"73":1,"84":6,"85":1}}],["juliajump",{"2":{"84":1}}],["juliabinarize",{"2":{"78":1}}],["juliabase",{"2":{"6":3,"18":15,"20":1,"21":13,"22":1,"23":14,"24":2,"26":4,"72":19,"76":1,"83":1,"84":2}}],["juliaqubo",{"2":{"77":1,"78":2}}],["juliaqubogradientoptimizer",{"2":{"77":1}}],["juliapost",{"2":{"85":1}}],["juliapredicate",{"2":{"84":1}}],["juliapredict",{"2":{"77":1}}],["juliapreliminaries",{"2":{"77":1}}],["juliaparameter",{"2":{"77":1}}],["juliaparams",{"2":{"31":1,"72":1,"83":1}}],["juliao",{"2":{"85":1}}],["juliaoptions",{"2":{"85":1}}],["juliaoptimizer",{"2":{"84":2}}],["juliaoptimize",{"2":{"77":1}}],["juliaobjective",{"2":{"85":4}}],["juliaoversample",{"2":{"8":1,"72":1,"83":1}}],["juliano",{"2":{"77":1}}],["julianbits",{"2":{"76":2}}],["juliaweigths",{"2":{"76":3}}],["juliatrain",{"2":{"77":2,"78":1}}],["juliatransformation",{"2":{"76":1}}],["juliatr",{"2":{"76":19}}],["juliato",{"2":{"17":1,"72":1,"83":1}}],["juliaremote",{"2":{"85":2}}],["juliaregularization",{"2":{"76":1}}],["juliareduce",{"2":{"76":1}}],["juliarangedomain",{"2":{"22":1,"72":1,"83":1}}],["juliahamming",{"2":{"76":1}}],["juliafunctions",{"2":{"76":1}}],["juliafake",{"2":{"26":1,"72":1}}],["juliafakeautomaton",{"2":{"26":1,"72":1}}],["julialoss",{"2":{"77":1}}],["julialeadsolver",{"2":{"85":1}}],["julialearn",{"2":{"76":1}}],["julialength",{"2":{"21":1,"23":1,"76":1,"85":5}}],["julialazy",{"2":{"76":2}}],["julialayers",{"2":{"76":1}}],["julialayer",{"2":{"76":1}}],["juliais",{"2":{"76":1,"78":1,"85":2}}],["juliaicnlocalsearchoptimizer",{"2":{"77":1}}],["juliaicngeneticoptimizer",{"2":{"77":1}}],["juliaicnconfig",{"2":{"77":1}}],["juliaicn",{"2":{"76":1,"77":1}}],["juliaintersect",{"2":{"20":1,"22":1,"72":1,"83":1}}],["juliaintervals",{"2":{"20":1,"72":1}}],["juliaincsert",{"2":{"12":1,"72":1,"83":1}}],["juliacompose",{"2":{"76":2}}],["juliacompositionalnetworks",{"2":{"77":2}}],["juliacomposition",{"2":{"76":3}}],["juliacomparison",{"2":{"76":1}}],["juliacode",{"2":{"76":1}}],["juliaco",{"2":{"76":9}}],["juliaconcept",{"2":{"31":1,"72":1,"83":1}}],["juliacontinuousdomain",{"2":{"20":1,"72":1,"83":1}}],["juliaconstriction",{"2":{"85":1}}],["juliaconstraint",{"0":{"48":1,"54":1},"1":{"55":1},"2":{"31":1,"49":1,"55":1,"61":1,"72":1,"83":1,"85":3}}],["juliaconstraintcommons",{"2":{"4":1,"26":1,"72":1}}],["juliaconstraints",{"0":{"14":1,"73":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"74":1,"75":1},"2":{"1":3,"16":1,"28":1,"29":1,"30":1,"73":6}}],["juliaconst",{"2":{"2":2,"72":2,"77":2}}],["juliac",{"2":{"33":2,"72":2}}],["juliastop",{"2":{"85":1}}],["juliastatus",{"2":{"85":1}}],["juliastruct",{"2":{"76":1,"77":1}}],["juliaspecialize",{"2":{"85":2}}],["juliasolve",{"2":{"85":2}}],["juliasolution",{"2":{"85":1}}],["juliascalarfunction",{"2":{"84":1}}],["juliasub",{"2":{"77":1}}],["juliasymbols",{"2":{"76":1}}],["juliasymbol",{"2":{"76":1}}],["juliasymmetries",{"2":{"31":1,"72":1,"83":1}}],["juliashow",{"2":{"76":2}}],["juliashrink",{"2":{"31":1,"72":1}}],["juliaselected",{"2":{"76":1}}],["juliasetdomain",{"2":{"22":1,"72":1}}],["juliausual",{"2":{"31":1,"32":1,"72":2,"83":2}}],["juliageneralstate",{"2":{"85":1}}],["juliagenerate",{"2":{"26":1,"72":1,"76":3,"77":1,"83":1}}],["juliaget",{"2":{"17":1,"72":1,"83":1,"85":12}}],["juliamodel",{"2":{"85":1}}],["juliamoi",{"2":{"84":11}}],["juliamoisumequalparam",{"2":{"84":1}}],["juliamoisequentialtasks",{"2":{"84":1}}],["juliamoipredicate",{"2":{"84":1}}],["juliamoiordered",{"2":{"84":1}}],["juliamoiminusequalparam",{"2":{"84":1}}],["juliamoilessthanparam",{"2":{"84":1}}],["juliamoierror",{"2":{"84":1}}],["juliamoieq",{"2":{"84":1}}],["juliamoidistdifferent",{"2":{"84":1}}],["juliamoialwaystrue",{"2":{"84":1}}],["juliamoiallequalparam",{"2":{"84":1}}],["juliamoiallequal",{"2":{"84":1}}],["juliamoialldifferent",{"2":{"84":1}}],["juliamts",{"2":{"85":1}}],["juliamutually",{"2":{"77":1}}],["juliaminkowski",{"2":{"76":1}}],["juliamax",{"2":{"85":1}}],["juliamainsolver",{"2":{"85":1}}],["juliamake",{"2":{"77":3}}],["juliamap",{"2":{"76":1}}],["juliamanhattan",{"2":{"76":1}}],["juliamerge",{"2":{"20":1,"22":1,"72":1,"83":1}}],["juliamdd",{"2":{"4":1,"72":1,"83":1}}],["juliavariable",{"2":{"85":3}}],["juliavar",{"2":{"18":1,"21":1,"23":1,"85":1}}],["juliaxcsp",{"2":{"33":2,"72":2}}],["juliax",{"2":{"18":1,"21":1,"23":1,"85":1}}],["juliad",{"2":{"85":1}}],["juliadist",{"2":{"85":1}}],["juliadiscreteset",{"2":{"84":1}}],["juliadiscretedomain",{"2":{"22":1,"72":1,"83":1}}],["juliadraw",{"2":{"85":1}}],["juliadescribe",{"2":{"85":1}}],["juliadelete",{"2":{"85":2}}],["juliadebinarize",{"2":{"78":1}}],["juliad1",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["juliadomain",{"2":{"17":6,"20":6,"22":6,"72":6,"77":1,"83":6,"85":1}}],["juliaempty",{"2":{"85":2}}],["juliaemptydomain",{"2":{"17":1,"72":1}}],["juliaerror",{"2":{"31":1,"72":1,"83":1,"84":1}}],["juliaexclu",{"2":{"76":1}}],["juliaexplore",{"2":{"25":1,"72":1,"76":1,"83":1}}],["juliaexploresettings",{"2":{"25":1,"72":1,"83":1}}],["juliaextract",{"2":{"2":1,"32":1,"72":1,"83":1}}],["juliaδ",{"2":{"10":1,"72":1,"77":1,"83":1}}],["juliaas",{"2":{"76":2}}],["juliaarithmetic",{"2":{"76":1}}],["juliaar",{"2":{"76":2}}],["juliaargs",{"2":{"31":1,"72":1,"83":1}}],["juliaaggregation",{"2":{"76":1}}],["juliaag",{"2":{"76":2}}],["juliaadd",{"2":{"22":1,"72":1,"83":1,"85":2}}],["juliaat",{"2":{"4":1,"72":1}}],["juliaaccept",{"2":{"4":1,"26":1,"72":1,"83":1}}],["juliaautomaton",{"2":{"4":2,"72":2,"83":2}}],["juliaabstractsolver",{"2":{"85":1}}],["juliaabstractoptimizer",{"2":{"78":1}}],["juliaabstractdomain",{"2":{"17":1,"72":1,"83":1}}],["juliaabstractautomaton",{"2":{"4":1,"72":1}}],["juliaabstractmultivalueddecisiondiagram",{"2":{"4":1,"72":1}}],["julia",{"0":{"16":1,"28":1,"57":1,"58":1,"59":1,"60":1,"61":1},"1":{"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"58":1,"59":1,"60":1},"2":{"0":2,"4":2,"14":1,"22":1,"25":1,"29":2,"30":1,"32":1,"58":1,"59":1,"60":1,"72":5,"73":8,"76":6,"77":1,"83":2,"84":14,"85":81}}],["join",{"2":{"48":1}}],["joining",{"0":{"48":1}}],["jl",{"0":{"0":1,"14":1,"27":1,"28":1,"76":1,"77":1,"78":1,"79":1,"81":1,"84":1,"85":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1},"2":{"0":1,"1":4,"14":1,"15":3,"16":2,"27":1,"28":1,"29":3,"30":3,"32":1,"72":1,"73":8,"76":1,"77":1,"78":1,"79":1,"80":2,"81":1,"83":1,"84":1,"85":2}}]],"serializationVersion":2}';export{i as default}; diff --git a/dev/assets/chunks/@localSearchIndexroot.DywB8f3e.js b/dev/assets/chunks/@localSearchIndexroot.DywB8f3e.js new file mode 100644 index 0000000..ea9c3c9 --- /dev/null +++ b/dev/assets/chunks/@localSearchIndexroot.DywB8f3e.js @@ -0,0 +1 @@ +const i='{"documentCount":86,"nextId":86,"documentIds":{"0":"/dev/constraints/constraint_commons#ConstraintCommons.jl","1":"/dev/constraints/constraint_commons#Key-Features-and-Functionalities","2":"/dev/constraints/constraint_commons#Parameters","3":"/dev/constraints/constraint_commons#Performances-–-TODO","4":"/dev/constraints/constraint_commons#Languages","5":"/dev/constraints/constraint_commons#Performances-–-TODO-2","6":"/dev/constraints/constraint_commons#Extensions","7":"/dev/constraints/constraint_commons#Performances-–-TODO-3","8":"/dev/constraints/constraint_commons#Sampling","9":"/dev/constraints/constraint_commons#Performances-–-TODO-4","10":"/dev/constraints/constraint_commons#Extrema","11":"/dev/constraints/constraint_commons#Performances-–-TODO-5","12":"/dev/constraints/constraint_commons#Dictionaries","13":"/dev/constraints/constraint_commons#Performances-–-TODO-6","14":"/dev/constraints/constraint_domains#ConstraintDomains.jl:-Defining-and-Exploring-Variable-Domains-within-JuliaConstraints","15":"/dev/constraints/constraint_domains#Key-Features-and-Functionalities","16":"/dev/constraints/constraint_domains#Empowering-Constraint-Programming-in-Julia","17":"/dev/constraints/constraint_domains#Commons","18":"/dev/constraints/constraint_domains#Extension-to-Base-module","19":"/dev/constraints/constraint_domains#Performances","20":"/dev/constraints/constraint_domains#Continuous","21":"/dev/constraints/constraint_domains#Extension-to-Base-module-2","22":"/dev/constraints/constraint_domains#Discrete","23":"/dev/constraints/constraint_domains#Extension-to-Base-module-3","24":"/dev/constraints/constraint_domains#General","25":"/dev/constraints/constraint_domains#Exploration","26":"/dev/constraints/constraint_domains#Parameters","27":"/dev/constraints/constraint_models#ConstraintModels.jl","28":"/dev/constraints/constraints#Constraints.jl:-Streamlining-Constraint-Definition-and-Integration-in-Julia","29":"/dev/constraints/constraints#Key-Features-and-Functionalities","30":"/dev/constraints/constraints#Enabling-Advanced-Modeling-in-Constraint-Programming","31":"/dev/constraints/constraints#Basic-tools","32":"/dev/constraints/constraints#Usual-constraints-(based-on-and-including-XCSP3-core-categories)","33":"/dev/constraints/constraints#Generic-Constraints","34":"/dev/constraints/constraints#Constraints-defined-from-Languages","35":"/dev/constraints/constraints#Comparison-based-Constraints","36":"/dev/constraints/constraints#Counting-and-Summing-Constraints","37":"/dev/constraints/constraints#SECTION-Connection-Constraints","38":"/dev/constraints/constraints#SECTION-Packing-and-Scheduling-Constraints","39":"/dev/constraints/constraints#SECTION-Constraints-on-Graphs","40":"/dev/constraints/constraints#SECTION-Elementary-Constraints","41":"/dev/cp/advanced#Advanced-Constraint-Programming-Techniques","42":"/dev/cp/advanced#Global-Constraints-and-Their-Uses","43":"/dev/cp/advanced#Search-Strategies-and-Optimization","44":"/dev/cp/applications#Applying-Optimization-Methods","45":"/dev/cp/applications#Case-Studies-and-Real-World-Applications","46":"/dev/cp/applications#From-Theory-to-Practice","47":"/dev/cp/contribution#Community-and-Contribution","48":"/dev/cp/contribution#Joining-the-JuliaConstraint-Community","49":"/dev/cp/contribution#Future-Directions","50":"/dev/cp/cp101#Constraint-Programming-101","51":"/dev/cp/cp101#What-is-Constraint-Programming?","52":"/dev/cp/cp101#Basic-Concepts-and-Terminology","53":"/dev/cp/cp101#How-CP-differs-from-other-optimization-techniques","54":"/dev/cp/ecosystem#Exploring-JuliaConstraint-Packages","55":"/dev/cp/ecosystem#Package-Overviews","56":"/dev/cp/ecosystem#Installation-and-Getting-Started-Guides","57":"/dev/cp/getting_started#Getting-Started-with-Julia-for-CP-and-Optimization","58":"/dev/cp/getting_started#Why-Julia?","59":"/dev/cp/getting_started#Setting-Up-Your-Julia-Environment","60":"/dev/cp/getting_started#Your-First-Julia-CP-Model","61":"/dev/cp/intro#Welcome-to-Julia-Constraints","62":"/dev/cp/models#Building-and-Analyzing-Models","63":"/dev/cp/models#Modeling-Best-Practices","64":"/dev/cp/models#Performance-Analysis-and-Improvement","65":"/dev/cp/opt#Dive-into-Optimization","66":"/dev/cp/opt#Understanding-Optimization","67":"/dev/cp/opt#Metaheuristics-Overview","68":"/dev/cp/opt#Mathematical-Programming-Basics","69":"/dev/cp/tuto_xp#Tutorials-and-Experiments","70":"/dev/cp/tuto_xp#Hands-On-Tutorials","71":"/dev/cp/tuto_xp#Experimental-Analysis","72":"/dev/full_api#Full-API","73":"/dev/index-old#JuliaConstraints","74":"/dev/index-old#Operational-Research-vs-Constraint-Programming","75":"/dev/index-old#Constraint-Based-Local-Search","76":"/dev/learning/constraint_learning#ConstraintLearning.jl","77":"/dev/learning/qubo_constraints#QUBOConstraints.jl","78":"/dev/learning/compositional_networks#CompositionalNetworks.jl","79":"/dev/meta/meta_strategist#MetaStrategist.jl","80":"/dev/perf/benchmark_ext#BenchmarkTools-Extension","81":"/dev/perf/perf_checker#PerfChecker.jl","82":"/dev/perf/perf_interface#Interfacing-PerfChecker","83":"/dev/public_api#Public-API","84":"/dev/solvers/cbls#CBLS.jl","85":"/dev/solvers/local_search_solvers#LocalSearchSolvers.jl"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,46],"1":[4,2,162],"2":[1,2,59],"3":[2,4,1],"4":[1,2,92],"5":[2,4,1],"6":[1,2,41],"7":[2,4,1],"8":[1,2,42],"9":[2,4,1],"10":[1,2,31],"11":[2,4,1],"12":[1,2,36],"13":[2,4,1],"14":[9,1,42],"15":[4,9,167],"16":[5,9,54],"17":[1,9,141],"18":[4,10,92],"19":[1,10,1],"20":[1,9,131],"21":[4,10,99],"22":[1,9,143],"23":[4,10,103],"24":[1,9,19],"25":[1,9,96],"26":[1,9,102],"27":[2,1,5],"28":[9,1,39],"29":[4,9,169],"30":[6,9,56],"31":[2,9,119],"32":[10,9,114],"33":[2,18,151],"34":[4,18,13],"35":[3,18,15],"36":[4,18,15],"37":[3,1,15],"38":[5,1,14],"39":[4,1,12],"40":[3,1,12],"41":[4,1,1],"42":[5,4,12],"43":[4,4,12],"44":[3,1,1],"45":[6,3,11],"46":[4,3,18],"47":[3,1,1],"48":[4,3,14],"49":[2,3,13],"50":[3,1,1],"51":[5,3,10],"52":[4,3,10],"53":[7,3,10],"54":[3,1,1],"55":[2,3,13],"56":[5,1,13],"57":[8,1,1],"58":[3,8,16],"59":[5,8,12],"60":[5,8,14],"61":[4,1,35],"62":[4,1,1],"63":[3,4,12],"64":[4,4,11],"65":[3,1,1],"66":[2,3,12],"67":[2,3,11],"68":[3,3,12],"69":[3,1,1],"70":[3,3,11],"71":[2,3,15],"72":[2,1,570],"73":[1,1,122],"74":[5,2,93],"75":[4,2,80],"76":[2,1,232],"77":[2,1,106],"78":[2,1,403],"79":[2,1,5],"80":[2,1,26],"81":[2,1,5],"82":[2,1,18],"83":[2,1,395],"84":[2,1,251],"85":[2,1,506]},"averageFieldLength":[3.1627906976744184,4.325581395348836,64.79069767441861],"storedFields":{"0":{"title":"ConstraintCommons.jl","titles":[]},"1":{"title":"Key Features and Functionalities","titles":["ConstraintCommons.jl"]},"2":{"title":"Parameters","titles":["ConstraintCommons.jl"]},"3":{"title":"Performances – TODO","titles":["ConstraintCommons.jl","Parameters",null]},"4":{"title":"Languages","titles":["ConstraintCommons.jl"]},"5":{"title":"Performances – TODO","titles":["ConstraintCommons.jl","Languages",null]},"6":{"title":"Extensions","titles":["ConstraintCommons.jl"]},"7":{"title":"Performances – TODO","titles":["ConstraintCommons.jl","Extensions",null]},"8":{"title":"Sampling","titles":["ConstraintCommons.jl"]},"9":{"title":"Performances – TODO","titles":["ConstraintCommons.jl","Sampling",null]},"10":{"title":"Extrema","titles":["ConstraintCommons.jl"]},"11":{"title":"Performances – TODO","titles":["ConstraintCommons.jl","Extrema",null]},"12":{"title":"Dictionaries","titles":["ConstraintCommons.jl"]},"13":{"title":"Performances – TODO","titles":["ConstraintCommons.jl","Dictionaries",null]},"14":{"title":"ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints","titles":[]},"15":{"title":"Key Features and Functionalities","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints"]},"16":{"title":"Empowering Constraint Programming in Julia","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints"]},"17":{"title":"Commons","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints"]},"18":{"title":"Extension to Base module","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints","Commons"]},"19":{"title":"Performances","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints","Commons"]},"20":{"title":"Continuous","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints"]},"21":{"title":"Extension to Base module","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints","Continuous"]},"22":{"title":"Discrete","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints"]},"23":{"title":"Extension to Base module","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints","Discrete"]},"24":{"title":"General","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints"]},"25":{"title":"Exploration","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints"]},"26":{"title":"Parameters","titles":["ConstraintDomains.jl: Defining and Exploring Variable Domains within JuliaConstraints"]},"27":{"title":"ConstraintModels.jl","titles":[]},"28":{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","titles":[]},"29":{"title":"Key Features and Functionalities","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"30":{"title":"Enabling Advanced Modeling in Constraint Programming","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"31":{"title":"Basic tools","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"32":{"title":"Usual constraints (based on and including XCSP3-core categories)","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"33":{"title":"Generic Constraints","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia","Usual constraints (based on and including XCSP3-core categories)"]},"34":{"title":"Constraints defined from Languages","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia","Usual constraints (based on and including XCSP3-core categories)"]},"35":{"title":"Comparison-based Constraints","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia","Usual constraints (based on and including XCSP3-core categories)"]},"36":{"title":"Counting and Summing Constraints","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia","Usual constraints (based on and including XCSP3-core categories)"]},"37":{"title":"SECTION - Connection Constraints","titles":[]},"38":{"title":"SECTION - Packing and Scheduling Constraints","titles":[]},"39":{"title":"SECTION - Constraints on Graphs","titles":[]},"40":{"title":"SECTION - Elementary Constraints","titles":[]},"41":{"title":"Advanced Constraint Programming Techniques","titles":[]},"42":{"title":"Global Constraints and Their Uses","titles":["Advanced Constraint Programming Techniques"]},"43":{"title":"Search Strategies and Optimization","titles":["Advanced Constraint Programming Techniques"]},"44":{"title":"Applying Optimization Methods","titles":[]},"45":{"title":"Case Studies and Real-World Applications","titles":["Applying Optimization Methods"]},"46":{"title":"From Theory to Practice","titles":["Applying Optimization Methods"]},"47":{"title":"Community and Contribution","titles":[]},"48":{"title":"Joining the JuliaConstraint Community","titles":["Community and Contribution"]},"49":{"title":"Future Directions","titles":["Community and Contribution"]},"50":{"title":"Constraint Programming 101","titles":[]},"51":{"title":"What is Constraint Programming?","titles":["Constraint Programming 101"]},"52":{"title":"Basic Concepts and Terminology","titles":["Constraint Programming 101"]},"53":{"title":"How CP differs from other optimization techniques","titles":["Constraint Programming 101"]},"54":{"title":"Exploring JuliaConstraint Packages","titles":[]},"55":{"title":"Package Overviews","titles":["Exploring JuliaConstraint Packages"]},"56":{"title":"Installation and Getting Started Guides","titles":[]},"57":{"title":"Getting Started with Julia for CP and Optimization","titles":[]},"58":{"title":"Why Julia?","titles":["Getting Started with Julia for CP and Optimization"]},"59":{"title":"Setting Up Your Julia Environment","titles":["Getting Started with Julia for CP and Optimization"]},"60":{"title":"Your First Julia CP Model","titles":["Getting Started with Julia for CP and Optimization"]},"61":{"title":"Welcome to Julia Constraints","titles":[]},"62":{"title":"Building and Analyzing Models","titles":[]},"63":{"title":"Modeling Best Practices","titles":["Building and Analyzing Models"]},"64":{"title":"Performance Analysis and Improvement","titles":["Building and Analyzing Models"]},"65":{"title":"Dive into Optimization","titles":[]},"66":{"title":"Understanding Optimization","titles":["Dive into Optimization"]},"67":{"title":"Metaheuristics Overview","titles":["Dive into Optimization"]},"68":{"title":"Mathematical Programming Basics","titles":["Dive into Optimization"]},"69":{"title":"Tutorials and Experiments","titles":[]},"70":{"title":"Hands-On Tutorials","titles":["Tutorials and Experiments"]},"71":{"title":"Experimental Analysis","titles":["Tutorials and Experiments"]},"72":{"title":"Full API","titles":[]},"73":{"title":"JuliaConstraints","titles":[null]},"74":{"title":"Operational Research vs Constraint Programming","titles":[null,"JuliaConstraints"]},"75":{"title":"Constraint-Based Local Search","titles":[null,"JuliaConstraints"]},"76":{"title":"ConstraintLearning.jl","titles":[]},"77":{"title":"QUBOConstraints.jl","titles":[]},"78":{"title":"CompositionalNetworks.jl","titles":[]},"79":{"title":"MetaStrategist.jl","titles":[]},"80":{"title":"BenchmarkTools Extension","titles":[]},"81":{"title":"PerfChecker.jl","titles":[]},"82":{"title":"Interfacing PerfChecker","titles":[]},"83":{"title":"Public API","titles":[]},"84":{"title":"CBLS.jl","titles":[]},"85":{"title":"LocalSearchSolvers.jl","titles":[]}},"dirtCount":0,"index":[["≠",{"2":{"84":2}}],["|",{"2":{"84":4}}],["|x",{"2":{"84":4}}],["||",{"2":{"33":2,"72":2}}],["σ",{"2":{"77":2}}],["`function",{"2":{"85":1}}],["`struct",{"2":{"85":1}}],["``",{"2":{"84":6}}],["```julia",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["`",{"2":{"76":1}}],["η",{"2":{"76":1}}],["q",{"2":{"76":7}}],["qubooptimizer",{"2":{"76":2}}],["qubo",{"2":{"76":4,"77":5}}],["qubogradientoptimizer",{"2":{"76":4}}],["quboconstraints",{"0":{"77":1},"2":{"1":1,"76":1,"77":8}}],["quot",{"2":{"73":4}}],["yes",{"2":{"85":1}}],["yet",{"2":{"15":1,"17":1,"20":1,"29":1,"72":2}}],["y",{"2":{"73":1,"76":4,"85":2}}],["you",{"2":{"73":1}}],["your",{"0":{"59":1,"60":1}}],["+",{"2":{"33":1,"72":1,"73":1,"78":7}}],["∉",{"2":{"33":3,"72":3}}],["≤",{"2":{"18":4,"21":4,"23":4,"72":4}}],["heuristic",{"2":{"75":2}}],["helps",{"2":{"73":1}}],["help",{"2":{"73":2,"74":1}}],["hot",{"2":{"77":3}}],["hold",{"2":{"76":1}}],["holds",{"2":{"73":1}}],["hosts",{"2":{"73":1}}],["how",{"0":{"53":1},"2":{"29":1,"42":1,"48":1,"64":1,"71":1}}],["high",{"2":{"73":1}}],["highlight",{"2":{"61":1}}],["highlighting",{"2":{"48":1,"58":1}}],["highest",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1,"85":1}}],["https",{"2":{"32":1,"72":1,"83":1}}],["hamming",{"2":{"76":3,"78":4}}],["have",{"2":{"33":1,"45":1,"72":1,"75":1,"78":4}}],["hands",{"0":{"70":1}}],["hand",{"2":{"32":1,"72":1,"74":1,"83":1}}],["handling",{"2":{"28":1,"29":2}}],["handled",{"2":{"20":1,"72":1}}],["handle",{"2":{"17":1,"72":1,"85":2}}],["handles",{"2":{"15":1}}],["half",{"2":{"25":1,"72":1,"83":1}}],["has",{"2":{"8":1,"72":1,"77":1,"78":1,"80":1,"83":1,"85":10}}],["9",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["86",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["89",{"2":{"17":2,"20":2,"22":2,"72":2,"83":2,"85":1}}],["4",{"2":{"17":1,"20":1,"22":1,"33":13,"72":14,"83":1,"84":4,"85":1}}],["42",{"2":{"17":3,"20":3,"22":3,"72":3,"83":3}}],["28",{"2":{"85":1}}],["225",{"2":{"78":1}}],["200",{"2":{"76":1,"78":2}}],["2009",{"2":{"32":1,"72":1,"83":1}}],["2",{"2":{"17":2,"20":2,"22":2,"33":22,"72":24,"83":2,"84":2,"85":1}}],["69",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["56",{"2":{"85":1}}],["53",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["5",{"2":{"17":3,"20":3,"22":3,"33":17,"72":20,"73":1,"83":3,"84":6,"85":1}}],["3",{"2":{"17":4,"20":4,"22":4,"33":15,"72":19,"83":4,"84":2,"85":1}}],["∪",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["00514",{"2":{"32":1,"72":1,"83":1}}],["0",{"2":{"17":4,"18":2,"20":4,"21":1,"22":4,"23":1,"31":2,"32":2,"72":11,"78":16,"83":8,"84":6,"85":9}}],["10",{"2":{"73":1,"78":2,"85":2}}],["101",{"0":{"50":1},"1":{"51":1,"52":1,"53":1}}],["100",{"2":{"25":2,"72":2,"78":2,"83":2,"85":1}}],["10000",{"2":{"85":1}}],["1000",{"2":{"25":1,"72":1,"83":1}}],["10^6",{"2":{"25":1,"72":1,"83":1}}],["123",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["12",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["1",{"2":{"12":2,"17":6,"20":6,"22":6,"33":24,"72":32,"77":2,"78":2,"83":8,"84":2,"85":4}}],["δ",{"2":{"10":1,"72":1,"76":1,"83":1}}],["∈",{"2":{"6":1,"15":1,"17":1,"18":8,"21":8,"23":8,"33":3,"72":9,"83":1,"85":3}}],["vov",{"2":{"84":2}}],["v",{"2":{"78":3,"84":4,"85":3}}],["vi",{"2":{"84":1}}],["viable",{"2":{"78":6}}],["vision",{"2":{"49":1}}],["vital",{"2":{"29":1}}],["vs",{"0":{"74":1},"2":{"31":1}}],["verbose",{"2":{"85":4}}],["verbosity",{"2":{"85":1}}],["very",{"2":{"74":1}}],["versatile",{"2":{"33":2,"72":2}}],["versatility",{"2":{"16":1}}],["vectorofvariables",{"2":{"84":1}}],["vectors",{"2":{"78":3}}],["vector",{"2":{"4":1,"17":1,"18":4,"20":2,"21":3,"22":1,"23":3,"25":1,"26":1,"33":6,"72":13,"77":2,"78":23,"83":3,"84":2,"85":1}}],["var",{"2":{"85":12}}],["variety",{"2":{"75":1}}],["variants",{"2":{"33":2,"72":2}}],["variableinfo",{"2":{"84":1}}],["variables",{"2":{"32":1,"33":2,"52":1,"72":3,"73":1,"77":2,"78":6,"83":1,"84":5,"85":26}}],["variable",{"0":{"14":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1},"2":{"14":1,"15":1,"16":1,"18":3,"21":3,"23":3,"29":1,"78":2,"84":4,"85":40}}],["various",{"2":{"10":1,"15":1,"17":1,"29":1,"43":1,"70":1,"72":1,"75":1,"83":1}}],["vars=dictionary",{"2":{"85":1}}],["vars=",{"2":{"33":5,"72":5}}],["vars",{"2":{"2":1,"33":12,"72":13,"78":6,"84":2,"85":24}}],["valparameterdomain",{"2":{"26":1}}],["value",{"2":{"18":8,"21":7,"22":2,"23":10,"26":1,"31":3,"72":13,"77":1,"78":5,"83":8,"84":6,"85":20}}],["values",{"2":{"17":2,"20":2,"22":3,"31":2,"72":5,"83":4,"84":6,"85":11}}],["validity",{"2":{"33":1,"72":1}}],["valid",{"2":{"17":1,"33":3,"72":4,"74":2,"77":5,"83":1}}],["valsparameterdomain",{"2":{"26":1}}],["vals",{"2":{"2":1,"72":1,"78":8}}],["val",{"2":{"2":1,"12":2,"17":1,"72":4,"78":20,"83":3,"85":8}}],["x2",{"2":{"85":2}}],["x1",{"2":{"85":2}}],["xto",{"2":{"78":1}}],["x``or",{"2":{"76":1}}],["x̅",{"2":{"76":4}}],["xcsp",{"2":{"29":1,"33":2,"34":2,"35":3,"36":4,"37":4,"38":2,"39":1,"40":1,"72":2}}],["xcsp3",{"0":{"32":1},"1":{"33":1,"34":1,"35":1,"36":1},"2":{"2":3,"4":1,"29":3,"32":1,"72":2,"83":1}}],["x",{"2":{"8":2,"10":2,"18":10,"21":10,"23":10,"31":6,"33":16,"72":33,"73":2,"76":33,"77":8,"78":168,"83":10,"84":31,"85":68}}],["x3c",{"2":{"4":3,"17":6,"18":9,"20":11,"21":8,"22":11,"23":8,"26":4,"72":29,"76":1,"78":2,"83":14,"84":29,"85":91}}],["known",{"2":{"78":2,"85":1}}],["k",{"2":{"78":2,"85":1}}],["keep",{"2":{"77":1}}],["keyword",{"2":{"85":1}}],["keywords",{"2":{"78":1}}],["key",{"0":{"1":1,"15":1,"29":1},"2":{"52":1}}],["kind=",{"2":{"85":1}}],["kind",{"2":{"10":1,"25":1,"26":1,"72":2,"83":1,"85":6}}],["kinds",{"2":{"4":1}}],["kargs",{"2":{"2":1,"32":1,"72":1,"76":6,"83":1}}],["==",{"2":{"18":1,"72":1,"77":1}}],["=",{"2":{"2":1,"12":2,"17":9,"18":4,"20":9,"21":4,"22":9,"23":4,"25":7,"31":2,"33":4,"72":29,"73":1,"76":12,"77":4,"78":19,"83":20,"84":35,"85":49}}],["nbits",{"2":{"78":2}}],["nbsp",{"2":{"2":2,"4":7,"6":3,"8":1,"10":1,"12":1,"17":6,"18":5,"20":7,"21":4,"22":9,"23":5,"24":2,"25":3,"26":5,"31":8,"32":2,"33":2,"72":67,"76":28,"77":7,"78":77,"83":35,"84":45,"85":142}}],["nvars",{"2":{"78":12}}],["nvalues",{"2":{"36":1}}],["n",{"2":{"77":3,"78":4}}],["name=",{"2":{"78":1}}],["name",{"2":{"32":7,"72":7,"78":6,"83":7,"85":8}}],["nature",{"2":{"20":1,"22":1,"72":1,"83":1}}],["normalized",{"2":{"78":1}}],["norm",{"2":{"78":2}}],["no",{"2":{"32":1,"33":1,"38":1,"72":2,"76":1,"78":2,"83":1}}],["nonnegative",{"2":{"84":1}}],["none",{"2":{"77":1,"84":6}}],["nonlinear",{"2":{"66":1}}],["non",{"2":{"25":2,"72":2,"76":4,"83":2,"85":1}}],["not",{"2":{"20":1,"33":3,"72":4,"77":1,"78":2,"84":1,"85":1}}],["nothing",{"2":{"6":5,"18":4,"21":2,"23":2,"25":1,"31":4,"33":2,"72":11,"76":2,"78":4,"83":5,"84":2}}],["notebooks",{"2":{"80":1}}],["note",{"2":{"2":1,"32":1,"72":1,"83":1,"84":1}}],["number",{"2":{"17":1,"21":3,"22":2,"23":3,"25":3,"31":2,"72":9,"76":2,"77":3,"78":28,"83":7,"84":6,"85":12}}],["numbers",{"2":{"15":2,"78":2}}],["neighbours",{"2":{"85":2}}],["neighbourhood",{"2":{"85":2}}],["never",{"2":{"85":1}}],["network",{"2":{"78":1}}],["networks",{"2":{"74":1}}],["new",{"2":{"29":2,"32":1,"72":1,"73":1,"83":1,"84":6,"85":2}}],["necessary",{"2":{"14":1,"85":3}}],["needs",{"2":{"15":1,"25":1,"32":1,"72":2,"78":1,"83":2}}],["need",{"2":{"1":1,"10":1}}],["write",{"2":{"73":1,"78":2}}],["wrappers",{"2":{"73":1}}],["wrapping",{"2":{"73":1}}],["was",{"2":{"82":1,"85":1}}],["way",{"2":{"33":2,"72":2}}],["warning",{"2":{"31":1,"72":1}}],["why",{"0":{"58":1}}],["what",{"0":{"51":1},"2":{"61":1}}],["whole",{"2":{"31":1,"72":1,"83":1,"85":1}}],["which",{"2":{"18":1,"72":1,"78":2}}],["while",{"2":{"15":1,"74":2,"75":1,"85":5}}],["whether",{"2":{"16":1,"30":1}}],["where",{"2":{"15":1,"17":5,"18":5,"20":5,"21":4,"22":5,"23":4,"26":2,"32":1,"33":1,"45":1,"72":12,"74":1,"75":2,"78":3,"83":6,"84":2,"85":69}}],["when",{"2":{"6":2,"18":2,"21":1,"23":1,"72":2,"76":2,"78":17,"84":1,"85":2}}],["weight",{"2":{"77":1}}],["weigth",{"2":{"78":1}}],["weigthed",{"2":{"78":1}}],["weigthing",{"2":{"76":1}}],["weigths=nothing",{"2":{"78":1}}],["weigths",{"2":{"76":5,"78":17}}],["welcome",{"0":{"61":1}}],["we",{"2":{"6":1,"8":1,"10":1,"12":1,"84":1}}],["w",{"2":{"4":2,"26":2,"72":2,"76":2,"78":2,"83":2}}],["worse",{"2":{"85":3}}],["world",{"0":{"45":1},"2":{"46":1,"61":1}}],["works",{"2":{"31":1,"72":1,"83":1}}],["work",{"2":{"29":2}}],["working",{"2":{"28":1,"30":1}}],["workflows",{"2":{"1":1}}],["workflow",{"2":{"1":1}}],["word",{"2":{"4":6,"26":2,"72":6,"83":1}}],["wide",{"2":{"29":1}}],["will",{"2":{"2":1,"25":1,"32":1,"72":2,"76":1,"77":1,"78":6,"80":1,"82":1,"83":2,"84":2}}],["with",{"0":{"57":1},"1":{"58":1,"59":1,"60":1},"2":{"1":3,"4":1,"15":1,"29":4,"30":1,"31":4,"53":1,"56":1,"72":5,"73":3,"74":3,"75":1,"76":3,"78":28,"80":1,"83":1,"84":2,"85":8}}],["without",{"2":{"1":1,"78":17}}],["within",{"0":{"14":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1},"2":{"0":1,"14":1,"15":1,"28":1,"29":3,"33":6,"55":1,"72":6,"85":1}}],["up",{"0":{"59":1},"2":{"59":1,"85":1}}],["upcoming",{"2":{"49":1}}],["unrolled",{"2":{"78":1}}],["understanding",{"0":{"66":1},"2":{"74":1}}],["underpin",{"2":{"14":1}}],["unacceptable",{"2":{"33":2,"72":2}}],["unique",{"2":{"33":1,"72":1,"84":1}}],["union",{"2":{"2":1,"4":2,"12":1,"18":2,"21":1,"23":1,"24":2,"26":2,"32":1,"72":7,"83":4,"84":2,"85":69}}],["unless",{"2":{"32":1,"72":1,"83":1}}],["unordered",{"2":{"22":1,"72":1}}],["until",{"2":{"8":1,"72":1,"83":1}}],["utility",{"2":{"29":1}}],["utilities",{"2":{"8":1}}],["utilized",{"2":{"0":1,"1":1,"33":1,"72":1}}],["us",{"2":{"84":1}}],["usage",{"2":{"80":1}}],["usability",{"2":{"1":1}}],["using",{"2":{"60":1,"73":1,"76":1}}],["usually",{"2":{"33":1,"72":1,"85":1}}],["usual",{"0":{"32":1},"1":{"33":1,"34":1,"35":1,"36":1},"2":{"2":5,"29":5,"31":1,"32":5,"33":2,"72":11,"83":5}}],["uses",{"0":{"42":1},"2":{"74":2,"75":2,"76":1}}],["useful",{"2":{"33":1,"72":1,"75":2,"85":1}}],["used",{"2":{"4":3,"17":1,"72":4,"74":1,"76":2,"77":1,"78":2,"83":1,"84":2,"85":1}}],["use",{"2":{"1":1,"8":1,"22":1,"29":1,"58":1,"72":1,"75":2,"78":1,"83":1,"84":1,"85":2}}],["user",{"2":{"1":1,"30":1,"85":2}}],["users",{"2":{"1":3,"16":1,"29":2}}],["give",{"2":{"78":1}}],["given",{"2":{"4":1,"31":1,"72":2,"76":6,"77":2,"78":6,"83":2,"84":8}}],["gt",{"2":{"73":1}}],["guides",{"0":{"56":1}}],["guide",{"2":{"46":1,"59":1}}],["greater",{"2":{"78":8}}],["graph",{"2":{"85":1}}],["graphs",{"0":{"39":1}}],["gradient",{"2":{"76":1}}],["groundwork",{"2":{"16":1}}],["good",{"2":{"75":1}}],["goal",{"2":{"73":1}}],["golomb",{"2":{"33":1,"72":1}}],["goes",{"2":{"29":1}}],["global",{"0":{"42":1},"2":{"29":1,"33":4,"42":1,"72":4,"76":2,"78":5,"84":5}}],["genetic",{"2":{"67":1,"76":3,"78":4}}],["generalstate",{"2":{"85":2}}],["general",{"0":{"24":1},"2":{"85":1}}],["generated",{"2":{"78":18}}],["generates",{"2":{"26":1,"72":1,"78":2,"83":1}}],["generate",{"2":{"15":1,"26":2,"72":2,"76":2,"78":13,"83":1}}],["generation",{"2":{"15":1,"78":2}}],["generating",{"2":{"15":2}}],["generic",{"0":{"33":1},"2":{"0":1,"1":2,"33":1,"72":1,"73":1,"84":1,"85":2}}],["getting",{"0":{"56":1,"57":1},"1":{"58":1,"59":1,"60":1},"2":{"56":1}}],["get",{"2":{"15":1,"17":1,"72":1,"83":1,"84":2,"85":17}}],["g",{"2":{"1":1,"66":1,"78":12}}],["gap",{"2":{"1":1}}],["rawoptimizerattribute",{"2":{"84":2}}],["rand",{"2":{"15":1,"17":1,"18":16,"21":9,"23":9,"26":8,"72":13,"83":1,"85":2}}],["randomly",{"2":{"18":2,"21":1,"23":1,"26":1,"72":1,"85":1}}],["random",{"2":{"15":2,"18":2,"21":1,"23":1,"26":2,"72":2,"83":1,"85":2}}],["rangedomain",{"2":{"15":1,"17":1,"20":1,"22":3,"24":2,"72":5,"83":3}}],["ranges",{"2":{"15":3,"22":1,"72":1,"83":1}}],["range",{"2":{"14":1,"15":1,"17":1,"20":1,"22":3,"29":2,"72":3,"83":3}}],["right",{"2":{"78":15}}],["rich",{"2":{"16":1}}],["runtime",{"2":{"85":1}}],["run",{"2":{"76":1,"84":1,"85":5}}],["ruler",{"2":{"33":2,"72":2}}],["round",{"2":{"85":1}}],["routing",{"2":{"74":1}}],["robust",{"2":{"30":1}}],["role",{"2":{"1":1,"68":1}}],["roles",{"2":{"1":1}}],["r",{"2":{"17":2,"20":2,"22":2,"72":2,"83":2}}],["remote",{"2":{"85":2}}],["remotely",{"2":{"85":1}}],["ref",{"2":{"85":6}}],["recommended",{"2":{"84":1,"85":1}}],["recognize",{"2":{"4":1}}],["rev",{"2":{"78":4}}],["relatively",{"2":{"78":1,"85":1}}],["related",{"2":{"76":1,"80":1}}],["relying",{"2":{"1":1}}],["replace",{"2":{"85":1}}],["repositories",{"2":{"73":1}}],["represent",{"2":{"15":1}}],["representing",{"2":{"15":1}}],["reach",{"2":{"78":1}}],["readers",{"2":{"46":1,"48":1,"61":1}}],["realm",{"2":{"16":1}}],["real",{"0":{"45":1},"2":{"15":1,"17":3,"20":5,"22":4,"31":1,"46":1,"61":1,"72":7,"83":6,"84":2}}],["regularization",{"2":{"78":2}}],["regular",{"2":{"34":1}}],["re",{"2":{"32":1,"72":1,"83":1,"85":1}}],["reinforcement",{"2":{"25":1,"72":1,"73":1,"83":1}}],["resume",{"2":{"85":1}}],["result",{"2":{"78":18}}],["results",{"2":{"29":1}}],["resulting",{"2":{"1":1}}],["restart",{"2":{"85":6}}],["restricting",{"2":{"85":2}}],["restriction",{"2":{"31":2,"72":2,"83":2}}],["restricted",{"2":{"18":1,"21":1,"23":1,"85":4}}],["researchers",{"2":{"28":1}}],["research",{"0":{"74":1},"2":{"16":1,"30":1,"49":1,"73":1,"74":1}}],["resources",{"2":{"15":1}}],["respectively",{"2":{"15":1}}],["returns",{"2":{"6":2,"18":5,"21":3,"23":3,"25":1,"26":1,"72":5,"83":1,"85":1}}],["return",{"2":{"4":3,"17":3,"18":5,"20":3,"21":8,"22":3,"23":8,"26":2,"31":6,"72":19,"76":4,"78":23,"83":10,"84":2,"85":21}}],["required",{"2":{"25":1,"72":1,"77":1,"82":1,"83":1}}],["requirements",{"2":{"4":2,"72":2}}],["requiring",{"2":{"1":1}}],["reduce",{"2":{"74":1,"78":3}}],["reduced",{"2":{"25":1,"72":1,"83":1}}],["reducing",{"2":{"1":1}}],["redundant",{"2":{"1":1,"29":1}}],["mts",{"2":{"85":7}}],["move",{"2":{"85":3}}],["moisumequalparam",{"2":{"84":2}}],["moisequentialtasks",{"2":{"84":1}}],["moipredicate",{"2":{"84":2}}],["moiordered",{"2":{"84":1}}],["moiminusequalparam",{"2":{"84":2}}],["moilessthanparam",{"2":{"84":2}}],["moierror",{"2":{"84":5}}],["moieq",{"2":{"84":1}}],["moidistdifferent",{"2":{"84":1}}],["moialwaystrue",{"2":{"84":1}}],["moiallequalparam",{"2":{"84":2}}],["moiallequal",{"2":{"84":1}}],["moialldifferent",{"2":{"84":1}}],["moi",{"2":{"84":22}}],["more",{"2":{"78":1}}],["most",{"2":{"77":1}}],["module",{"0":{"18":1,"21":1,"23":1}}],["modeled",{"2":{"85":1}}],["model",{"0":{"60":1},"2":{"29":1,"33":2,"60":1,"72":2,"84":25,"85":75}}],["modeling",{"0":{"30":1,"63":1},"2":{"1":1,"15":1,"16":1,"30":1,"73":1}}],["models",{"0":{"62":1},"1":{"63":1,"64":1},"2":{"1":1,"15":1,"63":1,"64":1,"73":2,"74":2}}],["mincut",{"2":{"85":2}}],["min",{"2":{"84":1}}],["minkowski",{"2":{"78":1}}],["minusequalparam",{"2":{"84":2}}],["minus",{"2":{"78":24}}],["minimization",{"2":{"84":1}}],["minimizes",{"2":{"1":1}}],["minimum",{"2":{"10":1,"37":1,"72":1,"83":1}}],["minimal",{"2":{"4":2,"72":2,"78":2,"83":2,"85":3}}],["mixed",{"2":{"73":1}}],["mission",{"2":{"61":1}}],["missing",{"2":{"20":2,"22":2,"26":16,"31":4,"32":8,"34":4,"35":6,"36":8,"37":8,"38":4,"39":2,"40":2}}],["metric=hamming",{"2":{"76":1,"78":1}}],["metric",{"2":{"76":6,"78":8}}],["metasolver",{"2":{"85":4}}],["metastrategist",{"0":{"79":1},"2":{"79":1}}],["metadata",{"2":{"73":1}}],["metaheuristics",{"0":{"67":1},"2":{"53":1}}],["method",{"2":{"2":1,"4":2,"6":2,"17":1,"18":3,"20":1,"21":3,"22":1,"23":3,"32":1,"72":56,"76":26,"77":6,"78":86,"82":1,"83":27,"84":14,"85":128}}],["methods",{"0":{"44":1},"1":{"45":1,"46":1},"2":{"0":1,"1":2,"4":1,"15":2,"17":1,"26":1,"29":2,"53":1,"72":2,"78":2,"83":1,"85":3}}],["meaningful",{"2":{"71":1}}],["means",{"2":{"32":2,"72":2,"83":2}}],["measurement",{"2":{"85":1}}],["measure",{"2":{"29":1,"78":2}}],["merge",{"2":{"15":1,"20":2,"22":2,"72":2,"83":2,"85":1}}],["merging",{"2":{"15":1}}],["membership",{"2":{"15":1}}],["mutable",{"2":{"85":2}}],["mutually",{"2":{"76":1,"78":4}}],["much",{"2":{"75":1}}],["must",{"2":{"15":1,"17":1,"22":1,"33":2,"72":4,"74":1,"83":2,"84":1}}],["multithreading",{"2":{"85":1}}],["multithreaded",{"2":{"85":1}}],["multiplication",{"2":{"6":1,"72":1}}],["multiple",{"2":{"1":1}}],["multivalued",{"2":{"4":4,"72":3,"83":2}}],["macro",{"2":{"84":1}}],["mainsolver",{"2":{"85":7}}],["mainly",{"2":{"84":1}}],["main",{"2":{"78":1,"85":5}}],["map",{"2":{"78":1}}],["may",{"2":{"75":1}}],["matter",{"2":{"84":1}}],["mathoptinterface",{"2":{"84":12}}],["maths",{"2":{"78":1}}],["mathematical",{"0":{"68":1},"2":{"68":1,"74":2,"75":1}}],["matrix",{"2":{"76":2,"77":2}}],["matrices",{"2":{"76":1,"77":1}}],["match",{"2":{"33":3,"72":3}}],["matches",{"2":{"33":3,"72":3}}],["marks",{"2":{"33":2,"72":2}}],["made",{"2":{"32":1,"72":1,"83":1}}],["making",{"2":{"28":1,"75":1}}],["makes",{"2":{"73":1}}],["make",{"2":{"8":1,"31":1,"73":1,"74":1,"76":3,"85":1}}],["max",{"2":{"25":2,"72":2,"78":3,"83":2,"84":1,"85":10}}],["maximum",{"2":{"10":1,"15":1,"17":1,"20":1,"22":1,"37":1,"72":2,"78":1,"83":2,"85":6}}],["manhattan",{"2":{"78":1}}],["manufacturing",{"2":{"74":1}}],["managing",{"2":{"29":1}}],["manages",{"2":{"85":1}}],["managed",{"2":{"85":1}}],["manage",{"2":{"1":1,"85":1}}],["manipulations",{"2":{"16":1}}],["manipulation",{"2":{"14":1,"15":2,"28":1,"29":1}}],["many",{"2":{"8":1,"72":1,"83":1}}],["mdd",{"2":{"4":5,"26":1,"34":1,"72":5,"83":4}}],["mdash",{"2":{"2":2,"4":7,"6":3,"8":1,"10":1,"12":1,"17":6,"18":5,"20":7,"21":4,"22":9,"23":5,"24":2,"25":3,"26":5,"31":8,"32":2,"33":2,"72":67,"76":28,"77":7,"78":77,"83":35,"84":45,"85":142}}],["mmds",{"2":{"4":1}}],["m",{"2":{"2":2,"32":2,"72":2,"83":2,"85":139}}],["clear",{"2":{"75":1}}],["cbls",{"0":{"84":1},"2":{"73":3,"75":3,"76":1,"84":31,"85":1}}],["csps",{"2":{"73":1}}],["circuit",{"2":{"39":1}}],["cut",{"2":{"85":1}}],["current",{"2":{"78":2,"85":1}}],["currently",{"2":{"18":2,"21":1,"23":1,"26":1,"72":1,"84":1}}],["cumulative",{"2":{"38":1}}],["central",{"2":{"28":1}}],["cplex",{"2":{"73":1}}],["cp",{"0":{"53":1,"57":1,"60":1},"1":{"58":1,"59":1,"60":1},"2":{"28":2,"29":2,"30":2,"43":1,"45":1,"51":1,"59":1,"60":1,"61":1,"63":1,"71":1,"73":9,"74":4}}],["c",{"2":{"18":1,"21":1,"23":1,"31":14,"33":9,"72":23,"78":8,"83":14,"85":31}}],["choose",{"2":{"85":1}}],["chuffed",{"2":{"73":1}}],["checks",{"2":{"33":1,"72":1}}],["check",{"2":{"18":1,"20":1,"21":1,"22":1,"23":1,"26":8,"31":3,"32":4,"34":2,"35":3,"36":4,"37":4,"38":2,"39":1,"40":1,"72":1,"77":1,"78":1,"85":10}}],["checking",{"2":{"15":1}}],["chains",{"2":{"74":1}}],["chapter",{"2":{"61":1}}],["channel",{"2":{"37":1}}],["changes",{"2":{"15":1,"20":1,"22":1,"72":2,"75":1,"83":1}}],["characteristics",{"2":{"15":1}}],["capacited",{"2":{"85":1}}],["capacity",{"2":{"85":1}}],["capabilities",{"2":{"30":1}}],["capability",{"2":{"29":1}}],["called",{"2":{"78":1,"85":2}}],["case",{"0":{"45":1}}],["cardinality",{"2":{"36":1}}],["categories",{"0":{"32":1},"1":{"33":1,"34":1,"35":1,"36":1}}],["cater",{"2":{"15":1}}],["catalog",{"2":{"29":1}}],["can",{"2":{"1":3,"17":1,"29":1,"32":1,"48":1,"61":1,"72":2,"75":1,"77":1,"78":3,"83":2,"84":2,"85":1}}],["created",{"2":{"85":1}}],["create",{"2":{"78":1,"84":1}}],["creation",{"2":{"29":1}}],["critical",{"2":{"1":1,"14":1}}],["crucial",{"2":{"1":1,"15":1,"29":1}}],["cosntraints",{"2":{"85":1}}],["cosntriction",{"2":{"85":1}}],["cost",{"2":{"85":19}}],["costs",{"2":{"74":1,"85":20}}],["copy",{"2":{"84":5}}],["cops",{"2":{"73":1}}],["co",{"2":{"78":9}}],["covering",{"2":{"70":1}}],["cover",{"2":{"68":1,"82":1}}],["collaborate",{"2":{"48":1}}],["collections",{"2":{"10":2,"72":1,"83":1}}],["collection",{"2":{"1":1,"12":1,"18":2,"21":1,"23":1,"25":2,"26":1,"72":4,"73":1,"76":3,"78":3,"83":3,"84":2,"85":5}}],["count",{"2":{"36":1,"78":68}}],["counting",{"0":{"36":1}}],["counter",{"2":{"12":2,"72":2,"83":2,"85":1}}],["conditions",{"2":{"74":1,"85":1}}],["conduct",{"2":{"71":1}}],["concerned",{"2":{"74":2}}],["concepts",{"0":{"52":1},"2":{"52":1,"67":1}}],["concept",{"2":{"25":3,"29":2,"31":9,"32":1,"33":4,"72":16,"78":6,"83":9,"84":5}}],["conflict",{"2":{"33":1,"72":1}}],["conflicted",{"2":{"33":3,"72":3}}],["conflicts",{"2":{"33":6,"72":6}}],["conflicts=nothing",{"2":{"33":1,"72":1}}],["configuration",{"2":{"33":6,"72":6,"76":4,"78":2,"84":1,"85":3}}],["configurations",{"2":{"8":1,"25":2,"33":4,"72":7,"76":1,"83":3,"85":1}}],["configure",{"2":{"15":1}}],["convert",{"2":{"17":1,"24":3,"72":4,"78":3,"83":1}}],["containing",{"2":{"85":1}}],["container",{"2":{"78":1,"84":1}}],["contains",{"2":{"31":1,"32":1,"72":2,"78":1,"83":2}}],["content",{"2":{"61":1}}],["contexts",{"2":{"29":1}}],["context",{"2":{"17":1,"72":1,"83":1}}],["contraints",{"2":{"85":2}}],["contrast",{"2":{"53":1,"75":1}}],["contribute",{"2":{"48":1}}],["contribution",{"0":{"47":1},"1":{"48":1,"49":1}}],["contiguous",{"2":{"78":8}}],["contiuous",{"2":{"20":1,"22":1,"72":1,"83":1}}],["continuousdomain",{"2":{"15":1,"20":2,"72":2,"83":1}}],["continuous",{"0":{"20":1},"1":{"21":1},"2":{"14":1,"15":2,"17":2,"20":2,"22":1,"72":3,"83":3}}],["connection",{"0":{"37":1}}],["connecting",{"2":{"6":1,"72":1}}],["connector",{"2":{"6":1,"72":1}}],["cons=dictionary",{"2":{"85":1}}],["considered",{"2":{"85":1}}],["considers",{"2":{"4":1}}],["cons",{"2":{"85":31}}],["constriction",{"2":{"85":4}}],["constrained",{"2":{"85":2}}],["constrains",{"2":{"85":1}}],["constraintprogrammingextensions",{"2":{"73":1}}],["constraintmodels",{"0":{"27":1},"2":{"27":1,"73":1}}],["constrainttranslator",{"2":{"1":1}}],["constraintlearning",{"0":{"76":1},"2":{"1":1,"76":27}}],["constraintdomains",{"0":{"14":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1},"2":{"1":1,"14":1,"15":3,"16":2,"17":6,"20":7,"22":9,"25":3,"26":3,"72":25,"73":1,"83":18}}],["constraint",{"0":{"16":1,"28":1,"30":1,"41":1,"50":1,"51":1,"74":1,"75":1},"1":{"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"42":1,"43":1,"51":1,"52":1,"53":1},"2":{"0":1,"1":3,"2":4,"8":1,"14":2,"15":1,"16":2,"18":3,"21":3,"23":3,"25":2,"28":1,"29":10,"30":2,"31":14,"32":4,"33":14,"61":1,"72":37,"73":5,"74":1,"75":5,"76":4,"77":1,"78":6,"83":20,"84":29,"85":33}}],["constraintsolver",{"2":{"73":1}}],["constraints",{"0":{"28":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"42":1,"61":1},"1":{"29":1,"30":1,"31":1,"32":1,"33":2,"34":2,"35":2,"36":2},"2":{"0":1,"1":1,"2":3,"4":3,"14":1,"28":3,"29":17,"30":5,"31":8,"32":6,"33":4,"42":1,"52":1,"72":20,"73":4,"74":3,"75":2,"76":1,"77":1,"83":11,"85":20}}],["constraintcommons",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1},"2":{"0":1,"1":4,"2":2,"4":7,"8":1,"10":1,"12":1,"26":2,"32":1,"72":14,"83":8}}],["constructor",{"2":{"76":3,"84":1,"85":1}}],["construct",{"2":{"4":1,"17":3,"20":3,"22":3,"26":1,"72":5,"78":2,"83":4,"85":3}}],["constant",{"2":{"2":1,"31":1,"32":1,"72":3,"83":2}}],["core",{"0":{"32":1},"1":{"33":1,"34":1,"35":1,"36":1},"2":{"2":2,"4":1,"29":4,"32":1,"72":2,"83":1}}],["come",{"2":{"84":1}}],["combinatorial",{"2":{"51":1,"74":1}}],["community",{"0":{"47":1,"48":1},"1":{"48":1,"49":1},"2":{"48":1}}],["commitment",{"2":{"30":1}}],["commons",{"0":{"17":1},"1":{"18":1,"19":1}}],["common",{"2":{"1":1,"73":1}}],["comparison",{"0":{"35":1},"2":{"78":6}}],["compatible",{"2":{"1":1}}],["components",{"2":{"29":1,"78":2}}],["compose",{"2":{"78":12}}],["composed",{"2":{"25":1,"72":1,"78":2,"83":1}}],["compositions",{"2":{"78":1}}],["compositional",{"2":{"78":1}}],["compositionalnetworks",{"0":{"78":1},"2":{"1":1,"76":3,"78":76}}],["composition",{"2":{"78":24}}],["comprehensive",{"2":{"16":1,"30":1,"33":2,"72":2}}],["computational",{"2":{"15":1,"58":1}}],["computes",{"2":{"85":1}}],["computed",{"2":{"32":1,"72":1,"78":17,"83":1}}],["compute",{"2":{"10":2,"20":1,"22":1,"72":2,"76":1,"77":1,"78":3,"83":2,"84":1,"85":17}}],["complex",{"2":{"16":1,"28":1,"29":1,"42":1,"74":2,"75":1}}],["complexity",{"2":{"1":1,"70":1}}],["completely",{"2":{"78":1}}],["completed",{"2":{"1":1}}],["complete",{"2":{"1":1,"15":1,"25":2,"72":2,"78":4,"83":1}}],["code",{"2":{"1":1,"78":5}}],["cohesive",{"2":{"1":1}}],["df",{"2":{"76":2}}],["ds",{"2":{"76":2}}],["do",{"2":{"78":1}}],["dom",{"2":{"76":2,"78":8}}],["domain",{"2":{"15":10,"16":1,"17":21,"18":1,"20":13,"21":1,"22":16,"23":1,"25":1,"26":1,"72":30,"73":1,"76":3,"77":4,"78":3,"83":29,"85":20}}],["domains",{"0":{"14":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1},"2":{"14":2,"15":8,"16":1,"17":4,"18":3,"20":8,"21":2,"22":7,"23":2,"24":2,"25":6,"26":1,"52":1,"72":22,"76":2,"78":6,"83":17,"85":3}}],["does",{"2":{"33":3,"72":3,"84":1}}],["documentation",{"2":{"27":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"84":1,"85":1}}],["documenter",{"2":{"20":1,"22":1,"26":8,"31":2,"32":4,"34":2,"35":3,"36":4,"37":4,"38":2,"39":1,"40":1}}],["docstring",{"2":{"20":2,"22":2,"26":16,"31":4,"32":8,"34":4,"35":6,"36":8,"37":8,"38":4,"39":2,"40":2,"84":26,"85":29}}],["d₂",{"2":{"20":2,"22":2,"72":2,"83":2}}],["d₁",{"2":{"20":2,"22":2,"72":2,"83":2}}],["draw",{"2":{"18":2,"21":1,"23":1,"26":1,"72":1,"85":5}}],["d5",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["d4",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["d3",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["d2",{"2":{"17":3,"20":3,"22":3,"72":3,"83":3}}],["d1",{"2":{"17":2,"20":2,"22":2,"72":2,"83":2}}],["dynamic",{"2":{"15":3,"17":1,"20":1,"72":2,"83":1,"85":11}}],["d",{"2":{"12":1,"17":14,"18":29,"20":7,"21":23,"22":9,"23":26,"24":1,"26":12,"72":50,"76":2,"83":22,"85":9}}],["during",{"2":{"8":1,"78":1}}],["duplication",{"2":{"1":1}}],["diff",{"2":{"78":4}}],["differs",{"0":{"53":1}}],["difference",{"2":{"10":2,"17":1,"20":1,"22":1,"72":2,"78":10,"83":2}}],["different",{"2":{"1":1,"15":1,"31":1,"33":3,"35":1,"72":4,"74":1,"85":1}}],["directions",{"0":{"49":1}}],["directly",{"2":{"1":1,"29":1,"33":1,"72":1}}],["dive",{"0":{"65":1},"1":{"66":1,"67":1,"68":1},"2":{"42":1}}],["dict",{"2":{"32":1,"72":1,"83":1}}],["dictionaryview",{"2":{"85":1}}],["dictionary",{"2":{"12":1,"29":2,"31":1,"32":1,"72":3,"83":3,"85":6}}],["dictionaries",{"0":{"12":1},"1":{"13":1},"2":{"12":1}}],["dispatch",{"2":{"76":1,"85":2}}],["discuss",{"2":{"43":1,"58":1,"71":1}}],["discreteset",{"2":{"84":3}}],["discretedomain",{"2":{"15":1,"17":1,"18":3,"20":1,"21":3,"22":3,"23":3,"26":1,"72":6,"83":2}}],["discrete",{"0":{"22":1},"1":{"23":1},"2":{"14":1,"15":2,"17":1,"20":1,"22":4,"72":5,"76":1,"83":4,"85":1}}],["distributed",{"2":{"85":1}}],["distdifferent",{"2":{"84":2}}],["dist",{"2":{"33":2,"72":2,"85":1}}],["distances",{"2":{"33":1,"72":1}}],["distance",{"2":{"17":2,"20":1,"22":1,"33":3,"72":5,"78":3,"83":2,"85":1}}],["distinguishes",{"2":{"15":1}}],["diagram",{"2":{"4":1,"72":1,"83":1}}],["diagrams",{"2":{"4":3,"72":2,"83":1}}],["dimension",{"2":{"84":6,"85":1}}],["dimparameterdomain",{"2":{"26":1}}],["dim",{"2":{"2":1,"72":1,"84":12,"85":4}}],["datatype",{"2":{"85":1}}],["dataframe",{"2":{"76":1}}],["data",{"2":{"1":1,"85":1}}],["deepcopy",{"2":{"85":1}}],["deeper",{"2":{"42":1}}],["debugging",{"2":{"85":1}}],["debinarize",{"2":{"77":1}}],["denotes",{"2":{"78":2}}],["density",{"2":{"25":1,"72":1,"83":1}}],["decrement",{"2":{"85":1}}],["decrease",{"2":{"85":2}}],["decay",{"2":{"85":3}}],["declare",{"2":{"33":1,"72":1}}],["decisions",{"2":{"74":1}}],["decision",{"2":{"4":4,"72":3,"83":2}}],["derived",{"2":{"33":1,"72":1}}],["delta",{"2":{"85":6}}],["delineation",{"2":{"33":2,"72":2}}],["delete",{"2":{"15":1,"17":1,"23":3,"31":1,"72":5,"83":4,"85":13}}],["deletion",{"2":{"15":1}}],["descent",{"2":{"76":1}}],["description",{"2":{"78":1,"84":36,"85":10}}],["descriptions",{"2":{"32":1}}],["describe",{"2":{"32":1,"85":3}}],["design",{"2":{"1":1}}],["designed",{"2":{"0":1,"28":1}}],["determined",{"2":{"85":1}}],["determine",{"2":{"78":1}}],["determining",{"2":{"15":1,"29":1}}],["deterministic",{"2":{"4":1,"72":1,"83":1}}],["details",{"2":{"20":1,"22":1,"26":8,"31":2,"32":4,"34":2,"35":3,"36":4,"37":4,"38":2,"39":1,"40":1}}],["depends",{"2":{"17":1,"72":1,"83":1,"85":1}}],["dependencies",{"2":{"1":1}}],["define",{"2":{"29":1,"32":1,"33":2,"51":1,"72":3,"78":1,"83":1}}],["defines",{"2":{"20":1,"22":1,"72":1,"78":1}}],["defined",{"0":{"34":1},"2":{"15":2,"17":1,"22":1,"29":1,"32":3,"33":3,"72":8,"76":2,"78":2,"83":4,"84":2,"85":1}}],["definitions",{"2":{"15":1}}],["definition",{"0":{"28":1},"1":{"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1},"2":{"14":1,"15":1,"28":1,"29":1,"30":1}}],["defining",{"0":{"14":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1},"2":{"15":1,"16":1,"29":2}}],["defaults",{"2":{"2":1,"12":1,"32":1,"72":2,"76":2,"83":2}}],["default",{"2":{"2":1,"18":1,"25":1,"32":1,"33":2,"72":5,"76":4,"77":2,"78":2,"83":2,"85":2}}],["developers",{"2":{"28":1}}],["developing",{"2":{"1":1}}],["development",{"2":{"0":1,"1":3}}],["objs=dictionary",{"2":{"85":1}}],["objs",{"2":{"85":7}}],["objectives",{"2":{"85":10}}],["objective",{"2":{"84":4,"85":24}}],["own",{"2":{"85":1}}],["o",{"2":{"76":1,"85":16}}],["others",{"2":{"73":1}}],["other",{"0":{"53":1},"2":{"53":1,"73":1,"74":1,"75":2,"85":2}}],["otherwise",{"2":{"4":1,"18":1,"21":1,"23":1,"26":1,"31":2,"72":4,"78":8,"83":3,"85":1}}],["oversampling",{"2":{"76":1}}],["oversample",{"2":{"8":2,"72":2,"83":2}}],["overview",{"0":{"67":1},"2":{"61":1}}],["overviews",{"0":{"55":1}}],["overlap",{"2":{"38":1}}],["over",{"2":{"10":1,"25":1,"29":1,"31":1,"33":2,"72":5,"76":1,"78":1,"83":3,"84":1,"85":1}}],["ouput",{"2":{"76":1}}],["output",{"2":{"78":2}}],["outputs",{"2":{"31":1,"72":1,"83":1}}],["outlined",{"2":{"29":1}}],["outcomes",{"2":{"1":1}}],["our",{"2":{"8":1}}],["opt",{"2":{"84":1}}],["optmizers",{"2":{"76":1}}],["optimize",{"2":{"74":1,"76":11,"78":1,"84":3}}],["optimizers",{"2":{"76":1}}],["optimizer",{"2":{"73":1,"76":6,"84":17,"85":3}}],["optimizing",{"2":{"74":1,"85":7}}],["optimization",{"0":{"43":1,"44":1,"53":1,"57":1,"65":1,"66":1},"1":{"45":1,"46":1,"58":1,"59":1,"60":1,"66":1,"67":1,"68":1},"2":{"29":1,"45":1,"46":1,"58":1,"59":1,"61":1,"63":1,"66":2,"68":1,"74":2,"85":2}}],["optimisation",{"2":{"73":1}}],["optionally",{"2":{"31":2,"72":2,"83":2}}],["optional",{"2":{"25":1,"32":1,"72":2,"76":1,"77":1,"78":8,"83":2,"85":2}}],["options",{"2":{"15":1,"76":2,"84":4,"85":32}}],["operation",{"2":{"76":2,"78":3}}],["operational",{"0":{"74":1},"2":{"74":1}}],["operations",{"2":{"6":1,"21":2,"23":2,"76":3,"78":18}}],["opparameterdomain",{"2":{"26":1}}],["op",{"2":{"2":1,"72":1,"78":1}}],["order",{"2":{"84":2}}],["ordered",{"2":{"35":1,"78":2,"84":3,"85":1}}],["originating",{"2":{"33":1,"72":1}}],["oriented",{"2":{"0":1}}],["org",{"2":{"32":1,"72":1,"83":1}}],["organizations",{"2":{"74":1}}],["organization",{"2":{"29":1,"55":1,"61":1}}],["or",{"2":{"1":1,"2":1,"6":1,"12":1,"15":4,"16":1,"17":2,"18":2,"20":1,"21":2,"22":1,"23":2,"30":1,"31":1,"32":1,"33":2,"49":1,"72":8,"73":2,"74":4,"75":2,"77":1,"78":5,"83":4,"85":6}}],["only",{"2":{"77":1,"78":4,"84":2,"85":1}}],["on",{"0":{"32":1,"39":1,"70":1},"1":{"33":1,"34":1,"35":1,"36":1},"2":{"1":2,"2":2,"4":1,"14":1,"15":1,"17":1,"25":1,"26":1,"32":1,"33":1,"43":1,"59":1,"72":7,"73":1,"74":3,"76":3,"77":1,"80":1,"83":4,"84":2,"85":2}}],["once",{"2":{"1":2}}],["one",{"2":{"1":1,"29":1,"33":1,"72":1,"76":2,"77":5,"78":6,"85":3}}],["often",{"2":{"74":1}}],["offer",{"2":{"29":1}}],["offering",{"2":{"16":1,"29":1,"30":1}}],["offers",{"2":{"1":1,"15":1,"30":1}}],["of",{"2":{"0":1,"1":9,"2":3,"4":3,"8":2,"10":4,"14":3,"15":8,"16":4,"17":3,"18":5,"20":5,"21":10,"22":6,"23":11,"25":14,"26":2,"28":1,"29":13,"30":1,"31":11,"32":4,"33":9,"46":1,"49":1,"58":2,"61":2,"64":1,"66":2,"68":1,"71":1,"72":61,"73":7,"74":2,"75":4,"76":14,"77":3,"78":91,"83":39,"84":16,"85":78}}],["lst",{"2":{"85":5}}],["l",{"2":{"78":12}}],["loop",{"2":{"85":8}}],["loss",{"2":{"76":2}}],["local",{"0":{"75":1},"2":{"75":1,"76":1,"78":5,"84":2,"85":7}}],["localsearchsolvers",{"0":{"85":1},"2":{"73":1,"76":1,"85":139}}],["lower",{"2":{"78":1}}],["lowest",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["low",{"2":{"25":1,"72":1,"73":1,"83":1}}],["loggingextra",{"2":{"85":1}}],["logging",{"2":{"85":1}}],["logic",{"2":{"33":2,"72":2}}],["log",{"2":{"20":1,"22":1,"26":8,"31":2,"32":4,"34":2,"35":3,"36":4,"37":4,"38":2,"39":1,"40":1,"85":1}}],["links",{"2":{"80":1,"85":1}}],["linear",{"2":{"53":1,"66":1,"77":3}}],["littledict",{"2":{"78":1}}],["like",{"2":{"53":1,"67":1}}],["limited",{"2":{"25":1,"72":1,"83":1}}],["limit",{"2":{"25":7,"72":7,"78":2,"83":7,"84":1,"85":10}}],["limits",{"2":{"15":1}}],["listed",{"2":{"33":2,"72":2}}],["list",{"2":{"2":2,"22":1,"23":1,"31":1,"33":8,"72":12,"83":3,"85":11}}],["less",{"2":{"84":2}}],["lessthanparam",{"2":{"84":2}}],["lesser",{"2":{"78":8}}],["leadsolvers",{"2":{"85":3}}],["leadsolver",{"2":{"85":1}}],["least",{"2":{"76":2}}],["learn",{"2":{"61":1,"76":5,"77":1,"78":6}}],["learned",{"2":{"29":1,"30":1,"76":1,"78":1}}],["learning",{"2":{"0":1,"1":6,"8":1,"15":1,"25":1,"29":2,"72":1,"73":1,"76":1,"78":3,"83":1}}],["level",{"2":{"73":2,"85":9}}],["levels",{"2":{"70":1}}],["left",{"2":{"32":1,"72":1,"78":15,"83":1}}],["length",{"2":{"15":1,"17":2,"18":1,"20":1,"21":6,"22":1,"23":6,"29":1,"31":4,"32":3,"72":17,"78":6,"83":9,"85":12}}],["lt",{"2":{"4":2,"17":1,"18":4,"21":4,"22":1,"23":4,"72":8,"83":2,"85":3}}],["launch",{"2":{"85":1}}],["last",{"2":{"85":1}}],["lazy",{"2":{"78":2}}],["lang",{"2":{"78":3}}],["lang=",{"2":{"78":1}}],["language=",{"2":{"78":1}}],["languageparameterdomain",{"2":{"26":1}}],["languages",{"0":{"4":1,"34":1},"1":{"5":1},"2":{"4":1}}],["language",{"2":{"2":1,"72":1,"78":6}}],["large",{"2":{"74":1,"75":1}}],["lays",{"2":{"16":1}}],["layered",{"2":{"78":1}}],["layers",{"2":{"78":8}}],["layer",{"2":{"0":1,"21":2,"23":2,"76":4,"78":41}}],["bariable",{"2":{"85":1}}],["base",{"0":{"18":1,"21":1,"23":1},"2":{"6":5,"17":3,"18":14,"21":9,"23":10,"24":3,"26":4,"72":28,"77":2,"78":2,"83":4,"84":2,"85":4}}],["based",{"0":{"32":1,"35":1,"75":1},"1":{"33":1,"34":1,"35":1,"36":1},"2":{"1":1,"2":2,"4":1,"12":1,"15":1,"26":1,"32":1,"72":5,"75":1,"76":2,"77":1,"80":1,"83":4,"84":2}}],["basics",{"0":{"68":1}}],["basic",{"0":{"31":1,"52":1},"2":{"0":1,"1":3,"15":1,"60":1,"76":1,"77":1}}],["bias",{"2":{"78":3}}],["bits",{"2":{"78":3}}],["bitvector",{"2":{"78":5}}],["bit",{"2":{"77":1,"78":1}}],["binary",{"2":{"77":1}}],["binarize",{"2":{"77":2}}],["binarized",{"2":{"77":1}}],["binarization",{"2":{"76":2,"77":4}}],["building",{"0":{"62":1},"1":{"63":1,"64":1},"2":{"63":1}}],["build",{"2":{"20":1,"22":1,"26":8,"31":2,"32":4,"34":2,"35":3,"36":4,"37":4,"38":2,"39":1,"40":1,"60":1,"73":1,"82":1,"84":2}}],["b",{"2":{"17":1,"18":8,"20":1,"21":8,"22":1,"23":8,"72":9,"83":1}}],["broad",{"2":{"14":1}}],["bridges",{"2":{"1":1}}],["bounded",{"2":{"78":1}}],["bounding",{"2":{"78":4}}],["bounds",{"2":{"17":1,"72":1,"83":1}}],["boolparameterdomain",{"2":{"26":1}}],["boolean",{"2":{"8":1,"29":1,"31":1,"72":2,"83":2,"84":1}}],["bool",{"2":{"2":1,"17":4,"20":4,"22":4,"72":5,"83":4,"84":2,"85":4}}],["both",{"2":{"0":1,"10":1,"14":1,"25":1,"28":1,"32":2,"33":2,"72":6,"74":1,"83":4}}],["begin",{"2":{"84":14,"85":23}}],["benchmarking",{"2":{"80":1}}],["benchmarktools",{"0":{"80":1},"2":{"80":1}}],["better",{"2":{"74":1,"85":2}}],["between",{"2":{"1":2,"2":1,"10":2,"15":1,"17":3,"20":2,"22":2,"32":1,"33":4,"72":9,"78":4,"83":5,"84":1,"85":1}}],["best",{"0":{"63":1},"2":{"63":1,"76":1,"85":1}}],["been",{"2":{"45":1,"80":1,"85":7}}],["behave",{"2":{"29":1}}],["behaviors",{"2":{"29":1,"30":1}}],["behavior",{"2":{"15":1,"25":1,"29":1,"72":1}}],["beware",{"2":{"25":1,"72":1,"83":1}}],["belongs",{"2":{"18":1,"21":1,"23":1,"85":2}}],["beyond",{"2":{"15":1,"29":1}}],["be",{"2":{"1":1,"15":1,"17":1,"25":2,"32":3,"33":3,"72":9,"74":2,"75":2,"76":2,"77":1,"78":7,"83":5,"84":2,"85":3}}],["by",{"2":{"0":1,"1":2,"4":1,"6":2,"15":1,"16":1,"18":1,"21":1,"22":1,"23":1,"25":1,"29":3,"30":1,"56":1,"70":1,"72":5,"75":1,"76":4,"78":7,"83":2,"85":10}}],["f2",{"2":{"85":2}}],["fetch",{"2":{"85":1}}],["few",{"2":{"82":1}}],["feasible",{"2":{"75":1}}],["features",{"0":{"1":1,"15":1,"29":1},"2":{"29":1,"55":1}}],["feature",{"2":{"0":1,"15":1,"29":1}}],["file",{"2":{"78":7}}],["find",{"2":{"75":5,"85":2}}],["finding",{"2":{"73":1,"74":1,"75":2}}],["first",{"0":{"60":1},"2":{"76":1,"85":1}}],["fields",{"2":{"31":1,"72":1,"83":1}}],["framework",{"2":{"73":1}}],["friendly",{"2":{"30":1}}],["from",{"0":{"34":1,"46":1,"53":1},"2":{"18":4,"21":2,"23":3,"26":2,"29":2,"33":4,"46":1,"61":1,"72":7,"74":1,"76":1,"77":1,"78":2,"83":1,"85":17}}],["float64",{"2":{"84":1,"85":5}}],["floor",{"2":{"25":1,"72":1,"83":1}}],["flexibility",{"2":{"29":2}}],["flexible",{"2":{"15":1,"25":2,"29":1,"30":1,"72":2,"78":2,"83":1}}],["faster",{"2":{"85":1}}],["fake",{"2":{"26":1,"72":1}}],["fakeautomaton",{"2":{"4":2,"15":1,"18":2,"21":1,"23":1,"26":5,"72":5}}],["fallback",{"2":{"17":1,"18":2,"20":1,"21":2,"22":1,"23":2,"72":4,"83":1}}],["false",{"2":{"4":1,"6":1,"8":1,"17":3,"18":3,"20":3,"21":3,"22":3,"23":3,"26":1,"31":1,"33":1,"72":10,"78":2,"83":6,"85":2}}],["facilitating",{"2":{"15":1,"30":1}}],["facilitates",{"2":{"1":1,"15":1}}],["facilitate",{"2":{"0":1,"28":1}}],["fa",{"2":{"4":1,"18":4,"21":2,"23":2,"26":3,"72":3}}],["f",{"2":{"4":1,"8":2,"29":1,"31":3,"72":6,"78":10,"83":6,"84":20,"85":7}}],["full",{"0":{"72":1}}],["future",{"0":{"49":1},"2":{"2":1,"25":1,"72":1,"83":1}}],["func",{"2":{"85":6}}],["funcs",{"2":{"78":2}}],["function",{"2":{"2":2,"4":2,"6":1,"8":2,"10":1,"12":2,"17":4,"18":5,"20":5,"21":4,"22":6,"23":5,"24":2,"25":3,"26":4,"29":2,"31":12,"32":4,"33":3,"72":14,"76":4,"77":2,"78":22,"83":11,"84":14,"85":16}}],["functionality",{"2":{"1":1}}],["functionalities",{"0":{"1":1,"15":1,"29":1},"2":{"1":1,"15":1,"16":1,"29":1}}],["functions",{"2":{"0":1,"1":2,"15":1,"78":3}}],["fundamentals",{"2":{"68":1}}],["fundamental",{"2":{"1":1,"33":1,"72":1}}],["fold",{"2":{"73":1}}],["following",{"2":{"17":1,"29":1,"31":1,"72":2,"77":1,"78":3,"83":2,"85":1}}],["follows",{"2":{"8":1,"84":2}}],["follow",{"2":{"2":1}}],["focuses",{"2":{"73":1,"74":2}}],["focusing",{"2":{"14":1}}],["foundation",{"2":{"15":1}}],["foundational",{"2":{"0":1,"1":1}}],["fostering",{"2":{"1":1}}],["forwarded",{"2":{"85":1}}],["forbidden",{"2":{"33":1,"72":1}}],["formal",{"2":{"85":1}}],["formated",{"2":{"78":1}}],["formatted",{"2":{"78":1}}],["format",{"2":{"2":1,"17":1,"72":1,"77":1,"83":1}}],["formulating",{"2":{"46":1}}],["formulation",{"2":{"15":1}}],["forseeable",{"2":{"2":1}}],["for",{"0":{"57":1},"1":{"58":1,"59":1,"60":1},"2":{"1":5,"2":1,"4":3,"6":1,"12":1,"14":1,"15":13,"16":3,"17":3,"18":3,"20":4,"21":3,"22":4,"23":3,"24":2,"25":1,"26":18,"27":1,"28":1,"29":6,"30":4,"31":5,"32":9,"33":5,"34":4,"35":6,"36":8,"37":8,"38":4,"39":2,"40":2,"49":1,"56":1,"58":1,"59":1,"63":1,"72":23,"73":5,"74":1,"75":3,"76":8,"77":5,"78":6,"79":1,"81":1,"83":8,"84":4,"85":18}}],["affect",{"2":{"78":1}}],["aggregate",{"2":{"78":1}}],["aggregations",{"2":{"78":1}}],["aggregation",{"2":{"78":4}}],["ag",{"2":{"78":2}}],["among",{"2":{"76":1,"85":1}}],["api",{"0":{"72":1,"83":1}}],["applies",{"2":{"78":1,"84":1}}],["applied",{"2":{"45":1,"78":1,"84":1,"85":2}}],["applicability",{"2":{"29":1}}],["applications",{"0":{"45":1},"2":{"14":1,"16":1}}],["application",{"2":{"1":2,"28":1,"29":1,"30":1,"78":1}}],["applying",{"0":{"44":1},"1":{"45":1,"46":1}}],["apply",{"2":{"29":1,"31":3,"72":3,"83":3}}],["approach",{"2":{"1":1,"29":1,"74":2}}],["about",{"2":{"73":1,"85":1}}],["absolute",{"2":{"78":2}}],["abs",{"2":{"32":1,"72":1,"78":4,"83":1}}],["abstractstring",{"2":{"85":2}}],["abstractstring=",{"2":{"6":1,"72":1}}],["abstractstate",{"2":{"85":1}}],["abstractsolver",{"2":{"85":70}}],["abstractscalarset",{"2":{"84":1}}],["abstractscalarfunction",{"2":{"84":1}}],["abstractvectorset",{"2":{"84":15}}],["abstractvector",{"2":{"78":19,"85":1}}],["abstractoptimizer",{"2":{"76":2,"77":2,"84":1}}],["abstractrange",{"2":{"17":1,"20":1,"22":2,"72":2,"83":2}}],["abstracting",{"2":{"16":1}}],["abstractdomain",{"2":{"15":3,"17":5,"18":6,"20":4,"21":5,"22":4,"23":5,"24":1,"26":2,"72":17,"83":10,"85":6}}],["abstractdictionary",{"2":{"12":1,"72":1,"83":1}}],["abstractdict",{"2":{"12":1,"72":1,"83":1}}],["abstractautomaton",{"2":{"4":3,"26":1,"72":4,"83":1}}],["abstractmultivalueddecisiondiagram",{"2":{"4":3,"72":3,"83":1}}],["abstract",{"2":{"0":1,"1":2,"4":2,"15":1,"17":1,"20":1,"22":1,"72":5,"76":2,"77":1,"83":3,"85":2}}],["ability",{"2":{"29":1}}],["avoid",{"2":{"31":1,"33":1,"72":2,"83":1,"85":1}}],["avoiding",{"2":{"29":1}}],["available",{"2":{"15":1,"30":1,"32":1,"72":1,"73":1,"83":1,"85":1}}],["ar",{"2":{"78":2}}],["arithmetic",{"2":{"78":5}}],["arrangement",{"2":{"76":1}}],["arxiv",{"2":{"32":1,"72":1,"83":1}}],["arbitrarydomain",{"2":{"22":1}}],["argmax",{"2":{"85":3}}],["argument",{"2":{"84":1}}],["arguments",{"2":{"17":1,"25":1,"31":2,"32":1,"33":2,"72":7,"78":4,"83":5,"84":13,"85":8}}],["args",{"2":{"17":4,"25":1,"29":1,"31":1,"72":6,"76":3,"77":1,"83":5}}],["areas",{"2":{"49":1}}],["are",{"2":{"1":2,"15":1,"20":1,"22":1,"25":1,"29":2,"32":2,"33":4,"72":9,"73":2,"74":2,"78":21,"83":4,"84":4,"85":2}}],["always",{"2":{"84":1}}],["alwaystrue",{"2":{"84":2}}],["already",{"2":{"76":1,"78":2,"85":1}}],["algorithm",{"2":{"75":2,"76":3,"78":4}}],["algorithms",{"2":{"67":1,"75":1}}],["alone",{"2":{"32":1,"72":1,"83":1}}],["also",{"2":{"15":1,"78":2}}],["allequalparam",{"2":{"84":2}}],["allequal",{"2":{"84":2}}],["alldifferent",{"2":{"84":2}}],["allocations",{"2":{"78":17}}],["allocation",{"2":{"74":1}}],["allows",{"2":{"29":2}}],["allowing",{"2":{"15":1,"33":2,"72":2}}],["all",{"2":{"10":1,"15":1,"20":1,"32":1,"33":1,"35":2,"72":4,"73":1,"75":1,"78":5,"83":3,"84":7,"85":4}}],["advantages",{"2":{"58":1}}],["advanced",{"0":{"30":1,"41":1},"1":{"42":1,"43":1},"2":{"15":1,"16":1,"29":1}}],["adjusted",{"2":{"25":1,"72":1}}],["added",{"2":{"84":1}}],["adding",{"2":{"32":1,"72":1,"83":1}}],["addition",{"2":{"15":1,"29":1}}],["addtionally",{"2":{"17":1,"72":1,"83":1}}],["add",{"2":{"15":1,"17":1,"22":2,"31":1,"72":4,"83":3,"84":6,"85":20}}],["attribution",{"2":{"85":1}}],["attributed",{"2":{"85":6}}],["attribute",{"2":{"85":2}}],["attached",{"2":{"85":1}}],["at",{"2":{"4":1,"15":1,"29":1,"32":1,"72":2,"76":2,"77":1,"78":2,"83":1,"85":1}}],["automatic",{"2":{"25":1,"72":1,"83":1}}],["automatically",{"2":{"25":1,"72":1}}],["automaton",{"2":{"4":7,"26":4,"72":10,"83":5}}],["automata",{"2":{"4":2,"15":1,"72":1}}],["action",{"2":{"78":2}}],["actively",{"2":{"1":1}}],["actual",{"2":{"78":1}}],["access",{"2":{"17":1,"72":1,"78":4,"83":1,"85":20}}],["accessing",{"2":{"15":1}}],["acceptable",{"2":{"33":2,"72":2}}],["accepted",{"2":{"31":2,"72":2,"83":2}}],["accepts",{"2":{"4":3,"26":1,"72":3,"83":1}}],["accept",{"2":{"4":6,"26":3,"72":7,"83":1}}],["across",{"2":{"1":2}}],["a",{"2":{"0":1,"1":6,"4":13,"12":2,"14":2,"15":2,"16":2,"17":9,"18":19,"20":5,"21":17,"22":7,"23":17,"25":6,"26":7,"28":1,"29":7,"30":1,"31":9,"32":8,"33":13,"46":1,"60":2,"72":79,"73":7,"74":4,"75":7,"76":23,"77":10,"78":55,"80":1,"83":41,"84":17,"85":51}}],["assuming",{"2":{"84":1}}],["assert",{"2":{"78":1}}],["assign",{"2":{"78":1,"85":1}}],["assignements",{"2":{"31":1,"72":1,"83":1}}],["assignment",{"2":{"31":1,"72":1,"83":1}}],["assignments",{"2":{"29":2}}],["aspect",{"2":{"1":1}}],["as",{"2":{"0":1,"1":1,"4":1,"8":1,"14":1,"15":1,"20":1,"22":3,"29":2,"31":1,"32":2,"33":2,"52":1,"72":9,"73":1,"74":2,"76":1,"78":5,"82":1,"83":5,"84":2,"85":6}}],["anonymous",{"2":{"78":1}}],["another",{"2":{"73":1}}],["angles",{"2":{"74":1}}],["annealing",{"2":{"67":1}}],["analyze",{"2":{"64":1,"74":1}}],["analyzing",{"0":{"62":1},"1":{"63":1,"64":1}}],["analysis",{"0":{"64":1,"71":1},"2":{"71":1,"74":1}}],["any",{"2":{"6":1,"17":2,"18":2,"21":2,"23":2,"31":2,"32":1,"33":4,"72":11,"77":1,"78":2,"83":5,"84":1,"85":1}}],["and",{"0":{"1":1,"14":1,"15":1,"28":1,"29":1,"32":1,"36":1,"38":1,"42":1,"43":1,"45":1,"47":1,"52":1,"56":1,"57":1,"62":1,"64":1,"69":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"29":1,"30":1,"31":1,"32":1,"33":2,"34":2,"35":2,"36":2,"48":1,"49":1,"58":1,"59":1,"60":1,"63":1,"64":1,"70":1,"71":1},"2":{"0":3,"1":14,"2":1,"4":1,"6":1,"8":1,"10":1,"14":2,"15":11,"16":4,"17":2,"20":1,"22":1,"25":2,"26":2,"28":3,"29":14,"30":2,"31":4,"32":3,"33":9,"42":1,"43":1,"45":1,"46":1,"48":1,"49":1,"51":1,"52":1,"53":1,"55":1,"56":1,"58":2,"59":2,"60":1,"61":2,"63":2,"64":1,"67":1,"68":1,"70":1,"71":1,"72":24,"73":3,"74":8,"75":3,"76":10,"77":2,"78":19,"80":1,"83":15,"84":2,"85":11}}],["an",{"2":{"0":1,"4":3,"6":1,"15":1,"17":2,"20":4,"21":1,"22":3,"23":1,"25":1,"28":1,"29":1,"31":1,"33":1,"46":1,"61":2,"72":13,"75":3,"76":7,"77":1,"78":25,"82":1,"83":7,"84":2,"85":11}}],["swap",{"2":{"85":2}}],["switch",{"2":{"78":1}}],["sltns",{"2":{"76":2}}],["smaller",{"2":{"75":1}}],["small",{"2":{"75":1}}],["scalarfunction",{"2":{"84":3}}],["scalars",{"2":{"78":1}}],["scalar",{"2":{"78":3}}],["science",{"2":{"58":1}}],["scenario",{"2":{"46":1}}],["scheduling",{"0":{"38":1},"2":{"74":1}}],["share",{"2":{"49":1,"63":1}}],["shared",{"2":{"0":1,"1":3}}],["show",{"2":{"78":4}}],["showcase",{"2":{"45":1}}],["should",{"2":{"33":3,"72":3,"78":2,"85":3}}],["shrink",{"2":{"31":1,"72":1}}],["sat",{"2":{"85":3}}],["satisfying",{"2":{"85":2}}],["satisfy",{"2":{"73":1,"74":1,"75":1}}],["satisfied",{"2":{"31":1,"72":1,"74":1,"83":1,"85":1}}],["satisfies",{"2":{"31":1,"72":1,"75":1,"83":1}}],["satisfaction",{"2":{"29":1,"33":2,"72":2,"73":1,"85":3}}],["say",{"2":{"77":1}}],["same",{"2":{"20":1,"22":1,"33":1,"72":2,"83":1}}],["samplings",{"2":{"15":1,"25":2,"72":2,"83":2}}],["sampling",{"0":{"8":1},"1":{"9":1},"2":{"8":2}}],["systems",{"2":{"74":2}}],["syntax",{"2":{"29":1,"84":2,"85":1}}],["symᵢ",{"2":{"32":1,"72":1,"83":1}}],["sym₂",{"2":{"32":1,"72":1,"83":1}}],["sym₁",{"2":{"32":1,"72":1,"83":1}}],["symmetries",{"2":{"29":3,"31":4,"32":1,"72":5,"83":5}}],["symmetry",{"2":{"29":1,"31":1,"72":1,"83":1}}],["symbols",{"2":{"6":2,"72":2,"78":9}}],["symbol",{"2":{"6":3,"31":1,"72":3,"77":1,"78":1,"85":3}}],["sqrt",{"2":{"25":1,"72":1,"83":1}}],["sudoku",{"2":{"85":1}}],["subs",{"2":{"85":3}}],["subsolvers",{"2":{"85":4}}],["subsolver",{"2":{"85":6}}],["subset",{"2":{"84":1}}],["sub",{"2":{"76":1,"85":1}}],["successfully",{"2":{"45":1}}],["such",{"2":{"1":1,"29":2,"33":1,"52":1,"72":1,"73":1,"74":2,"85":4}}],["sumequalparam",{"2":{"84":2}}],["summary",{"2":{"75":1}}],["summing",{"0":{"36":1}}],["sum",{"2":{"21":1,"23":1,"25":1,"36":1,"72":2,"77":3,"78":5,"83":1,"84":1}}],["supply",{"2":{"74":1}}],["supplies",{"2":{"73":1}}],["supported",{"2":{"33":4,"72":4}}],["support",{"2":{"15":1,"33":1,"72":1}}],["supports=nothing",{"2":{"33":1,"72":1}}],["supports",{"2":{"15":1,"29":1,"33":5,"72":5,"84":3}}],["supertype",{"2":{"15":3,"20":1,"22":1,"72":2,"83":2}}],["super",{"2":{"15":1,"17":1,"72":1,"83":1}}],["since",{"2":{"85":1}}],["single",{"2":{"78":3}}],["silent",{"2":{"84":1,"85":1}}],["sig",{"2":{"78":17}}],["signature",{"2":{"78":2}}],["significance",{"2":{"51":1}}],["significantly",{"2":{"29":1,"30":1}}],["simulated",{"2":{"67":1}}],["simple",{"2":{"25":1,"29":1,"32":1,"60":1,"72":2,"83":2}}],["simply",{"2":{"18":2,"21":1,"23":1,"26":1,"31":1,"72":2}}],["simplify",{"2":{"42":1}}],["simplifying",{"2":{"1":1}}],["simplifies",{"2":{"1":1,"29":1}}],["similar",{"2":{"17":1,"72":1,"83":1}}],["size",{"2":{"15":1,"17":5,"20":8,"22":8,"25":2,"72":12,"76":7,"78":16,"83":9,"84":2,"85":4}}],["situations",{"2":{"10":1}}],["specialize",{"2":{"85":10}}],["specialized",{"2":{"78":2,"85":10}}],["specializing",{"2":{"85":1}}],["specific",{"2":{"29":1,"76":2,"78":1}}],["specifically",{"2":{"18":2,"21":1,"23":1,"26":1,"33":1,"72":2}}],["specification",{"2":{"2":1,"15":1}}],["specifications",{"2":{"2":1,"29":1,"32":1,"72":1,"83":1}}],["specified",{"2":{"18":2,"21":1,"23":1,"26":1,"72":1}}],["specifying",{"2":{"14":1,"33":2,"72":2}}],["split",{"2":{"76":1}}],["space",{"2":{"25":4,"31":1,"33":2,"72":7,"74":1,"78":4,"83":5,"85":1}}],["spaces",{"2":{"8":1,"14":1,"15":1,"29":1}}],["span",{"2":{"20":1,"22":1,"72":1}}],["s2",{"2":{"6":1,"72":1}}],["s1",{"2":{"6":1,"72":1}}],["s",{"2":{"4":6,"15":2,"17":2,"20":2,"22":2,"26":8,"29":1,"30":1,"31":4,"32":4,"34":2,"35":3,"36":4,"37":4,"38":2,"39":1,"40":1,"72":10,"83":7,"85":109}}],["soon",{"2":{"84":1}}],["so",{"2":{"74":1}}],["sophisticated",{"2":{"30":1}}],["something",{"2":{"31":1,"72":1}}],["some",{"2":{"6":1,"8":1,"73":1,"76":1,"78":1,"80":1,"84":1}}],["source",{"2":{"2":2,"4":8,"6":3,"8":1,"10":1,"12":1,"17":10,"18":17,"20":11,"21":16,"22":13,"23":17,"24":2,"25":3,"26":9,"31":8,"32":2,"33":2,"72":67,"76":28,"77":7,"78":77,"83":35,"84":45,"85":142}}],["sols",{"2":{"76":4,"78":1}}],["solvername",{"2":{"84":1}}],["solver",{"2":{"73":1,"75":2,"76":1,"84":4,"85":29}}],["solvers",{"2":{"73":10,"75":3,"85":2}}],["solve",{"2":{"60":1,"73":2,"74":1,"85":3}}],["solving",{"2":{"16":1,"30":1,"43":1,"46":1,"51":1,"61":1,"74":4,"85":4}}],["sol",{"2":{"25":1,"72":1,"83":1}}],["solution",{"2":{"15":1,"33":2,"72":2,"74":1,"75":4,"78":1,"85":4}}],["solutions",{"2":{"0":1,"1":2,"25":10,"72":10,"73":1,"74":2,"75":4,"76":8,"78":4,"83":10,"85":9}}],["solely",{"2":{"1":1}}],["see",{"2":{"85":1}}],["serie",{"2":{"85":1}}],["serves",{"2":{"0":1,"15":1}}],["select",{"2":{"85":4}}],["selected",{"2":{"76":2,"78":8,"85":1}}],["sec",{"2":{"85":1}}],["seconds",{"2":{"85":1}}],["section",{"0":{"37":1,"38":1,"39":1,"40":1},"2":{"2":1,"80":1,"82":1}}],["sequentialtasks",{"2":{"84":2}}],["sequence",{"2":{"32":1,"72":1,"83":1}}],["separates",{"2":{"78":1}}],["sep",{"2":{"78":2}}],["several",{"2":{"10":1,"73":1}}],["seaperl",{"2":{"73":1}}],["searching",{"2":{"31":1,"72":1,"83":1}}],["searches",{"2":{"15":1}}],["search",{"0":{"43":1,"75":1},"2":{"8":1,"14":1,"15":3,"25":9,"29":1,"43":1,"67":1,"72":9,"74":1,"75":3,"78":11,"83":9,"85":1}}],["seamless",{"2":{"1":1}}],["seamlessly",{"2":{"1":1}}],["setting",{"0":{"59":1},"2":{"59":1,"85":1}}],["settings",{"2":{"15":1,"25":1,"72":1,"83":1,"85":1}}],["setdomain",{"2":{"17":1,"20":1,"22":3,"23":2,"72":5,"83":4}}],["sets",{"2":{"15":1,"76":3}}],["set",{"2":{"1":1,"4":1,"6":2,"16":1,"18":4,"21":2,"22":3,"23":2,"26":1,"33":8,"72":15,"74":1,"76":11,"77":2,"78":4,"83":3,"84":16,"85":22}}],["stop",{"2":{"85":5}}],["storing",{"2":{"73":1}}],["stores",{"2":{"22":1,"72":1}}],["store",{"2":{"20":1,"72":1,"78":3,"85":3}}],["step",{"2":{"56":2,"70":2,"85":3}}],["studies",{"0":{"45":1},"2":{"45":1}}],["stucture",{"2":{"31":1,"72":1,"83":1}}],["stipulates",{"2":{"33":1,"72":1}}],["stamp",{"2":{"85":4}}],["static",{"2":{"85":1}}],["statistical",{"2":{"74":1}}],["state",{"2":{"85":36}}],["status",{"2":{"84":1,"85":4}}],["started",{"0":{"56":1,"57":1},"1":{"58":1,"59":1,"60":1},"2":{"56":1}}],["starts",{"2":{"31":1,"72":1,"75":1,"85":2}}],["starting",{"2":{"31":1,"72":1,"85":1}}],["standout",{"2":{"29":1}}],["standard",{"2":{"28":1,"29":1,"30":1,"73":1}}],["standardization",{"2":{"1":1}}],["stands",{"2":{"14":1}}],["str",{"2":{"85":1}}],["strictly",{"2":{"31":3,"72":3,"78":2,"83":3}}],["string",{"2":{"18":4,"21":4,"23":4,"31":1,"72":5,"78":3,"85":1}}],["straightforward",{"2":{"29":1,"84":1}}],["strategies",{"0":{"43":1},"2":{"16":1,"43":1}}],["struct",{"2":{"17":1,"72":1,"85":4}}],["structure",{"2":{"4":3,"17":2,"26":1,"72":5,"75":1,"76":1,"78":1,"83":4,"85":5}}],["structures",{"2":{"0":1,"1":2}}],["streamlining",{"0":{"28":1},"1":{"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1},"2":{"1":1}}],["public",{"0":{"83":1}}],["pure",{"2":{"73":3}}],["purely",{"2":{"73":1}}],["purpose",{"2":{"55":1,"84":1}}],["purposes",{"2":{"16":1,"30":1,"76":1}}],["perform",{"2":{"85":1}}],["performance",{"0":{"64":1},"2":{"29":1,"58":1,"64":1,"85":1}}],["performances",{"0":{"3":1,"5":1,"7":1,"9":1,"11":1,"13":1,"19":1}}],["perfchecker",{"0":{"81":1,"82":1},"2":{"80":1,"81":1,"82":1}}],["per",{"2":{"77":1}}],["penalty",{"2":{"76":9}}],["pôpulation",{"2":{"76":1}}],["please",{"2":{"32":1,"72":1,"83":1}}],["platform",{"2":{"30":1}}],["plays",{"2":{"1":1}}],["p",{"2":{"32":3,"72":3,"78":1,"83":3,"84":1}}],["pool",{"2":{"85":1}}],["popsize=200",{"2":{"78":1}}],["popsize=100",{"2":{"76":1}}],["popsize",{"2":{"78":4}}],["population",{"2":{"76":2,"78":2}}],["pop",{"2":{"76":2}}],["post",{"2":{"61":1,"85":1}}],["possible",{"2":{"32":1,"72":1,"74":1,"83":1,"84":1,"85":2}}],["positive",{"2":{"31":4,"72":4,"78":11,"83":4}}],["point",{"2":{"18":3,"21":2,"23":2,"26":1,"72":2}}],["points",{"2":{"17":1,"20":1,"21":1,"22":3,"23":2,"72":5,"83":3}}],["powerful",{"2":{"29":1}}],["power",{"2":{"16":1}}],["pseudo",{"2":{"15":1,"26":1,"72":1}}],["pattern",{"2":{"78":1}}],["patternfolds",{"2":{"20":1,"72":1}}],["path",{"2":{"78":5,"85":5}}],["packing",{"0":{"38":1}}],["packages",{"0":{"54":1},"1":{"55":1},"2":{"0":2,"1":7,"4":2,"29":1,"59":1,"72":2,"73":4}}],["package",{"0":{"55":1},"2":{"0":1,"1":3,"2":1,"14":2,"15":3,"16":1,"28":2,"29":4,"55":1,"56":1}}],["paradigm",{"2":{"74":1}}],["param=nothing",{"2":{"78":1}}],["paramater",{"2":{"78":1}}],["parametric",{"2":{"31":1,"72":1,"76":1,"78":2,"83":1}}],["parameter",{"2":{"15":2,"25":1,"26":1,"72":2,"76":1,"77":1,"78":4,"83":1,"84":4}}],["parameters",{"0":{"2":1,"26":1},"1":{"3":1},"2":{"2":10,"15":3,"26":4,"29":1,"31":1,"32":8,"72":16,"76":5,"83":12}}],["params",{"2":{"29":1,"31":1,"72":1,"83":1}}],["param",{"2":{"25":2,"26":2,"31":4,"72":8,"78":87,"83":8,"84":24}}],["part",{"2":{"25":1,"31":1,"72":2,"73":1,"83":1}}],["partially",{"2":{"78":1}}],["partial",{"2":{"8":1,"25":1,"72":1,"78":2,"85":1}}],["pairs",{"2":{"33":1,"72":1}}],["pairvarsparameterdomain",{"2":{"26":1}}],["pair",{"2":{"2":1,"25":1,"33":17,"72":19,"76":3,"78":1,"83":1}}],["printing",{"2":{"85":2}}],["print",{"2":{"85":8}}],["primary",{"2":{"55":1}}],["practices",{"0":{"63":1},"2":{"63":1}}],["practice",{"0":{"46":1}}],["practical",{"2":{"1":1,"16":1,"30":1}}],["practitioners",{"2":{"30":1}}],["pretty",{"2":{"85":2}}],["precision",{"2":{"76":1}}],["preliminaries",{"2":{"76":2}}],["predict",{"2":{"76":1}}],["predictions",{"2":{"76":1}}],["prediction",{"2":{"76":1}}],["predicate",{"2":{"33":4,"72":4,"78":1,"84":2}}],["predicates",{"2":{"29":1}}],["preferences",{"2":{"31":1,"72":1,"83":1}}],["preference",{"2":{"29":1}}],["proportional",{"2":{"78":1}}],["properly",{"2":{"17":1,"72":1,"83":1}}],["properties",{"2":{"15":1,"29":1}}],["produce",{"2":{"78":1}}],["product",{"2":{"78":1}}],["productivity",{"2":{"1":1}}],["prod",{"2":{"78":2}}],["providing",{"2":{"1":1,"15":1,"16":1,"29":1,"30":1,"33":2,"72":2}}],["provided",{"2":{"78":17}}],["provide",{"2":{"1":1,"12":1,"15":1,"56":1,"70":1,"73":1,"84":1}}],["provides",{"2":{"0":1,"14":1,"15":1,"29":1,"61":1,"73":1,"80":1}}],["projects",{"2":{"1":1,"49":1}}],["proceed",{"2":{"1":1}}],["processes",{"2":{"8":1,"74":1}}],["process",{"2":{"1":2,"15":2,"25":1,"46":1,"72":1,"74":1,"76":1,"83":1,"85":3}}],["problems",{"2":{"14":1,"15":1,"16":1,"29":2,"30":1,"33":2,"42":1,"43":1,"51":1,"61":1,"66":1,"72":2,"73":4,"74":3,"75":6,"85":1}}],["problem",{"2":{"1":1,"15":2,"16":1,"46":1,"74":2,"75":1,"85":3}}],["programming",{"0":{"16":1,"30":1,"41":1,"50":1,"51":1,"68":1,"74":1},"1":{"42":1,"43":1,"51":1,"52":1,"53":1},"2":{"0":1,"1":2,"14":2,"16":2,"28":1,"30":1,"53":1,"61":1,"66":1,"68":1,"73":3,"74":2,"75":4}}],["phase",{"2":{"1":1,"78":1}}],["pivotal",{"2":{"1":1,"15":1,"28":1}}],["immutable",{"2":{"22":1,"72":1,"83":1}}],["impossible",{"2":{"75":1}}],["importance",{"2":{"61":1,"71":1}}],["improve",{"2":{"64":1,"74":1,"75":1}}],["improvement",{"0":{"64":1},"2":{"85":1}}],["improving",{"2":{"29":1,"85":1}}],["implemented",{"2":{"73":1}}],["implement",{"2":{"4":1,"17":1,"26":1,"72":2,"83":1}}],["implementations",{"2":{"15":1}}],["implementation",{"2":{"4":2,"72":2,"83":2}}],["impact",{"2":{"1":1,"43":1}}],["icn=icn",{"2":{"78":1}}],["icns",{"2":{"76":1}}],["icnlocalsearchoptimizer",{"2":{"76":3}}],["icngeneticoptimizer",{"2":{"76":4}}],["icnoptimizer",{"2":{"76":3}}],["icnconfig",{"2":{"76":4}}],["icn",{"2":{"21":2,"23":2,"32":1,"72":1,"76":12,"78":35,"83":1}}],["i`",{"2":{"18":1,"21":1,"23":1,"72":1}}],["i",{"2":{"18":10,"20":3,"21":8,"22":3,"23":8,"26":2,"72":11,"78":43,"85":1}}],["iff",{"2":{"78":2}}],["if",{"2":{"4":3,"17":1,"18":10,"21":9,"23":9,"25":2,"26":2,"31":3,"72":16,"76":1,"77":4,"78":14,"83":6,"85":14}}],["identity",{"2":{"78":10}}],["idparameterdomain",{"2":{"26":1}}],["id",{"2":{"2":1,"72":1,"85":13}}],["iterate",{"2":{"85":1}}],["iterations",{"2":{"85":3}}],["iteration",{"2":{"78":2,"85":8}}],["iter=100",{"2":{"78":2}}],["iter",{"2":{"76":3,"78":8,"85":1}}],["ith",{"2":{"18":2,"21":1,"23":1,"26":1,"72":1}}],["itv",{"2":{"17":2,"18":8,"20":2,"21":7,"22":2,"23":7,"26":3,"72":9,"83":2}}],["itself",{"2":{"78":1}}],["its",{"2":{"1":1,"20":1,"22":1,"29":2,"51":1,"55":1,"58":1,"61":1,"68":1,"72":1,"78":3,"85":2}}],["it",{"2":{"0":1,"17":1,"28":1,"31":1,"32":1,"33":6,"72":9,"73":2,"75":2,"76":1,"77":1,"78":3,"83":2,"84":1,"85":6}}],["inf",{"2":{"85":1}}],["info",{"2":{"84":2,"85":6}}],["information",{"2":{"76":1,"78":1,"85":1}}],["infrastructure",{"2":{"14":1}}],["inner",{"2":{"76":1,"85":1}}],["initial",{"2":{"75":1}}],["involves",{"2":{"73":1}}],["invalid",{"2":{"29":1,"31":1,"33":2,"72":3,"83":1}}],["introductory",{"2":{"61":1}}],["introduce",{"2":{"52":1,"55":1,"67":1,"85":1}}],["int",{"2":{"18":2,"21":2,"23":2,"25":1,"33":4,"72":5,"78":8,"83":1,"84":6,"85":30}}],["into",{"0":{"65":1},"1":{"66":1,"67":1,"68":1},"2":{"17":1,"42":1,"72":1,"76":1,"77":1,"78":4,"83":1,"85":1}}],["intend",{"2":{"85":1}}],["intensional",{"2":{"29":1,"33":1,"72":1}}],["intension",{"2":{"29":1,"33":2,"72":2}}],["integer",{"2":{"66":1,"73":1}}],["integrating",{"2":{"30":1}}],["integration",{"0":{"28":1},"1":{"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1},"2":{"29":3}}],["integrates",{"2":{"15":1}}],["integrate",{"2":{"1":1}}],["interdiction",{"2":{"85":2}}],["interfacing",{"0":{"82":1}}],["interfaced",{"2":{"80":1}}],["interface",{"2":{"1":3,"4":2,"17":1,"72":3,"73":3,"77":1,"82":1,"83":1,"84":1}}],["interpretable",{"2":{"78":1}}],["interval",{"2":{"17":1,"18":2,"20":4,"21":2,"22":3,"23":2,"26":1,"72":6,"83":1}}],["intervals",{"2":{"15":2,"17":2,"18":5,"20":4,"21":4,"22":2,"23":4,"24":2,"26":2,"72":10,"83":2}}],["intersect",{"2":{"15":1,"20":2,"22":1,"72":1,"83":1}}],["intersecting",{"2":{"15":1}}],["intersections",{"2":{"20":1,"22":1,"72":1,"83":1}}],["intersection",{"2":{"2":1,"32":1,"72":1,"83":1}}],["internally",{"2":{"78":1}}],["internals",{"2":{"15":1,"25":1,"72":1}}],["internal",{"2":{"4":1,"17":1,"72":2,"78":2,"83":1,"85":4}}],["interacting",{"2":{"29":1}}],["interact",{"2":{"1":1}}],["interoperability",{"2":{"0":1,"1":1}}],["instead",{"2":{"77":1,"78":2,"84":1,"85":1}}],["instructions",{"2":{"56":1}}],["installing",{"2":{"56":1}}],["installation",{"0":{"56":1}}],["instantiation",{"2":{"40":1}}],["instance",{"2":{"15":1,"77":1,"85":2}}],["insertion",{"2":{"12":1,"72":1,"83":1,"84":1}}],["insert",{"2":{"12":1,"72":1,"83":1,"85":3}}],["inputs",{"2":{"15":1}}],["index",{"2":{"85":1}}],["independent",{"2":{"85":1}}],["independently",{"2":{"85":1}}],["industry",{"2":{"73":1}}],["indice",{"2":{"85":1}}],["indices",{"2":{"85":6}}],["indicate",{"2":{"85":2}}],["indicates",{"2":{"31":2,"72":2,"83":2}}],["individuals",{"2":{"76":1}}],["indispensable",{"2":{"28":1}}],["ind",{"2":{"12":1,"72":1,"83":1,"85":2}}],["inc",{"2":{"85":6}}],["increment",{"2":{"85":3}}],["incremental",{"2":{"84":1}}],["increase",{"2":{"12":1,"72":1,"83":1}}],["inclusive",{"2":{"78":3}}],["included",{"2":{"33":1,"72":1}}],["include",{"2":{"29":1,"73":1}}],["includes",{"2":{"1":1,"78":2}}],["including",{"0":{"32":1},"1":{"33":1,"34":1,"35":1,"36":1},"2":{"15":1,"29":1}}],["incorporation",{"2":{"29":1,"30":1}}],["incsert",{"2":{"12":2,"72":1,"83":1}}],["in",{"0":{"16":1,"28":1,"30":1},"1":{"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1},"2":{"0":1,"1":1,"4":2,"6":3,"10":1,"12":1,"16":1,"17":4,"18":8,"20":2,"21":10,"22":5,"23":11,"25":2,"26":1,"28":2,"29":3,"30":1,"31":2,"32":1,"33":2,"51":1,"61":1,"68":1,"71":1,"72":30,"73":7,"75":3,"76":3,"78":22,"83":14,"84":16,"85":16}}],["isempty",{"2":{"6":3,"18":5,"72":6}}],["is",{"0":{"51":1},"2":{"0":1,"1":4,"6":2,"15":2,"17":2,"18":7,"21":5,"23":5,"25":3,"26":1,"28":2,"29":3,"31":3,"32":3,"33":7,"72":23,"73":5,"74":5,"75":4,"76":5,"77":5,"78":48,"83":10,"84":8,"85":17}}],["tbw",{"2":{"76":4}}],["timestamps",{"2":{"85":1}}],["timelimitsec",{"2":{"84":1}}],["time",{"2":{"75":1,"78":1,"84":1,"85":27}}],["tips",{"2":{"63":1}}],["typically",{"2":{"74":1}}],["typemax",{"2":{"85":1}}],["typeof",{"2":{"84":6}}],["type",{"2":{"4":4,"15":2,"17":6,"20":2,"22":3,"24":1,"25":1,"26":1,"29":1,"31":1,"72":18,"75":2,"76":7,"77":2,"78":3,"83":11,"84":32,"85":17}}],["types",{"2":{"0":1,"1":2,"15":3,"66":1,"85":8}}],["tutorials",{"0":{"69":1,"70":1},"1":{"70":1,"71":1},"2":{"70":1}}],["tutorial",{"2":{"60":1}}],["tuples",{"2":{"33":6,"72":6}}],["tuple",{"2":{"17":5,"20":5,"22":5,"33":4,"72":9,"83":5}}],["temporary",{"2":{"85":1}}],["terminationstatuscode",{"2":{"84":1}}],["terminology",{"0":{"52":1}}],["testing",{"2":{"76":1,"84":1}}],["test",{"2":{"76":2}}],["teach",{"2":{"64":1}}],["techniques",{"0":{"41":1,"53":1},"1":{"42":1,"43":1},"2":{"74":2,"75":2}}],["tasks",{"2":{"85":1}}],["take",{"2":{"75":1}}],["tabu",{"2":{"67":1,"85":46}}],["targeted",{"2":{"25":1,"72":1,"78":1,"83":1,"85":3}}],["tailoring",{"2":{"15":1,"29":1}}],["t",{"2":{"4":2,"17":8,"20":11,"22":11,"26":1,"72":17,"83":12,"84":12,"85":7}}],["tr",{"2":{"78":58}}],["try",{"2":{"75":1}}],["tries",{"2":{"75":1}}],["train",{"2":{"76":2,"77":3}}],["training",{"2":{"76":7,"78":1}}],["transformations",{"2":{"78":3}}],["transformation",{"2":{"78":5}}],["transform",{"2":{"77":1}}],["transportation",{"2":{"74":1}}],["transition",{"2":{"1":2}}],["traditional",{"2":{"29":1}}],["true",{"2":{"4":3,"6":1,"8":1,"17":2,"18":3,"20":2,"21":2,"22":2,"23":2,"26":1,"31":1,"33":1,"72":11,"76":1,"78":2,"83":5,"84":2,"85":3}}],["two",{"2":{"4":1,"17":1,"20":3,"22":3,"33":1,"72":4,"73":1,"83":3,"84":1}}],["threads",{"2":{"85":8}}],["through",{"2":{"29":1,"46":1,"76":2,"78":3}}],["than",{"2":{"78":8,"84":2}}],["that",{"2":{"0":1,"1":6,"2":1,"14":1,"17":2,"18":2,"20":1,"21":2,"22":2,"23":2,"25":1,"29":1,"31":5,"32":2,"33":10,"61":1,"72":24,"73":3,"74":4,"75":5,"76":3,"77":1,"78":11,"83":10,"84":11,"85":10}}],["th",{"2":{"78":1}}],["those",{"2":{"29":1}}],["this",{"2":{"1":3,"2":1,"14":1,"15":1,"16":1,"25":1,"28":1,"29":3,"33":5,"72":6,"80":1,"82":1,"83":1,"85":3}}],["theory",{"0":{"46":1}}],["they",{"2":{"42":1,"48":1,"73":1,"74":1,"75":1}}],["them",{"2":{"33":1,"72":1,"73":1,"85":1}}],["then",{"2":{"25":1,"72":1,"83":1,"85":2}}],["these",{"2":{"15":1,"29":3,"75":1}}],["thereby",{"2":{"1":1,"14":1}}],["their",{"0":{"42":1},"2":{"1":1,"29":1,"43":1}}],["the",{"0":{"48":1},"2":{"0":2,"1":19,"2":7,"4":2,"6":3,"8":1,"10":5,"12":2,"14":4,"15":14,"16":5,"17":8,"18":6,"20":5,"21":9,"22":6,"23":10,"25":13,"26":5,"28":2,"29":19,"30":3,"31":16,"32":7,"33":26,"46":1,"48":1,"49":1,"55":1,"58":1,"61":3,"64":1,"68":1,"71":1,"72":92,"73":4,"74":3,"75":3,"76":17,"77":2,"78":133,"82":1,"83":53,"84":17,"85":120}}],["towards",{"2":{"78":1}}],["too",{"2":{"75":1}}],["tool",{"2":{"28":1}}],["toolkit",{"2":{"16":1}}],["tools",{"0":{"31":1},"2":{"15":1,"30":2}}],["topics",{"2":{"70":1}}],["together",{"2":{"32":1,"72":1,"83":1}}],["total",{"2":{"21":1,"23":1,"78":1}}],["todo",{"0":{"3":1,"5":1,"7":1,"9":1,"11":1,"13":1},"2":{"31":1,"72":1,"85":1}}],["to",{"0":{"18":1,"21":1,"23":1,"46":1,"61":1},"2":{"0":1,"1":2,"2":1,"4":1,"6":1,"8":1,"10":1,"12":1,"15":6,"17":4,"18":6,"20":2,"21":4,"22":1,"23":4,"25":3,"26":2,"28":2,"29":4,"30":2,"31":4,"32":2,"33":5,"48":1,"60":1,"61":1,"64":1,"71":1,"72":28,"73":3,"74":5,"75":9,"76":12,"77":3,"78":59,"80":1,"82":1,"83":13,"84":10,"85":49}}],["epoch",{"2":{"85":1}}],["err",{"2":{"84":3}}],["error",{"2":{"29":2,"31":7,"32":5,"72":10,"76":1,"78":1,"83":10,"84":4,"85":4}}],["eq",{"2":{"78":16,"84":2}}],["equality",{"2":{"84":1}}],["equal",{"2":{"35":1,"78":4,"84":3}}],["equivalent",{"2":{"18":1,"21":1,"23":1,"72":1}}],["euclidian",{"2":{"78":6}}],["especially",{"2":{"75":1}}],["essential",{"2":{"0":1,"15":1,"29":1,"59":1}}],["easy",{"2":{"73":1,"82":1}}],["ease",{"2":{"1":1,"16":1,"58":1}}],["each",{"2":{"21":1,"23":1,"31":1,"55":1,"56":1,"72":2,"78":1,"83":1,"85":1}}],["either",{"2":{"17":1,"20":1,"22":1,"72":1,"73":1,"78":3,"83":1}}],["educational",{"2":{"16":1,"30":1}}],["efficiency",{"2":{"16":1,"74":1}}],["efficiently",{"2":{"8":1,"84":1}}],["efficient",{"2":{"1":1,"63":1,"78":1}}],["embodies",{"2":{"16":1,"30":1,"33":2,"72":2}}],["empty",{"2":{"32":1,"72":1,"76":2,"83":1,"84":4,"85":11}}],["emptydomain",{"2":{"15":1,"17":2,"20":1,"22":1,"72":2,"83":1}}],["empowering",{"0":{"16":1}}],["emphasizes",{"2":{"1":1}}],["evaluation",{"2":{"76":1}}],["evaluated",{"2":{"29":1,"85":1}}],["evolves",{"2":{"85":1}}],["evolve",{"2":{"15":1}}],["everuseful",{"2":{"12":1}}],["elementary",{"0":{"40":1}}],["element",{"2":{"37":1,"76":2,"85":1}}],["elements",{"2":{"1":1,"8":1,"15":2,"17":1,"29":1,"72":2,"78":16,"83":2}}],["eltype",{"2":{"24":3,"72":3,"76":2}}],["eliminating",{"2":{"1":1}}],["exclu",{"2":{"78":3}}],["exclusive",{"2":{"76":3,"78":8}}],["excluded",{"2":{"33":1,"72":1}}],["exact",{"2":{"75":4}}],["example2",{"2":{"33":1,"72":1}}],["examples",{"2":{"33":2,"72":2,"80":1}}],["examine",{"2":{"29":1}}],["existing",{"2":{"73":1,"74":1}}],["express",{"2":{"84":1}}],["expansion",{"2":{"78":1}}],["export",{"2":{"78":1,"85":1}}],["explanation",{"2":{"66":1}}],["explicitly",{"2":{"33":2,"72":2}}],["explicit",{"2":{"33":2,"72":2}}],["explored",{"2":{"78":1}}],["explore",{"2":{"25":4,"72":4,"78":3,"83":1}}],["exploresettings",{"2":{"15":1,"25":1,"72":1,"83":1}}],["exploring",{"0":{"14":1,"54":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"55":1},"2":{"16":1}}],["explorations",{"2":{"29":1}}],["exploration",{"0":{"25":1},"2":{"8":1,"15":4,"25":2,"26":1,"72":3,"83":1}}],["experimental",{"0":{"71":1},"2":{"71":1}}],["experiments",{"0":{"69":1},"1":{"70":1,"71":1},"2":{"71":1}}],["experience",{"2":{"1":1}}],["expect",{"2":{"61":1}}],["expected",{"2":{"31":2,"72":2,"78":1,"83":2}}],["externally",{"2":{"85":1}}],["external",{"2":{"15":1}}],["extend",{"2":{"17":1,"24":1,"72":2,"82":1,"83":1}}],["extends",{"2":{"6":3,"18":7,"21":4,"23":4,"24":1,"26":2,"72":7,"76":3}}],["extended",{"2":{"6":1,"78":19}}],["extensions",{"0":{"6":1},"1":{"7":1}}],["extension",{"0":{"18":1,"21":1,"23":1,"80":1},"2":{"1":1,"33":6,"72":6,"80":1}}],["extrema",{"0":{"10":1},"1":{"11":1},"2":{"10":3,"72":2,"76":1,"83":2,"85":3}}],["extracts",{"2":{"2":1,"32":1,"72":1,"83":1}}],["extract",{"2":{"2":2,"32":1,"72":1,"83":1}}],["e",{"2":{"1":1,"66":1,"78":1,"85":1}}],["entry",{"2":{"85":1}}],["enforcing",{"2":{"33":2,"72":2}}],["encoding",{"2":{"77":5}}],["encode",{"2":{"76":1}}],["encourage",{"2":{"48":1}}],["encompass",{"2":{"33":1,"72":1}}],["encapsulate",{"2":{"85":2}}],["encapsulating",{"2":{"29":1}}],["encapsuler",{"2":{"20":1,"72":1}}],["enough",{"2":{"26":1,"72":1}}],["enhancement",{"2":{"29":1}}],["enhances",{"2":{"16":1,"30":1}}],["enhancing",{"2":{"1":2,"29":1}}],["enabling",{"0":{"30":1},"2":{"14":1}}],["enabled",{"2":{"85":1}}],["enable",{"2":{"1":1}}],["end``",{"2":{"85":1}}],["end",{"2":{"1":1,"4":2,"72":2,"84":6,"85":4}}],["ensure",{"2":{"77":1}}],["ensures",{"2":{"1":1,"29":1}}],["ensuring",{"2":{"1":2,"33":4,"72":4,"76":3,"84":9}}],["environment",{"0":{"59":1},"2":{"1":1}}],["etc",{"2":{"1":1}}],["ecosystem",{"2":{"0":1,"1":3,"14":1,"16":1,"28":1,"30":1,"73":1}}],["jacop",{"2":{"73":1}}],["jump",{"2":{"73":1,"84":6,"85":1}}],["juliajump",{"2":{"84":1}}],["juliaweigths",{"2":{"78":3}}],["juliaremote",{"2":{"85":2}}],["juliaregularization",{"2":{"78":1}}],["juliareduce",{"2":{"78":1}}],["juliarangedomain",{"2":{"22":1,"72":1,"83":1}}],["julianbits",{"2":{"78":2}}],["juliano",{"2":{"76":1}}],["juliahamming",{"2":{"78":1}}],["juliafunctions",{"2":{"78":1}}],["juliafake",{"2":{"26":1,"72":1}}],["juliafakeautomaton",{"2":{"26":1,"72":1}}],["juliabinarize",{"2":{"77":1}}],["juliabase",{"2":{"6":3,"18":15,"20":1,"21":13,"22":1,"23":14,"24":2,"26":4,"72":19,"78":1,"83":1,"84":2}}],["juliatransformation",{"2":{"78":1}}],["juliatrain",{"2":{"76":2,"77":1}}],["juliatr",{"2":{"78":19}}],["juliato",{"2":{"17":1,"72":1,"83":1}}],["juliaqubo",{"2":{"76":1,"77":2}}],["juliaqubogradientoptimizer",{"2":{"76":1}}],["juliapost",{"2":{"85":1}}],["juliapredicate",{"2":{"84":1}}],["juliapredict",{"2":{"76":1}}],["juliapreliminaries",{"2":{"76":1}}],["juliaparameter",{"2":{"76":1}}],["juliaparams",{"2":{"31":1,"72":1,"83":1}}],["juliao",{"2":{"85":1}}],["juliaoptions",{"2":{"85":1}}],["juliaoptimizer",{"2":{"84":2}}],["juliaoptimize",{"2":{"76":1}}],["juliaobjective",{"2":{"85":4}}],["juliaoversample",{"2":{"8":1,"72":1,"83":1}}],["julialeadsolver",{"2":{"85":1}}],["julialearn",{"2":{"78":1}}],["julialength",{"2":{"21":1,"23":1,"78":1,"85":5}}],["julialazy",{"2":{"78":2}}],["julialayers",{"2":{"78":1}}],["julialayer",{"2":{"78":1}}],["julialoss",{"2":{"76":1}}],["juliais",{"2":{"77":1,"78":1,"85":2}}],["juliaicn",{"2":{"76":1,"78":1}}],["juliaicnlocalsearchoptimizer",{"2":{"76":1}}],["juliaicngeneticoptimizer",{"2":{"76":1}}],["juliaicnconfig",{"2":{"76":1}}],["juliaintersect",{"2":{"20":1,"22":1,"72":1,"83":1}}],["juliaintervals",{"2":{"20":1,"72":1}}],["juliaincsert",{"2":{"12":1,"72":1,"83":1}}],["juliacompose",{"2":{"78":2}}],["juliacomposition",{"2":{"78":3}}],["juliacompositionalnetworks",{"2":{"76":2}}],["juliacomparison",{"2":{"78":1}}],["juliacode",{"2":{"78":1}}],["juliaco",{"2":{"78":9}}],["juliaconcept",{"2":{"31":1,"72":1,"83":1}}],["juliacontinuousdomain",{"2":{"20":1,"72":1,"83":1}}],["juliaconstriction",{"2":{"85":1}}],["juliaconstraint",{"0":{"48":1,"54":1},"1":{"55":1},"2":{"31":1,"49":1,"55":1,"61":1,"72":1,"83":1,"85":3}}],["juliaconstraintcommons",{"2":{"4":1,"26":1,"72":1}}],["juliaconstraints",{"0":{"14":1,"73":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"74":1,"75":1},"2":{"1":3,"16":1,"28":1,"29":1,"30":1,"73":6}}],["juliaconst",{"2":{"2":2,"72":2,"76":2}}],["juliac",{"2":{"33":2,"72":2}}],["juliastop",{"2":{"85":1}}],["juliastatus",{"2":{"85":1}}],["juliastruct",{"2":{"76":1,"78":1}}],["juliaspecialize",{"2":{"85":2}}],["juliasolve",{"2":{"85":2}}],["juliasolution",{"2":{"85":1}}],["juliascalarfunction",{"2":{"84":1}}],["juliasymbols",{"2":{"78":1}}],["juliasymbol",{"2":{"78":1}}],["juliasymmetries",{"2":{"31":1,"72":1,"83":1}}],["juliashow",{"2":{"78":2}}],["juliashrink",{"2":{"31":1,"72":1}}],["juliaselected",{"2":{"78":1}}],["juliasetdomain",{"2":{"22":1,"72":1}}],["juliasub",{"2":{"76":1}}],["juliausual",{"2":{"31":1,"32":1,"72":2,"83":2}}],["juliageneralstate",{"2":{"85":1}}],["juliagenerate",{"2":{"26":1,"72":1,"76":1,"78":3,"83":1}}],["juliaget",{"2":{"17":1,"72":1,"83":1,"85":12}}],["juliamodel",{"2":{"85":1}}],["juliamoi",{"2":{"84":11}}],["juliamoisumequalparam",{"2":{"84":1}}],["juliamoisequentialtasks",{"2":{"84":1}}],["juliamoipredicate",{"2":{"84":1}}],["juliamoiordered",{"2":{"84":1}}],["juliamoiminusequalparam",{"2":{"84":1}}],["juliamoilessthanparam",{"2":{"84":1}}],["juliamoierror",{"2":{"84":1}}],["juliamoieq",{"2":{"84":1}}],["juliamoidistdifferent",{"2":{"84":1}}],["juliamoialwaystrue",{"2":{"84":1}}],["juliamoiallequalparam",{"2":{"84":1}}],["juliamoiallequal",{"2":{"84":1}}],["juliamoialldifferent",{"2":{"84":1}}],["juliamts",{"2":{"85":1}}],["juliaminkowski",{"2":{"78":1}}],["juliamax",{"2":{"85":1}}],["juliamainsolver",{"2":{"85":1}}],["juliamap",{"2":{"78":1}}],["juliamanhattan",{"2":{"78":1}}],["juliamake",{"2":{"76":3}}],["juliamutually",{"2":{"76":1}}],["juliamerge",{"2":{"20":1,"22":1,"72":1,"83":1}}],["juliamdd",{"2":{"4":1,"72":1,"83":1}}],["juliavariable",{"2":{"85":3}}],["juliavar",{"2":{"18":1,"21":1,"23":1,"85":1}}],["juliaxcsp",{"2":{"33":2,"72":2}}],["juliax",{"2":{"18":1,"21":1,"23":1,"85":1}}],["juliad",{"2":{"85":1}}],["juliadist",{"2":{"85":1}}],["juliadiscreteset",{"2":{"84":1}}],["juliadiscretedomain",{"2":{"22":1,"72":1,"83":1}}],["juliadraw",{"2":{"85":1}}],["juliadescribe",{"2":{"85":1}}],["juliadelete",{"2":{"85":2}}],["juliadebinarize",{"2":{"77":1}}],["juliad1",{"2":{"17":1,"20":1,"22":1,"72":1,"83":1}}],["juliadomain",{"2":{"17":6,"20":6,"22":6,"72":6,"76":1,"83":6,"85":1}}],["juliaempty",{"2":{"85":2}}],["juliaemptydomain",{"2":{"17":1,"72":1}}],["juliaerror",{"2":{"31":1,"72":1,"83":1,"84":1}}],["juliaexclu",{"2":{"78":1}}],["juliaexplore",{"2":{"25":1,"72":1,"78":1,"83":1}}],["juliaexploresettings",{"2":{"25":1,"72":1,"83":1}}],["juliaextract",{"2":{"2":1,"32":1,"72":1,"83":1}}],["juliaδ",{"2":{"10":1,"72":1,"76":1,"83":1}}],["juliaas",{"2":{"78":2}}],["juliaarithmetic",{"2":{"78":1}}],["juliaar",{"2":{"78":2}}],["juliaargs",{"2":{"31":1,"72":1,"83":1}}],["juliaaggregation",{"2":{"78":1}}],["juliaag",{"2":{"78":2}}],["juliaadd",{"2":{"22":1,"72":1,"83":1,"85":2}}],["juliaat",{"2":{"4":1,"72":1}}],["juliaaccept",{"2":{"4":1,"26":1,"72":1,"83":1}}],["juliaautomaton",{"2":{"4":2,"72":2,"83":2}}],["juliaabstractsolver",{"2":{"85":1}}],["juliaabstractoptimizer",{"2":{"77":1}}],["juliaabstractdomain",{"2":{"17":1,"72":1,"83":1}}],["juliaabstractautomaton",{"2":{"4":1,"72":1}}],["juliaabstractmultivalueddecisiondiagram",{"2":{"4":1,"72":1}}],["julia",{"0":{"16":1,"28":1,"57":1,"58":1,"59":1,"60":1,"61":1},"1":{"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"58":1,"59":1,"60":1},"2":{"0":2,"4":2,"14":1,"22":1,"25":1,"29":2,"30":1,"32":1,"58":1,"59":1,"60":1,"72":5,"73":8,"76":1,"78":6,"83":2,"84":14,"85":81}}],["join",{"2":{"48":1}}],["joining",{"0":{"48":1}}],["jl",{"0":{"0":1,"14":1,"27":1,"28":1,"76":1,"77":1,"78":1,"79":1,"81":1,"84":1,"85":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1},"2":{"0":1,"1":4,"14":1,"15":3,"16":2,"27":1,"28":1,"29":3,"30":3,"32":1,"72":1,"73":8,"76":1,"77":1,"78":1,"79":1,"80":2,"81":1,"83":1,"84":1,"85":2}}]],"serializationVersion":2}';export{i as default}; diff --git a/dev/assets/chunks/VPLocalSearchBox.B3z7jqVE.js b/dev/assets/chunks/VPLocalSearchBox.CneWFYlM.js similarity index 99% rename from dev/assets/chunks/VPLocalSearchBox.B3z7jqVE.js rename to dev/assets/chunks/VPLocalSearchBox.CneWFYlM.js index bfc461d..456596f 100644 --- a/dev/assets/chunks/VPLocalSearchBox.B3z7jqVE.js +++ b/dev/assets/chunks/VPLocalSearchBox.CneWFYlM.js @@ -4,7 +4,7 @@ function __vite__mapDeps(indexes) { } return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) } -var It=Object.defineProperty;var Dt=(o,e,t)=>e in o?It(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var Oe=(o,e,t)=>(Dt(o,typeof e!="symbol"?e+"":e,t),t);import{Y as yt,h as oe,y as $e,al as kt,am as Ot,d as _t,H as xe,an as tt,k as Fe,ao as Rt,ap as Mt,z as Lt,aq as zt,l as _e,U as de,S as Ee,ar as Pt,as as Vt,Z as Bt,j as $t,at as Wt,o as ee,b as Kt,m as k,a2 as Jt,p as j,au as Ut,av as jt,aw as Gt,c as re,n as rt,e as Se,G as at,F as nt,a as ve,t as pe,ax as qt,q as Ht,s as Qt,ay as it,az as Yt,ab as Zt,ah as Xt,aA as er,_ as tr}from"./framework.RTxADYK2.js";import{u as rr,c as ar}from"./theme.DeBDsvx_.js";const nr={root:()=>yt(()=>import("./@localSearchIndexroot.CYAG39c_.js"),__vite__mapDeps([]))};/*! +var It=Object.defineProperty;var Dt=(o,e,t)=>e in o?It(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var Oe=(o,e,t)=>(Dt(o,typeof e!="symbol"?e+"":e,t),t);import{Y as yt,h as oe,y as $e,al as kt,am as Ot,d as _t,H as xe,an as tt,k as Fe,ao as Rt,ap as Mt,z as Lt,aq as zt,l as _e,U as de,S as Ee,ar as Pt,as as Vt,Z as Bt,j as $t,at as Wt,o as ee,b as Kt,m as k,a2 as Jt,p as j,au as Ut,av as jt,aw as Gt,c as re,n as rt,e as Se,G as at,F as nt,a as ve,t as pe,ax as qt,q as Ht,s as Qt,ay as it,az as Yt,ab as Zt,ah as Xt,aA as er,_ as tr}from"./framework.RTxADYK2.js";import{u as rr,c as ar}from"./theme.DJOtTGwT.js";const nr={root:()=>yt(()=>import("./@localSearchIndexroot.DywB8f3e.js"),__vite__mapDeps([]))};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var mt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ne=mt.join(","),gt=typeof Element>"u",ue=gt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ce=!gt&&Element.prototype.getRootNode?function(o){var e;return o==null||(e=o.getRootNode)===null||e===void 0?void 0:e.call(o)}:function(o){return o==null?void 0:o.ownerDocument},Ie=function o(e,t){var r;t===void 0&&(t=!0);var n=e==null||(r=e.getAttribute)===null||r===void 0?void 0:r.call(e,"inert"),a=n===""||n==="true",i=a||t&&e&&o(e.parentNode);return i},ir=function(e){var t,r=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return r===""||r==="true"},bt=function(e,t,r){if(Ie(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ne));return t&&ue.call(e,Ne)&&n.unshift(e),n=n.filter(r),n},wt=function o(e,t,r){for(var n=[],a=Array.from(e);a.length;){var i=a.shift();if(!Ie(i,!1))if(i.tagName==="SLOT"){var s=i.assignedElements(),u=s.length?s:i.children,l=o(u,!0,r);r.flatten?n.push.apply(n,l):n.push({scopeParent:i,candidates:l})}else{var h=ue.call(i,Ne);h&&r.filter(i)&&(t||!e.includes(i))&&n.push(i);var d=i.shadowRoot||typeof r.getShadowRoot=="function"&&r.getShadowRoot(i),v=!Ie(d,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(i));if(d&&v){var y=o(d===!0?i.children:d.children,!0,r);r.flatten?n.push.apply(n,y):n.push({scopeParent:i,candidates:y})}else a.unshift.apply(a,i.children)}}return n},xt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},se=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||ir(e))&&!xt(e)?0:e.tabIndex},or=function(e,t){var r=se(e);return r<0&&t&&!xt(e)?0:r},sr=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},Ft=function(e){return e.tagName==="INPUT"},ur=function(e){return Ft(e)&&e.type==="hidden"},lr=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(r){return r.tagName==="SUMMARY"});return t},cr=function(e,t){for(var r=0;rsummary:first-of-type"),i=a?e.parentElement:e;if(ue.call(i,"details:not([open]) *"))return!0;if(!r||r==="full"||r==="legacy-full"){if(typeof n=="function"){for(var s=e;e;){var u=e.parentElement,l=Ce(e);if(u&&!u.shadowRoot&&n(u)===!0)return ot(e);e.assignedSlot?e=e.assignedSlot:!u&&l!==e.ownerDocument?e=l.host:e=u}e=s}if(vr(e))return!e.getClientRects().length;if(r!=="legacy-full")return!0}else if(r==="non-zero-area")return ot(e);return!1},yr=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var r=0;r=0)},gr=function o(e){var t=[],r=[];return e.forEach(function(n,a){var i=!!n.scopeParent,s=i?n.scopeParent:n,u=or(s,i),l=i?o(n.candidates):s;u===0?i?t.push.apply(t,l):t.push(s):r.push({documentOrder:a,tabIndex:u,item:n,isScope:i,content:l})}),r.sort(sr).reduce(function(n,a){return a.isScope?n.push.apply(n,a.content):n.push(a.content),n},[]).concat(t)},br=function(e,t){t=t||{};var r;return t.getShadowRoot?r=wt([e],t.includeContainer,{filter:We.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:mr}):r=bt(e,t.includeContainer,We.bind(null,t)),gr(r)},wr=function(e,t){t=t||{};var r;return t.getShadowRoot?r=wt([e],t.includeContainer,{filter:De.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):r=bt(e,t.includeContainer,De.bind(null,t)),r},le=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ue.call(e,Ne)===!1?!1:We(t,e)},xr=mt.concat("iframe").join(","),Re=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ue.call(e,xr)===!1?!1:De(t,e)};/*! diff --git a/dev/assets/chunks/theme.DeBDsvx_.js b/dev/assets/chunks/theme.DJOtTGwT.js similarity index 99% rename from dev/assets/chunks/theme.DeBDsvx_.js rename to dev/assets/chunks/theme.DJOtTGwT.js index 11b7b04..7852778 100644 --- a/dev/assets/chunks/theme.DeBDsvx_.js +++ b/dev/assets/chunks/theme.DJOtTGwT.js @@ -1,7 +1,7 @@ function __vite__mapDeps(indexes) { if (!__vite__mapDeps.viteFileDeps) { - __vite__mapDeps.viteFileDeps = ["assets/chunks/VPLocalSearchBox.B3z7jqVE.js","assets/chunks/framework.RTxADYK2.js"] + __vite__mapDeps.viteFileDeps = ["assets/chunks/VPLocalSearchBox.CneWFYlM.js","assets/chunks/framework.RTxADYK2.js"] } return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) } -import{d as _,o as a,c as u,r as c,n as N,a as D,t as T,b as y,w as p,T as pe,e as f,_ as $,u as Ye,i as Xe,f as Qe,g as he,h as w,j as q,k as g,l as j,m as h,p as r,q as B,s as H,v as z,x as le,y as G,z as te,A as fe,B as Te,C as Ze,D as xe,E as K,F as M,G as E,H as we,I as se,J as b,K as W,L as Ie,M as oe,N as Z,O as J,P as et,Q as Ne,R as tt,S as ce,U as Me,V as Ae,W as st,X as ot,Y as nt,Z as Ce,$ as _e,a0 as at,a1 as rt,a2 as it,a3 as Be,a4 as lt,a5 as ct,a6 as ut}from"./framework.RTxADYK2.js";const dt=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(s){return(t,e)=>(a(),u("span",{class:N(["VPBadge",t.type])},[c(t.$slots,"default",{},()=>[D(T(t.text),1)])],2))}}),vt={key:0,class:"VPBackdrop"},pt=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(s){return(t,e)=>(a(),y(pe,{name:"fade"},{default:p(()=>[t.show?(a(),u("div",vt)):f("",!0)]),_:1}))}}),ht=$(pt,[["__scopeId","data-v-b06cdb19"]]),L=Ye;function ft(s,t){let e,o=!1;return()=>{e&&clearTimeout(e),o?e=setTimeout(s,t):(s(),(o=!0)&&setTimeout(()=>o=!1,t))}}function ue(s){return/^\//.test(s)?s:`/${s}`}function me(s){const{pathname:t,search:e,hash:o,protocol:n}=new URL(s,"http://a.com");if(Xe(s)||s.startsWith("#")||!n.startsWith("http")||!Qe(t))return s;const{site:i}=L(),l=t.endsWith("/")||t.endsWith(".html")?s:s.replace(/(?:(^\.+)\/)?.*$/,`$1${t.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${e}${o}`);return he(l)}const be=w(q?location.hash:"");q&&window.addEventListener("hashchange",()=>{be.value=location.hash});function X({removeCurrent:s=!0,correspondingLink:t=!1}={}){const{site:e,localeIndex:o,page:n,theme:i}=L(),l=g(()=>{var d,m;return{label:(d=e.value.locales[o.value])==null?void 0:d.label,link:((m=e.value.locales[o.value])==null?void 0:m.link)||(o.value==="root"?"/":`/${o.value}/`)}});return{localeLinks:g(()=>Object.entries(e.value.locales).flatMap(([d,m])=>s&&l.value.label===m.label?[]:{text:m.label,link:_t(m.link||(d==="root"?"/":`/${d}/`),i.value.i18nRouting!==!1&&t,n.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+be.value})),currentLang:l}}function _t(s,t,e,o){return t?s.replace(/\/$/,"")+ue(e.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,o?".html":"")):s}const mt=s=>(B("data-v-792811ca"),s=s(),H(),s),bt={class:"NotFound"},kt={class:"code"},$t={class:"title"},gt=mt(()=>h("div",{class:"divider"},null,-1)),yt={class:"quote"},Pt={class:"action"},St=["href","aria-label"],Vt=_({__name:"NotFound",setup(s){const{site:t,theme:e}=L(),{localeLinks:o}=X({removeCurrent:!1}),n=w("/");return j(()=>{var l;const i=window.location.pathname.replace(t.value.base,"").replace(/(^.*?\/).*$/,"/$1");o.value.length&&(n.value=((l=o.value.find(({link:v})=>v.startsWith(i)))==null?void 0:l.link)||o.value[0].link)}),(i,l)=>{var v,d,m,P,k;return a(),u("div",bt,[h("p",kt,T(((v=r(e).notFound)==null?void 0:v.code)??"404"),1),h("h1",$t,T(((d=r(e).notFound)==null?void 0:d.title)??"PAGE NOT FOUND"),1),gt,h("blockquote",yt,T(((m=r(e).notFound)==null?void 0:m.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),h("div",Pt,[h("a",{class:"link",href:r(he)(n.value),"aria-label":((P=r(e).notFound)==null?void 0:P.linkLabel)??"go to home"},T(((k=r(e).notFound)==null?void 0:k.linkText)??"Take me home"),9,St)])])}}}),Lt=$(Vt,[["__scopeId","data-v-792811ca"]]);function He(s,t){if(Array.isArray(s))return x(s);if(s==null)return[];t=ue(t);const e=Object.keys(s).sort((n,i)=>i.split("/").length-n.split("/").length).find(n=>t.startsWith(ue(n))),o=e?s[e]:[];return Array.isArray(o)?x(o):x(o.items,o.base)}function Tt(s){const t=[];let e=0;for(const o in s){const n=s[o];if(n.items){e=t.push(n);continue}t[e]||t.push({items:[]}),t[e].items.push(n)}return t}function wt(s){const t=[];function e(o){for(const n of o)n.text&&n.link&&t.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&e(n.items)}return e(s),t}function de(s,t){return Array.isArray(t)?t.some(e=>de(s,e)):z(s,t.link)?!0:t.items?de(s,t.items):!1}function x(s,t){return[...s].map(e=>{const o={...e},n=o.base||t;return n&&o.link&&(o.link=n+o.link),o.items&&(o.items=x(o.items,n)),o})}function O(){const{frontmatter:s,page:t,theme:e}=L(),o=le("(min-width: 960px)"),n=w(!1),i=g(()=>{const C=e.value.sidebar,I=t.value.relativePath;return C?He(C,I):[]}),l=w(i.value);G(i,(C,I)=>{JSON.stringify(C)!==JSON.stringify(I)&&(l.value=i.value)});const v=g(()=>s.value.sidebar!==!1&&l.value.length>0&&s.value.layout!=="home"),d=g(()=>m?s.value.aside==null?e.value.aside==="left":s.value.aside==="left":!1),m=g(()=>s.value.layout==="home"?!1:s.value.aside!=null?!!s.value.aside:e.value.aside!==!1),P=g(()=>v.value&&o.value),k=g(()=>v.value?Tt(l.value):[]);function V(){n.value=!0}function S(){n.value=!1}function A(){n.value?S():V()}return{isOpen:n,sidebar:l,sidebarGroups:k,hasSidebar:v,hasAside:m,leftAside:d,isSidebarEnabled:P,open:V,close:S,toggle:A}}function It(s,t){let e;te(()=>{e=s.value?document.activeElement:void 0}),j(()=>{window.addEventListener("keyup",o)}),fe(()=>{window.removeEventListener("keyup",o)});function o(n){n.key==="Escape"&&s.value&&(t(),e==null||e.focus())}}function Nt(s){const{page:t}=L(),e=w(!1),o=g(()=>s.value.collapsed!=null),n=g(()=>!!s.value.link),i=w(!1),l=()=>{i.value=z(t.value.relativePath,s.value.link)};G([t,s,be],l),j(l);const v=g(()=>i.value?!0:s.value.items?de(t.value.relativePath,s.value.items):!1),d=g(()=>!!(s.value.items&&s.value.items.length));te(()=>{e.value=!!(o.value&&s.value.collapsed)}),Te(()=>{(i.value||v.value)&&(e.value=!1)});function m(){o.value&&(e.value=!e.value)}return{collapsed:e,collapsible:o,isLink:n,isActiveLink:i,hasActiveLink:v,hasChildren:d,toggle:m}}function Mt(){const{hasSidebar:s}=O(),t=le("(min-width: 960px)"),e=le("(min-width: 1280px)");return{isAsideEnabled:g(()=>!e.value&&!t.value?!1:s.value?e.value:t.value)}}const ve=[];function Ee(s){return typeof s.outline=="object"&&!Array.isArray(s.outline)&&s.outline.label||s.outlineTitle||"On this page"}function ke(s){const t=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(e=>e.id&&e.hasChildNodes()).map(e=>{const o=Number(e.tagName[1]);return{element:e,title:At(e),link:"#"+e.id,level:o}});return Ct(t,s)}function At(s){let t="";for(const e of s.childNodes)if(e.nodeType===1){if(e.classList.contains("VPBadge")||e.classList.contains("header-anchor")||e.classList.contains("ignore-header"))continue;t+=e.textContent}else e.nodeType===3&&(t+=e.textContent);return t.trim()}function Ct(s,t){if(t===!1)return[];const e=(typeof t=="object"&&!Array.isArray(t)?t.level:t)||2,[o,n]=typeof e=="number"?[e,e]:e==="deep"?[2,6]:e;s=s.filter(l=>l.level>=o&&l.level<=n),ve.length=0;for(const{element:l,link:v}of s)ve.push({element:l,link:v});const i=[];e:for(let l=0;l=0;d--){const m=s[d];if(m.level{requestAnimationFrame(i),window.addEventListener("scroll",o)}),Ze(()=>{l(location.hash)}),fe(()=>{window.removeEventListener("scroll",o)});function i(){if(!e.value)return;const v=window.scrollY,d=window.innerHeight,m=document.body.offsetHeight,P=Math.abs(v+d-m)<1,k=ve.map(({element:S,link:A})=>({link:A,top:Ht(S)})).filter(({top:S})=>!Number.isNaN(S)).sort((S,A)=>S.top-A.top);if(!k.length){l(null);return}if(v<1){l(null);return}if(P){l(k[k.length-1].link);return}let V=null;for(const{link:S,top:A}of k){if(A>v+xe()+4)break;V=S}l(V)}function l(v){n&&n.classList.remove("active"),v==null?n=null:n=s.value.querySelector(`a[href="${decodeURIComponent(v)}"]`);const d=n;d?(d.classList.add("active"),t.value.style.top=d.offsetTop+39+"px",t.value.style.opacity="1"):(t.value.style.top="33px",t.value.style.opacity="0")}}function Ht(s){let t=0;for(;s!==document.body;){if(s===null)return NaN;t+=s.offsetTop,s=s.offsetParent}return t}const Et=["href","title"],Dt=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(s){function t({target:e}){const o=e.href.split("#")[1],n=document.getElementById(decodeURIComponent(o));n==null||n.focus({preventScroll:!0})}return(e,o)=>{const n=K("VPDocOutlineItem",!0);return a(),u("ul",{class:N(["VPDocOutlineItem",e.root?"root":"nested"])},[(a(!0),u(M,null,E(e.headers,({children:i,link:l,title:v})=>(a(),u("li",null,[h("a",{class:"outline-link",href:l,onClick:t,title:v},T(v),9,Et),i!=null&&i.length?(a(),y(n,{key:0,headers:i},null,8,["headers"])):f("",!0)]))),256))],2)}}}),De=$(Dt,[["__scopeId","data-v-3f927ebe"]]),Ft=s=>(B("data-v-c14bfc45"),s=s(),H(),s),Ot={class:"content"},Ut={class:"outline-title",role:"heading","aria-level":"2"},jt={"aria-labelledby":"doc-outline-aria-label"},Gt=Ft(()=>h("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),zt=_({__name:"VPDocAsideOutline",setup(s){const{frontmatter:t,theme:e}=L(),o=we([]);se(()=>{o.value=ke(t.value.outline??e.value.outline)});const n=w(),i=w();return Bt(n,i),(l,v)=>(a(),u("div",{class:N(["VPDocAsideOutline",{"has-outline":o.value.length>0}]),ref_key:"container",ref:n,role:"navigation"},[h("div",Ot,[h("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),h("div",Ut,T(r(Ee)(r(e))),1),h("nav",jt,[Gt,b(De,{headers:o.value,root:!0},null,8,["headers"])])])],2))}}),Kt=$(zt,[["__scopeId","data-v-c14bfc45"]]),Rt={class:"VPDocAsideCarbonAds"},Wt=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(s){const t=()=>null;return(e,o)=>(a(),u("div",Rt,[b(r(t),{"carbon-ads":e.carbonAds},null,8,["carbon-ads"])]))}}),qt=s=>(B("data-v-6d7b3c46"),s=s(),H(),s),Jt={class:"VPDocAside"},Yt=qt(()=>h("div",{class:"spacer"},null,-1)),Xt=_({__name:"VPDocAside",setup(s){const{theme:t}=L();return(e,o)=>(a(),u("div",Jt,[c(e.$slots,"aside-top",{},void 0,!0),c(e.$slots,"aside-outline-before",{},void 0,!0),b(Kt),c(e.$slots,"aside-outline-after",{},void 0,!0),Yt,c(e.$slots,"aside-ads-before",{},void 0,!0),r(t).carbonAds?(a(),y(Wt,{key:0,"carbon-ads":r(t).carbonAds},null,8,["carbon-ads"])):f("",!0),c(e.$slots,"aside-ads-after",{},void 0,!0),c(e.$slots,"aside-bottom",{},void 0,!0)]))}}),Qt=$(Xt,[["__scopeId","data-v-6d7b3c46"]]);function Zt(){const{theme:s,page:t}=L();return g(()=>{const{text:e="Edit this page",pattern:o=""}=s.value.editLink||{};let n;return typeof o=="function"?n=o(t.value):n=o.replace(/:path/g,t.value.filePath),{url:n,text:e}})}function xt(){const{page:s,theme:t,frontmatter:e}=L();return g(()=>{var d,m,P,k,V,S,A,C;const o=He(t.value.sidebar,s.value.relativePath),n=wt(o),i=n.findIndex(I=>z(s.value.relativePath,I.link)),l=((d=t.value.docFooter)==null?void 0:d.prev)===!1&&!e.value.prev||e.value.prev===!1,v=((m=t.value.docFooter)==null?void 0:m.next)===!1&&!e.value.next||e.value.next===!1;return{prev:l?void 0:{text:(typeof e.value.prev=="string"?e.value.prev:typeof e.value.prev=="object"?e.value.prev.text:void 0)??((P=n[i-1])==null?void 0:P.docFooterText)??((k=n[i-1])==null?void 0:k.text),link:(typeof e.value.prev=="object"?e.value.prev.link:void 0)??((V=n[i-1])==null?void 0:V.link)},next:v?void 0:{text:(typeof e.value.next=="string"?e.value.next:typeof e.value.next=="object"?e.value.next.text:void 0)??((S=n[i+1])==null?void 0:S.docFooterText)??((A=n[i+1])==null?void 0:A.text),link:(typeof e.value.next=="object"?e.value.next.link:void 0)??((C=n[i+1])==null?void 0:C.link)}}})}const F=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(s){const t=s,e=g(()=>t.tag??(t.href?"a":"span")),o=g(()=>t.href&&Ie.test(t.href));return(n,i)=>(a(),y(W(e.value),{class:N(["VPLink",{link:n.href,"vp-external-link-icon":o.value,"no-icon":n.noIcon}]),href:n.href?r(me)(n.href):void 0,target:n.target??(o.value?"_blank":void 0),rel:n.rel??(o.value?"noreferrer":void 0)},{default:p(()=>[c(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),es={class:"VPLastUpdated"},ts=["datetime"],ss=_({__name:"VPDocFooterLastUpdated",setup(s){const{theme:t,page:e,frontmatter:o,lang:n}=L(),i=g(()=>new Date(o.value.lastUpdated??e.value.lastUpdated)),l=g(()=>i.value.toISOString()),v=w("");return j(()=>{te(()=>{var d,m,P;v.value=new Intl.DateTimeFormat((m=(d=t.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&m.forceLocale?n.value:void 0,((P=t.value.lastUpdated)==null?void 0:P.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(i.value)})}),(d,m)=>{var P;return a(),u("p",es,[D(T(((P=r(t).lastUpdated)==null?void 0:P.text)||r(t).lastUpdatedText||"Last updated")+": ",1),h("time",{datetime:l.value},T(v.value),9,ts)])}}}),os=$(ss,[["__scopeId","data-v-9da12f1d"]]),ns=s=>(B("data-v-87be45d1"),s=s(),H(),s),as={key:0,class:"VPDocFooter"},rs={key:0,class:"edit-info"},is={key:0,class:"edit-link"},ls=ns(()=>h("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),cs={key:1,class:"last-updated"},us={key:1,class:"prev-next"},ds={class:"pager"},vs=["innerHTML"],ps=["innerHTML"],hs={class:"pager"},fs=["innerHTML"],_s=["innerHTML"],ms=_({__name:"VPDocFooter",setup(s){const{theme:t,page:e,frontmatter:o}=L(),n=Zt(),i=xt(),l=g(()=>t.value.editLink&&o.value.editLink!==!1),v=g(()=>e.value.lastUpdated&&o.value.lastUpdated!==!1),d=g(()=>l.value||v.value||i.value.prev||i.value.next);return(m,P)=>{var k,V,S,A;return d.value?(a(),u("footer",as,[c(m.$slots,"doc-footer-before",{},void 0,!0),l.value||v.value?(a(),u("div",rs,[l.value?(a(),u("div",is,[b(F,{class:"edit-link-button",href:r(n).url,"no-icon":!0},{default:p(()=>[ls,D(" "+T(r(n).text),1)]),_:1},8,["href"])])):f("",!0),v.value?(a(),u("div",cs,[b(os)])):f("",!0)])):f("",!0),(k=r(i).prev)!=null&&k.link||(V=r(i).next)!=null&&V.link?(a(),u("nav",us,[h("div",ds,[(S=r(i).prev)!=null&&S.link?(a(),y(F,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:p(()=>{var C;return[h("span",{class:"desc",innerHTML:((C=r(t).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,vs),h("span",{class:"title",innerHTML:r(i).prev.text},null,8,ps)]}),_:1},8,["href"])):f("",!0)]),h("div",hs,[(A=r(i).next)!=null&&A.link?(a(),y(F,{key:0,class:"pager-link next",href:r(i).next.link},{default:p(()=>{var C;return[h("span",{class:"desc",innerHTML:((C=r(t).docFooter)==null?void 0:C.next)||"Next page"},null,8,fs),h("span",{class:"title",innerHTML:r(i).next.text},null,8,_s)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),bs=$(ms,[["__scopeId","data-v-87be45d1"]]),ks=s=>(B("data-v-83890dd9"),s=s(),H(),s),$s={class:"container"},gs=ks(()=>h("div",{class:"aside-curtain"},null,-1)),ys={class:"aside-container"},Ps={class:"aside-content"},Ss={class:"content"},Vs={class:"content-container"},Ls={class:"main"},Ts=_({__name:"VPDoc",setup(s){const{theme:t}=L(),e=oe(),{hasSidebar:o,hasAside:n,leftAside:i}=O(),l=g(()=>e.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(v,d)=>{const m=K("Content");return a(),u("div",{class:N(["VPDoc",{"has-sidebar":r(o),"has-aside":r(n)}])},[c(v.$slots,"doc-top",{},void 0,!0),h("div",$s,[r(n)?(a(),u("div",{key:0,class:N(["aside",{"left-aside":r(i)}])},[gs,h("div",ys,[h("div",Ps,[b(Qt,null,{"aside-top":p(()=>[c(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[c(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[c(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[c(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[c(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[c(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),h("div",Ss,[h("div",Vs,[c(v.$slots,"doc-before",{},void 0,!0),h("main",Ls,[b(m,{class:N(["vp-doc",[l.value,r(t).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),b(bs,null,{"doc-footer-before":p(()=>[c(v.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(v.$slots,"doc-after",{},void 0,!0)])])]),c(v.$slots,"doc-bottom",{},void 0,!0)],2)}}}),ws=$(Ts,[["__scopeId","data-v-83890dd9"]]),Is=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(s){const t=s,e=g(()=>t.href&&Ie.test(t.href)),o=g(()=>t.tag||t.href?"a":"button");return(n,i)=>(a(),y(W(o.value),{class:N(["VPButton",[n.size,n.theme]]),href:n.href?r(me)(n.href):void 0,target:t.target??(e.value?"_blank":void 0),rel:t.rel??(e.value?"noreferrer":void 0)},{default:p(()=>[D(T(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),Ns=$(Is,[["__scopeId","data-v-14206e74"]]),Ms=["src","alt"],As=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(s){return(t,e)=>{const o=K("VPImage",!0);return t.image?(a(),u(M,{key:0},[typeof t.image=="string"||"src"in t.image?(a(),u("img",Z({key:0,class:"VPImage"},typeof t.image=="string"?t.$attrs:{...t.image,...t.$attrs},{src:r(he)(typeof t.image=="string"?t.image:t.image.src),alt:t.alt??(typeof t.image=="string"?"":t.image.alt||"")}),null,16,Ms)):(a(),u(M,{key:1},[b(o,Z({class:"dark",image:t.image.dark,alt:t.image.alt},t.$attrs),null,16,["image","alt"]),b(o,Z({class:"light",image:t.image.light,alt:t.image.alt},t.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),ee=$(As,[["__scopeId","data-v-35a7d0b8"]]),Cs=s=>(B("data-v-955009fc"),s=s(),H(),s),Bs={class:"container"},Hs={class:"main"},Es={key:0,class:"name"},Ds=["innerHTML"],Fs=["innerHTML"],Os=["innerHTML"],Us={key:0,class:"actions"},js={key:0,class:"image"},Gs={class:"image-container"},zs=Cs(()=>h("div",{class:"image-bg"},null,-1)),Ks=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(s){const t=J("hero-image-slot-exists");return(e,o)=>(a(),u("div",{class:N(["VPHero",{"has-image":e.image||r(t)}])},[h("div",Bs,[h("div",Hs,[c(e.$slots,"home-hero-info-before",{},void 0,!0),c(e.$slots,"home-hero-info",{},()=>[e.name?(a(),u("h1",Es,[h("span",{innerHTML:e.name,class:"clip"},null,8,Ds)])):f("",!0),e.text?(a(),u("p",{key:1,innerHTML:e.text,class:"text"},null,8,Fs)):f("",!0),e.tagline?(a(),u("p",{key:2,innerHTML:e.tagline,class:"tagline"},null,8,Os)):f("",!0)],!0),c(e.$slots,"home-hero-info-after",{},void 0,!0),e.actions?(a(),u("div",Us,[(a(!0),u(M,null,E(e.actions,n=>(a(),u("div",{key:n.link,class:"action"},[b(Ns,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):f("",!0),c(e.$slots,"home-hero-actions-after",{},void 0,!0)]),e.image||r(t)?(a(),u("div",js,[h("div",Gs,[zs,c(e.$slots,"home-hero-image",{},()=>[e.image?(a(),y(ee,{key:0,class:"image-src",image:e.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),Rs=$(Ks,[["__scopeId","data-v-955009fc"]]),Ws=_({__name:"VPHomeHero",setup(s){const{frontmatter:t}=L();return(e,o)=>r(t).hero?(a(),y(Rs,{key:0,class:"VPHomeHero",name:r(t).hero.name,text:r(t).hero.text,tagline:r(t).hero.tagline,image:r(t).hero.image,actions:r(t).hero.actions},{"home-hero-info-before":p(()=>[c(e.$slots,"home-hero-info-before")]),"home-hero-info":p(()=>[c(e.$slots,"home-hero-info")]),"home-hero-info-after":p(()=>[c(e.$slots,"home-hero-info-after")]),"home-hero-actions-after":p(()=>[c(e.$slots,"home-hero-actions-after")]),"home-hero-image":p(()=>[c(e.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),qs=s=>(B("data-v-f5e9645b"),s=s(),H(),s),Js={class:"box"},Ys={key:0,class:"icon"},Xs=["innerHTML"],Qs=["innerHTML"],Zs=["innerHTML"],xs={key:4,class:"link-text"},eo={class:"link-text-value"},to=qs(()=>h("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),so=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(s){return(t,e)=>(a(),y(F,{class:"VPFeature",href:t.link,rel:t.rel,target:t.target,"no-icon":!0,tag:t.link?"a":"div"},{default:p(()=>[h("article",Js,[typeof t.icon=="object"&&t.icon.wrap?(a(),u("div",Ys,[b(ee,{image:t.icon,alt:t.icon.alt,height:t.icon.height||48,width:t.icon.width||48},null,8,["image","alt","height","width"])])):typeof t.icon=="object"?(a(),y(ee,{key:1,image:t.icon,alt:t.icon.alt,height:t.icon.height||48,width:t.icon.width||48},null,8,["image","alt","height","width"])):t.icon?(a(),u("div",{key:2,class:"icon",innerHTML:t.icon},null,8,Xs)):f("",!0),h("h2",{class:"title",innerHTML:t.title},null,8,Qs),t.details?(a(),u("p",{key:3,class:"details",innerHTML:t.details},null,8,Zs)):f("",!0),t.linkText?(a(),u("div",xs,[h("p",eo,[D(T(t.linkText)+" ",1),to])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),oo=$(so,[["__scopeId","data-v-f5e9645b"]]),no={key:0,class:"VPFeatures"},ao={class:"container"},ro={class:"items"},io=_({__name:"VPFeatures",props:{features:{}},setup(s){const t=s,e=g(()=>{const o=t.features.length;if(o){if(o===2)return"grid-2";if(o===3)return"grid-3";if(o%3===0)return"grid-6";if(o>3)return"grid-4"}else return});return(o,n)=>o.features?(a(),u("div",no,[h("div",ao,[h("div",ro,[(a(!0),u(M,null,E(o.features,i=>(a(),u("div",{key:i.title,class:N(["item",[e.value]])},[b(oo,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),lo=$(io,[["__scopeId","data-v-d0a190d7"]]),co=_({__name:"VPHomeFeatures",setup(s){const{frontmatter:t}=L();return(e,o)=>r(t).features?(a(),y(lo,{key:0,class:"VPHomeFeatures",features:r(t).features},null,8,["features"])):f("",!0)}}),uo=_({__name:"VPHomeContent",setup(s){const{width:t}=et({includeScrollbar:!1});return(e,o)=>(a(),u("div",{class:"vp-doc container",style:Ne(r(t)?{"--vp-offset":`calc(50% - ${r(t)/2}px)`}:{})},[c(e.$slots,"default",{},void 0,!0)],4))}}),vo=$(uo,[["__scopeId","data-v-c43247eb"]]),po={class:"VPHome"},ho=_({__name:"VPHome",setup(s){const{frontmatter:t}=L();return(e,o)=>{const n=K("Content");return a(),u("div",po,[c(e.$slots,"home-hero-before",{},void 0,!0),b(Ws,null,{"home-hero-info-before":p(()=>[c(e.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[c(e.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[c(e.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[c(e.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[c(e.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(e.$slots,"home-hero-after",{},void 0,!0),c(e.$slots,"home-features-before",{},void 0,!0),b(co),c(e.$slots,"home-features-after",{},void 0,!0),r(t).markdownStyles!==!1?(a(),y(vo,{key:0},{default:p(()=>[b(n)]),_:1})):(a(),y(n,{key:1}))])}}}),fo=$(ho,[["__scopeId","data-v-cbb6ec48"]]),_o={},mo={class:"VPPage"};function bo(s,t){const e=K("Content");return a(),u("div",mo,[c(s.$slots,"page-top"),b(e),c(s.$slots,"page-bottom")])}const ko=$(_o,[["render",bo]]),$o=_({__name:"VPContent",setup(s){const{page:t,frontmatter:e}=L(),{hasSidebar:o}=O();return(n,i)=>(a(),u("div",{class:N(["VPContent",{"has-sidebar":r(o),"is-home":r(e).layout==="home"}]),id:"VPContent"},[r(t).isNotFound?c(n.$slots,"not-found",{key:0},()=>[b(Lt)],!0):r(e).layout==="page"?(a(),y(ko,{key:1},{"page-top":p(()=>[c(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[c(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(e).layout==="home"?(a(),y(fo,{key:2},{"home-hero-before":p(()=>[c(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":p(()=>[c(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[c(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[c(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[c(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[c(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[c(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[c(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[c(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(e).layout&&r(e).layout!=="doc"?(a(),y(W(r(e).layout),{key:3})):(a(),y(ws,{key:4},{"doc-top":p(()=>[c(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[c(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":p(()=>[c(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[c(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[c(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":p(()=>[c(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":p(()=>[c(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[c(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[c(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[c(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":p(()=>[c(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),go=$($o,[["__scopeId","data-v-91765379"]]),yo={class:"container"},Po=["innerHTML"],So=["innerHTML"],Vo=_({__name:"VPFooter",setup(s){const{theme:t,frontmatter:e}=L(),{hasSidebar:o}=O();return(n,i)=>r(t).footer&&r(e).footer!==!1?(a(),u("footer",{key:0,class:N(["VPFooter",{"has-sidebar":r(o)}])},[h("div",yo,[r(t).footer.message?(a(),u("p",{key:0,class:"message",innerHTML:r(t).footer.message},null,8,Po)):f("",!0),r(t).footer.copyright?(a(),u("p",{key:1,class:"copyright",innerHTML:r(t).footer.copyright},null,8,So)):f("",!0)])],2)):f("",!0)}}),Lo=$(Vo,[["__scopeId","data-v-c970a860"]]);function Fe(){const{theme:s,frontmatter:t}=L(),e=we([]),o=g(()=>e.value.length>0);return se(()=>{e.value=ke(t.value.outline??s.value.outline)}),{headers:e,hasLocalNav:o}}const To=s=>(B("data-v-c9ba27ad"),s=s(),H(),s),wo=To(()=>h("span",{class:"vpi-chevron-right icon"},null,-1)),Io={class:"header"},No={class:"outline"},Mo=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(s){const t=s,{theme:e}=L(),o=w(!1),n=w(0),i=w(),l=w();tt(i,()=>{o.value=!1}),ce("Escape",()=>{o.value=!1}),se(()=>{o.value=!1});function v(){o.value=!o.value,n.value=window.innerHeight+Math.min(window.scrollY-t.navHeight,0)}function d(P){P.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),Me(()=>{o.value=!1}))}function m(){o.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(P,k)=>(a(),u("div",{class:"VPLocalNavOutlineDropdown",style:Ne({"--vp-vh":n.value+"px"}),ref_key:"main",ref:i},[P.headers.length>0?(a(),u("button",{key:0,onClick:v,class:N({open:o.value})},[D(T(r(Ee)(r(e)))+" ",1),wo],2)):(a(),u("button",{key:1,onClick:m},T(r(e).returnToTopLabel||"Return to top"),1)),b(pe,{name:"flyout"},{default:p(()=>[o.value?(a(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:d},[h("div",Io,[h("a",{class:"top-link",href:"#",onClick:m},T(r(e).returnToTopLabel||"Return to top"),1)]),h("div",No,[b(De,{headers:P.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),Ao=$(Mo,[["__scopeId","data-v-c9ba27ad"]]),Co=s=>(B("data-v-070ab83d"),s=s(),H(),s),Bo={class:"container"},Ho=["aria-expanded"],Eo=Co(()=>h("span",{class:"vpi-align-left menu-icon"},null,-1)),Do={class:"menu-text"},Fo=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(s){const{theme:t,frontmatter:e}=L(),{hasSidebar:o}=O(),{headers:n}=Fe(),{y:i}=Ae(),l=w(0);j(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),se(()=>{n.value=ke(e.value.outline??t.value.outline)});const v=g(()=>n.value.length===0),d=g(()=>v.value&&!o.value),m=g(()=>({VPLocalNav:!0,"has-sidebar":o.value,empty:v.value,fixed:d.value}));return(P,k)=>r(e).layout!=="home"&&(!d.value||r(i)>=l.value)?(a(),u("div",{key:0,class:N(m.value)},[h("div",Bo,[r(o)?(a(),u("button",{key:0,class:"menu","aria-expanded":P.open,"aria-controls":"VPSidebarNav",onClick:k[0]||(k[0]=V=>P.$emit("open-menu"))},[Eo,h("span",Do,T(r(t).sidebarMenuLabel||"Menu"),1)],8,Ho)):f("",!0),b(Ao,{headers:r(n),navHeight:l.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),Oo=$(Fo,[["__scopeId","data-v-070ab83d"]]);function Uo(){const s=w(!1);function t(){s.value=!0,window.addEventListener("resize",n)}function e(){s.value=!1,window.removeEventListener("resize",n)}function o(){s.value?e():t()}function n(){window.outerWidth>=768&&e()}const i=oe();return G(()=>i.path,e),{isScreenOpen:s,openScreen:t,closeScreen:e,toggleScreen:o}}const jo={},Go={class:"VPSwitch",type:"button",role:"switch"},zo={class:"check"},Ko={key:0,class:"icon"};function Ro(s,t){return a(),u("button",Go,[h("span",zo,[s.$slots.default?(a(),u("span",Ko,[c(s.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Wo=$(jo,[["render",Ro],["__scopeId","data-v-4a1c76db"]]),Oe=s=>(B("data-v-b79b56d4"),s=s(),H(),s),qo=Oe(()=>h("span",{class:"vpi-sun sun"},null,-1)),Jo=Oe(()=>h("span",{class:"vpi-moon moon"},null,-1)),Yo=_({__name:"VPSwitchAppearance",setup(s){const{isDark:t,theme:e}=L(),o=J("toggle-appearance",()=>{t.value=!t.value}),n=g(()=>t.value?e.value.lightModeSwitchTitle||"Switch to light theme":e.value.darkModeSwitchTitle||"Switch to dark theme");return(i,l)=>(a(),y(Wo,{title:n.value,class:"VPSwitchAppearance","aria-checked":r(t),onClick:r(o)},{default:p(()=>[qo,Jo]),_:1},8,["title","aria-checked","onClick"]))}}),$e=$(Yo,[["__scopeId","data-v-b79b56d4"]]),Xo={key:0,class:"VPNavBarAppearance"},Qo=_({__name:"VPNavBarAppearance",setup(s){const{site:t}=L();return(e,o)=>r(t).appearance&&r(t).appearance!=="force-dark"?(a(),u("div",Xo,[b($e)])):f("",!0)}}),Zo=$(Qo,[["__scopeId","data-v-ead91a81"]]),ge=w();let Ue=!1,ie=0;function xo(s){const t=w(!1);if(q){!Ue&&en(),ie++;const e=G(ge,o=>{var n,i,l;o===s.el.value||(n=s.el.value)!=null&&n.contains(o)?(t.value=!0,(i=s.onFocus)==null||i.call(s)):(t.value=!1,(l=s.onBlur)==null||l.call(s))});fe(()=>{e(),ie--,ie||tn()})}return st(t)}function en(){document.addEventListener("focusin",je),Ue=!0,ge.value=document.activeElement}function tn(){document.removeEventListener("focusin",je)}function je(){ge.value=document.activeElement}const sn={class:"VPMenuLink"},on=_({__name:"VPMenuLink",props:{item:{}},setup(s){const{page:t}=L();return(e,o)=>(a(),u("div",sn,[b(F,{class:N({active:r(z)(r(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel},{default:p(()=>[D(T(e.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),ne=$(on,[["__scopeId","data-v-8b74d055"]]),nn={class:"VPMenuGroup"},an={key:0,class:"title"},rn=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(s){return(t,e)=>(a(),u("div",nn,[t.text?(a(),u("p",an,T(t.text),1)):f("",!0),(a(!0),u(M,null,E(t.items,o=>(a(),u(M,null,["link"in o?(a(),y(ne,{key:0,item:o},null,8,["item"])):f("",!0)],64))),256))]))}}),ln=$(rn,[["__scopeId","data-v-48c802d0"]]),cn={class:"VPMenu"},un={key:0,class:"items"},dn=_({__name:"VPMenu",props:{items:{}},setup(s){return(t,e)=>(a(),u("div",cn,[t.items?(a(),u("div",un,[(a(!0),u(M,null,E(t.items,o=>(a(),u(M,{key:o.text},["link"in o?(a(),y(ne,{key:0,item:o},null,8,["item"])):(a(),y(ln,{key:1,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):f("",!0),c(t.$slots,"default",{},void 0,!0)]))}}),vn=$(dn,[["__scopeId","data-v-97491713"]]),pn=s=>(B("data-v-e5380155"),s=s(),H(),s),hn=["aria-expanded","aria-label"],fn={key:0,class:"text"},_n=["innerHTML"],mn=pn(()=>h("span",{class:"vpi-chevron-down text-icon"},null,-1)),bn={key:1,class:"vpi-more-horizontal icon"},kn={class:"menu"},$n=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(s){const t=w(!1),e=w();xo({el:e,onBlur:o});function o(){t.value=!1}return(n,i)=>(a(),u("div",{class:"VPFlyout",ref_key:"el",ref:e,onMouseenter:i[1]||(i[1]=l=>t.value=!0),onMouseleave:i[2]||(i[2]=l=>t.value=!1)},[h("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":t.value,"aria-label":n.label,onClick:i[0]||(i[0]=l=>t.value=!t.value)},[n.button||n.icon?(a(),u("span",fn,[n.icon?(a(),u("span",{key:0,class:N([n.icon,"option-icon"])},null,2)):f("",!0),n.button?(a(),u("span",{key:1,innerHTML:n.button},null,8,_n)):f("",!0),mn])):(a(),u("span",bn))],8,hn),h("div",kn,[b(vn,{items:n.items},{default:p(()=>[c(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ye=$($n,[["__scopeId","data-v-e5380155"]]),gn=["href","aria-label","innerHTML"],yn=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(s){const t=s,e=g(()=>typeof t.icon=="object"?t.icon.svg:``);return(o,n)=>(a(),u("a",{class:"VPSocialLink no-icon",href:o.link,"aria-label":o.ariaLabel??(typeof o.icon=="string"?o.icon:""),target:"_blank",rel:"noopener",innerHTML:e.value},null,8,gn))}}),Pn=$(yn,[["__scopeId","data-v-717b8b75"]]),Sn={class:"VPSocialLinks"},Vn=_({__name:"VPSocialLinks",props:{links:{}},setup(s){return(t,e)=>(a(),u("div",Sn,[(a(!0),u(M,null,E(t.links,({link:o,icon:n,ariaLabel:i})=>(a(),y(Pn,{key:o,icon:n,link:o,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),Pe=$(Vn,[["__scopeId","data-v-ee7a9424"]]),Ln={key:0,class:"group translations"},Tn={class:"trans-title"},wn={key:1,class:"group"},In={class:"item appearance"},Nn={class:"label"},Mn={class:"appearance-action"},An={key:2,class:"group"},Cn={class:"item social-links"},Bn=_({__name:"VPNavBarExtra",setup(s){const{site:t,theme:e}=L(),{localeLinks:o,currentLang:n}=X({correspondingLink:!0}),i=g(()=>o.value.length&&n.value.label||t.value.appearance||e.value.socialLinks);return(l,v)=>i.value?(a(),y(ye,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:p(()=>[r(o).length&&r(n).label?(a(),u("div",Ln,[h("p",Tn,T(r(n).label),1),(a(!0),u(M,null,E(r(o),d=>(a(),y(ne,{key:d.link,item:d},null,8,["item"]))),128))])):f("",!0),r(t).appearance&&r(t).appearance!=="force-dark"?(a(),u("div",wn,[h("div",In,[h("p",Nn,T(r(e).darkModeSwitchLabel||"Appearance"),1),h("div",Mn,[b($e)])])])):f("",!0),r(e).socialLinks?(a(),u("div",An,[h("div",Cn,[b(Pe,{class:"social-links-list",links:r(e).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),Hn=$(Bn,[["__scopeId","data-v-9b536d0b"]]),En=s=>(B("data-v-5dea55bf"),s=s(),H(),s),Dn=["aria-expanded"],Fn=En(()=>h("span",{class:"container"},[h("span",{class:"top"}),h("span",{class:"middle"}),h("span",{class:"bottom"})],-1)),On=[Fn],Un=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(s){return(t,e)=>(a(),u("button",{type:"button",class:N(["VPNavBarHamburger",{active:t.active}]),"aria-label":"mobile navigation","aria-expanded":t.active,"aria-controls":"VPNavScreen",onClick:e[0]||(e[0]=o=>t.$emit("click"))},On,10,Dn))}}),jn=$(Un,[["__scopeId","data-v-5dea55bf"]]),Gn=["innerHTML"],zn=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(s){const{page:t}=L();return(e,o)=>(a(),y(F,{class:N({VPNavBarMenuLink:!0,active:r(z)(r(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,tabindex:"0"},{default:p(()=>[h("span",{innerHTML:e.item.text},null,8,Gn)]),_:1},8,["class","href","target","rel"]))}}),Kn=$(zn,[["__scopeId","data-v-2781b5e7"]]),Rn=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(s){const t=s,{page:e}=L(),o=i=>"link"in i?z(e.value.relativePath,i.link,!!t.item.activeMatch):i.items.some(o),n=g(()=>o(t.item));return(i,l)=>(a(),y(ye,{class:N({VPNavBarMenuGroup:!0,active:r(z)(r(e).relativePath,i.item.activeMatch,!!i.item.activeMatch)||n.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),Wn=s=>(B("data-v-492ea56d"),s=s(),H(),s),qn={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Jn=Wn(()=>h("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Yn=_({__name:"VPNavBarMenu",setup(s){const{theme:t}=L();return(e,o)=>r(t).nav?(a(),u("nav",qn,[Jn,(a(!0),u(M,null,E(r(t).nav,n=>(a(),u(M,{key:n.text},["link"in n?(a(),y(Kn,{key:0,item:n},null,8,["item"])):(a(),y(Rn,{key:1,item:n},null,8,["item"]))],64))),128))])):f("",!0)}}),Xn=$(Yn,[["__scopeId","data-v-492ea56d"]]);function Qn(s){const{localeIndex:t,theme:e}=L();function o(n){var A,C,I;const i=n.split("."),l=(A=e.value.search)==null?void 0:A.options,v=l&&typeof l=="object",d=v&&((I=(C=l.locales)==null?void 0:C[t.value])==null?void 0:I.translations)||null,m=v&&l.translations||null;let P=d,k=m,V=s;const S=i.pop();for(const Q of i){let U=null;const R=V==null?void 0:V[Q];R&&(U=V=R);const ae=k==null?void 0:k[Q];ae&&(U=k=ae);const re=P==null?void 0:P[Q];re&&(U=P=re),R||(V=U),ae||(k=U),re||(P=U)}return(P==null?void 0:P[S])??(k==null?void 0:k[S])??(V==null?void 0:V[S])??""}return o}const Zn=["aria-label"],xn={class:"DocSearch-Button-Container"},ea=h("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),ta={class:"DocSearch-Button-Placeholder"},sa=h("span",{class:"DocSearch-Button-Keys"},[h("kbd",{class:"DocSearch-Button-Key"}),h("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Se=_({__name:"VPNavBarSearchButton",setup(s){const e=Qn({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(o,n)=>(a(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(e)("button.buttonAriaLabel")},[h("span",xn,[ea,h("span",ta,T(r(e)("button.buttonText")),1)]),sa],8,Zn))}}),oa={class:"VPNavBarSearch"},na={id:"local-search"},aa={key:1,id:"docsearch"},ra=_({__name:"VPNavBarSearch",setup(s){const t=ot(()=>nt(()=>import("./VPLocalSearchBox.B3z7jqVE.js"),__vite__mapDeps([0,1]))),e=()=>null,{theme:o}=L(),n=w(!1),i=w(!1);j(()=>{});function l(){n.value||(n.value=!0,setTimeout(v,16))}function v(){const k=new Event("keydown");k.key="k",k.metaKey=!0,window.dispatchEvent(k),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||v()},16)}function d(k){const V=k.target,S=V.tagName;return V.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const m=w(!1);ce("k",k=>{(k.ctrlKey||k.metaKey)&&(k.preventDefault(),m.value=!0)}),ce("/",k=>{d(k)||(k.preventDefault(),m.value=!0)});const P="local";return(k,V)=>{var S;return a(),u("div",oa,[r(P)==="local"?(a(),u(M,{key:0},[m.value?(a(),y(r(t),{key:0,onClose:V[0]||(V[0]=A=>m.value=!1)})):f("",!0),h("div",na,[b(Se,{onClick:V[1]||(V[1]=A=>m.value=!0)})])],64)):r(P)==="algolia"?(a(),u(M,{key:1},[n.value?(a(),y(r(e),{key:0,algolia:((S=r(o).search)==null?void 0:S.options)??r(o).algolia,onVnodeBeforeMount:V[2]||(V[2]=A=>i.value=!0)},null,8,["algolia"])):f("",!0),i.value?f("",!0):(a(),u("div",aa,[b(Se,{onClick:l})]))],64)):f("",!0)])}}}),ia=_({__name:"VPNavBarSocialLinks",setup(s){const{theme:t}=L();return(e,o)=>r(t).socialLinks?(a(),y(Pe,{key:0,class:"VPNavBarSocialLinks",links:r(t).socialLinks},null,8,["links"])):f("",!0)}}),la=$(ia,[["__scopeId","data-v-164c457f"]]),ca=["href","rel","target"],ua={key:1},da={key:2},va=_({__name:"VPNavBarTitle",setup(s){const{site:t,theme:e}=L(),{hasSidebar:o}=O(),{currentLang:n}=X(),i=g(()=>{var d;return typeof e.value.logoLink=="string"?e.value.logoLink:(d=e.value.logoLink)==null?void 0:d.link}),l=g(()=>{var d;return typeof e.value.logoLink=="string"||(d=e.value.logoLink)==null?void 0:d.rel}),v=g(()=>{var d;return typeof e.value.logoLink=="string"||(d=e.value.logoLink)==null?void 0:d.target});return(d,m)=>(a(),u("div",{class:N(["VPNavBarTitle",{"has-sidebar":r(o)}])},[h("a",{class:"title",href:i.value??r(me)(r(n).link),rel:l.value,target:v.value},[c(d.$slots,"nav-bar-title-before",{},void 0,!0),r(e).logo?(a(),y(ee,{key:0,class:"logo",image:r(e).logo},null,8,["image"])):f("",!0),r(e).siteTitle?(a(),u("span",ua,T(r(e).siteTitle),1)):r(e).siteTitle===void 0?(a(),u("span",da,T(r(t).title),1)):f("",!0),c(d.$slots,"nav-bar-title-after",{},void 0,!0)],8,ca)],2))}}),pa=$(va,[["__scopeId","data-v-28a961f9"]]),ha={class:"items"},fa={class:"title"},_a=_({__name:"VPNavBarTranslations",setup(s){const{theme:t}=L(),{localeLinks:e,currentLang:o}=X({correspondingLink:!0});return(n,i)=>r(e).length&&r(o).label?(a(),y(ye,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(t).langMenuLabel||"Change language"},{default:p(()=>[h("div",ha,[h("p",fa,T(r(o).label),1),(a(!0),u(M,null,E(r(e),l=>(a(),y(ne,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),ma=$(_a,[["__scopeId","data-v-c80d9ad0"]]),ba=s=>(B("data-v-b9c8b02d"),s=s(),H(),s),ka={class:"wrapper"},$a={class:"container"},ga={class:"title"},ya={class:"content"},Pa={class:"content-body"},Sa=ba(()=>h("div",{class:"divider"},[h("div",{class:"divider-line"})],-1)),Va=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(s){const{y:t}=Ae(),{hasSidebar:e}=O(),{hasLocalNav:o}=Fe(),{frontmatter:n}=L(),i=w({});return Te(()=>{i.value={"has-sidebar":e.value,"has-local-nav":o.value,top:n.value.layout==="home"&&t.value===0}}),(l,v)=>(a(),u("div",{class:N(["VPNavBar",i.value])},[h("div",ka,[h("div",$a,[h("div",ga,[b(pa,null,{"nav-bar-title-before":p(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),h("div",ya,[h("div",Pa,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),b(ra,{class:"search"}),b(Xn,{class:"menu"}),b(ma,{class:"translations"}),b(Zo,{class:"appearance"}),b(la,{class:"social-links"}),b(Hn,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),b(jn,{class:"hamburger",active:l.isScreenOpen,onClick:v[0]||(v[0]=d=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),Sa],2))}}),La=$(Va,[["__scopeId","data-v-b9c8b02d"]]),Ta={key:0,class:"VPNavScreenAppearance"},wa={class:"text"},Ia=_({__name:"VPNavScreenAppearance",setup(s){const{site:t,theme:e}=L();return(o,n)=>r(t).appearance&&r(t).appearance!=="force-dark"?(a(),u("div",Ta,[h("p",wa,T(r(e).darkModeSwitchLabel||"Appearance"),1),b($e)])):f("",!0)}}),Na=$(Ia,[["__scopeId","data-v-2b89f08b"]]),Ma=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(s){const t=J("close-screen");return(e,o)=>(a(),y(F,{class:"VPNavScreenMenuLink",href:e.item.link,target:e.item.target,rel:e.item.rel,onClick:r(t)},{default:p(()=>[D(T(e.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Aa=$(Ma,[["__scopeId","data-v-d45ba3e8"]]),Ca=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(s){const t=J("close-screen");return(e,o)=>(a(),y(F,{class:"VPNavScreenMenuGroupLink",href:e.item.link,target:e.item.target,rel:e.item.rel,onClick:r(t)},{default:p(()=>[D(T(e.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ge=$(Ca,[["__scopeId","data-v-7179dbb7"]]),Ba={class:"VPNavScreenMenuGroupSection"},Ha={key:0,class:"title"},Ea=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(s){return(t,e)=>(a(),u("div",Ba,[t.text?(a(),u("p",Ha,T(t.text),1)):f("",!0),(a(!0),u(M,null,E(t.items,o=>(a(),y(Ge,{key:o.text,item:o},null,8,["item"]))),128))]))}}),Da=$(Ea,[["__scopeId","data-v-4b8941ac"]]),Fa=s=>(B("data-v-c9df2649"),s=s(),H(),s),Oa=["aria-controls","aria-expanded"],Ua=["innerHTML"],ja=Fa(()=>h("span",{class:"vpi-plus button-icon"},null,-1)),Ga=["id"],za={key:1,class:"group"},Ka=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(s){const t=s,e=w(!1),o=g(()=>`NavScreenGroup-${t.text.replace(" ","-").toLowerCase()}`);function n(){e.value=!e.value}return(i,l)=>(a(),u("div",{class:N(["VPNavScreenMenuGroup",{open:e.value}])},[h("button",{class:"button","aria-controls":o.value,"aria-expanded":e.value,onClick:n},[h("span",{class:"button-text",innerHTML:i.text},null,8,Ua),ja],8,Oa),h("div",{id:o.value,class:"items"},[(a(!0),u(M,null,E(i.items,v=>(a(),u(M,{key:v.text},["link"in v?(a(),u("div",{key:v.text,class:"item"},[b(Ge,{item:v},null,8,["item"])])):(a(),u("div",za,[b(Da,{text:v.text,items:v.items},null,8,["text","items"])]))],64))),128))],8,Ga)],2))}}),Ra=$(Ka,[["__scopeId","data-v-c9df2649"]]),Wa={key:0,class:"VPNavScreenMenu"},qa=_({__name:"VPNavScreenMenu",setup(s){const{theme:t}=L();return(e,o)=>r(t).nav?(a(),u("nav",Wa,[(a(!0),u(M,null,E(r(t).nav,n=>(a(),u(M,{key:n.text},["link"in n?(a(),y(Aa,{key:0,item:n},null,8,["item"])):(a(),y(Ra,{key:1,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Ja=_({__name:"VPNavScreenSocialLinks",setup(s){const{theme:t}=L();return(e,o)=>r(t).socialLinks?(a(),y(Pe,{key:0,class:"VPNavScreenSocialLinks",links:r(t).socialLinks},null,8,["links"])):f("",!0)}}),ze=s=>(B("data-v-362991c2"),s=s(),H(),s),Ya=ze(()=>h("span",{class:"vpi-languages icon lang"},null,-1)),Xa=ze(()=>h("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Qa={class:"list"},Za=_({__name:"VPNavScreenTranslations",setup(s){const{localeLinks:t,currentLang:e}=X({correspondingLink:!0}),o=w(!1);function n(){o.value=!o.value}return(i,l)=>r(t).length&&r(e).label?(a(),u("div",{key:0,class:N(["VPNavScreenTranslations",{open:o.value}])},[h("button",{class:"title",onClick:n},[Ya,D(" "+T(r(e).label)+" ",1),Xa]),h("ul",Qa,[(a(!0),u(M,null,E(r(t),v=>(a(),u("li",{key:v.link,class:"item"},[b(F,{class:"link",href:v.link},{default:p(()=>[D(T(v.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),xa=$(Za,[["__scopeId","data-v-362991c2"]]),er={class:"container"},tr=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(s){const t=w(null),e=Ce(q?document.body:null);return(o,n)=>(a(),y(pe,{name:"fade",onEnter:n[0]||(n[0]=i=>e.value=!0),onAfterLeave:n[1]||(n[1]=i=>e.value=!1)},{default:p(()=>[o.open?(a(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:t,id:"VPNavScreen"},[h("div",er,[c(o.$slots,"nav-screen-content-before",{},void 0,!0),b(qa,{class:"menu"}),b(xa,{class:"translations"}),b(Na,{class:"appearance"}),b(Ja,{class:"social-links"}),c(o.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),sr=$(tr,[["__scopeId","data-v-382f42e9"]]),or={key:0,class:"VPNav"},nr=_({__name:"VPNav",setup(s){const{isScreenOpen:t,closeScreen:e,toggleScreen:o}=Uo(),{frontmatter:n}=L(),i=g(()=>n.value.navbar!==!1);return _e("close-screen",e),te(()=>{q&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(l,v)=>i.value?(a(),u("header",or,[b(La,{"is-screen-open":r(t),onToggleScreen:r(o)},{"nav-bar-title-before":p(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),b(sr,{open:r(t)},{"nav-screen-content-before":p(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[c(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),ar=$(nr,[["__scopeId","data-v-f1e365da"]]),Ke=s=>(B("data-v-f24171a4"),s=s(),H(),s),rr=["role","tabindex"],ir=Ke(()=>h("div",{class:"indicator"},null,-1)),lr=Ke(()=>h("span",{class:"vpi-chevron-right caret-icon"},null,-1)),cr=[lr],ur={key:1,class:"items"},dr=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(s){const t=s,{collapsed:e,collapsible:o,isLink:n,isActiveLink:i,hasActiveLink:l,hasChildren:v,toggle:d}=Nt(g(()=>t.item)),m=g(()=>v.value?"section":"div"),P=g(()=>n.value?"a":"div"),k=g(()=>v.value?t.depth+2===7?"p":`h${t.depth+2}`:"p"),V=g(()=>n.value?void 0:"button"),S=g(()=>[[`level-${t.depth}`],{collapsible:o.value},{collapsed:e.value},{"is-link":n.value},{"is-active":i.value},{"has-active":l.value}]);function A(I){"key"in I&&I.key!=="Enter"||!t.item.link&&d()}function C(){t.item.link&&d()}return(I,Q)=>{const U=K("VPSidebarItem",!0);return a(),y(W(m.value),{class:N(["VPSidebarItem",S.value])},{default:p(()=>[I.item.text?(a(),u("div",Z({key:0,class:"item",role:V.value},rt(I.item.items?{click:A,keydown:A}:{},!0),{tabindex:I.item.items&&0}),[ir,I.item.link?(a(),y(F,{key:0,tag:P.value,class:"link",href:I.item.link,rel:I.item.rel,target:I.item.target},{default:p(()=>[(a(),y(W(k.value),{class:"text",innerHTML:I.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),y(W(k.value),{key:1,class:"text",innerHTML:I.item.text},null,8,["innerHTML"])),I.item.collapsed!=null?(a(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:at(C,["enter"]),tabindex:"0"},cr,32)):f("",!0)],16,rr)):f("",!0),I.item.items&&I.item.items.length?(a(),u("div",ur,[I.depth<5?(a(!0),u(M,{key:0},E(I.item.items,R=>(a(),y(U,{key:R.text,item:R,depth:I.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),vr=$(dr,[["__scopeId","data-v-f24171a4"]]),Re=s=>(B("data-v-ec846e01"),s=s(),H(),s),pr=Re(()=>h("div",{class:"curtain"},null,-1)),hr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},fr=Re(()=>h("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),_r=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(s){const{sidebarGroups:t,hasSidebar:e}=O(),o=s,n=w(null),i=Ce(q?document.body:null);return G([o,n],()=>{var l;o.open?(i.value=!0,(l=n.value)==null||l.focus()):i.value=!1},{immediate:!0,flush:"post"}),(l,v)=>r(e)?(a(),u("aside",{key:0,class:N(["VPSidebar",{open:l.open}]),ref_key:"navEl",ref:n,onClick:v[0]||(v[0]=it(()=>{},["stop"]))},[pr,h("nav",hr,[fr,c(l.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),u(M,null,E(r(t),d=>(a(),u("div",{key:d.text,class:"group"},[b(vr,{item:d,depth:0},null,8,["item"])]))),128)),c(l.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),mr=$(_r,[["__scopeId","data-v-ec846e01"]]),br=_({__name:"VPSkipLink",setup(s){const t=oe(),e=w();G(()=>t.path,()=>e.value.focus());function o({target:n}){const i=document.getElementById(decodeURIComponent(n.hash).slice(1));if(i){const l=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",l)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",l),i.focus(),window.scrollTo(0,0)}}return(n,i)=>(a(),u(M,null,[h("span",{ref_key:"backToTop",ref:e,tabindex:"-1"},null,512),h("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o}," Skip to content ")],64))}}),kr=$(br,[["__scopeId","data-v-c3508ec8"]]),$r=_({__name:"Layout",setup(s){const{isOpen:t,open:e,close:o}=O(),n=oe();G(()=>n.path,o),It(t,o);const{frontmatter:i}=L(),l=Be(),v=g(()=>!!l["home-hero-image"]);return _e("hero-image-slot-exists",v),(d,m)=>{const P=K("Content");return r(i).layout!==!1?(a(),u("div",{key:0,class:N(["Layout",r(i).pageClass])},[c(d.$slots,"layout-top",{},void 0,!0),b(kr),b(ht,{class:"backdrop",show:r(t),onClick:r(o)},null,8,["show","onClick"]),b(ar,null,{"nav-bar-title-before":p(()=>[c(d.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[c(d.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[c(d.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[c(d.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":p(()=>[c(d.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[c(d.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),b(Oo,{open:r(t),onOpenMenu:r(e)},null,8,["open","onOpenMenu"]),b(mr,{open:r(t)},{"sidebar-nav-before":p(()=>[c(d.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":p(()=>[c(d.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),b(go,null,{"page-top":p(()=>[c(d.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[c(d.$slots,"page-bottom",{},void 0,!0)]),"not-found":p(()=>[c(d.$slots,"not-found",{},void 0,!0)]),"home-hero-before":p(()=>[c(d.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":p(()=>[c(d.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[c(d.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[c(d.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[c(d.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[c(d.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[c(d.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[c(d.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[c(d.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":p(()=>[c(d.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[c(d.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[c(d.$slots,"doc-after",{},void 0,!0)]),"doc-top":p(()=>[c(d.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[c(d.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":p(()=>[c(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[c(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[c(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[c(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[c(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[c(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),b(Lo),c(d.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),y(P,{key:1}))}}}),gr=$($r,[["__scopeId","data-v-a9a9e638"]]),Ve={Layout:gr,enhanceApp:({app:s})=>{s.component("Badge",dt)}},yr=s=>{if(typeof document>"u")return{stabilizeScrollPosition:n=>async(...i)=>n(...i)};const t=document.documentElement;return{stabilizeScrollPosition:o=>async(...n)=>{const i=o(...n),l=s.value;if(!l)return i;const v=l.offsetTop-t.scrollTop;return await Me(),t.scrollTop=l.offsetTop-v,i}}},We="vitepress:tabSharedState",Y=typeof localStorage<"u"?localStorage:null,qe="vitepress:tabsSharedState",Pr=()=>{const s=Y==null?void 0:Y.getItem(qe);if(s)try{return JSON.parse(s)}catch{}return{}},Sr=s=>{Y&&Y.setItem(qe,JSON.stringify(s))},Vr=s=>{const t=lt({});G(()=>t.content,(e,o)=>{e&&o&&Sr(e)},{deep:!0}),s.provide(We,t)},Lr=(s,t)=>{const e=J(We);if(!e)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");j(()=>{e.content||(e.content=Pr())});const o=w(),n=g({get(){var d;const l=t.value,v=s.value;if(l){const m=(d=e.content)==null?void 0:d[l];if(m&&v.includes(m))return m}else{const m=o.value;if(m)return m}return v[0]},set(l){const v=t.value;v?e.content&&(e.content[v]=l):o.value=l}});return{selected:n,select:l=>{n.value=l}}};let Le=0;const Tr=()=>(Le++,""+Le);function wr(){const s=Be();return g(()=>{var o;const e=(o=s.default)==null?void 0:o.call(s);return e?e.filter(n=>typeof n.type=="object"&&"__name"in n.type&&n.type.__name==="PluginTabsTab"&&n.props).map(n=>{var i;return(i=n.props)==null?void 0:i.label}):[]})}const Je="vitepress:tabSingleState",Ir=s=>{_e(Je,s)},Nr=()=>{const s=J(Je);if(!s)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return s},Mr={class:"plugin-tabs"},Ar=["id","aria-selected","aria-controls","tabindex","onClick"],Cr=_({__name:"PluginTabs",props:{sharedStateKey:{}},setup(s){const t=s,e=wr(),{selected:o,select:n}=Lr(e,ct(t,"sharedStateKey")),i=w(),{stabilizeScrollPosition:l}=yr(i),v=l(n),d=w([]),m=k=>{var A;const V=e.value.indexOf(o.value);let S;k.key==="ArrowLeft"?S=V>=1?V-1:e.value.length-1:k.key==="ArrowRight"&&(S=V(a(),u("div",Mr,[h("div",{ref_key:"tablist",ref:i,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:m},[(a(!0),u(M,null,E(r(e),S=>(a(),u("button",{id:`tab-${S}-${r(P)}`,ref_for:!0,ref_key:"buttonRefs",ref:d,key:S,role:"tab",class:"plugin-tabs--tab","aria-selected":S===r(o),"aria-controls":`panel-${S}-${r(P)}`,tabindex:S===r(o)?0:-1,onClick:()=>r(v)(S)},T(S),9,Ar))),128))],544),c(k.$slots,"default")]))}}),Br=["id","aria-labelledby"],Hr=_({__name:"PluginTabsTab",props:{label:{}},setup(s){const{uid:t,selected:e}=Nr();return(o,n)=>r(e)===o.label?(a(),u("div",{key:0,id:`panel-${o.label}-${r(t)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${o.label}-${r(t)}`},[c(o.$slots,"default",{},void 0,!0)],8,Br)):f("",!0)}}),Er=$(Hr,[["__scopeId","data-v-9b0d03d2"]]),Dr=s=>{Vr(s),s.component("PluginTabs",Cr),s.component("PluginTabsTab",Er)},Or={extends:Ve,Layout(){return ut(Ve.Layout,null,{})},enhanceApp({app:s,router:t,siteData:e}){Dr(s)}};export{Or as R,Qn as c,L as u}; +import{d as _,o as a,c as u,r as c,n as N,a as D,t as T,b as y,w as p,T as pe,e as f,_ as $,u as Ye,i as Xe,f as Qe,g as he,h as w,j as q,k as g,l as j,m as h,p as r,q as B,s as H,v as z,x as le,y as G,z as te,A as fe,B as Te,C as Ze,D as xe,E as K,F as M,G as E,H as we,I as se,J as b,K as W,L as Ie,M as oe,N as Z,O as J,P as et,Q as Ne,R as tt,S as ce,U as Me,V as Ae,W as st,X as ot,Y as nt,Z as Ce,$ as _e,a0 as at,a1 as rt,a2 as it,a3 as Be,a4 as lt,a5 as ct,a6 as ut}from"./framework.RTxADYK2.js";const dt=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(s){return(t,e)=>(a(),u("span",{class:N(["VPBadge",t.type])},[c(t.$slots,"default",{},()=>[D(T(t.text),1)])],2))}}),vt={key:0,class:"VPBackdrop"},pt=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(s){return(t,e)=>(a(),y(pe,{name:"fade"},{default:p(()=>[t.show?(a(),u("div",vt)):f("",!0)]),_:1}))}}),ht=$(pt,[["__scopeId","data-v-b06cdb19"]]),L=Ye;function ft(s,t){let e,o=!1;return()=>{e&&clearTimeout(e),o?e=setTimeout(s,t):(s(),(o=!0)&&setTimeout(()=>o=!1,t))}}function ue(s){return/^\//.test(s)?s:`/${s}`}function me(s){const{pathname:t,search:e,hash:o,protocol:n}=new URL(s,"http://a.com");if(Xe(s)||s.startsWith("#")||!n.startsWith("http")||!Qe(t))return s;const{site:i}=L(),l=t.endsWith("/")||t.endsWith(".html")?s:s.replace(/(?:(^\.+)\/)?.*$/,`$1${t.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${e}${o}`);return he(l)}const be=w(q?location.hash:"");q&&window.addEventListener("hashchange",()=>{be.value=location.hash});function X({removeCurrent:s=!0,correspondingLink:t=!1}={}){const{site:e,localeIndex:o,page:n,theme:i}=L(),l=g(()=>{var d,m;return{label:(d=e.value.locales[o.value])==null?void 0:d.label,link:((m=e.value.locales[o.value])==null?void 0:m.link)||(o.value==="root"?"/":`/${o.value}/`)}});return{localeLinks:g(()=>Object.entries(e.value.locales).flatMap(([d,m])=>s&&l.value.label===m.label?[]:{text:m.label,link:_t(m.link||(d==="root"?"/":`/${d}/`),i.value.i18nRouting!==!1&&t,n.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+be.value})),currentLang:l}}function _t(s,t,e,o){return t?s.replace(/\/$/,"")+ue(e.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,o?".html":"")):s}const mt=s=>(B("data-v-792811ca"),s=s(),H(),s),bt={class:"NotFound"},kt={class:"code"},$t={class:"title"},gt=mt(()=>h("div",{class:"divider"},null,-1)),yt={class:"quote"},Pt={class:"action"},St=["href","aria-label"],Vt=_({__name:"NotFound",setup(s){const{site:t,theme:e}=L(),{localeLinks:o}=X({removeCurrent:!1}),n=w("/");return j(()=>{var l;const i=window.location.pathname.replace(t.value.base,"").replace(/(^.*?\/).*$/,"/$1");o.value.length&&(n.value=((l=o.value.find(({link:v})=>v.startsWith(i)))==null?void 0:l.link)||o.value[0].link)}),(i,l)=>{var v,d,m,P,k;return a(),u("div",bt,[h("p",kt,T(((v=r(e).notFound)==null?void 0:v.code)??"404"),1),h("h1",$t,T(((d=r(e).notFound)==null?void 0:d.title)??"PAGE NOT FOUND"),1),gt,h("blockquote",yt,T(((m=r(e).notFound)==null?void 0:m.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),h("div",Pt,[h("a",{class:"link",href:r(he)(n.value),"aria-label":((P=r(e).notFound)==null?void 0:P.linkLabel)??"go to home"},T(((k=r(e).notFound)==null?void 0:k.linkText)??"Take me home"),9,St)])])}}}),Lt=$(Vt,[["__scopeId","data-v-792811ca"]]);function He(s,t){if(Array.isArray(s))return x(s);if(s==null)return[];t=ue(t);const e=Object.keys(s).sort((n,i)=>i.split("/").length-n.split("/").length).find(n=>t.startsWith(ue(n))),o=e?s[e]:[];return Array.isArray(o)?x(o):x(o.items,o.base)}function Tt(s){const t=[];let e=0;for(const o in s){const n=s[o];if(n.items){e=t.push(n);continue}t[e]||t.push({items:[]}),t[e].items.push(n)}return t}function wt(s){const t=[];function e(o){for(const n of o)n.text&&n.link&&t.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&e(n.items)}return e(s),t}function de(s,t){return Array.isArray(t)?t.some(e=>de(s,e)):z(s,t.link)?!0:t.items?de(s,t.items):!1}function x(s,t){return[...s].map(e=>{const o={...e},n=o.base||t;return n&&o.link&&(o.link=n+o.link),o.items&&(o.items=x(o.items,n)),o})}function O(){const{frontmatter:s,page:t,theme:e}=L(),o=le("(min-width: 960px)"),n=w(!1),i=g(()=>{const C=e.value.sidebar,I=t.value.relativePath;return C?He(C,I):[]}),l=w(i.value);G(i,(C,I)=>{JSON.stringify(C)!==JSON.stringify(I)&&(l.value=i.value)});const v=g(()=>s.value.sidebar!==!1&&l.value.length>0&&s.value.layout!=="home"),d=g(()=>m?s.value.aside==null?e.value.aside==="left":s.value.aside==="left":!1),m=g(()=>s.value.layout==="home"?!1:s.value.aside!=null?!!s.value.aside:e.value.aside!==!1),P=g(()=>v.value&&o.value),k=g(()=>v.value?Tt(l.value):[]);function V(){n.value=!0}function S(){n.value=!1}function A(){n.value?S():V()}return{isOpen:n,sidebar:l,sidebarGroups:k,hasSidebar:v,hasAside:m,leftAside:d,isSidebarEnabled:P,open:V,close:S,toggle:A}}function It(s,t){let e;te(()=>{e=s.value?document.activeElement:void 0}),j(()=>{window.addEventListener("keyup",o)}),fe(()=>{window.removeEventListener("keyup",o)});function o(n){n.key==="Escape"&&s.value&&(t(),e==null||e.focus())}}function Nt(s){const{page:t}=L(),e=w(!1),o=g(()=>s.value.collapsed!=null),n=g(()=>!!s.value.link),i=w(!1),l=()=>{i.value=z(t.value.relativePath,s.value.link)};G([t,s,be],l),j(l);const v=g(()=>i.value?!0:s.value.items?de(t.value.relativePath,s.value.items):!1),d=g(()=>!!(s.value.items&&s.value.items.length));te(()=>{e.value=!!(o.value&&s.value.collapsed)}),Te(()=>{(i.value||v.value)&&(e.value=!1)});function m(){o.value&&(e.value=!e.value)}return{collapsed:e,collapsible:o,isLink:n,isActiveLink:i,hasActiveLink:v,hasChildren:d,toggle:m}}function Mt(){const{hasSidebar:s}=O(),t=le("(min-width: 960px)"),e=le("(min-width: 1280px)");return{isAsideEnabled:g(()=>!e.value&&!t.value?!1:s.value?e.value:t.value)}}const ve=[];function Ee(s){return typeof s.outline=="object"&&!Array.isArray(s.outline)&&s.outline.label||s.outlineTitle||"On this page"}function ke(s){const t=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(e=>e.id&&e.hasChildNodes()).map(e=>{const o=Number(e.tagName[1]);return{element:e,title:At(e),link:"#"+e.id,level:o}});return Ct(t,s)}function At(s){let t="";for(const e of s.childNodes)if(e.nodeType===1){if(e.classList.contains("VPBadge")||e.classList.contains("header-anchor")||e.classList.contains("ignore-header"))continue;t+=e.textContent}else e.nodeType===3&&(t+=e.textContent);return t.trim()}function Ct(s,t){if(t===!1)return[];const e=(typeof t=="object"&&!Array.isArray(t)?t.level:t)||2,[o,n]=typeof e=="number"?[e,e]:e==="deep"?[2,6]:e;s=s.filter(l=>l.level>=o&&l.level<=n),ve.length=0;for(const{element:l,link:v}of s)ve.push({element:l,link:v});const i=[];e:for(let l=0;l=0;d--){const m=s[d];if(m.level{requestAnimationFrame(i),window.addEventListener("scroll",o)}),Ze(()=>{l(location.hash)}),fe(()=>{window.removeEventListener("scroll",o)});function i(){if(!e.value)return;const v=window.scrollY,d=window.innerHeight,m=document.body.offsetHeight,P=Math.abs(v+d-m)<1,k=ve.map(({element:S,link:A})=>({link:A,top:Ht(S)})).filter(({top:S})=>!Number.isNaN(S)).sort((S,A)=>S.top-A.top);if(!k.length){l(null);return}if(v<1){l(null);return}if(P){l(k[k.length-1].link);return}let V=null;for(const{link:S,top:A}of k){if(A>v+xe()+4)break;V=S}l(V)}function l(v){n&&n.classList.remove("active"),v==null?n=null:n=s.value.querySelector(`a[href="${decodeURIComponent(v)}"]`);const d=n;d?(d.classList.add("active"),t.value.style.top=d.offsetTop+39+"px",t.value.style.opacity="1"):(t.value.style.top="33px",t.value.style.opacity="0")}}function Ht(s){let t=0;for(;s!==document.body;){if(s===null)return NaN;t+=s.offsetTop,s=s.offsetParent}return t}const Et=["href","title"],Dt=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(s){function t({target:e}){const o=e.href.split("#")[1],n=document.getElementById(decodeURIComponent(o));n==null||n.focus({preventScroll:!0})}return(e,o)=>{const n=K("VPDocOutlineItem",!0);return a(),u("ul",{class:N(["VPDocOutlineItem",e.root?"root":"nested"])},[(a(!0),u(M,null,E(e.headers,({children:i,link:l,title:v})=>(a(),u("li",null,[h("a",{class:"outline-link",href:l,onClick:t,title:v},T(v),9,Et),i!=null&&i.length?(a(),y(n,{key:0,headers:i},null,8,["headers"])):f("",!0)]))),256))],2)}}}),De=$(Dt,[["__scopeId","data-v-3f927ebe"]]),Ft=s=>(B("data-v-c14bfc45"),s=s(),H(),s),Ot={class:"content"},Ut={class:"outline-title",role:"heading","aria-level":"2"},jt={"aria-labelledby":"doc-outline-aria-label"},Gt=Ft(()=>h("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),zt=_({__name:"VPDocAsideOutline",setup(s){const{frontmatter:t,theme:e}=L(),o=we([]);se(()=>{o.value=ke(t.value.outline??e.value.outline)});const n=w(),i=w();return Bt(n,i),(l,v)=>(a(),u("div",{class:N(["VPDocAsideOutline",{"has-outline":o.value.length>0}]),ref_key:"container",ref:n,role:"navigation"},[h("div",Ot,[h("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),h("div",Ut,T(r(Ee)(r(e))),1),h("nav",jt,[Gt,b(De,{headers:o.value,root:!0},null,8,["headers"])])])],2))}}),Kt=$(zt,[["__scopeId","data-v-c14bfc45"]]),Rt={class:"VPDocAsideCarbonAds"},Wt=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(s){const t=()=>null;return(e,o)=>(a(),u("div",Rt,[b(r(t),{"carbon-ads":e.carbonAds},null,8,["carbon-ads"])]))}}),qt=s=>(B("data-v-6d7b3c46"),s=s(),H(),s),Jt={class:"VPDocAside"},Yt=qt(()=>h("div",{class:"spacer"},null,-1)),Xt=_({__name:"VPDocAside",setup(s){const{theme:t}=L();return(e,o)=>(a(),u("div",Jt,[c(e.$slots,"aside-top",{},void 0,!0),c(e.$slots,"aside-outline-before",{},void 0,!0),b(Kt),c(e.$slots,"aside-outline-after",{},void 0,!0),Yt,c(e.$slots,"aside-ads-before",{},void 0,!0),r(t).carbonAds?(a(),y(Wt,{key:0,"carbon-ads":r(t).carbonAds},null,8,["carbon-ads"])):f("",!0),c(e.$slots,"aside-ads-after",{},void 0,!0),c(e.$slots,"aside-bottom",{},void 0,!0)]))}}),Qt=$(Xt,[["__scopeId","data-v-6d7b3c46"]]);function Zt(){const{theme:s,page:t}=L();return g(()=>{const{text:e="Edit this page",pattern:o=""}=s.value.editLink||{};let n;return typeof o=="function"?n=o(t.value):n=o.replace(/:path/g,t.value.filePath),{url:n,text:e}})}function xt(){const{page:s,theme:t,frontmatter:e}=L();return g(()=>{var d,m,P,k,V,S,A,C;const o=He(t.value.sidebar,s.value.relativePath),n=wt(o),i=n.findIndex(I=>z(s.value.relativePath,I.link)),l=((d=t.value.docFooter)==null?void 0:d.prev)===!1&&!e.value.prev||e.value.prev===!1,v=((m=t.value.docFooter)==null?void 0:m.next)===!1&&!e.value.next||e.value.next===!1;return{prev:l?void 0:{text:(typeof e.value.prev=="string"?e.value.prev:typeof e.value.prev=="object"?e.value.prev.text:void 0)??((P=n[i-1])==null?void 0:P.docFooterText)??((k=n[i-1])==null?void 0:k.text),link:(typeof e.value.prev=="object"?e.value.prev.link:void 0)??((V=n[i-1])==null?void 0:V.link)},next:v?void 0:{text:(typeof e.value.next=="string"?e.value.next:typeof e.value.next=="object"?e.value.next.text:void 0)??((S=n[i+1])==null?void 0:S.docFooterText)??((A=n[i+1])==null?void 0:A.text),link:(typeof e.value.next=="object"?e.value.next.link:void 0)??((C=n[i+1])==null?void 0:C.link)}}})}const F=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(s){const t=s,e=g(()=>t.tag??(t.href?"a":"span")),o=g(()=>t.href&&Ie.test(t.href));return(n,i)=>(a(),y(W(e.value),{class:N(["VPLink",{link:n.href,"vp-external-link-icon":o.value,"no-icon":n.noIcon}]),href:n.href?r(me)(n.href):void 0,target:n.target??(o.value?"_blank":void 0),rel:n.rel??(o.value?"noreferrer":void 0)},{default:p(()=>[c(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),es={class:"VPLastUpdated"},ts=["datetime"],ss=_({__name:"VPDocFooterLastUpdated",setup(s){const{theme:t,page:e,frontmatter:o,lang:n}=L(),i=g(()=>new Date(o.value.lastUpdated??e.value.lastUpdated)),l=g(()=>i.value.toISOString()),v=w("");return j(()=>{te(()=>{var d,m,P;v.value=new Intl.DateTimeFormat((m=(d=t.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&m.forceLocale?n.value:void 0,((P=t.value.lastUpdated)==null?void 0:P.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(i.value)})}),(d,m)=>{var P;return a(),u("p",es,[D(T(((P=r(t).lastUpdated)==null?void 0:P.text)||r(t).lastUpdatedText||"Last updated")+": ",1),h("time",{datetime:l.value},T(v.value),9,ts)])}}}),os=$(ss,[["__scopeId","data-v-9da12f1d"]]),ns=s=>(B("data-v-87be45d1"),s=s(),H(),s),as={key:0,class:"VPDocFooter"},rs={key:0,class:"edit-info"},is={key:0,class:"edit-link"},ls=ns(()=>h("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),cs={key:1,class:"last-updated"},us={key:1,class:"prev-next"},ds={class:"pager"},vs=["innerHTML"],ps=["innerHTML"],hs={class:"pager"},fs=["innerHTML"],_s=["innerHTML"],ms=_({__name:"VPDocFooter",setup(s){const{theme:t,page:e,frontmatter:o}=L(),n=Zt(),i=xt(),l=g(()=>t.value.editLink&&o.value.editLink!==!1),v=g(()=>e.value.lastUpdated&&o.value.lastUpdated!==!1),d=g(()=>l.value||v.value||i.value.prev||i.value.next);return(m,P)=>{var k,V,S,A;return d.value?(a(),u("footer",as,[c(m.$slots,"doc-footer-before",{},void 0,!0),l.value||v.value?(a(),u("div",rs,[l.value?(a(),u("div",is,[b(F,{class:"edit-link-button",href:r(n).url,"no-icon":!0},{default:p(()=>[ls,D(" "+T(r(n).text),1)]),_:1},8,["href"])])):f("",!0),v.value?(a(),u("div",cs,[b(os)])):f("",!0)])):f("",!0),(k=r(i).prev)!=null&&k.link||(V=r(i).next)!=null&&V.link?(a(),u("nav",us,[h("div",ds,[(S=r(i).prev)!=null&&S.link?(a(),y(F,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:p(()=>{var C;return[h("span",{class:"desc",innerHTML:((C=r(t).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,vs),h("span",{class:"title",innerHTML:r(i).prev.text},null,8,ps)]}),_:1},8,["href"])):f("",!0)]),h("div",hs,[(A=r(i).next)!=null&&A.link?(a(),y(F,{key:0,class:"pager-link next",href:r(i).next.link},{default:p(()=>{var C;return[h("span",{class:"desc",innerHTML:((C=r(t).docFooter)==null?void 0:C.next)||"Next page"},null,8,fs),h("span",{class:"title",innerHTML:r(i).next.text},null,8,_s)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),bs=$(ms,[["__scopeId","data-v-87be45d1"]]),ks=s=>(B("data-v-83890dd9"),s=s(),H(),s),$s={class:"container"},gs=ks(()=>h("div",{class:"aside-curtain"},null,-1)),ys={class:"aside-container"},Ps={class:"aside-content"},Ss={class:"content"},Vs={class:"content-container"},Ls={class:"main"},Ts=_({__name:"VPDoc",setup(s){const{theme:t}=L(),e=oe(),{hasSidebar:o,hasAside:n,leftAside:i}=O(),l=g(()=>e.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(v,d)=>{const m=K("Content");return a(),u("div",{class:N(["VPDoc",{"has-sidebar":r(o),"has-aside":r(n)}])},[c(v.$slots,"doc-top",{},void 0,!0),h("div",$s,[r(n)?(a(),u("div",{key:0,class:N(["aside",{"left-aside":r(i)}])},[gs,h("div",ys,[h("div",Ps,[b(Qt,null,{"aside-top":p(()=>[c(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[c(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[c(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[c(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[c(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[c(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),h("div",Ss,[h("div",Vs,[c(v.$slots,"doc-before",{},void 0,!0),h("main",Ls,[b(m,{class:N(["vp-doc",[l.value,r(t).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),b(bs,null,{"doc-footer-before":p(()=>[c(v.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(v.$slots,"doc-after",{},void 0,!0)])])]),c(v.$slots,"doc-bottom",{},void 0,!0)],2)}}}),ws=$(Ts,[["__scopeId","data-v-83890dd9"]]),Is=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(s){const t=s,e=g(()=>t.href&&Ie.test(t.href)),o=g(()=>t.tag||t.href?"a":"button");return(n,i)=>(a(),y(W(o.value),{class:N(["VPButton",[n.size,n.theme]]),href:n.href?r(me)(n.href):void 0,target:t.target??(e.value?"_blank":void 0),rel:t.rel??(e.value?"noreferrer":void 0)},{default:p(()=>[D(T(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),Ns=$(Is,[["__scopeId","data-v-14206e74"]]),Ms=["src","alt"],As=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(s){return(t,e)=>{const o=K("VPImage",!0);return t.image?(a(),u(M,{key:0},[typeof t.image=="string"||"src"in t.image?(a(),u("img",Z({key:0,class:"VPImage"},typeof t.image=="string"?t.$attrs:{...t.image,...t.$attrs},{src:r(he)(typeof t.image=="string"?t.image:t.image.src),alt:t.alt??(typeof t.image=="string"?"":t.image.alt||"")}),null,16,Ms)):(a(),u(M,{key:1},[b(o,Z({class:"dark",image:t.image.dark,alt:t.image.alt},t.$attrs),null,16,["image","alt"]),b(o,Z({class:"light",image:t.image.light,alt:t.image.alt},t.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),ee=$(As,[["__scopeId","data-v-35a7d0b8"]]),Cs=s=>(B("data-v-955009fc"),s=s(),H(),s),Bs={class:"container"},Hs={class:"main"},Es={key:0,class:"name"},Ds=["innerHTML"],Fs=["innerHTML"],Os=["innerHTML"],Us={key:0,class:"actions"},js={key:0,class:"image"},Gs={class:"image-container"},zs=Cs(()=>h("div",{class:"image-bg"},null,-1)),Ks=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(s){const t=J("hero-image-slot-exists");return(e,o)=>(a(),u("div",{class:N(["VPHero",{"has-image":e.image||r(t)}])},[h("div",Bs,[h("div",Hs,[c(e.$slots,"home-hero-info-before",{},void 0,!0),c(e.$slots,"home-hero-info",{},()=>[e.name?(a(),u("h1",Es,[h("span",{innerHTML:e.name,class:"clip"},null,8,Ds)])):f("",!0),e.text?(a(),u("p",{key:1,innerHTML:e.text,class:"text"},null,8,Fs)):f("",!0),e.tagline?(a(),u("p",{key:2,innerHTML:e.tagline,class:"tagline"},null,8,Os)):f("",!0)],!0),c(e.$slots,"home-hero-info-after",{},void 0,!0),e.actions?(a(),u("div",Us,[(a(!0),u(M,null,E(e.actions,n=>(a(),u("div",{key:n.link,class:"action"},[b(Ns,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):f("",!0),c(e.$slots,"home-hero-actions-after",{},void 0,!0)]),e.image||r(t)?(a(),u("div",js,[h("div",Gs,[zs,c(e.$slots,"home-hero-image",{},()=>[e.image?(a(),y(ee,{key:0,class:"image-src",image:e.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),Rs=$(Ks,[["__scopeId","data-v-955009fc"]]),Ws=_({__name:"VPHomeHero",setup(s){const{frontmatter:t}=L();return(e,o)=>r(t).hero?(a(),y(Rs,{key:0,class:"VPHomeHero",name:r(t).hero.name,text:r(t).hero.text,tagline:r(t).hero.tagline,image:r(t).hero.image,actions:r(t).hero.actions},{"home-hero-info-before":p(()=>[c(e.$slots,"home-hero-info-before")]),"home-hero-info":p(()=>[c(e.$slots,"home-hero-info")]),"home-hero-info-after":p(()=>[c(e.$slots,"home-hero-info-after")]),"home-hero-actions-after":p(()=>[c(e.$slots,"home-hero-actions-after")]),"home-hero-image":p(()=>[c(e.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),qs=s=>(B("data-v-f5e9645b"),s=s(),H(),s),Js={class:"box"},Ys={key:0,class:"icon"},Xs=["innerHTML"],Qs=["innerHTML"],Zs=["innerHTML"],xs={key:4,class:"link-text"},eo={class:"link-text-value"},to=qs(()=>h("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),so=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(s){return(t,e)=>(a(),y(F,{class:"VPFeature",href:t.link,rel:t.rel,target:t.target,"no-icon":!0,tag:t.link?"a":"div"},{default:p(()=>[h("article",Js,[typeof t.icon=="object"&&t.icon.wrap?(a(),u("div",Ys,[b(ee,{image:t.icon,alt:t.icon.alt,height:t.icon.height||48,width:t.icon.width||48},null,8,["image","alt","height","width"])])):typeof t.icon=="object"?(a(),y(ee,{key:1,image:t.icon,alt:t.icon.alt,height:t.icon.height||48,width:t.icon.width||48},null,8,["image","alt","height","width"])):t.icon?(a(),u("div",{key:2,class:"icon",innerHTML:t.icon},null,8,Xs)):f("",!0),h("h2",{class:"title",innerHTML:t.title},null,8,Qs),t.details?(a(),u("p",{key:3,class:"details",innerHTML:t.details},null,8,Zs)):f("",!0),t.linkText?(a(),u("div",xs,[h("p",eo,[D(T(t.linkText)+" ",1),to])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),oo=$(so,[["__scopeId","data-v-f5e9645b"]]),no={key:0,class:"VPFeatures"},ao={class:"container"},ro={class:"items"},io=_({__name:"VPFeatures",props:{features:{}},setup(s){const t=s,e=g(()=>{const o=t.features.length;if(o){if(o===2)return"grid-2";if(o===3)return"grid-3";if(o%3===0)return"grid-6";if(o>3)return"grid-4"}else return});return(o,n)=>o.features?(a(),u("div",no,[h("div",ao,[h("div",ro,[(a(!0),u(M,null,E(o.features,i=>(a(),u("div",{key:i.title,class:N(["item",[e.value]])},[b(oo,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),lo=$(io,[["__scopeId","data-v-d0a190d7"]]),co=_({__name:"VPHomeFeatures",setup(s){const{frontmatter:t}=L();return(e,o)=>r(t).features?(a(),y(lo,{key:0,class:"VPHomeFeatures",features:r(t).features},null,8,["features"])):f("",!0)}}),uo=_({__name:"VPHomeContent",setup(s){const{width:t}=et({includeScrollbar:!1});return(e,o)=>(a(),u("div",{class:"vp-doc container",style:Ne(r(t)?{"--vp-offset":`calc(50% - ${r(t)/2}px)`}:{})},[c(e.$slots,"default",{},void 0,!0)],4))}}),vo=$(uo,[["__scopeId","data-v-c43247eb"]]),po={class:"VPHome"},ho=_({__name:"VPHome",setup(s){const{frontmatter:t}=L();return(e,o)=>{const n=K("Content");return a(),u("div",po,[c(e.$slots,"home-hero-before",{},void 0,!0),b(Ws,null,{"home-hero-info-before":p(()=>[c(e.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[c(e.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[c(e.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[c(e.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[c(e.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(e.$slots,"home-hero-after",{},void 0,!0),c(e.$slots,"home-features-before",{},void 0,!0),b(co),c(e.$slots,"home-features-after",{},void 0,!0),r(t).markdownStyles!==!1?(a(),y(vo,{key:0},{default:p(()=>[b(n)]),_:1})):(a(),y(n,{key:1}))])}}}),fo=$(ho,[["__scopeId","data-v-cbb6ec48"]]),_o={},mo={class:"VPPage"};function bo(s,t){const e=K("Content");return a(),u("div",mo,[c(s.$slots,"page-top"),b(e),c(s.$slots,"page-bottom")])}const ko=$(_o,[["render",bo]]),$o=_({__name:"VPContent",setup(s){const{page:t,frontmatter:e}=L(),{hasSidebar:o}=O();return(n,i)=>(a(),u("div",{class:N(["VPContent",{"has-sidebar":r(o),"is-home":r(e).layout==="home"}]),id:"VPContent"},[r(t).isNotFound?c(n.$slots,"not-found",{key:0},()=>[b(Lt)],!0):r(e).layout==="page"?(a(),y(ko,{key:1},{"page-top":p(()=>[c(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[c(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(e).layout==="home"?(a(),y(fo,{key:2},{"home-hero-before":p(()=>[c(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":p(()=>[c(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[c(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[c(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[c(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[c(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[c(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[c(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[c(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(e).layout&&r(e).layout!=="doc"?(a(),y(W(r(e).layout),{key:3})):(a(),y(ws,{key:4},{"doc-top":p(()=>[c(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[c(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":p(()=>[c(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[c(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[c(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":p(()=>[c(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":p(()=>[c(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[c(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[c(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[c(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":p(()=>[c(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),go=$($o,[["__scopeId","data-v-91765379"]]),yo={class:"container"},Po=["innerHTML"],So=["innerHTML"],Vo=_({__name:"VPFooter",setup(s){const{theme:t,frontmatter:e}=L(),{hasSidebar:o}=O();return(n,i)=>r(t).footer&&r(e).footer!==!1?(a(),u("footer",{key:0,class:N(["VPFooter",{"has-sidebar":r(o)}])},[h("div",yo,[r(t).footer.message?(a(),u("p",{key:0,class:"message",innerHTML:r(t).footer.message},null,8,Po)):f("",!0),r(t).footer.copyright?(a(),u("p",{key:1,class:"copyright",innerHTML:r(t).footer.copyright},null,8,So)):f("",!0)])],2)):f("",!0)}}),Lo=$(Vo,[["__scopeId","data-v-c970a860"]]);function Fe(){const{theme:s,frontmatter:t}=L(),e=we([]),o=g(()=>e.value.length>0);return se(()=>{e.value=ke(t.value.outline??s.value.outline)}),{headers:e,hasLocalNav:o}}const To=s=>(B("data-v-c9ba27ad"),s=s(),H(),s),wo=To(()=>h("span",{class:"vpi-chevron-right icon"},null,-1)),Io={class:"header"},No={class:"outline"},Mo=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(s){const t=s,{theme:e}=L(),o=w(!1),n=w(0),i=w(),l=w();tt(i,()=>{o.value=!1}),ce("Escape",()=>{o.value=!1}),se(()=>{o.value=!1});function v(){o.value=!o.value,n.value=window.innerHeight+Math.min(window.scrollY-t.navHeight,0)}function d(P){P.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),Me(()=>{o.value=!1}))}function m(){o.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(P,k)=>(a(),u("div",{class:"VPLocalNavOutlineDropdown",style:Ne({"--vp-vh":n.value+"px"}),ref_key:"main",ref:i},[P.headers.length>0?(a(),u("button",{key:0,onClick:v,class:N({open:o.value})},[D(T(r(Ee)(r(e)))+" ",1),wo],2)):(a(),u("button",{key:1,onClick:m},T(r(e).returnToTopLabel||"Return to top"),1)),b(pe,{name:"flyout"},{default:p(()=>[o.value?(a(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:d},[h("div",Io,[h("a",{class:"top-link",href:"#",onClick:m},T(r(e).returnToTopLabel||"Return to top"),1)]),h("div",No,[b(De,{headers:P.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),Ao=$(Mo,[["__scopeId","data-v-c9ba27ad"]]),Co=s=>(B("data-v-070ab83d"),s=s(),H(),s),Bo={class:"container"},Ho=["aria-expanded"],Eo=Co(()=>h("span",{class:"vpi-align-left menu-icon"},null,-1)),Do={class:"menu-text"},Fo=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(s){const{theme:t,frontmatter:e}=L(),{hasSidebar:o}=O(),{headers:n}=Fe(),{y:i}=Ae(),l=w(0);j(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),se(()=>{n.value=ke(e.value.outline??t.value.outline)});const v=g(()=>n.value.length===0),d=g(()=>v.value&&!o.value),m=g(()=>({VPLocalNav:!0,"has-sidebar":o.value,empty:v.value,fixed:d.value}));return(P,k)=>r(e).layout!=="home"&&(!d.value||r(i)>=l.value)?(a(),u("div",{key:0,class:N(m.value)},[h("div",Bo,[r(o)?(a(),u("button",{key:0,class:"menu","aria-expanded":P.open,"aria-controls":"VPSidebarNav",onClick:k[0]||(k[0]=V=>P.$emit("open-menu"))},[Eo,h("span",Do,T(r(t).sidebarMenuLabel||"Menu"),1)],8,Ho)):f("",!0),b(Ao,{headers:r(n),navHeight:l.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),Oo=$(Fo,[["__scopeId","data-v-070ab83d"]]);function Uo(){const s=w(!1);function t(){s.value=!0,window.addEventListener("resize",n)}function e(){s.value=!1,window.removeEventListener("resize",n)}function o(){s.value?e():t()}function n(){window.outerWidth>=768&&e()}const i=oe();return G(()=>i.path,e),{isScreenOpen:s,openScreen:t,closeScreen:e,toggleScreen:o}}const jo={},Go={class:"VPSwitch",type:"button",role:"switch"},zo={class:"check"},Ko={key:0,class:"icon"};function Ro(s,t){return a(),u("button",Go,[h("span",zo,[s.$slots.default?(a(),u("span",Ko,[c(s.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Wo=$(jo,[["render",Ro],["__scopeId","data-v-4a1c76db"]]),Oe=s=>(B("data-v-b79b56d4"),s=s(),H(),s),qo=Oe(()=>h("span",{class:"vpi-sun sun"},null,-1)),Jo=Oe(()=>h("span",{class:"vpi-moon moon"},null,-1)),Yo=_({__name:"VPSwitchAppearance",setup(s){const{isDark:t,theme:e}=L(),o=J("toggle-appearance",()=>{t.value=!t.value}),n=g(()=>t.value?e.value.lightModeSwitchTitle||"Switch to light theme":e.value.darkModeSwitchTitle||"Switch to dark theme");return(i,l)=>(a(),y(Wo,{title:n.value,class:"VPSwitchAppearance","aria-checked":r(t),onClick:r(o)},{default:p(()=>[qo,Jo]),_:1},8,["title","aria-checked","onClick"]))}}),$e=$(Yo,[["__scopeId","data-v-b79b56d4"]]),Xo={key:0,class:"VPNavBarAppearance"},Qo=_({__name:"VPNavBarAppearance",setup(s){const{site:t}=L();return(e,o)=>r(t).appearance&&r(t).appearance!=="force-dark"?(a(),u("div",Xo,[b($e)])):f("",!0)}}),Zo=$(Qo,[["__scopeId","data-v-ead91a81"]]),ge=w();let Ue=!1,ie=0;function xo(s){const t=w(!1);if(q){!Ue&&en(),ie++;const e=G(ge,o=>{var n,i,l;o===s.el.value||(n=s.el.value)!=null&&n.contains(o)?(t.value=!0,(i=s.onFocus)==null||i.call(s)):(t.value=!1,(l=s.onBlur)==null||l.call(s))});fe(()=>{e(),ie--,ie||tn()})}return st(t)}function en(){document.addEventListener("focusin",je),Ue=!0,ge.value=document.activeElement}function tn(){document.removeEventListener("focusin",je)}function je(){ge.value=document.activeElement}const sn={class:"VPMenuLink"},on=_({__name:"VPMenuLink",props:{item:{}},setup(s){const{page:t}=L();return(e,o)=>(a(),u("div",sn,[b(F,{class:N({active:r(z)(r(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel},{default:p(()=>[D(T(e.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),ne=$(on,[["__scopeId","data-v-8b74d055"]]),nn={class:"VPMenuGroup"},an={key:0,class:"title"},rn=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(s){return(t,e)=>(a(),u("div",nn,[t.text?(a(),u("p",an,T(t.text),1)):f("",!0),(a(!0),u(M,null,E(t.items,o=>(a(),u(M,null,["link"in o?(a(),y(ne,{key:0,item:o},null,8,["item"])):f("",!0)],64))),256))]))}}),ln=$(rn,[["__scopeId","data-v-48c802d0"]]),cn={class:"VPMenu"},un={key:0,class:"items"},dn=_({__name:"VPMenu",props:{items:{}},setup(s){return(t,e)=>(a(),u("div",cn,[t.items?(a(),u("div",un,[(a(!0),u(M,null,E(t.items,o=>(a(),u(M,{key:o.text},["link"in o?(a(),y(ne,{key:0,item:o},null,8,["item"])):(a(),y(ln,{key:1,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):f("",!0),c(t.$slots,"default",{},void 0,!0)]))}}),vn=$(dn,[["__scopeId","data-v-97491713"]]),pn=s=>(B("data-v-e5380155"),s=s(),H(),s),hn=["aria-expanded","aria-label"],fn={key:0,class:"text"},_n=["innerHTML"],mn=pn(()=>h("span",{class:"vpi-chevron-down text-icon"},null,-1)),bn={key:1,class:"vpi-more-horizontal icon"},kn={class:"menu"},$n=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(s){const t=w(!1),e=w();xo({el:e,onBlur:o});function o(){t.value=!1}return(n,i)=>(a(),u("div",{class:"VPFlyout",ref_key:"el",ref:e,onMouseenter:i[1]||(i[1]=l=>t.value=!0),onMouseleave:i[2]||(i[2]=l=>t.value=!1)},[h("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":t.value,"aria-label":n.label,onClick:i[0]||(i[0]=l=>t.value=!t.value)},[n.button||n.icon?(a(),u("span",fn,[n.icon?(a(),u("span",{key:0,class:N([n.icon,"option-icon"])},null,2)):f("",!0),n.button?(a(),u("span",{key:1,innerHTML:n.button},null,8,_n)):f("",!0),mn])):(a(),u("span",bn))],8,hn),h("div",kn,[b(vn,{items:n.items},{default:p(()=>[c(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ye=$($n,[["__scopeId","data-v-e5380155"]]),gn=["href","aria-label","innerHTML"],yn=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(s){const t=s,e=g(()=>typeof t.icon=="object"?t.icon.svg:``);return(o,n)=>(a(),u("a",{class:"VPSocialLink no-icon",href:o.link,"aria-label":o.ariaLabel??(typeof o.icon=="string"?o.icon:""),target:"_blank",rel:"noopener",innerHTML:e.value},null,8,gn))}}),Pn=$(yn,[["__scopeId","data-v-717b8b75"]]),Sn={class:"VPSocialLinks"},Vn=_({__name:"VPSocialLinks",props:{links:{}},setup(s){return(t,e)=>(a(),u("div",Sn,[(a(!0),u(M,null,E(t.links,({link:o,icon:n,ariaLabel:i})=>(a(),y(Pn,{key:o,icon:n,link:o,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),Pe=$(Vn,[["__scopeId","data-v-ee7a9424"]]),Ln={key:0,class:"group translations"},Tn={class:"trans-title"},wn={key:1,class:"group"},In={class:"item appearance"},Nn={class:"label"},Mn={class:"appearance-action"},An={key:2,class:"group"},Cn={class:"item social-links"},Bn=_({__name:"VPNavBarExtra",setup(s){const{site:t,theme:e}=L(),{localeLinks:o,currentLang:n}=X({correspondingLink:!0}),i=g(()=>o.value.length&&n.value.label||t.value.appearance||e.value.socialLinks);return(l,v)=>i.value?(a(),y(ye,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:p(()=>[r(o).length&&r(n).label?(a(),u("div",Ln,[h("p",Tn,T(r(n).label),1),(a(!0),u(M,null,E(r(o),d=>(a(),y(ne,{key:d.link,item:d},null,8,["item"]))),128))])):f("",!0),r(t).appearance&&r(t).appearance!=="force-dark"?(a(),u("div",wn,[h("div",In,[h("p",Nn,T(r(e).darkModeSwitchLabel||"Appearance"),1),h("div",Mn,[b($e)])])])):f("",!0),r(e).socialLinks?(a(),u("div",An,[h("div",Cn,[b(Pe,{class:"social-links-list",links:r(e).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),Hn=$(Bn,[["__scopeId","data-v-9b536d0b"]]),En=s=>(B("data-v-5dea55bf"),s=s(),H(),s),Dn=["aria-expanded"],Fn=En(()=>h("span",{class:"container"},[h("span",{class:"top"}),h("span",{class:"middle"}),h("span",{class:"bottom"})],-1)),On=[Fn],Un=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(s){return(t,e)=>(a(),u("button",{type:"button",class:N(["VPNavBarHamburger",{active:t.active}]),"aria-label":"mobile navigation","aria-expanded":t.active,"aria-controls":"VPNavScreen",onClick:e[0]||(e[0]=o=>t.$emit("click"))},On,10,Dn))}}),jn=$(Un,[["__scopeId","data-v-5dea55bf"]]),Gn=["innerHTML"],zn=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(s){const{page:t}=L();return(e,o)=>(a(),y(F,{class:N({VPNavBarMenuLink:!0,active:r(z)(r(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,tabindex:"0"},{default:p(()=>[h("span",{innerHTML:e.item.text},null,8,Gn)]),_:1},8,["class","href","target","rel"]))}}),Kn=$(zn,[["__scopeId","data-v-2781b5e7"]]),Rn=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(s){const t=s,{page:e}=L(),o=i=>"link"in i?z(e.value.relativePath,i.link,!!t.item.activeMatch):i.items.some(o),n=g(()=>o(t.item));return(i,l)=>(a(),y(ye,{class:N({VPNavBarMenuGroup:!0,active:r(z)(r(e).relativePath,i.item.activeMatch,!!i.item.activeMatch)||n.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),Wn=s=>(B("data-v-492ea56d"),s=s(),H(),s),qn={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Jn=Wn(()=>h("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Yn=_({__name:"VPNavBarMenu",setup(s){const{theme:t}=L();return(e,o)=>r(t).nav?(a(),u("nav",qn,[Jn,(a(!0),u(M,null,E(r(t).nav,n=>(a(),u(M,{key:n.text},["link"in n?(a(),y(Kn,{key:0,item:n},null,8,["item"])):(a(),y(Rn,{key:1,item:n},null,8,["item"]))],64))),128))])):f("",!0)}}),Xn=$(Yn,[["__scopeId","data-v-492ea56d"]]);function Qn(s){const{localeIndex:t,theme:e}=L();function o(n){var A,C,I;const i=n.split("."),l=(A=e.value.search)==null?void 0:A.options,v=l&&typeof l=="object",d=v&&((I=(C=l.locales)==null?void 0:C[t.value])==null?void 0:I.translations)||null,m=v&&l.translations||null;let P=d,k=m,V=s;const S=i.pop();for(const Q of i){let U=null;const R=V==null?void 0:V[Q];R&&(U=V=R);const ae=k==null?void 0:k[Q];ae&&(U=k=ae);const re=P==null?void 0:P[Q];re&&(U=P=re),R||(V=U),ae||(k=U),re||(P=U)}return(P==null?void 0:P[S])??(k==null?void 0:k[S])??(V==null?void 0:V[S])??""}return o}const Zn=["aria-label"],xn={class:"DocSearch-Button-Container"},ea=h("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),ta={class:"DocSearch-Button-Placeholder"},sa=h("span",{class:"DocSearch-Button-Keys"},[h("kbd",{class:"DocSearch-Button-Key"}),h("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Se=_({__name:"VPNavBarSearchButton",setup(s){const e=Qn({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(o,n)=>(a(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(e)("button.buttonAriaLabel")},[h("span",xn,[ea,h("span",ta,T(r(e)("button.buttonText")),1)]),sa],8,Zn))}}),oa={class:"VPNavBarSearch"},na={id:"local-search"},aa={key:1,id:"docsearch"},ra=_({__name:"VPNavBarSearch",setup(s){const t=ot(()=>nt(()=>import("./VPLocalSearchBox.CneWFYlM.js"),__vite__mapDeps([0,1]))),e=()=>null,{theme:o}=L(),n=w(!1),i=w(!1);j(()=>{});function l(){n.value||(n.value=!0,setTimeout(v,16))}function v(){const k=new Event("keydown");k.key="k",k.metaKey=!0,window.dispatchEvent(k),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||v()},16)}function d(k){const V=k.target,S=V.tagName;return V.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const m=w(!1);ce("k",k=>{(k.ctrlKey||k.metaKey)&&(k.preventDefault(),m.value=!0)}),ce("/",k=>{d(k)||(k.preventDefault(),m.value=!0)});const P="local";return(k,V)=>{var S;return a(),u("div",oa,[r(P)==="local"?(a(),u(M,{key:0},[m.value?(a(),y(r(t),{key:0,onClose:V[0]||(V[0]=A=>m.value=!1)})):f("",!0),h("div",na,[b(Se,{onClick:V[1]||(V[1]=A=>m.value=!0)})])],64)):r(P)==="algolia"?(a(),u(M,{key:1},[n.value?(a(),y(r(e),{key:0,algolia:((S=r(o).search)==null?void 0:S.options)??r(o).algolia,onVnodeBeforeMount:V[2]||(V[2]=A=>i.value=!0)},null,8,["algolia"])):f("",!0),i.value?f("",!0):(a(),u("div",aa,[b(Se,{onClick:l})]))],64)):f("",!0)])}}}),ia=_({__name:"VPNavBarSocialLinks",setup(s){const{theme:t}=L();return(e,o)=>r(t).socialLinks?(a(),y(Pe,{key:0,class:"VPNavBarSocialLinks",links:r(t).socialLinks},null,8,["links"])):f("",!0)}}),la=$(ia,[["__scopeId","data-v-164c457f"]]),ca=["href","rel","target"],ua={key:1},da={key:2},va=_({__name:"VPNavBarTitle",setup(s){const{site:t,theme:e}=L(),{hasSidebar:o}=O(),{currentLang:n}=X(),i=g(()=>{var d;return typeof e.value.logoLink=="string"?e.value.logoLink:(d=e.value.logoLink)==null?void 0:d.link}),l=g(()=>{var d;return typeof e.value.logoLink=="string"||(d=e.value.logoLink)==null?void 0:d.rel}),v=g(()=>{var d;return typeof e.value.logoLink=="string"||(d=e.value.logoLink)==null?void 0:d.target});return(d,m)=>(a(),u("div",{class:N(["VPNavBarTitle",{"has-sidebar":r(o)}])},[h("a",{class:"title",href:i.value??r(me)(r(n).link),rel:l.value,target:v.value},[c(d.$slots,"nav-bar-title-before",{},void 0,!0),r(e).logo?(a(),y(ee,{key:0,class:"logo",image:r(e).logo},null,8,["image"])):f("",!0),r(e).siteTitle?(a(),u("span",ua,T(r(e).siteTitle),1)):r(e).siteTitle===void 0?(a(),u("span",da,T(r(t).title),1)):f("",!0),c(d.$slots,"nav-bar-title-after",{},void 0,!0)],8,ca)],2))}}),pa=$(va,[["__scopeId","data-v-28a961f9"]]),ha={class:"items"},fa={class:"title"},_a=_({__name:"VPNavBarTranslations",setup(s){const{theme:t}=L(),{localeLinks:e,currentLang:o}=X({correspondingLink:!0});return(n,i)=>r(e).length&&r(o).label?(a(),y(ye,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(t).langMenuLabel||"Change language"},{default:p(()=>[h("div",ha,[h("p",fa,T(r(o).label),1),(a(!0),u(M,null,E(r(e),l=>(a(),y(ne,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),ma=$(_a,[["__scopeId","data-v-c80d9ad0"]]),ba=s=>(B("data-v-b9c8b02d"),s=s(),H(),s),ka={class:"wrapper"},$a={class:"container"},ga={class:"title"},ya={class:"content"},Pa={class:"content-body"},Sa=ba(()=>h("div",{class:"divider"},[h("div",{class:"divider-line"})],-1)),Va=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(s){const{y:t}=Ae(),{hasSidebar:e}=O(),{hasLocalNav:o}=Fe(),{frontmatter:n}=L(),i=w({});return Te(()=>{i.value={"has-sidebar":e.value,"has-local-nav":o.value,top:n.value.layout==="home"&&t.value===0}}),(l,v)=>(a(),u("div",{class:N(["VPNavBar",i.value])},[h("div",ka,[h("div",$a,[h("div",ga,[b(pa,null,{"nav-bar-title-before":p(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),h("div",ya,[h("div",Pa,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),b(ra,{class:"search"}),b(Xn,{class:"menu"}),b(ma,{class:"translations"}),b(Zo,{class:"appearance"}),b(la,{class:"social-links"}),b(Hn,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),b(jn,{class:"hamburger",active:l.isScreenOpen,onClick:v[0]||(v[0]=d=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),Sa],2))}}),La=$(Va,[["__scopeId","data-v-b9c8b02d"]]),Ta={key:0,class:"VPNavScreenAppearance"},wa={class:"text"},Ia=_({__name:"VPNavScreenAppearance",setup(s){const{site:t,theme:e}=L();return(o,n)=>r(t).appearance&&r(t).appearance!=="force-dark"?(a(),u("div",Ta,[h("p",wa,T(r(e).darkModeSwitchLabel||"Appearance"),1),b($e)])):f("",!0)}}),Na=$(Ia,[["__scopeId","data-v-2b89f08b"]]),Ma=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(s){const t=J("close-screen");return(e,o)=>(a(),y(F,{class:"VPNavScreenMenuLink",href:e.item.link,target:e.item.target,rel:e.item.rel,onClick:r(t)},{default:p(()=>[D(T(e.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Aa=$(Ma,[["__scopeId","data-v-d45ba3e8"]]),Ca=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(s){const t=J("close-screen");return(e,o)=>(a(),y(F,{class:"VPNavScreenMenuGroupLink",href:e.item.link,target:e.item.target,rel:e.item.rel,onClick:r(t)},{default:p(()=>[D(T(e.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ge=$(Ca,[["__scopeId","data-v-7179dbb7"]]),Ba={class:"VPNavScreenMenuGroupSection"},Ha={key:0,class:"title"},Ea=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(s){return(t,e)=>(a(),u("div",Ba,[t.text?(a(),u("p",Ha,T(t.text),1)):f("",!0),(a(!0),u(M,null,E(t.items,o=>(a(),y(Ge,{key:o.text,item:o},null,8,["item"]))),128))]))}}),Da=$(Ea,[["__scopeId","data-v-4b8941ac"]]),Fa=s=>(B("data-v-c9df2649"),s=s(),H(),s),Oa=["aria-controls","aria-expanded"],Ua=["innerHTML"],ja=Fa(()=>h("span",{class:"vpi-plus button-icon"},null,-1)),Ga=["id"],za={key:1,class:"group"},Ka=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(s){const t=s,e=w(!1),o=g(()=>`NavScreenGroup-${t.text.replace(" ","-").toLowerCase()}`);function n(){e.value=!e.value}return(i,l)=>(a(),u("div",{class:N(["VPNavScreenMenuGroup",{open:e.value}])},[h("button",{class:"button","aria-controls":o.value,"aria-expanded":e.value,onClick:n},[h("span",{class:"button-text",innerHTML:i.text},null,8,Ua),ja],8,Oa),h("div",{id:o.value,class:"items"},[(a(!0),u(M,null,E(i.items,v=>(a(),u(M,{key:v.text},["link"in v?(a(),u("div",{key:v.text,class:"item"},[b(Ge,{item:v},null,8,["item"])])):(a(),u("div",za,[b(Da,{text:v.text,items:v.items},null,8,["text","items"])]))],64))),128))],8,Ga)],2))}}),Ra=$(Ka,[["__scopeId","data-v-c9df2649"]]),Wa={key:0,class:"VPNavScreenMenu"},qa=_({__name:"VPNavScreenMenu",setup(s){const{theme:t}=L();return(e,o)=>r(t).nav?(a(),u("nav",Wa,[(a(!0),u(M,null,E(r(t).nav,n=>(a(),u(M,{key:n.text},["link"in n?(a(),y(Aa,{key:0,item:n},null,8,["item"])):(a(),y(Ra,{key:1,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Ja=_({__name:"VPNavScreenSocialLinks",setup(s){const{theme:t}=L();return(e,o)=>r(t).socialLinks?(a(),y(Pe,{key:0,class:"VPNavScreenSocialLinks",links:r(t).socialLinks},null,8,["links"])):f("",!0)}}),ze=s=>(B("data-v-362991c2"),s=s(),H(),s),Ya=ze(()=>h("span",{class:"vpi-languages icon lang"},null,-1)),Xa=ze(()=>h("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Qa={class:"list"},Za=_({__name:"VPNavScreenTranslations",setup(s){const{localeLinks:t,currentLang:e}=X({correspondingLink:!0}),o=w(!1);function n(){o.value=!o.value}return(i,l)=>r(t).length&&r(e).label?(a(),u("div",{key:0,class:N(["VPNavScreenTranslations",{open:o.value}])},[h("button",{class:"title",onClick:n},[Ya,D(" "+T(r(e).label)+" ",1),Xa]),h("ul",Qa,[(a(!0),u(M,null,E(r(t),v=>(a(),u("li",{key:v.link,class:"item"},[b(F,{class:"link",href:v.link},{default:p(()=>[D(T(v.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),xa=$(Za,[["__scopeId","data-v-362991c2"]]),er={class:"container"},tr=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(s){const t=w(null),e=Ce(q?document.body:null);return(o,n)=>(a(),y(pe,{name:"fade",onEnter:n[0]||(n[0]=i=>e.value=!0),onAfterLeave:n[1]||(n[1]=i=>e.value=!1)},{default:p(()=>[o.open?(a(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:t,id:"VPNavScreen"},[h("div",er,[c(o.$slots,"nav-screen-content-before",{},void 0,!0),b(qa,{class:"menu"}),b(xa,{class:"translations"}),b(Na,{class:"appearance"}),b(Ja,{class:"social-links"}),c(o.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),sr=$(tr,[["__scopeId","data-v-382f42e9"]]),or={key:0,class:"VPNav"},nr=_({__name:"VPNav",setup(s){const{isScreenOpen:t,closeScreen:e,toggleScreen:o}=Uo(),{frontmatter:n}=L(),i=g(()=>n.value.navbar!==!1);return _e("close-screen",e),te(()=>{q&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(l,v)=>i.value?(a(),u("header",or,[b(La,{"is-screen-open":r(t),onToggleScreen:r(o)},{"nav-bar-title-before":p(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),b(sr,{open:r(t)},{"nav-screen-content-before":p(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[c(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),ar=$(nr,[["__scopeId","data-v-f1e365da"]]),Ke=s=>(B("data-v-f24171a4"),s=s(),H(),s),rr=["role","tabindex"],ir=Ke(()=>h("div",{class:"indicator"},null,-1)),lr=Ke(()=>h("span",{class:"vpi-chevron-right caret-icon"},null,-1)),cr=[lr],ur={key:1,class:"items"},dr=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(s){const t=s,{collapsed:e,collapsible:o,isLink:n,isActiveLink:i,hasActiveLink:l,hasChildren:v,toggle:d}=Nt(g(()=>t.item)),m=g(()=>v.value?"section":"div"),P=g(()=>n.value?"a":"div"),k=g(()=>v.value?t.depth+2===7?"p":`h${t.depth+2}`:"p"),V=g(()=>n.value?void 0:"button"),S=g(()=>[[`level-${t.depth}`],{collapsible:o.value},{collapsed:e.value},{"is-link":n.value},{"is-active":i.value},{"has-active":l.value}]);function A(I){"key"in I&&I.key!=="Enter"||!t.item.link&&d()}function C(){t.item.link&&d()}return(I,Q)=>{const U=K("VPSidebarItem",!0);return a(),y(W(m.value),{class:N(["VPSidebarItem",S.value])},{default:p(()=>[I.item.text?(a(),u("div",Z({key:0,class:"item",role:V.value},rt(I.item.items?{click:A,keydown:A}:{},!0),{tabindex:I.item.items&&0}),[ir,I.item.link?(a(),y(F,{key:0,tag:P.value,class:"link",href:I.item.link,rel:I.item.rel,target:I.item.target},{default:p(()=>[(a(),y(W(k.value),{class:"text",innerHTML:I.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),y(W(k.value),{key:1,class:"text",innerHTML:I.item.text},null,8,["innerHTML"])),I.item.collapsed!=null?(a(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:at(C,["enter"]),tabindex:"0"},cr,32)):f("",!0)],16,rr)):f("",!0),I.item.items&&I.item.items.length?(a(),u("div",ur,[I.depth<5?(a(!0),u(M,{key:0},E(I.item.items,R=>(a(),y(U,{key:R.text,item:R,depth:I.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),vr=$(dr,[["__scopeId","data-v-f24171a4"]]),Re=s=>(B("data-v-ec846e01"),s=s(),H(),s),pr=Re(()=>h("div",{class:"curtain"},null,-1)),hr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},fr=Re(()=>h("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),_r=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(s){const{sidebarGroups:t,hasSidebar:e}=O(),o=s,n=w(null),i=Ce(q?document.body:null);return G([o,n],()=>{var l;o.open?(i.value=!0,(l=n.value)==null||l.focus()):i.value=!1},{immediate:!0,flush:"post"}),(l,v)=>r(e)?(a(),u("aside",{key:0,class:N(["VPSidebar",{open:l.open}]),ref_key:"navEl",ref:n,onClick:v[0]||(v[0]=it(()=>{},["stop"]))},[pr,h("nav",hr,[fr,c(l.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),u(M,null,E(r(t),d=>(a(),u("div",{key:d.text,class:"group"},[b(vr,{item:d,depth:0},null,8,["item"])]))),128)),c(l.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),mr=$(_r,[["__scopeId","data-v-ec846e01"]]),br=_({__name:"VPSkipLink",setup(s){const t=oe(),e=w();G(()=>t.path,()=>e.value.focus());function o({target:n}){const i=document.getElementById(decodeURIComponent(n.hash).slice(1));if(i){const l=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",l)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",l),i.focus(),window.scrollTo(0,0)}}return(n,i)=>(a(),u(M,null,[h("span",{ref_key:"backToTop",ref:e,tabindex:"-1"},null,512),h("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o}," Skip to content ")],64))}}),kr=$(br,[["__scopeId","data-v-c3508ec8"]]),$r=_({__name:"Layout",setup(s){const{isOpen:t,open:e,close:o}=O(),n=oe();G(()=>n.path,o),It(t,o);const{frontmatter:i}=L(),l=Be(),v=g(()=>!!l["home-hero-image"]);return _e("hero-image-slot-exists",v),(d,m)=>{const P=K("Content");return r(i).layout!==!1?(a(),u("div",{key:0,class:N(["Layout",r(i).pageClass])},[c(d.$slots,"layout-top",{},void 0,!0),b(kr),b(ht,{class:"backdrop",show:r(t),onClick:r(o)},null,8,["show","onClick"]),b(ar,null,{"nav-bar-title-before":p(()=>[c(d.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[c(d.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[c(d.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[c(d.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":p(()=>[c(d.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[c(d.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),b(Oo,{open:r(t),onOpenMenu:r(e)},null,8,["open","onOpenMenu"]),b(mr,{open:r(t)},{"sidebar-nav-before":p(()=>[c(d.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":p(()=>[c(d.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),b(go,null,{"page-top":p(()=>[c(d.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[c(d.$slots,"page-bottom",{},void 0,!0)]),"not-found":p(()=>[c(d.$slots,"not-found",{},void 0,!0)]),"home-hero-before":p(()=>[c(d.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":p(()=>[c(d.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[c(d.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[c(d.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[c(d.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[c(d.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[c(d.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[c(d.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[c(d.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":p(()=>[c(d.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[c(d.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[c(d.$slots,"doc-after",{},void 0,!0)]),"doc-top":p(()=>[c(d.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[c(d.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":p(()=>[c(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[c(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[c(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[c(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[c(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[c(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),b(Lo),c(d.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),y(P,{key:1}))}}}),gr=$($r,[["__scopeId","data-v-a9a9e638"]]),Ve={Layout:gr,enhanceApp:({app:s})=>{s.component("Badge",dt)}},yr=s=>{if(typeof document>"u")return{stabilizeScrollPosition:n=>async(...i)=>n(...i)};const t=document.documentElement;return{stabilizeScrollPosition:o=>async(...n)=>{const i=o(...n),l=s.value;if(!l)return i;const v=l.offsetTop-t.scrollTop;return await Me(),t.scrollTop=l.offsetTop-v,i}}},We="vitepress:tabSharedState",Y=typeof localStorage<"u"?localStorage:null,qe="vitepress:tabsSharedState",Pr=()=>{const s=Y==null?void 0:Y.getItem(qe);if(s)try{return JSON.parse(s)}catch{}return{}},Sr=s=>{Y&&Y.setItem(qe,JSON.stringify(s))},Vr=s=>{const t=lt({});G(()=>t.content,(e,o)=>{e&&o&&Sr(e)},{deep:!0}),s.provide(We,t)},Lr=(s,t)=>{const e=J(We);if(!e)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");j(()=>{e.content||(e.content=Pr())});const o=w(),n=g({get(){var d;const l=t.value,v=s.value;if(l){const m=(d=e.content)==null?void 0:d[l];if(m&&v.includes(m))return m}else{const m=o.value;if(m)return m}return v[0]},set(l){const v=t.value;v?e.content&&(e.content[v]=l):o.value=l}});return{selected:n,select:l=>{n.value=l}}};let Le=0;const Tr=()=>(Le++,""+Le);function wr(){const s=Be();return g(()=>{var o;const e=(o=s.default)==null?void 0:o.call(s);return e?e.filter(n=>typeof n.type=="object"&&"__name"in n.type&&n.type.__name==="PluginTabsTab"&&n.props).map(n=>{var i;return(i=n.props)==null?void 0:i.label}):[]})}const Je="vitepress:tabSingleState",Ir=s=>{_e(Je,s)},Nr=()=>{const s=J(Je);if(!s)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return s},Mr={class:"plugin-tabs"},Ar=["id","aria-selected","aria-controls","tabindex","onClick"],Cr=_({__name:"PluginTabs",props:{sharedStateKey:{}},setup(s){const t=s,e=wr(),{selected:o,select:n}=Lr(e,ct(t,"sharedStateKey")),i=w(),{stabilizeScrollPosition:l}=yr(i),v=l(n),d=w([]),m=k=>{var A;const V=e.value.indexOf(o.value);let S;k.key==="ArrowLeft"?S=V>=1?V-1:e.value.length-1:k.key==="ArrowRight"&&(S=V(a(),u("div",Mr,[h("div",{ref_key:"tablist",ref:i,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:m},[(a(!0),u(M,null,E(r(e),S=>(a(),u("button",{id:`tab-${S}-${r(P)}`,ref_for:!0,ref_key:"buttonRefs",ref:d,key:S,role:"tab",class:"plugin-tabs--tab","aria-selected":S===r(o),"aria-controls":`panel-${S}-${r(P)}`,tabindex:S===r(o)?0:-1,onClick:()=>r(v)(S)},T(S),9,Ar))),128))],544),c(k.$slots,"default")]))}}),Br=["id","aria-labelledby"],Hr=_({__name:"PluginTabsTab",props:{label:{}},setup(s){const{uid:t,selected:e}=Nr();return(o,n)=>r(e)===o.label?(a(),u("div",{key:0,id:`panel-${o.label}-${r(t)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${o.label}-${r(t)}`},[c(o.$slots,"default",{},void 0,!0)],8,Br)):f("",!0)}}),Er=$(Hr,[["__scopeId","data-v-9b0d03d2"]]),Dr=s=>{Vr(s),s.component("PluginTabs",Cr),s.component("PluginTabsTab",Er)},Or={extends:Ve,Layout(){return ut(Ve.Layout,null,{})},enhanceApp({app:s,router:t,siteData:e}){Dr(s)}};export{Or as R,Qn as c,L as u}; diff --git a/dev/assets/constraints_constraints.md.B0UdRDNC.js b/dev/assets/constraints_constraints.md.xxBQdAFf.js similarity index 80% rename from dev/assets/constraints_constraints.md.B0UdRDNC.js rename to dev/assets/constraints_constraints.md.xxBQdAFf.js index db398df..3763860 100644 --- a/dev/assets/constraints_constraints.md.B0UdRDNC.js +++ b/dev/assets/constraints_constraints.md.xxBQdAFf.js @@ -1,6 +1,6 @@ -import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.RTxADYK2.js";const E=JSON.parse('{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","description":"","frontmatter":{},"headers":[],"relativePath":"constraints/constraints.md","filePath":"constraints/constraints.md","lastUpdated":null}'),n={name:"constraints/constraints.md"},e=t(`

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

Constraints.jl is a pivotal package within the JuliaConstraints ecosystem, designed to facilitate the definition, manipulation, and application of constraints in constraint programming (CP). This package is central to handling both standard and complex constraints, making it an indispensable tool for developers and researchers working in CP.

Key Features and Functionalities

  • Integration of XCSP3-core Constraints: One of the standout features of Constraints.jl is its incorporation of the XCSP3-core constraints as usual constraints within Julia. This integration ensures that users can define and work with a wide range of standard constraints, following the specifications outlined in the XCSP3-core, directly in Julia. The use of USUAL_CONSTRAINTS dictionary allows for straightforward addition and manipulation of these constraints, enhancing the package's utility and flexibility.

  • Learning Package Integration: Constraints.jl goes beyond traditional constraint handling by offering the capability to include results from various learning packages within the JuliaConstraints organization. This feature allows for the enhancement of usual constraints and those from the Global Constraints Catalog with learned parameters and behaviors, significantly improving constraint applicability and performance in complex CP problems.

  • Constraint Definition and Symmetry Handling: The package provides a simple yet powerful syntax for defining new constraints (@usual) and managing their symmetries through the USUAL_SYMMETRIES dictionary. This approach simplifies the creation of new constraints and the optimization of constraint search spaces by avoiding redundant explorations.

  • Advanced Constraint Functionalities: At the core of Constraints.jl is the Constraint type, encapsulating the essential elements of a constraint, including its concept (a Boolean function determining satisfaction) and an error function (providing a preference measure over invalid assignments). These components are crucial for defining how constraints behave and are evaluated within a CP model.

  • Flexible Constraint Application: The package supports a range of methods for interacting with constraints, such as args, concept, error_f, params_length, symmetries, and xcsp_intension. These methods offer users the ability to examine constraint properties, apply constraints to variable assignments, and work with intensional constraints defined by predicates. Such flexibility is vital for tailoring constraint behavior to specific problems and contexts.

Enabling Advanced Modeling in Constraint Programming

Constraints.jl embodies the JuliaConstraints ecosystem's commitment to providing robust, flexible tools for constraint programming. By integrating standard constraints, facilitating the incorporation of learned behaviors, and offering comprehensive tools for constraint definition and application, Constraints.jl significantly enhances the modeling capabilities available to CP practitioners. Whether for educational purposes, research, or solving practical CP problems, Constraints.jl offers a sophisticated, user-friendly platform for working with constraints in Julia.

Basic tools

# Constraints.USUAL_SYMMETRIESConstant.
julia
USUAL_SYMMETRIES

A Dictionary that contains the function to apply for each symmetry to avoid searching a whole space.

source


# Constraints.ConstraintType.
julia
Constraint

Parametric stucture with the following fields.

  • concept: a Boolean function that, given an assignment x, outputs true if x satisfies the constraint, and false otherwise.

  • error: a positive function that works as preferences over invalid assignements. Return 0.0 if the constraint is satisfied, and a strictly positive real otherwise.

source


# Constraints.conceptFunction.
julia
concept(c::Constraint)

Return the concept (function) of constraint c. concept(c::Constraint, x...; param = nothing) Apply the concept of c to values x and optionally param.

source


# Constraints.error_fFunction.
julia
error_f(c::Constraint)

Return the error function of constraint c. error_f(c::Constraint, x; param = nothing) Apply the error function of c to values x and optionally param.

source


# Constraints.argsFunction.
julia
args(c::Constraint)

Return the expected length restriction of the arguments in a constraint c. The value nothing indicates that any strictly positive number of value is accepted.

source


# Constraints.params_lengthFunction.
julia
params_length(c::Constraint)

Return the expected length restriction of the arguments in a constraint c. The value nothing indicates that any strictly positive number of parameters is accepted.

source


# Constraints.symmetriesFunction.
julia
symmetries(c::Constraint)

Return the list of symmetries of c.

source


Missing docstring.

Missing docstring for make_error. Check Documenter's build log for details.

# Constraints.shrink_conceptFunction.
julia
shrink_concept(s)

Simply delete the concept_ part of symbol or string starting with it. TODO: add a check with a warning if s starts with something different.

source


Missing docstring.

Missing docstring for concept_vs_error. Check Documenter's build log for details.

Usual constraints (based on and including XCSP3-core categories)

# Constraints.USUAL_CONSTRAINTSConstant.
julia
USUAL_CONSTRAINTS::Dict

Dictionary that contains all the usual constraints defined in Constraint.jl. It is based on XCSP3-core specifications available at https://arxiv.org/abs/2009.00514

Adding a new constraint is as simple as

julia
@usual name p a sym₁ sym₂

where

  • name: constraint name

  • p: the length of the parameters (0 means no parameters)

  • a: the length of the arguments/variables (0 means any length is possible).

  • symᵢ: a sequence of symmetries (can be left empty)

Both a alone, or p and a together are optional.

Note that concept_name needs to be defined. Unless both error_name and icn_error_name are defined, a default error function will be computed. Please (re-)define error_name for a hand_made error function.

source


Missing docstring.

Missing docstring for describe. Check Documenter's build log for details.

# ConstraintCommons.extract_parametersFunction.
julia
extract_parameters(m::Union{Method, Function}; parameters)

Extracts the intersection between the kargs of m and parameters (defaults to USUAL_CONSTRAINT_PARAMETERS).

source


Missing docstring.

Missing docstring for usual. Check Documenter's build log for details.

Missing docstring.

Missing docstring for constraints_parameters. Check Documenter's build log for details.

Missing docstring.

Missing docstring for constraints_descriptions. Check Documenter's build log for details.

Generic Constraints

# Constraints.xcsp_intensionFunction.
julia
xcsp_intension(list, predicate)

An intensional constraint is usually defined from a predicate over list. As such it encompass any generic constraint.

Arguments

  • list::Vector{Int}: A list of variables

  • predicate::Function: A predicate over list

Instantiations

  • :dist_different: A constraint ensuring that the distances between marks on the ruler are unique. Specifically, it checks that the distance between x[1] and x[2], and the distance between x[3] and x[4], are different. This constraint is fundamental in ensuring the validity of a Golomb ruler, where no two pairs of marks should have the same distance between them.

Examples

julia
c = concept(USUAL_CONSTRAINTS[:dist_different])
+import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.RTxADYK2.js";const E=JSON.parse('{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","description":"","frontmatter":{},"headers":[],"relativePath":"constraints/constraints.md","filePath":"constraints/constraints.md","lastUpdated":null}'),n={name:"constraints/constraints.md"},e=t(`

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

Constraints.jl is a pivotal package within the JuliaConstraints ecosystem, designed to facilitate the definition, manipulation, and application of constraints in constraint programming (CP). This package is central to handling both standard and complex constraints, making it an indispensable tool for developers and researchers working in CP.

Key Features and Functionalities

  • Integration of XCSP3-core Constraints: One of the standout features of Constraints.jl is its incorporation of the XCSP3-core constraints as usual constraints within Julia. This integration ensures that users can define and work with a wide range of standard constraints, following the specifications outlined in the XCSP3-core, directly in Julia. The use of USUAL_CONSTRAINTS dictionary allows for straightforward addition and manipulation of these constraints, enhancing the package's utility and flexibility.

  • Learning Package Integration: Constraints.jl goes beyond traditional constraint handling by offering the capability to include results from various learning packages within the JuliaConstraints organization. This feature allows for the enhancement of usual constraints and those from the Global Constraints Catalog with learned parameters and behaviors, significantly improving constraint applicability and performance in complex CP problems.

  • Constraint Definition and Symmetry Handling: The package provides a simple yet powerful syntax for defining new constraints (@usual) and managing their symmetries through the USUAL_SYMMETRIES dictionary. This approach simplifies the creation of new constraints and the optimization of constraint search spaces by avoiding redundant explorations.

  • Advanced Constraint Functionalities: At the core of Constraints.jl is the Constraint type, encapsulating the essential elements of a constraint, including its concept (a Boolean function determining satisfaction) and an error function (providing a preference measure over invalid assignments). These components are crucial for defining how constraints behave and are evaluated within a CP model.

  • Flexible Constraint Application: The package supports a range of methods for interacting with constraints, such as args, concept, error_f, params_length, symmetries, and xcsp_intension. These methods offer users the ability to examine constraint properties, apply constraints to variable assignments, and work with intensional constraints defined by predicates. Such flexibility is vital for tailoring constraint behavior to specific problems and contexts.

Enabling Advanced Modeling in Constraint Programming

Constraints.jl embodies the JuliaConstraints ecosystem's commitment to providing robust, flexible tools for constraint programming. By integrating standard constraints, facilitating the incorporation of learned behaviors, and offering comprehensive tools for constraint definition and application, Constraints.jl significantly enhances the modeling capabilities available to CP practitioners. Whether for educational purposes, research, or solving practical CP problems, Constraints.jl offers a sophisticated, user-friendly platform for working with constraints in Julia.

Basic tools

# Constraints.USUAL_SYMMETRIESConstant.
julia
USUAL_SYMMETRIES

A Dictionary that contains the function to apply for each symmetry to avoid searching a whole space.

source


# Constraints.ConstraintType.
julia
Constraint

Parametric stucture with the following fields.

  • concept: a Boolean function that, given an assignment x, outputs true if x satisfies the constraint, and false otherwise.

  • error: a positive function that works as preferences over invalid assignements. Return 0.0 if the constraint is satisfied, and a strictly positive real otherwise.

source


# Constraints.conceptFunction.
julia
concept(c::Constraint)

Return the concept (function) of constraint c. concept(c::Constraint, x...; param = nothing) Apply the concept of c to values x and optionally param.

source


# Constraints.error_fFunction.
julia
error_f(c::Constraint)

Return the error function of constraint c. error_f(c::Constraint, x; param = nothing) Apply the error function of c to values x and optionally param.

source


# Constraints.argsFunction.
julia
args(c::Constraint)

Return the expected length restriction of the arguments in a constraint c. The value nothing indicates that any strictly positive number of value is accepted.

source


# Constraints.params_lengthFunction.
julia
params_length(c::Constraint)

Return the expected length restriction of the arguments in a constraint c. The value nothing indicates that any strictly positive number of parameters is accepted.

source


# Constraints.symmetriesFunction.
julia
symmetries(c::Constraint)

Return the list of symmetries of c.

source


Missing docstring.

Missing docstring for make_error. Check Documenter's build log for details.

# Constraints.shrink_conceptFunction.
julia
shrink_concept(s)

Simply delete the concept_ part of symbol or string starting with it. TODO: add a check with a warning if s starts with something different.

source


Missing docstring.

Missing docstring for concept_vs_error. Check Documenter's build log for details.

Usual constraints (based on and including XCSP3-core categories)

# Constraints.USUAL_CONSTRAINTSConstant.
julia
USUAL_CONSTRAINTS::Dict

Dictionary that contains all the usual constraints defined in Constraint.jl. It is based on XCSP3-core specifications available at https://arxiv.org/abs/2009.00514

Adding a new constraint is as simple as

julia
@usual name p a sym₁ sym₂

where

  • name: constraint name

  • p: the length of the parameters (0 means no parameters)

  • a: the length of the arguments/variables (0 means any length is possible).

  • symᵢ: a sequence of symmetries (can be left empty)

Both a alone, or p and a together are optional.

Note that concept_name needs to be defined. Unless both error_name and icn_error_name are defined, a default error function will be computed. Please (re-)define error_name for a hand_made error function.

source


Missing docstring.

Missing docstring for describe. Check Documenter's build log for details.

# ConstraintCommons.extract_parametersFunction.
julia
extract_parameters(m::Union{Method, Function}; parameters)

Extracts the intersection between the kargs of m and parameters (defaults to USUAL_CONSTRAINT_PARAMETERS).

source


Missing docstring.

Missing docstring for usual. Check Documenter's build log for details.

Missing docstring.

Missing docstring for constraints_parameters. Check Documenter's build log for details.

Missing docstring.

Missing docstring for constraints_descriptions. Check Documenter's build log for details.

Generic Constraints

# Constraints.xcsp_intensionFunction.
julia
xcsp_intension(list, predicate)

An intensional constraint is usually defined from a predicate over list. As such it encompass any generic constraint.

Arguments

  • list::Vector{Int}: A list of variables

  • predicate::Function: A predicate over list

Variants

  • :dist_different: A constraint ensuring that the distances between marks on the ruler are unique. Specifically, it checks that the distance between x[1] and x[2], and the distance between x[3] and x[4], are different. This constraint is fundamental in ensuring the validity of a Golomb ruler, where no two pairs of marks should have the same distance between them.

Examples

julia
c = concept(:dist_different)
 c([1, 2, 3, 3]) # true
-c([1, 2, 3, 4]) # false

source


# Constraints.xcsp_extensionFunction.
julia
xcsp_extension(; list, supports=nothing, conflicts=nothing)

Global constraint enforcing that the tuple x matches a configuration within the supports set pair_vars[1] or does not match any configuration within the conflicts set pair_vars[2]. It embodies the logic: x ∈ pair_vars[1] || x ∉ pair_vars[2], providing a comprehensive way to define valid (supported) and invalid (conflicted) tuples for constraint satisfaction problems. This constraint is versatile, allowing for the explicit delineation of both acceptable and unacceptable configurations.

Arguments

  • list::Vector{Int}: A list of variables

  • supports::Vector{Vector{Int}}: A set of supported tuples. Default to nothing.

  • conflicts::Vector{Vector{Int}}: A set of conflicted tuples. Default to nothing.

Instantiations

  • :extension: Global constraint enforcing that the tuple x matches a configuration within the supports set pair_vars[1] or does not match any configuration within the conflicts set pair_vars[2]. It embodies the logic: x ∈ pair_vars[1] || x ∉ pair_vars[2], providing a comprehensive way to define valid (supported) and invalid (conflicted) tuples for constraint satisfaction problems. This constraint is versatile, allowing for the explicit delineation of both acceptable and unacceptable configurations.

  • :supports: Global constraint ensuring that the tuple x matches a configuration listed within the support set pair_vars. This constraint is derived from the extension model, specifying that x must be one of the explicitly defined supported configurations: x ∈ pair_vars. It is utilized to directly declare the tuples that are valid and should be included in the solution space.

  • :conflicts: Global constraint ensuring that the tuple x does not match any configuration listed within the conflict set pair_vars. This constraint, originating from the extension model, stipulates that x must avoid all configurations defined as conflicts: x ∉ pair_vars. It is useful for specifying tuples that are explicitly forbidden and should be excluded from the solution space.

Examples

julia
c = USUAL_CONSTRAINTS[:extension] |> concept
+c([1, 2, 3, 4]) # false

source


# Constraints.xcsp_extensionFunction.
julia
xcsp_extension(; list, supports=nothing, conflicts=nothing)

Global constraint enforcing that the tuple x matches a configuration within the supports set pair_vars[1] or does not match any configuration within the conflicts set pair_vars[2]. It embodies the logic: x ∈ pair_vars[1] || x ∉ pair_vars[2], providing a comprehensive way to define valid (supported) and invalid (conflicted) tuples for constraint satisfaction problems. This constraint is versatile, allowing for the explicit delineation of both acceptable and unacceptable configurations.

Arguments

  • list::Vector{Int}: A list of variables

  • supports::Vector{Vector{Int}}: A set of supported tuples. Default to nothing.

  • conflicts::Vector{Vector{Int}}: A set of conflicted tuples. Default to nothing.

Variants

  • :extension: Global constraint enforcing that the tuple x matches a configuration within the supports set pair_vars[1] or does not match any configuration within the conflicts set pair_vars[2]. It embodies the logic: x ∈ pair_vars[1] || x ∉ pair_vars[2], providing a comprehensive way to define valid (supported) and invalid (conflicted) tuples for constraint satisfaction problems. This constraint is versatile, allowing for the explicit delineation of both acceptable and unacceptable configurations.

  • :supports: Global constraint ensuring that the tuple x matches a configuration listed within the support set pair_vars. This constraint is derived from the extension model, specifying that x must be one of the explicitly defined supported configurations: x ∈ pair_vars. It is utilized to directly declare the tuples that are valid and should be included in the solution space.

  • :conflicts: Global constraint ensuring that the tuple x does not match any configuration listed within the conflict set pair_vars. This constraint, originating from the extension model, stipulates that x must avoid all configurations defined as conflicts: x ∉ pair_vars. It is useful for specifying tuples that are explicitly forbidden and should be excluded from the solution space.

Examples

julia
c = concept(:extension)
 c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 3, 4, 5]])
 c([1, 2, 3, 4, 5]; pair_vars=([[1, 2, 3, 4, 5]], [[1, 2, 1, 4, 5], [1, 2, 3, 5, 5]]))
 c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 1, 4, 5], [1, 2, 3, 5, 5]])
@@ -9,4 +9,4 @@ import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.RTxADYK2.js";const E
 c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 3, 4, 5]])
 
 c = concept(USUAL_CONSTRAINTS[:conflicts])
-c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 1, 4, 5], [1, 2, 3, 5, 5]])
@example
2 + 2

source


Constraints defined from Languages

Missing docstring.

Missing docstring for xcsp_regular. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_mdd. Check Documenter's build log for details.

Comparison-based Constraints

Missing docstring.

Missing docstring for xcsp_all_different. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_all_equal. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_ordered. Check Documenter's build log for details.

Counting and Summing Constraints

Missing docstring.

Missing docstring for xcsp_sum. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_count. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_nvalues. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_cardinality. Check Documenter's build log for details.

SECTION - Connection Constraints

Missing docstring.

Missing docstring for xcsp_maximum. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_minimum. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_element. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_channel. Check Documenter's build log for details.

SECTION - Packing and Scheduling Constraints

Missing docstring.

Missing docstring for xcsp_cumulative. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_no_overlap. Check Documenter's build log for details.

SECTION - Constraints on Graphs

Missing docstring.

Missing docstring for xcsp_circuit. Check Documenter's build log for details.

SECTION - Elementary Constraints

Missing docstring.

Missing docstring for xcsp_instantiation. Check Documenter's build log for details.

`,63),o=[e];function r(l,h,p,d,c,k){return a(),i("div",null,o)}const u=s(n,[["render",r]]);export{E as __pageData,u as default}; +c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 1, 4, 5], [1, 2, 3, 5, 5]])
@example
2 + 2

source


Constraints defined from Languages

Missing docstring.

Missing docstring for xcsp_regular. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_mdd. Check Documenter's build log for details.

Comparison-based Constraints

Missing docstring.

Missing docstring for xcsp_all_different. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_all_equal. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_ordered. Check Documenter's build log for details.

Counting and Summing Constraints

Missing docstring.

Missing docstring for xcsp_sum. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_count. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_nvalues. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_cardinality. Check Documenter's build log for details.

SECTION - Connection Constraints

Missing docstring.

Missing docstring for xcsp_maximum. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_minimum. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_element. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_channel. Check Documenter's build log for details.

SECTION - Packing and Scheduling Constraints

Missing docstring.

Missing docstring for xcsp_cumulative. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_no_overlap. Check Documenter's build log for details.

SECTION - Constraints on Graphs

Missing docstring.

Missing docstring for xcsp_circuit. Check Documenter's build log for details.

SECTION - Elementary Constraints

Missing docstring.

Missing docstring for xcsp_instantiation. Check Documenter's build log for details.

`,63),o=[e];function r(l,h,p,d,c,k){return a(),i("div",null,o)}const u=s(n,[["render",r]]);export{E as __pageData,u as default}; diff --git a/dev/assets/constraints_constraints.md.B0UdRDNC.lean.js b/dev/assets/constraints_constraints.md.xxBQdAFf.lean.js similarity index 100% rename from dev/assets/constraints_constraints.md.B0UdRDNC.lean.js rename to dev/assets/constraints_constraints.md.xxBQdAFf.lean.js diff --git a/dev/assets/full_api.md.DydxjnSN.js b/dev/assets/full_api.md.Do7cexhR.js similarity index 95% rename from dev/assets/full_api.md.DydxjnSN.js rename to dev/assets/full_api.md.Do7cexhR.js index f129e38..a9b850e 100644 --- a/dev/assets/full_api.md.DydxjnSN.js +++ b/dev/assets/full_api.md.Do7cexhR.js @@ -21,7 +21,7 @@ import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.RTxADYK2.js";const u d3 = domain([2//3, 89//123]) d4 = domain(4.3) d5 = domain(1,42,86.9)

source


# ConstraintDomains.domainMethod.
julia
domain()

Construct an EmptyDomain.

source


# ConstraintDomains.domainMethod.
julia
domain(a::Tuple{T, Bool}, b::Tuple{T, Bool}) where {T <: Real}
-domain(intervals::Vector{Tuple{Tuple{T, Bool},Tuple{T, Bool}}}) where {T <: Real}

Construct a domain of continuous interval(s). \`\`\`julia d1 = domain((0., true), (1., false)) # d1 = [0, 1) d2 = domain([ # d2 = 0, 1) ∪ (3.5, 42, (1., false), (3.5, false), (42., true), ])

source


# ConstraintDomains.domain_sizeMethod.
julia
domain_size(itv::Intervals)

Return the difference between the highest and lowest values in itv.

source


# ConstraintDomains.domain_sizeMethod.
julia
domain_size(d <: AbstractDomain)

Fallback method for domain_size(d) that return length(d).

source


# ConstraintDomains.domain_sizeMethod.
julia
domain_size(d::D) where D <: DiscreteDomain

Return the maximum distance between two points in d.

source


# ConstraintDomains.exploreMethod.
julia
explore(domains, concept, param = nothing; search_limit = 1000, solutions_limit = 100)

Search (a part of) a search space and returns a pair of vector of configurations: (solutions, non_solutions). If the search space size is over search_limit, then both solutions and non_solutions are limited to solutions_limit.

Beware that if the density of the solutions in the search space is low, solutions_limit needs to be reduced. This process will be automatic in the future (simple reinforcement learning).

Arguments:

  • domains: a collection of domains

  • concept: the concept of the targeted constraint

  • param: an optional parameter of the constraint

  • sol_number: the required number of solutions (half of the number of configurations), default to 100

source


# ConstraintDomains.fake_automatonMethod.
julia
fake_automaton(d)

Construct a FakeAutomaton.

source


# ConstraintDomains.generate_parametersMethod.
julia
generate_parameters(d<:AbstractDomain, param)

Generates random parameters based on the domain d and the kind of parameters param.

source


# ConstraintDomains.get_domainMethod.
julia
get_domain(::AbstractDomain)

Access the internal structure of any domain type.

source


# ConstraintDomains.intersect_domainsMethod.
julia
intersect_domains(d₁, d₂)

Compute the intersections of two domains.

source


# ConstraintDomains.merge_domainsMethod.
julia
merge_domains(d₁::AbstractDomain, d₂::AbstractDomain)

Merge two domains of same nature (discrete/contiuous).

source


# ConstraintDomains.sizeMethod.
julia
Base.size(i::I) where {I <: Interval}

Defines the size of an interval as its span.

source


# ConstraintDomains.to_domainsMethod.
julia
to_domains(args...)

Convert various arguments into valid domains format.

source


# Constraints.USUAL_CONSTRAINTSConstant.
julia
USUAL_CONSTRAINTS::Dict

Dictionary that contains all the usual constraints defined in Constraint.jl. It is based on XCSP3-core specifications available at https://arxiv.org/abs/2009.00514

Adding a new constraint is as simple as

julia
@usual name p a sym₁ sym₂

where

  • name: constraint name

  • p: the length of the parameters (0 means no parameters)

  • a: the length of the arguments/variables (0 means any length is possible).

  • symᵢ: a sequence of symmetries (can be left empty)

Both a alone, or p and a together are optional.

Note that concept_name needs to be defined. Unless both error_name and icn_error_name are defined, a default error function will be computed. Please (re-)define error_name for a hand_made error function.

source


# Constraints.USUAL_SYMMETRIESConstant.
julia
USUAL_SYMMETRIES

A Dictionary that contains the function to apply for each symmetry to avoid searching a whole space.

source


# Constraints.ConstraintType.
julia
Constraint

Parametric stucture with the following fields.

  • concept: a Boolean function that, given an assignment x, outputs true if x satisfies the constraint, and false otherwise.

  • error: a positive function that works as preferences over invalid assignements. Return 0.0 if the constraint is satisfied, and a strictly positive real otherwise.

source


# Constraints.argsMethod.
julia
args(c::Constraint)

Return the expected length restriction of the arguments in a constraint c. The value nothing indicates that any strictly positive number of value is accepted.

source


# Constraints.conceptMethod.
julia
concept(c::Constraint)

Return the concept (function) of constraint c. concept(c::Constraint, x...; param = nothing) Apply the concept of c to values x and optionally param.

source


# Constraints.error_fMethod.
julia
error_f(c::Constraint)

Return the error function of constraint c. error_f(c::Constraint, x; param = nothing) Apply the error function of c to values x and optionally param.

source


# Constraints.params_lengthMethod.
julia
params_length(c::Constraint)

Return the expected length restriction of the arguments in a constraint c. The value nothing indicates that any strictly positive number of parameters is accepted.

source


# Constraints.shrink_conceptMethod.
julia
shrink_concept(s)

Simply delete the concept_ part of symbol or string starting with it. TODO: add a check with a warning if s starts with something different.

source


# Constraints.symmetriesMethod.
julia
symmetries(c::Constraint)

Return the list of symmetries of c.

source


# Constraints.xcsp_extensionMethod.
julia
xcsp_extension(; list, supports=nothing, conflicts=nothing)

Global constraint enforcing that the tuple x matches a configuration within the supports set pair_vars[1] or does not match any configuration within the conflicts set pair_vars[2]. It embodies the logic: x ∈ pair_vars[1] || x ∉ pair_vars[2], providing a comprehensive way to define valid (supported) and invalid (conflicted) tuples for constraint satisfaction problems. This constraint is versatile, allowing for the explicit delineation of both acceptable and unacceptable configurations.

Arguments

  • list::Vector{Int}: A list of variables

  • supports::Vector{Vector{Int}}: A set of supported tuples. Default to nothing.

  • conflicts::Vector{Vector{Int}}: A set of conflicted tuples. Default to nothing.

Instantiations

  • :extension: Global constraint enforcing that the tuple x matches a configuration within the supports set pair_vars[1] or does not match any configuration within the conflicts set pair_vars[2]. It embodies the logic: x ∈ pair_vars[1] || x ∉ pair_vars[2], providing a comprehensive way to define valid (supported) and invalid (conflicted) tuples for constraint satisfaction problems. This constraint is versatile, allowing for the explicit delineation of both acceptable and unacceptable configurations.

  • :supports: Global constraint ensuring that the tuple x matches a configuration listed within the support set pair_vars. This constraint is derived from the extension model, specifying that x must be one of the explicitly defined supported configurations: x ∈ pair_vars. It is utilized to directly declare the tuples that are valid and should be included in the solution space.

  • :conflicts: Global constraint ensuring that the tuple x does not match any configuration listed within the conflict set pair_vars. This constraint, originating from the extension model, stipulates that x must avoid all configurations defined as conflicts: x ∉ pair_vars. It is useful for specifying tuples that are explicitly forbidden and should be excluded from the solution space.

Examples

julia
c = USUAL_CONSTRAINTS[:extension] |> concept
+domain(intervals::Vector{Tuple{Tuple{T, Bool},Tuple{T, Bool}}}) where {T <: Real}

Construct a domain of continuous interval(s). \`\`\`julia d1 = domain((0., true), (1., false)) # d1 = [0, 1) d2 = domain([ # d2 = 0, 1) ∪ (3.5, 42, (1., false), (3.5, false), (42., true), ])

source


# ConstraintDomains.domain_sizeMethod.
julia
domain_size(itv::Intervals)

Return the difference between the highest and lowest values in itv.

source


# ConstraintDomains.domain_sizeMethod.
julia
domain_size(d <: AbstractDomain)

Fallback method for domain_size(d) that return length(d).

source


# ConstraintDomains.domain_sizeMethod.
julia
domain_size(d::D) where D <: DiscreteDomain

Return the maximum distance between two points in d.

source


# ConstraintDomains.exploreMethod.
julia
explore(domains, concept, param = nothing; search_limit = 1000, solutions_limit = 100)

Search (a part of) a search space and returns a pair of vector of configurations: (solutions, non_solutions). If the search space size is over search_limit, then both solutions and non_solutions are limited to solutions_limit.

Beware that if the density of the solutions in the search space is low, solutions_limit needs to be reduced. This process will be automatic in the future (simple reinforcement learning).

Arguments:

  • domains: a collection of domains

  • concept: the concept of the targeted constraint

  • param: an optional parameter of the constraint

  • sol_number: the required number of solutions (half of the number of configurations), default to 100

source


# ConstraintDomains.fake_automatonMethod.
julia
fake_automaton(d)

Construct a FakeAutomaton.

source


# ConstraintDomains.generate_parametersMethod.
julia
generate_parameters(d<:AbstractDomain, param)

Generates random parameters based on the domain d and the kind of parameters param.

source


# ConstraintDomains.get_domainMethod.
julia
get_domain(::AbstractDomain)

Access the internal structure of any domain type.

source


# ConstraintDomains.intersect_domainsMethod.
julia
intersect_domains(d₁, d₂)

Compute the intersections of two domains.

source


# ConstraintDomains.merge_domainsMethod.
julia
merge_domains(d₁::AbstractDomain, d₂::AbstractDomain)

Merge two domains of same nature (discrete/contiuous).

source


# ConstraintDomains.sizeMethod.
julia
Base.size(i::I) where {I <: Interval}

Defines the size of an interval as its span.

source


# ConstraintDomains.to_domainsMethod.
julia
to_domains(args...)

Convert various arguments into valid domains format.

source


# Constraints.USUAL_CONSTRAINTSConstant.
julia
USUAL_CONSTRAINTS::Dict

Dictionary that contains all the usual constraints defined in Constraint.jl. It is based on XCSP3-core specifications available at https://arxiv.org/abs/2009.00514

Adding a new constraint is as simple as

julia
@usual name p a sym₁ sym₂

where

  • name: constraint name

  • p: the length of the parameters (0 means no parameters)

  • a: the length of the arguments/variables (0 means any length is possible).

  • symᵢ: a sequence of symmetries (can be left empty)

Both a alone, or p and a together are optional.

Note that concept_name needs to be defined. Unless both error_name and icn_error_name are defined, a default error function will be computed. Please (re-)define error_name for a hand_made error function.

source


# Constraints.USUAL_SYMMETRIESConstant.
julia
USUAL_SYMMETRIES

A Dictionary that contains the function to apply for each symmetry to avoid searching a whole space.

source


# Constraints.ConstraintType.
julia
Constraint

Parametric stucture with the following fields.

  • concept: a Boolean function that, given an assignment x, outputs true if x satisfies the constraint, and false otherwise.

  • error: a positive function that works as preferences over invalid assignements. Return 0.0 if the constraint is satisfied, and a strictly positive real otherwise.

source


# Constraints.argsMethod.
julia
args(c::Constraint)

Return the expected length restriction of the arguments in a constraint c. The value nothing indicates that any strictly positive number of value is accepted.

source


# Constraints.conceptMethod.
julia
concept(c::Constraint)

Return the concept (function) of constraint c. concept(c::Constraint, x...; param = nothing) Apply the concept of c to values x and optionally param.

source


# Constraints.error_fMethod.
julia
error_f(c::Constraint)

Return the error function of constraint c. error_f(c::Constraint, x; param = nothing) Apply the error function of c to values x and optionally param.

source


# Constraints.params_lengthMethod.
julia
params_length(c::Constraint)

Return the expected length restriction of the arguments in a constraint c. The value nothing indicates that any strictly positive number of parameters is accepted.

source


# Constraints.shrink_conceptMethod.
julia
shrink_concept(s)

Simply delete the concept_ part of symbol or string starting with it. TODO: add a check with a warning if s starts with something different.

source


# Constraints.symmetriesMethod.
julia
symmetries(c::Constraint)

Return the list of symmetries of c.

source


# Constraints.xcsp_extensionMethod.
julia
xcsp_extension(; list, supports=nothing, conflicts=nothing)

Global constraint enforcing that the tuple x matches a configuration within the supports set pair_vars[1] or does not match any configuration within the conflicts set pair_vars[2]. It embodies the logic: x ∈ pair_vars[1] || x ∉ pair_vars[2], providing a comprehensive way to define valid (supported) and invalid (conflicted) tuples for constraint satisfaction problems. This constraint is versatile, allowing for the explicit delineation of both acceptable and unacceptable configurations.

Arguments

  • list::Vector{Int}: A list of variables

  • supports::Vector{Vector{Int}}: A set of supported tuples. Default to nothing.

  • conflicts::Vector{Vector{Int}}: A set of conflicted tuples. Default to nothing.

Variants

  • :extension: Global constraint enforcing that the tuple x matches a configuration within the supports set pair_vars[1] or does not match any configuration within the conflicts set pair_vars[2]. It embodies the logic: x ∈ pair_vars[1] || x ∉ pair_vars[2], providing a comprehensive way to define valid (supported) and invalid (conflicted) tuples for constraint satisfaction problems. This constraint is versatile, allowing for the explicit delineation of both acceptable and unacceptable configurations.

  • :supports: Global constraint ensuring that the tuple x matches a configuration listed within the support set pair_vars. This constraint is derived from the extension model, specifying that x must be one of the explicitly defined supported configurations: x ∈ pair_vars. It is utilized to directly declare the tuples that are valid and should be included in the solution space.

  • :conflicts: Global constraint ensuring that the tuple x does not match any configuration listed within the conflict set pair_vars. This constraint, originating from the extension model, stipulates that x must avoid all configurations defined as conflicts: x ∉ pair_vars. It is useful for specifying tuples that are explicitly forbidden and should be excluded from the solution space.

Examples

julia
c = concept(:extension)
 c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 3, 4, 5]])
 c([1, 2, 3, 4, 5]; pair_vars=([[1, 2, 3, 4, 5]], [[1, 2, 1, 4, 5], [1, 2, 3, 5, 5]]))
 c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 1, 4, 5], [1, 2, 3, 5, 5]])
@@ -30,6 +30,6 @@ import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.RTxADYK2.js";const u
 c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 3, 4, 5]])
 
 c = concept(USUAL_CONSTRAINTS[:conflicts])
-c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 1, 4, 5], [1, 2, 3, 5, 5]])
@example
2 + 2

source


# Constraints.xcsp_intensionMethod.
julia
xcsp_intension(list, predicate)

An intensional constraint is usually defined from a predicate over list. As such it encompass any generic constraint.

Arguments

  • list::Vector{Int}: A list of variables

  • predicate::Function: A predicate over list

Instantiations

  • :dist_different: A constraint ensuring that the distances between marks on the ruler are unique. Specifically, it checks that the distance between x[1] and x[2], and the distance between x[3] and x[4], are different. This constraint is fundamental in ensuring the validity of a Golomb ruler, where no two pairs of marks should have the same distance between them.

Examples

julia
c = concept(USUAL_CONSTRAINTS[:dist_different])
+c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 1, 4, 5], [1, 2, 3, 5, 5]])
@example
2 + 2

source


# Constraints.xcsp_intensionMethod.
julia
xcsp_intension(list, predicate)

An intensional constraint is usually defined from a predicate over list. As such it encompass any generic constraint.

Arguments

  • list::Vector{Int}: A list of variables

  • predicate::Function: A predicate over list

Variants

  • :dist_different: A constraint ensuring that the distances between marks on the ruler are unique. Specifically, it checks that the distance between x[1] and x[2], and the distance between x[3] and x[4], are different. This constraint is fundamental in ensuring the validity of a Golomb ruler, where no two pairs of marks should have the same distance between them.

Examples

julia
c = concept(:dist_different)
 c([1, 2, 3, 3]) # true
 c([1, 2, 3, 4]) # false

source


`,135),l=[n];function r(p,h,o,d,k,c){return a(),i("div",null,l)}const E=s(e,[["render",r]]);export{u as __pageData,E as default}; diff --git a/dev/assets/full_api.md.DydxjnSN.lean.js b/dev/assets/full_api.md.Do7cexhR.lean.js similarity index 100% rename from dev/assets/full_api.md.DydxjnSN.lean.js rename to dev/assets/full_api.md.Do7cexhR.lean.js diff --git a/dev/constraints/constraint_commons.html b/dev/constraints/constraint_commons.html index a1afe22..36deabd 100644 --- a/dev/constraints/constraint_commons.html +++ b/dev/constraints/constraint_commons.html @@ -8,10 +8,10 @@ - + - + @@ -27,7 +27,7 @@ :val, :vals, ]

source


# ConstraintCommons.extract_parametersFunction.
julia
extract_parameters(m::Union{Method, Function}; parameters)

Extracts the intersection between the kargs of m and parameters (defaults to USUAL_CONSTRAINT_PARAMETERS).

source


Performances – TODO

Languages

XCSP3 considers two kinds of structure to recognize languages as core constraints: Automata, Multivalued Decision Diagrams (MMDs).

# ConstraintCommons.AbstractMultivaluedDecisionDiagramType.
julia
AbstractMultivaluedDecisionDiagram

An abstract interface for Multivalued Decision Diagrams (MDD) used in Julia Constraints packages. Requirements:

  • accept(a<:AbstractMultivaluedDecisionDiagram, word): return true if a accepts word.

source


# ConstraintCommons.MDDType.
julia
MDD{S,T} <: AbstractMultivaluedDecisionDiagram

A minimal implementation of a multivalued decision diagram structure.

source


# ConstraintCommons.AbstractAutomatonType.
julia
AbstractAutomaton

An abstract interface for automata used in Julia Constraints packages. Requirements:

  • accept(a<:AbstractAutomaton, word): return true if a accepts word.

source


# ConstraintCommons.AutomatonType.
julia
Automaton{S, T, F <: Union{S, Vector{S}, Set{S}}} <: AbstractAutomaton

A minimal implementation of a deterministic automaton structure.

source


# ConstraintCommons.AutomatonMethod.
julia
Automaton(a::MDD)

Construct an automaton based on a given Multivalued Decision Diagrams (MDD).

source


# ConstraintCommons.acceptFunction.
julia
accept(a::Union{Automaton, MDD}, w)

Return true if a accepts the word w and false otherwise.

source

julia
ConstraintCommons.accept(fa::FakeAutomaton, word)

Implement the accept methods for FakeAutomaton.

source


# ConstraintCommons.at_endFunction.
julia
at_end(a::Automaton, s)

Internal method used by accept with Automaton.

source


Performances – TODO

Extensions

We extended some operations for Nothing and Symbol.

# Base.:*Function.
julia
Base.:*(s1::Symbol, s2::Symbol, connector::AbstractString="_")

Extends * to Symbols multiplication by connecting the symbols by an _.

source


# Base.inMethod.
julia
Base.in(::Any, ::Nothing)

Extends Base.in (or ) when the set is nothing. Returns false.

source


# Base.isemptyMethod.
julia
Base.isempty(::Nothing)

Extends Base.isempty when the set is nothing. Returns true.

source


Performances – TODO

Sampling

During our constraint learning processes, we use sampling to efficiently make partial exploration of search spaces. Follows some sampling utilities.

# ConstraintCommons.oversampleFunction.
julia
oversample(X, f)

Oversample elements of X until the boolean function f has as many true and false configurations.

source


Performances – TODO

Extrema

We need to compute the difference between extrema of various kind of collections in several situations.

# ConstraintCommons.δ_extremaFunction.
julia
δ_extrema(X...)

Compute both the difference between the maximum and the minimum of over all the collections of X.

source


Performances – TODO

Dictionaries

We provide the everuseful incsert! function for dictionaries.

# ConstraintCommons.incsert!Function.
julia
incsert!(d::Union{AbstractDict, AbstractDictionary}, ind, val = 1)

Increase or insert a counter in a dictionary-based collection. The counter insertion defaults to val = 1.

source


Performances – TODO

- + \ No newline at end of file diff --git a/dev/constraints/constraint_domains.html b/dev/constraints/constraint_domains.html index c1cd4c7..3ba1cd4 100644 --- a/dev/constraints/constraint_domains.html +++ b/dev/constraints/constraint_domains.html @@ -8,10 +8,10 @@ - + - + @@ -53,7 +53,7 @@ solutions_limit = floor(Int, sqrt(max_samplings)), )

Settings for the exploration of a search space composed by a collection of domains.

source


# ConstraintDomains._exploreFunction.
julia
_explore(args...)

Internals of the explore function. Behavior is automatically adjusted on the kind of exploration: :flexible, :complete, :partial.

source


# ConstraintDomains.exploreFunction.
julia
explore(domains, concept, param = nothing; search_limit = 1000, solutions_limit = 100)

Search (a part of) a search space and returns a pair of vector of configurations: (solutions, non_solutions). If the search space size is over search_limit, then both solutions and non_solutions are limited to solutions_limit.

Beware that if the density of the solutions in the search space is low, solutions_limit needs to be reduced. This process will be automatic in the future (simple reinforcement learning).

Arguments:

  • domains: a collection of domains

  • concept: the concept of the targeted constraint

  • param: an optional parameter of the constraint

  • sol_number: the required number of solutions (half of the number of configurations), default to 100

source


Parameters

Missing docstring.

Missing docstring for BoolParameterDomain. Check Documenter's build log for details.

Missing docstring.

Missing docstring for DimParameterDomain. Check Documenter's build log for details.

Missing docstring.

Missing docstring for IdParameterDomain. Check Documenter's build log for details.

# ConstraintDomains.FakeAutomatonType.
julia
FakeAutomaton{T} <: ConstraintCommons.AbstractAutomaton

A structure to generate pseudo automaton enough for parameter exploration.

source


# ConstraintCommons.acceptFunction.
julia
accept(a::Union{Automaton, MDD}, w)

Return true if a accepts the word w and false otherwise.

source

julia
ConstraintCommons.accept(fa::FakeAutomaton, word)

Implement the accept methods for FakeAutomaton.

source


# ConstraintDomains.fake_automatonFunction.
julia
fake_automaton(d)

Construct a FakeAutomaton.

source


Missing docstring.

Missing docstring for LanguageParameterDomain. Check Documenter's build log for details.

Missing docstring.

Missing docstring for OpParameterDomain. Check Documenter's build log for details.

Missing docstring.

Missing docstring for PairVarsParameterDomain. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ValParameterDomain. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ValsParameterDomain. Check Documenter's build log for details.

# Base.randFunction.
julia
Base.rand(d::Union{Vector{D},Set{D}, D}) where {D<:AbstractDomain}

Extends Base.rand to (a collection of) domains.

source

julia
Base.rand(itv::Intervals)
 Base.rand(itv::Intervals, i)

Return a random value from itv, specifically from the ith interval if i is specified.

source

julia
Base.rand(d::D) where D <: DiscreteDomain

Draw randomly a point in d.

source

julia
Base.rand(fa::FakeAutomaton)

Extends Base.rand. Currently simply returns fa.

source


# ConstraintDomains.generate_parametersFunction.
julia
generate_parameters(d<:AbstractDomain, param)

Generates random parameters based on the domain d and the kind of parameters param.

source


- + \ No newline at end of file diff --git a/dev/constraints/constraint_models.html b/dev/constraints/constraint_models.html index 86730b6..3a1d7c7 100644 --- a/dev/constraints/constraint_models.html +++ b/dev/constraints/constraint_models.html @@ -8,17 +8,17 @@ - + - + - + \ No newline at end of file diff --git a/dev/constraints/constraints.html b/dev/constraints/constraints.html index c8c0a96..d87d1c2 100644 --- a/dev/constraints/constraints.html +++ b/dev/constraints/constraints.html @@ -8,18 +8,18 @@ - + - - + + -
Skip to content

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

Constraints.jl is a pivotal package within the JuliaConstraints ecosystem, designed to facilitate the definition, manipulation, and application of constraints in constraint programming (CP). This package is central to handling both standard and complex constraints, making it an indispensable tool for developers and researchers working in CP.

Key Features and Functionalities

  • Integration of XCSP3-core Constraints: One of the standout features of Constraints.jl is its incorporation of the XCSP3-core constraints as usual constraints within Julia. This integration ensures that users can define and work with a wide range of standard constraints, following the specifications outlined in the XCSP3-core, directly in Julia. The use of USUAL_CONSTRAINTS dictionary allows for straightforward addition and manipulation of these constraints, enhancing the package's utility and flexibility.

  • Learning Package Integration: Constraints.jl goes beyond traditional constraint handling by offering the capability to include results from various learning packages within the JuliaConstraints organization. This feature allows for the enhancement of usual constraints and those from the Global Constraints Catalog with learned parameters and behaviors, significantly improving constraint applicability and performance in complex CP problems.

  • Constraint Definition and Symmetry Handling: The package provides a simple yet powerful syntax for defining new constraints (@usual) and managing their symmetries through the USUAL_SYMMETRIES dictionary. This approach simplifies the creation of new constraints and the optimization of constraint search spaces by avoiding redundant explorations.

  • Advanced Constraint Functionalities: At the core of Constraints.jl is the Constraint type, encapsulating the essential elements of a constraint, including its concept (a Boolean function determining satisfaction) and an error function (providing a preference measure over invalid assignments). These components are crucial for defining how constraints behave and are evaluated within a CP model.

  • Flexible Constraint Application: The package supports a range of methods for interacting with constraints, such as args, concept, error_f, params_length, symmetries, and xcsp_intension. These methods offer users the ability to examine constraint properties, apply constraints to variable assignments, and work with intensional constraints defined by predicates. Such flexibility is vital for tailoring constraint behavior to specific problems and contexts.

Enabling Advanced Modeling in Constraint Programming

Constraints.jl embodies the JuliaConstraints ecosystem's commitment to providing robust, flexible tools for constraint programming. By integrating standard constraints, facilitating the incorporation of learned behaviors, and offering comprehensive tools for constraint definition and application, Constraints.jl significantly enhances the modeling capabilities available to CP practitioners. Whether for educational purposes, research, or solving practical CP problems, Constraints.jl offers a sophisticated, user-friendly platform for working with constraints in Julia.

Basic tools

# Constraints.USUAL_SYMMETRIESConstant.
julia
USUAL_SYMMETRIES

A Dictionary that contains the function to apply for each symmetry to avoid searching a whole space.

source


# Constraints.ConstraintType.
julia
Constraint

Parametric stucture with the following fields.

  • concept: a Boolean function that, given an assignment x, outputs true if x satisfies the constraint, and false otherwise.

  • error: a positive function that works as preferences over invalid assignements. Return 0.0 if the constraint is satisfied, and a strictly positive real otherwise.

source


# Constraints.conceptFunction.
julia
concept(c::Constraint)

Return the concept (function) of constraint c. concept(c::Constraint, x...; param = nothing) Apply the concept of c to values x and optionally param.

source


# Constraints.error_fFunction.
julia
error_f(c::Constraint)

Return the error function of constraint c. error_f(c::Constraint, x; param = nothing) Apply the error function of c to values x and optionally param.

source


# Constraints.argsFunction.
julia
args(c::Constraint)

Return the expected length restriction of the arguments in a constraint c. The value nothing indicates that any strictly positive number of value is accepted.

source


# Constraints.params_lengthFunction.
julia
params_length(c::Constraint)

Return the expected length restriction of the arguments in a constraint c. The value nothing indicates that any strictly positive number of parameters is accepted.

source


# Constraints.symmetriesFunction.
julia
symmetries(c::Constraint)

Return the list of symmetries of c.

source


Missing docstring.

Missing docstring for make_error. Check Documenter's build log for details.

# Constraints.shrink_conceptFunction.
julia
shrink_concept(s)

Simply delete the concept_ part of symbol or string starting with it. TODO: add a check with a warning if s starts with something different.

source


Missing docstring.

Missing docstring for concept_vs_error. Check Documenter's build log for details.

Usual constraints (based on and including XCSP3-core categories)

# Constraints.USUAL_CONSTRAINTSConstant.
julia
USUAL_CONSTRAINTS::Dict

Dictionary that contains all the usual constraints defined in Constraint.jl. It is based on XCSP3-core specifications available at https://arxiv.org/abs/2009.00514

Adding a new constraint is as simple as

julia
@usual name p a sym₁ sym₂

where

  • name: constraint name

  • p: the length of the parameters (0 means no parameters)

  • a: the length of the arguments/variables (0 means any length is possible).

  • symᵢ: a sequence of symmetries (can be left empty)

Both a alone, or p and a together are optional.

Note that concept_name needs to be defined. Unless both error_name and icn_error_name are defined, a default error function will be computed. Please (re-)define error_name for a hand_made error function.

source


Missing docstring.

Missing docstring for describe. Check Documenter's build log for details.

# ConstraintCommons.extract_parametersFunction.
julia
extract_parameters(m::Union{Method, Function}; parameters)

Extracts the intersection between the kargs of m and parameters (defaults to USUAL_CONSTRAINT_PARAMETERS).

source


Missing docstring.

Missing docstring for usual. Check Documenter's build log for details.

Missing docstring.

Missing docstring for constraints_parameters. Check Documenter's build log for details.

Missing docstring.

Missing docstring for constraints_descriptions. Check Documenter's build log for details.

Generic Constraints

# Constraints.xcsp_intensionFunction.
julia
xcsp_intension(list, predicate)

An intensional constraint is usually defined from a predicate over list. As such it encompass any generic constraint.

Arguments

  • list::Vector{Int}: A list of variables

  • predicate::Function: A predicate over list

Instantiations

  • :dist_different: A constraint ensuring that the distances between marks on the ruler are unique. Specifically, it checks that the distance between x[1] and x[2], and the distance between x[3] and x[4], are different. This constraint is fundamental in ensuring the validity of a Golomb ruler, where no two pairs of marks should have the same distance between them.

Examples

julia
c = concept(USUAL_CONSTRAINTS[:dist_different])
+    
Skip to content

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

Constraints.jl is a pivotal package within the JuliaConstraints ecosystem, designed to facilitate the definition, manipulation, and application of constraints in constraint programming (CP). This package is central to handling both standard and complex constraints, making it an indispensable tool for developers and researchers working in CP.

Key Features and Functionalities

  • Integration of XCSP3-core Constraints: One of the standout features of Constraints.jl is its incorporation of the XCSP3-core constraints as usual constraints within Julia. This integration ensures that users can define and work with a wide range of standard constraints, following the specifications outlined in the XCSP3-core, directly in Julia. The use of USUAL_CONSTRAINTS dictionary allows for straightforward addition and manipulation of these constraints, enhancing the package's utility and flexibility.

  • Learning Package Integration: Constraints.jl goes beyond traditional constraint handling by offering the capability to include results from various learning packages within the JuliaConstraints organization. This feature allows for the enhancement of usual constraints and those from the Global Constraints Catalog with learned parameters and behaviors, significantly improving constraint applicability and performance in complex CP problems.

  • Constraint Definition and Symmetry Handling: The package provides a simple yet powerful syntax for defining new constraints (@usual) and managing their symmetries through the USUAL_SYMMETRIES dictionary. This approach simplifies the creation of new constraints and the optimization of constraint search spaces by avoiding redundant explorations.

  • Advanced Constraint Functionalities: At the core of Constraints.jl is the Constraint type, encapsulating the essential elements of a constraint, including its concept (a Boolean function determining satisfaction) and an error function (providing a preference measure over invalid assignments). These components are crucial for defining how constraints behave and are evaluated within a CP model.

  • Flexible Constraint Application: The package supports a range of methods for interacting with constraints, such as args, concept, error_f, params_length, symmetries, and xcsp_intension. These methods offer users the ability to examine constraint properties, apply constraints to variable assignments, and work with intensional constraints defined by predicates. Such flexibility is vital for tailoring constraint behavior to specific problems and contexts.

Enabling Advanced Modeling in Constraint Programming

Constraints.jl embodies the JuliaConstraints ecosystem's commitment to providing robust, flexible tools for constraint programming. By integrating standard constraints, facilitating the incorporation of learned behaviors, and offering comprehensive tools for constraint definition and application, Constraints.jl significantly enhances the modeling capabilities available to CP practitioners. Whether for educational purposes, research, or solving practical CP problems, Constraints.jl offers a sophisticated, user-friendly platform for working with constraints in Julia.

Basic tools

# Constraints.USUAL_SYMMETRIESConstant.
julia
USUAL_SYMMETRIES

A Dictionary that contains the function to apply for each symmetry to avoid searching a whole space.

source


# Constraints.ConstraintType.
julia
Constraint

Parametric stucture with the following fields.

  • concept: a Boolean function that, given an assignment x, outputs true if x satisfies the constraint, and false otherwise.

  • error: a positive function that works as preferences over invalid assignements. Return 0.0 if the constraint is satisfied, and a strictly positive real otherwise.

source


# Constraints.conceptFunction.
julia
concept(c::Constraint)

Return the concept (function) of constraint c. concept(c::Constraint, x...; param = nothing) Apply the concept of c to values x and optionally param.

source


# Constraints.error_fFunction.
julia
error_f(c::Constraint)

Return the error function of constraint c. error_f(c::Constraint, x; param = nothing) Apply the error function of c to values x and optionally param.

source


# Constraints.argsFunction.
julia
args(c::Constraint)

Return the expected length restriction of the arguments in a constraint c. The value nothing indicates that any strictly positive number of value is accepted.

source


# Constraints.params_lengthFunction.
julia
params_length(c::Constraint)

Return the expected length restriction of the arguments in a constraint c. The value nothing indicates that any strictly positive number of parameters is accepted.

source


# Constraints.symmetriesFunction.
julia
symmetries(c::Constraint)

Return the list of symmetries of c.

source


Missing docstring.

Missing docstring for make_error. Check Documenter's build log for details.

# Constraints.shrink_conceptFunction.
julia
shrink_concept(s)

Simply delete the concept_ part of symbol or string starting with it. TODO: add a check with a warning if s starts with something different.

source


Missing docstring.

Missing docstring for concept_vs_error. Check Documenter's build log for details.

Usual constraints (based on and including XCSP3-core categories)

# Constraints.USUAL_CONSTRAINTSConstant.
julia
USUAL_CONSTRAINTS::Dict

Dictionary that contains all the usual constraints defined in Constraint.jl. It is based on XCSP3-core specifications available at https://arxiv.org/abs/2009.00514

Adding a new constraint is as simple as

julia
@usual name p a sym₁ sym₂

where

  • name: constraint name

  • p: the length of the parameters (0 means no parameters)

  • a: the length of the arguments/variables (0 means any length is possible).

  • symᵢ: a sequence of symmetries (can be left empty)

Both a alone, or p and a together are optional.

Note that concept_name needs to be defined. Unless both error_name and icn_error_name are defined, a default error function will be computed. Please (re-)define error_name for a hand_made error function.

source


Missing docstring.

Missing docstring for describe. Check Documenter's build log for details.

# ConstraintCommons.extract_parametersFunction.
julia
extract_parameters(m::Union{Method, Function}; parameters)

Extracts the intersection between the kargs of m and parameters (defaults to USUAL_CONSTRAINT_PARAMETERS).

source


Missing docstring.

Missing docstring for usual. Check Documenter's build log for details.

Missing docstring.

Missing docstring for constraints_parameters. Check Documenter's build log for details.

Missing docstring.

Missing docstring for constraints_descriptions. Check Documenter's build log for details.

Generic Constraints

# Constraints.xcsp_intensionFunction.
julia
xcsp_intension(list, predicate)

An intensional constraint is usually defined from a predicate over list. As such it encompass any generic constraint.

Arguments

  • list::Vector{Int}: A list of variables

  • predicate::Function: A predicate over list

Variants

  • :dist_different: A constraint ensuring that the distances between marks on the ruler are unique. Specifically, it checks that the distance between x[1] and x[2], and the distance between x[3] and x[4], are different. This constraint is fundamental in ensuring the validity of a Golomb ruler, where no two pairs of marks should have the same distance between them.

Examples

julia
c = concept(:dist_different)
 c([1, 2, 3, 3]) # true
-c([1, 2, 3, 4]) # false

source


# Constraints.xcsp_extensionFunction.
julia
xcsp_extension(; list, supports=nothing, conflicts=nothing)

Global constraint enforcing that the tuple x matches a configuration within the supports set pair_vars[1] or does not match any configuration within the conflicts set pair_vars[2]. It embodies the logic: x ∈ pair_vars[1] || x ∉ pair_vars[2], providing a comprehensive way to define valid (supported) and invalid (conflicted) tuples for constraint satisfaction problems. This constraint is versatile, allowing for the explicit delineation of both acceptable and unacceptable configurations.

Arguments

  • list::Vector{Int}: A list of variables

  • supports::Vector{Vector{Int}}: A set of supported tuples. Default to nothing.

  • conflicts::Vector{Vector{Int}}: A set of conflicted tuples. Default to nothing.

Instantiations

  • :extension: Global constraint enforcing that the tuple x matches a configuration within the supports set pair_vars[1] or does not match any configuration within the conflicts set pair_vars[2]. It embodies the logic: x ∈ pair_vars[1] || x ∉ pair_vars[2], providing a comprehensive way to define valid (supported) and invalid (conflicted) tuples for constraint satisfaction problems. This constraint is versatile, allowing for the explicit delineation of both acceptable and unacceptable configurations.

  • :supports: Global constraint ensuring that the tuple x matches a configuration listed within the support set pair_vars. This constraint is derived from the extension model, specifying that x must be one of the explicitly defined supported configurations: x ∈ pair_vars. It is utilized to directly declare the tuples that are valid and should be included in the solution space.

  • :conflicts: Global constraint ensuring that the tuple x does not match any configuration listed within the conflict set pair_vars. This constraint, originating from the extension model, stipulates that x must avoid all configurations defined as conflicts: x ∉ pair_vars. It is useful for specifying tuples that are explicitly forbidden and should be excluded from the solution space.

Examples

julia
c = USUAL_CONSTRAINTS[:extension] |> concept
+c([1, 2, 3, 4]) # false

source


# Constraints.xcsp_extensionFunction.
julia
xcsp_extension(; list, supports=nothing, conflicts=nothing)

Global constraint enforcing that the tuple x matches a configuration within the supports set pair_vars[1] or does not match any configuration within the conflicts set pair_vars[2]. It embodies the logic: x ∈ pair_vars[1] || x ∉ pair_vars[2], providing a comprehensive way to define valid (supported) and invalid (conflicted) tuples for constraint satisfaction problems. This constraint is versatile, allowing for the explicit delineation of both acceptable and unacceptable configurations.

Arguments

  • list::Vector{Int}: A list of variables

  • supports::Vector{Vector{Int}}: A set of supported tuples. Default to nothing.

  • conflicts::Vector{Vector{Int}}: A set of conflicted tuples. Default to nothing.

Variants

  • :extension: Global constraint enforcing that the tuple x matches a configuration within the supports set pair_vars[1] or does not match any configuration within the conflicts set pair_vars[2]. It embodies the logic: x ∈ pair_vars[1] || x ∉ pair_vars[2], providing a comprehensive way to define valid (supported) and invalid (conflicted) tuples for constraint satisfaction problems. This constraint is versatile, allowing for the explicit delineation of both acceptable and unacceptable configurations.

  • :supports: Global constraint ensuring that the tuple x matches a configuration listed within the support set pair_vars. This constraint is derived from the extension model, specifying that x must be one of the explicitly defined supported configurations: x ∈ pair_vars. It is utilized to directly declare the tuples that are valid and should be included in the solution space.

  • :conflicts: Global constraint ensuring that the tuple x does not match any configuration listed within the conflict set pair_vars. This constraint, originating from the extension model, stipulates that x must avoid all configurations defined as conflicts: x ∉ pair_vars. It is useful for specifying tuples that are explicitly forbidden and should be excluded from the solution space.

Examples

julia
c = concept(:extension)
 c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 3, 4, 5]])
 c([1, 2, 3, 4, 5]; pair_vars=([[1, 2, 3, 4, 5]], [[1, 2, 1, 4, 5], [1, 2, 3, 5, 5]]))
 c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 1, 4, 5], [1, 2, 3, 5, 5]])
@@ -28,8 +28,8 @@
 c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 3, 4, 5]])
 
 c = concept(USUAL_CONSTRAINTS[:conflicts])
-c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 1, 4, 5], [1, 2, 3, 5, 5]])
@example
2 + 2

source


Constraints defined from Languages

Missing docstring.

Missing docstring for xcsp_regular. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_mdd. Check Documenter's build log for details.

Comparison-based Constraints

Missing docstring.

Missing docstring for xcsp_all_different. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_all_equal. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_ordered. Check Documenter's build log for details.

Counting and Summing Constraints

Missing docstring.

Missing docstring for xcsp_sum. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_count. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_nvalues. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_cardinality. Check Documenter's build log for details.

SECTION - Connection Constraints

Missing docstring.

Missing docstring for xcsp_maximum. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_minimum. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_element. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_channel. Check Documenter's build log for details.

SECTION - Packing and Scheduling Constraints

Missing docstring.

Missing docstring for xcsp_cumulative. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_no_overlap. Check Documenter's build log for details.

SECTION - Constraints on Graphs

Missing docstring.

Missing docstring for xcsp_circuit. Check Documenter's build log for details.

SECTION - Elementary Constraints

Missing docstring.

Missing docstring for xcsp_instantiation. Check Documenter's build log for details.

- +c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 1, 4, 5], [1, 2, 3, 5, 5]])
@example
2 + 2

source


Constraints defined from Languages

Missing docstring.

Missing docstring for xcsp_regular. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_mdd. Check Documenter's build log for details.

Comparison-based Constraints

Missing docstring.

Missing docstring for xcsp_all_different. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_all_equal. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_ordered. Check Documenter's build log for details.

Counting and Summing Constraints

Missing docstring.

Missing docstring for xcsp_sum. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_count. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_nvalues. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_cardinality. Check Documenter's build log for details.

SECTION - Connection Constraints

Missing docstring.

Missing docstring for xcsp_maximum. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_minimum. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_element. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_channel. Check Documenter's build log for details.

SECTION - Packing and Scheduling Constraints

Missing docstring.

Missing docstring for xcsp_cumulative. Check Documenter's build log for details.

Missing docstring.

Missing docstring for xcsp_no_overlap. Check Documenter's build log for details.

SECTION - Constraints on Graphs

Missing docstring.

Missing docstring for xcsp_circuit. Check Documenter's build log for details.

SECTION - Elementary Constraints

Missing docstring.

Missing docstring for xcsp_instantiation. Check Documenter's build log for details.

+ \ No newline at end of file diff --git a/dev/cp/advanced.html b/dev/cp/advanced.html index ff212ba..dff96fc 100644 --- a/dev/cp/advanced.html +++ b/dev/cp/advanced.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Advanced Constraint Programming Techniques

Global Constraints and Their Uses

  • Dive deeper into global constraints and how they simplify complex problems.

Search Strategies and Optimization

  • Discuss various search strategies and their impact on solving CP problems.
- + \ No newline at end of file diff --git a/dev/cp/applications.html b/dev/cp/applications.html index 893f604..9fe9c63 100644 --- a/dev/cp/applications.html +++ b/dev/cp/applications.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Applying Optimization Methods

Case Studies and Real-World Applications

  • Showcase studies where CP and optimization have been successfully applied.

From Theory to Practice

  • Guide readers through the process of formulating and solving an optimization problem from a real-world scenario.
- + \ No newline at end of file diff --git a/dev/cp/contribution.html b/dev/cp/contribution.html index 65b2299..c254799 100644 --- a/dev/cp/contribution.html +++ b/dev/cp/contribution.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Community and Contribution

Joining the JuliaConstraint Community

  • Encourage readers to join the community, highlighting how they can contribute and collaborate.

Future Directions

  • Share the vision for JuliaConstraint and upcoming projects or areas of research.
- + \ No newline at end of file diff --git a/dev/cp/cp101.html b/dev/cp/cp101.html index 809dbb8..f41052a 100644 --- a/dev/cp/cp101.html +++ b/dev/cp/cp101.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Constraint Programming 101

What is Constraint Programming?

  • Define CP and its significance in solving combinatorial problems.

Basic Concepts and Terminology

  • Introduce key concepts such as constraints, domains, and variables.

How CP differs from other optimization techniques

  • Contrast with other methods like linear programming and metaheuristics.
- + \ No newline at end of file diff --git a/dev/cp/ecosystem.html b/dev/cp/ecosystem.html index 9143278..68c05c4 100644 --- a/dev/cp/ecosystem.html +++ b/dev/cp/ecosystem.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Exploring JuliaConstraint Packages

Package Overviews

  • Introduce each package within the JuliaConstraint organization, its purpose, and primary features.

Installation and Getting Started Guides

  • Provide step-by-step instructions for installing and getting started with each package.
- + \ No newline at end of file diff --git a/dev/cp/getting_started.html b/dev/cp/getting_started.html index 8ace7fd..2e72d48 100644 --- a/dev/cp/getting_started.html +++ b/dev/cp/getting_started.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Getting Started with Julia for CP and Optimization

Why Julia?

  • Discuss the advantages of Julia for computational science and optimization, highlighting its performance and ease of use.

Setting Up Your Julia Environment

  • Guide on setting up Julia and essential packages for CP and optimization.

Your First Julia CP Model

  • A simple tutorial to build and solve a basic CP model using Julia.
- + \ No newline at end of file diff --git a/dev/cp/intro.html b/dev/cp/intro.html index 613288b..a31ce79 100644 --- a/dev/cp/intro.html +++ b/dev/cp/intro.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Welcome to Julia Constraints

An introductory post/chapter that provides an overview of the JuliaConstraint organization, its mission, and what readers can expect to learn from the content. Highlight the importance of Constraint Programming (CP) and optimization in solving real-world problems.

- + \ No newline at end of file diff --git a/dev/cp/models.html b/dev/cp/models.html index 5a6520d..55de5a9 100644 --- a/dev/cp/models.html +++ b/dev/cp/models.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Building and Analyzing Models

Modeling Best Practices

  • Share best practices and tips for building efficient CP and optimization models.

Performance Analysis and Improvement

  • Teach how to analyze and improve the performance of models.
- + \ No newline at end of file diff --git a/dev/cp/opt.html b/dev/cp/opt.html index 88da318..b4de107 100644 --- a/dev/cp/opt.html +++ b/dev/cp/opt.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Dive into Optimization

Understanding Optimization

  • Explanation of optimization, types of optimization problems (e.g., linear, nonlinear, integer programming).

Metaheuristics Overview

  • Introduce concepts like Genetic Algorithms, Simulated Annealing, and Tabu Search.

Mathematical Programming Basics

  • Cover the fundamentals of mathematical programming and its role in optimization.
- + \ No newline at end of file diff --git a/dev/cp/tuto_xp.html b/dev/cp/tuto_xp.html index 9432241..c99dff1 100644 --- a/dev/cp/tuto_xp.html +++ b/dev/cp/tuto_xp.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Tutorials and Experiments

Hands-On Tutorials

  • Provide step-by-step tutorials covering various topics and complexity levels.

Experimental Analysis

  • Discuss the importance of experimental analysis in CP and how to conduct meaningful experiments.
- + \ No newline at end of file diff --git a/dev/full_api.html b/dev/full_api.html index 0c46849..b95fa8a 100644 --- a/dev/full_api.html +++ b/dev/full_api.html @@ -8,11 +8,11 @@ - + - - + + @@ -40,7 +40,7 @@ d3 = domain([2//3, 89//123]) d4 = domain(4.3) d5 = domain(1,42,86.9)

source


# ConstraintDomains.domainMethod.
julia
domain()

Construct an EmptyDomain.

source


# ConstraintDomains.domainMethod.
julia
domain(a::Tuple{T, Bool}, b::Tuple{T, Bool}) where {T <: Real}
-domain(intervals::Vector{Tuple{Tuple{T, Bool},Tuple{T, Bool}}}) where {T <: Real}

Construct a domain of continuous interval(s). ```julia d1 = domain((0., true), (1., false)) # d1 = [0, 1) d2 = domain([ # d2 = 0, 1) ∪ (3.5, 42, (1., false), (3.5, false), (42., true), ])

source


# ConstraintDomains.domain_sizeMethod.
julia
domain_size(itv::Intervals)

Return the difference between the highest and lowest values in itv.

source


# ConstraintDomains.domain_sizeMethod.
julia
domain_size(d <: AbstractDomain)

Fallback method for domain_size(d) that return length(d).

source


# ConstraintDomains.domain_sizeMethod.
julia
domain_size(d::D) where D <: DiscreteDomain

Return the maximum distance between two points in d.

source


# ConstraintDomains.exploreMethod.
julia
explore(domains, concept, param = nothing; search_limit = 1000, solutions_limit = 100)

Search (a part of) a search space and returns a pair of vector of configurations: (solutions, non_solutions). If the search space size is over search_limit, then both solutions and non_solutions are limited to solutions_limit.

Beware that if the density of the solutions in the search space is low, solutions_limit needs to be reduced. This process will be automatic in the future (simple reinforcement learning).

Arguments:

  • domains: a collection of domains

  • concept: the concept of the targeted constraint

  • param: an optional parameter of the constraint

  • sol_number: the required number of solutions (half of the number of configurations), default to 100

source


# ConstraintDomains.fake_automatonMethod.
julia
fake_automaton(d)

Construct a FakeAutomaton.

source


# ConstraintDomains.generate_parametersMethod.
julia
generate_parameters(d<:AbstractDomain, param)

Generates random parameters based on the domain d and the kind of parameters param.

source


# ConstraintDomains.get_domainMethod.
julia
get_domain(::AbstractDomain)

Access the internal structure of any domain type.

source


# ConstraintDomains.intersect_domainsMethod.
julia
intersect_domains(d₁, d₂)

Compute the intersections of two domains.

source


# ConstraintDomains.merge_domainsMethod.
julia
merge_domains(d₁::AbstractDomain, d₂::AbstractDomain)

Merge two domains of same nature (discrete/contiuous).

source


# ConstraintDomains.sizeMethod.
julia
Base.size(i::I) where {I <: Interval}

Defines the size of an interval as its span.

source


# ConstraintDomains.to_domainsMethod.
julia
to_domains(args...)

Convert various arguments into valid domains format.

source


# Constraints.USUAL_CONSTRAINTSConstant.
julia
USUAL_CONSTRAINTS::Dict

Dictionary that contains all the usual constraints defined in Constraint.jl. It is based on XCSP3-core specifications available at https://arxiv.org/abs/2009.00514

Adding a new constraint is as simple as

julia
@usual name p a sym₁ sym₂

where

  • name: constraint name

  • p: the length of the parameters (0 means no parameters)

  • a: the length of the arguments/variables (0 means any length is possible).

  • symᵢ: a sequence of symmetries (can be left empty)

Both a alone, or p and a together are optional.

Note that concept_name needs to be defined. Unless both error_name and icn_error_name are defined, a default error function will be computed. Please (re-)define error_name for a hand_made error function.

source


# Constraints.USUAL_SYMMETRIESConstant.
julia
USUAL_SYMMETRIES

A Dictionary that contains the function to apply for each symmetry to avoid searching a whole space.

source


# Constraints.ConstraintType.
julia
Constraint

Parametric stucture with the following fields.

  • concept: a Boolean function that, given an assignment x, outputs true if x satisfies the constraint, and false otherwise.

  • error: a positive function that works as preferences over invalid assignements. Return 0.0 if the constraint is satisfied, and a strictly positive real otherwise.

source


# Constraints.argsMethod.
julia
args(c::Constraint)

Return the expected length restriction of the arguments in a constraint c. The value nothing indicates that any strictly positive number of value is accepted.

source


# Constraints.conceptMethod.
julia
concept(c::Constraint)

Return the concept (function) of constraint c. concept(c::Constraint, x...; param = nothing) Apply the concept of c to values x and optionally param.

source


# Constraints.error_fMethod.
julia
error_f(c::Constraint)

Return the error function of constraint c. error_f(c::Constraint, x; param = nothing) Apply the error function of c to values x and optionally param.

source


# Constraints.params_lengthMethod.
julia
params_length(c::Constraint)

Return the expected length restriction of the arguments in a constraint c. The value nothing indicates that any strictly positive number of parameters is accepted.

source


# Constraints.shrink_conceptMethod.
julia
shrink_concept(s)

Simply delete the concept_ part of symbol or string starting with it. TODO: add a check with a warning if s starts with something different.

source


# Constraints.symmetriesMethod.
julia
symmetries(c::Constraint)

Return the list of symmetries of c.

source


# Constraints.xcsp_extensionMethod.
julia
xcsp_extension(; list, supports=nothing, conflicts=nothing)

Global constraint enforcing that the tuple x matches a configuration within the supports set pair_vars[1] or does not match any configuration within the conflicts set pair_vars[2]. It embodies the logic: x ∈ pair_vars[1] || x ∉ pair_vars[2], providing a comprehensive way to define valid (supported) and invalid (conflicted) tuples for constraint satisfaction problems. This constraint is versatile, allowing for the explicit delineation of both acceptable and unacceptable configurations.

Arguments

  • list::Vector{Int}: A list of variables

  • supports::Vector{Vector{Int}}: A set of supported tuples. Default to nothing.

  • conflicts::Vector{Vector{Int}}: A set of conflicted tuples. Default to nothing.

Instantiations

  • :extension: Global constraint enforcing that the tuple x matches a configuration within the supports set pair_vars[1] or does not match any configuration within the conflicts set pair_vars[2]. It embodies the logic: x ∈ pair_vars[1] || x ∉ pair_vars[2], providing a comprehensive way to define valid (supported) and invalid (conflicted) tuples for constraint satisfaction problems. This constraint is versatile, allowing for the explicit delineation of both acceptable and unacceptable configurations.

  • :supports: Global constraint ensuring that the tuple x matches a configuration listed within the support set pair_vars. This constraint is derived from the extension model, specifying that x must be one of the explicitly defined supported configurations: x ∈ pair_vars. It is utilized to directly declare the tuples that are valid and should be included in the solution space.

  • :conflicts: Global constraint ensuring that the tuple x does not match any configuration listed within the conflict set pair_vars. This constraint, originating from the extension model, stipulates that x must avoid all configurations defined as conflicts: x ∉ pair_vars. It is useful for specifying tuples that are explicitly forbidden and should be excluded from the solution space.

Examples

julia
c = USUAL_CONSTRAINTS[:extension] |> concept
+domain(intervals::Vector{Tuple{Tuple{T, Bool},Tuple{T, Bool}}}) where {T <: Real}

Construct a domain of continuous interval(s). ```julia d1 = domain((0., true), (1., false)) # d1 = [0, 1) d2 = domain([ # d2 = 0, 1) ∪ (3.5, 42, (1., false), (3.5, false), (42., true), ])

source


# ConstraintDomains.domain_sizeMethod.
julia
domain_size(itv::Intervals)

Return the difference between the highest and lowest values in itv.

source


# ConstraintDomains.domain_sizeMethod.
julia
domain_size(d <: AbstractDomain)

Fallback method for domain_size(d) that return length(d).

source


# ConstraintDomains.domain_sizeMethod.
julia
domain_size(d::D) where D <: DiscreteDomain

Return the maximum distance between two points in d.

source


# ConstraintDomains.exploreMethod.
julia
explore(domains, concept, param = nothing; search_limit = 1000, solutions_limit = 100)

Search (a part of) a search space and returns a pair of vector of configurations: (solutions, non_solutions). If the search space size is over search_limit, then both solutions and non_solutions are limited to solutions_limit.

Beware that if the density of the solutions in the search space is low, solutions_limit needs to be reduced. This process will be automatic in the future (simple reinforcement learning).

Arguments:

  • domains: a collection of domains

  • concept: the concept of the targeted constraint

  • param: an optional parameter of the constraint

  • sol_number: the required number of solutions (half of the number of configurations), default to 100

source


# ConstraintDomains.fake_automatonMethod.
julia
fake_automaton(d)

Construct a FakeAutomaton.

source


# ConstraintDomains.generate_parametersMethod.
julia
generate_parameters(d<:AbstractDomain, param)

Generates random parameters based on the domain d and the kind of parameters param.

source


# ConstraintDomains.get_domainMethod.
julia
get_domain(::AbstractDomain)

Access the internal structure of any domain type.

source


# ConstraintDomains.intersect_domainsMethod.
julia
intersect_domains(d₁, d₂)

Compute the intersections of two domains.

source


# ConstraintDomains.merge_domainsMethod.
julia
merge_domains(d₁::AbstractDomain, d₂::AbstractDomain)

Merge two domains of same nature (discrete/contiuous).

source


# ConstraintDomains.sizeMethod.
julia
Base.size(i::I) where {I <: Interval}

Defines the size of an interval as its span.

source


# ConstraintDomains.to_domainsMethod.
julia
to_domains(args...)

Convert various arguments into valid domains format.

source


# Constraints.USUAL_CONSTRAINTSConstant.
julia
USUAL_CONSTRAINTS::Dict

Dictionary that contains all the usual constraints defined in Constraint.jl. It is based on XCSP3-core specifications available at https://arxiv.org/abs/2009.00514

Adding a new constraint is as simple as

julia
@usual name p a sym₁ sym₂

where

  • name: constraint name

  • p: the length of the parameters (0 means no parameters)

  • a: the length of the arguments/variables (0 means any length is possible).

  • symᵢ: a sequence of symmetries (can be left empty)

Both a alone, or p and a together are optional.

Note that concept_name needs to be defined. Unless both error_name and icn_error_name are defined, a default error function will be computed. Please (re-)define error_name for a hand_made error function.

source


# Constraints.USUAL_SYMMETRIESConstant.
julia
USUAL_SYMMETRIES

A Dictionary that contains the function to apply for each symmetry to avoid searching a whole space.

source


# Constraints.ConstraintType.
julia
Constraint

Parametric stucture with the following fields.

  • concept: a Boolean function that, given an assignment x, outputs true if x satisfies the constraint, and false otherwise.

  • error: a positive function that works as preferences over invalid assignements. Return 0.0 if the constraint is satisfied, and a strictly positive real otherwise.

source


# Constraints.argsMethod.
julia
args(c::Constraint)

Return the expected length restriction of the arguments in a constraint c. The value nothing indicates that any strictly positive number of value is accepted.

source


# Constraints.conceptMethod.
julia
concept(c::Constraint)

Return the concept (function) of constraint c. concept(c::Constraint, x...; param = nothing) Apply the concept of c to values x and optionally param.

source


# Constraints.error_fMethod.
julia
error_f(c::Constraint)

Return the error function of constraint c. error_f(c::Constraint, x; param = nothing) Apply the error function of c to values x and optionally param.

source


# Constraints.params_lengthMethod.
julia
params_length(c::Constraint)

Return the expected length restriction of the arguments in a constraint c. The value nothing indicates that any strictly positive number of parameters is accepted.

source


# Constraints.shrink_conceptMethod.
julia
shrink_concept(s)

Simply delete the concept_ part of symbol or string starting with it. TODO: add a check with a warning if s starts with something different.

source


# Constraints.symmetriesMethod.
julia
symmetries(c::Constraint)

Return the list of symmetries of c.

source


# Constraints.xcsp_extensionMethod.
julia
xcsp_extension(; list, supports=nothing, conflicts=nothing)

Global constraint enforcing that the tuple x matches a configuration within the supports set pair_vars[1] or does not match any configuration within the conflicts set pair_vars[2]. It embodies the logic: x ∈ pair_vars[1] || x ∉ pair_vars[2], providing a comprehensive way to define valid (supported) and invalid (conflicted) tuples for constraint satisfaction problems. This constraint is versatile, allowing for the explicit delineation of both acceptable and unacceptable configurations.

Arguments

  • list::Vector{Int}: A list of variables

  • supports::Vector{Vector{Int}}: A set of supported tuples. Default to nothing.

  • conflicts::Vector{Vector{Int}}: A set of conflicted tuples. Default to nothing.

Variants

  • :extension: Global constraint enforcing that the tuple x matches a configuration within the supports set pair_vars[1] or does not match any configuration within the conflicts set pair_vars[2]. It embodies the logic: x ∈ pair_vars[1] || x ∉ pair_vars[2], providing a comprehensive way to define valid (supported) and invalid (conflicted) tuples for constraint satisfaction problems. This constraint is versatile, allowing for the explicit delineation of both acceptable and unacceptable configurations.

  • :supports: Global constraint ensuring that the tuple x matches a configuration listed within the support set pair_vars. This constraint is derived from the extension model, specifying that x must be one of the explicitly defined supported configurations: x ∈ pair_vars. It is utilized to directly declare the tuples that are valid and should be included in the solution space.

  • :conflicts: Global constraint ensuring that the tuple x does not match any configuration listed within the conflict set pair_vars. This constraint, originating from the extension model, stipulates that x must avoid all configurations defined as conflicts: x ∉ pair_vars. It is useful for specifying tuples that are explicitly forbidden and should be excluded from the solution space.

Examples

julia
c = concept(:extension)
 c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 3, 4, 5]])
 c([1, 2, 3, 4, 5]; pair_vars=([[1, 2, 3, 4, 5]], [[1, 2, 1, 4, 5], [1, 2, 3, 5, 5]]))
 c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 1, 4, 5], [1, 2, 3, 5, 5]])
@@ -49,10 +49,10 @@
 c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 3, 4, 5]])
 
 c = concept(USUAL_CONSTRAINTS[:conflicts])
-c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 1, 4, 5], [1, 2, 3, 5, 5]])
@example
2 + 2

source


# Constraints.xcsp_intensionMethod.
julia
xcsp_intension(list, predicate)

An intensional constraint is usually defined from a predicate over list. As such it encompass any generic constraint.

Arguments

  • list::Vector{Int}: A list of variables

  • predicate::Function: A predicate over list

Instantiations

  • :dist_different: A constraint ensuring that the distances between marks on the ruler are unique. Specifically, it checks that the distance between x[1] and x[2], and the distance between x[3] and x[4], are different. This constraint is fundamental in ensuring the validity of a Golomb ruler, where no two pairs of marks should have the same distance between them.

Examples

julia
c = concept(USUAL_CONSTRAINTS[:dist_different])
+c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 1, 4, 5], [1, 2, 3, 5, 5]])
@example
2 + 2

source


# Constraints.xcsp_intensionMethod.
julia
xcsp_intension(list, predicate)

An intensional constraint is usually defined from a predicate over list. As such it encompass any generic constraint.

Arguments

  • list::Vector{Int}: A list of variables

  • predicate::Function: A predicate over list

Variants

  • :dist_different: A constraint ensuring that the distances between marks on the ruler are unique. Specifically, it checks that the distance between x[1] and x[2], and the distance between x[3] and x[4], are different. This constraint is fundamental in ensuring the validity of a Golomb ruler, where no two pairs of marks should have the same distance between them.

Examples

julia
c = concept(:dist_different)
 c([1, 2, 3, 3]) # true
 c([1, 2, 3, 4]) # false

source


- + \ No newline at end of file diff --git a/dev/hashmap.json b/dev/hashmap.json index 5b31718..430c7fe 100644 --- a/dev/hashmap.json +++ b/dev/hashmap.json @@ -1 +1 @@ -{"constraints_constraint_models.md":"B_4-8zkK","index.md":"DIDgK_Eh","cp_advanced.md":"BCFqY9Nm","cp_applications.md":"C5lZcsAQ","cp_contribution.md":"Djq0vpjb","cp_ecosystem.md":"uScYgJUb","cp_opt.md":"D4kdWENj","meta_meta_strategist.md":"DPB3xUTb","cp_getting_started.md":"0uejL3b8","cp_cp101.md":"C18sX-iv","constraints_constraints.md":"B0UdRDNC","constraints_constraint_commons.md":"DwlH9ynK","cp_intro.md":"BJ225hHJ","learning_constraint_learning.md":"DntSqYyZ","learning_compositional_networks.md":"CcHo_ron","perf_benchmark_ext.md":"BF6daeNT","index-old.md":"D8PnE1wz","perf_perf_checker.md":"Mp2EYC4l","cp_tuto_xp.md":"c4f42ChT","cp_models.md":"DjZ6pPOZ","full_api.md":"DydxjnSN","perf_perf_interface.md":"BojTEMgF","solvers_local_search_solvers.md":"BVMxw1Dj","solvers_cbls.md":"EsXDaOSr","public_api.md":"qbLWBjy1","learning_qubo_constraints.md":"D6WkgtAs","constraints_constraint_domains.md":"BNK6SZcC"} +{"cp_tuto_xp.md":"c4f42ChT","perf_benchmark_ext.md":"BF6daeNT","learning_constraint_learning.md":"DntSqYyZ","cp_cp101.md":"C18sX-iv","perf_perf_checker.md":"Mp2EYC4l","constraints_constraint_commons.md":"DwlH9ynK","constraints_constraint_models.md":"B_4-8zkK","cp_advanced.md":"BCFqY9Nm","perf_perf_interface.md":"BojTEMgF","index.md":"DIDgK_Eh","index-old.md":"D8PnE1wz","cp_getting_started.md":"0uejL3b8","constraints_constraints.md":"xxBQdAFf","cp_models.md":"DjZ6pPOZ","constraints_constraint_domains.md":"BNK6SZcC","learning_compositional_networks.md":"CcHo_ron","meta_meta_strategist.md":"DPB3xUTb","cp_applications.md":"C5lZcsAQ","cp_ecosystem.md":"uScYgJUb","cp_contribution.md":"Djq0vpjb","learning_qubo_constraints.md":"D6WkgtAs","solvers_cbls.md":"EsXDaOSr","solvers_local_search_solvers.md":"BVMxw1Dj","full_api.md":"Do7cexhR","cp_opt.md":"D4kdWENj","cp_intro.md":"BJ225hHJ","public_api.md":"qbLWBjy1"} diff --git a/dev/index-old.html b/dev/index-old.html index 285de43..dd2a34d 100644 --- a/dev/index-old.html +++ b/dev/index-old.html @@ -8,17 +8,17 @@ - + - +
Skip to content

JuliaConstraints

JuliaConstraints is a collection of packages that help you solve constraint programming problems in Julia. Constraint programming involves modeling problems with constraints, such as "x > 5" or "x + y = 10", and finding solutions that satisfy all of the constraints. It is a part of the JuMP ecosystem that focuses on constraint programming in Julia.

The goal of packages in JuliaConstraints are two-fold: some of them provide a generic interface, others are solvers for CP models (either purely in Julia or wrapping). They make it easy to solve constraint-satisfaction problems (CSPs) and constraint-optimisation problems (COPs) in Julia using industry-standard solvers and mixed-integer solvers.

Other packages for CP in Julia include:

Operational Research vs Constraint Programming

Operational research (OR) is a problem-solving approach that uses mathematical models, statistical analysis, and optimization techniques to help organizations make better decisions. OR is concerned with understanding and optimizing complex systems, such as supply chains, transportation networks, and manufacturing processes, to improve efficiency and reduce costs.

On the other hand, constraint programming (CP) is a programming paradigm that focuses on solving problems with constraints. Constraints are conditions that must be satisfied for a solution to be valid. CP is often used to solve combinatorial problems, such as scheduling, routing, and allocation, where the search space of possible solutions is very large.

So, while both OR and CP are concerned with solving complex problems, they approach the problem-solving process from different angles. OR typically uses mathematical models and optimization techniques to analyze and optimize existing systems, while CP focuses on finding valid solutions that satisfy a set of constraints.

Constraint-based local search (CBLS) is a type of constraint programming solver that uses a heuristic search algorithm to find solutions to problems. It starts with an initial solution and tries to improve it by making small changes that satisfy the constraints. CBLS is especially useful for large and complex problems where finding an exact solution may take too much time or be impossible.

In contrast, other constraint programming solvers use a variety of algorithms and techniques to find exact solutions to problems. These solvers try to find a solution that satisfies all of the constraints in the problem. They can be useful for smaller problems where finding an exact solution is feasible, or for problems that have a clear mathematical structure.

In summary, CBLS is a type of constraint programming solver that uses a heuristic search algorithm to find good solutions, while other constraint programming solvers use various techniques to find exact solutions to problems.

- + \ No newline at end of file diff --git a/dev/index.html b/dev/index.html index 2ecac1a..b4c6da4 100644 --- a/dev/index.html +++ b/dev/index.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Julia Constraints

Model Smoothly Decide Wisely

A Toolkit for Constraint Programming

JuliaConstraints

What is Julia Constraints? (chatGPTed atm)

The Julia Constraints organization is dedicated to advancing Constraint Programming within the Julia ecosystem, serving as a hub for resources that facilitate the creation, understanding, and solution of constraint programming problems. Our goal is to make Constraint Programming accessible and efficient for users at all levels of expertise, by providing a comprehensive suite of tools that integrate seamlessly with JuMP.jl, a popular Julia package for mathematical optimization.

Our offerings include:

Core Packages:

A foundation of common packages (ConstraintCommons, ConstraintDomains, Constraints, ConstraintModels) that supply essential features for constraint programming, ensuring users have the basic tools necessary for their projects.

Learning and Translation Tools:

Advanced packages like CompositionalNetworks, QUBOConstraints, and ConstraintsTranslator bridge the gap between ease of modeling and computational efficiency. These tools learn from constraints and convert natural language problems into constraint programming solutions, requiring minimal input from the user beyond the model itself.

Solvers:

We provide a range of solvers, from native Julia solvers (LocalSearchSolvers) to interfaces with JuMP for external CP solvers, catering to various problem-solving needs.

MetaStrategist (Emerging Technology):

In its formative stages, MetaStrategist embodies our pioneering spirit. As a burgeoning meta-solving package, it aims to harness the strengths of CP and JuMP. Its vision is to formulate tailored strategies that consider the unique hardware and software resources at hand, offering a new horizon in problem-solving efficiency and adaptability.

Performance Checker (Community Resource):

PerfChecker.jl transcends its role within Julia Constraints, offering its capabilities to the broader Julia package ecosystem. This indispensable tool for cross-version performance checking not only safeguards the high efficiency and reliability of our packages but also serves the wider community. By facilitating clear and simple performance evaluations, PerfChecker.jl enhances both development and maintenance, contributing to the overall health and progress of Julia's growing library of resources.

At Julia Constraints, our mission is to democratize Constraint Programming by providing robust, user-friendly tools that simplify the modeling process, enhance efficiency, and empower users to solve complex problems with ease.

- + \ No newline at end of file diff --git a/dev/learning/compositional_networks.html b/dev/learning/compositional_networks.html index 52460c1..f353397 100644 --- a/dev/learning/compositional_networks.html +++ b/dev/learning/compositional_networks.html @@ -8,10 +8,10 @@ - + - + @@ -61,7 +61,7 @@ tr_param_minus_val(x, X::AbstractVector; param)

Return the difference param - x[i] if positive, 0.0 otherwise. Extended method to vector with sig (x, param) are generated. When X is provided, the result is computed without allocations.

source


# CompositionalNetworks.tr_val_minus_paramMethod.
julia
tr_val_minus_param(i, x; param)
 tr_val_minus_param(x; param)
 tr_val_minus_param(x, X::AbstractVector; param)

Return the difference x[i] - param if positive, 0.0 otherwise. Extended method to vector with sig (x, param) are generated. When X is provided, the result is computed without allocations.

source


# CompositionalNetworks.transformation_layerFunction.
julia
transformation_layer(param = false)

Generate the layer of transformations functions of the ICN. Iff param value is true, also includes all the parametric transformations.

source


# CompositionalNetworks.weigths!Method.
julia
weigths!(icn, weigths)

Set the weigths of an ICN with a BitVector.

source


# CompositionalNetworks.weigthsMethod.
julia
weigths(icn)

Access the current set of weigths of an ICN.

source


# CompositionalNetworks.weigths_biasMethod.
julia
weigths_bias(x)

A metric that bias x towards operations with a lower bit. Do not affect the main metric.

source


- + \ No newline at end of file diff --git a/dev/learning/constraint_learning.html b/dev/learning/constraint_learning.html index d9070d3..1355b35 100644 --- a/dev/learning/constraint_learning.html +++ b/dev/learning/constraint_learning.html @@ -8,17 +8,17 @@ - + - +
Skip to content

ConstraintLearning.jl

Documentation for ConstraintLearning.jl.

# ConstraintLearning.ICNConfigType.
julia
struct ICNConfig{O <: ICNOptimizer}

A structure to hold the metric and optimizer configurations used in learning the weigths of an ICN.

source


# ConstraintLearning.ICNConfigMethod.
julia
ICNConfig(; metric = :hamming, optimizer = ICNGeneticOptimizer())

Constructor for ICNConfig. Defaults to hamming metric using a genetic algorithm.

source


# ConstraintLearning.ICNGeneticOptimizerMethod.
julia
ICNGeneticOptimizer(; kargs...)

Default constructor to learn an ICN through a Genetic Algorithm. Default kargs TBW.

source


# ConstraintLearning.ICNLocalSearchOptimizerType.
julia
ICNLocalSearchOptimizer(options = LocalSearchSolvers.Options())

Default constructor to learn an ICN through a CBLS solver.

source


# ConstraintLearning.ICNOptimizerType.
julia
const ICNOptimizer = CompositionalNetworks.AbstractOptimizer

An abstract type for optmizers defined to learn ICNs.

source


# ConstraintLearning.QUBOGradientOptimizerMethod.
julia
QUBOGradientOptimizer(; kargs...)

A QUBO optimizer based on gradient descent. Defaults TBW

source


# ConstraintLearning.QUBOOptimizerType.
julia
const QUBOOptimizer = QUBOConstraints.AbstractOptimizer

An abstract type for optimizers used to learn QUBO matrices from constraints.

source


# CompositionalNetworks.optimize!Method.
julia
CompositionalNetworks.optimize!(icn, solutions, non_sltns, dom_size, metric, optimizer::ICNGeneticOptimizer; parameters...)

Extends the optimize! method to ICNGeneticOptimizer.

source


# CompositionalNetworks.optimize!Method.
julia
CompositionalNetworks.optimize!(icn, solutions, non_sltns, dom_size, metric, optimizer::ICNLocalSearchOptimizer; parameters...)

Extends the optimize! method to ICNLocalSearchOptimizer.

source


# ConstraintLearning._optimize!Method.
julia
_optimize!(icn, X, X_sols; metric = hamming, pop_size = 200)

Optimize and set the weigths of an ICN with a given set of configuration X and solutions X_sols.

source


# ConstraintLearning.domain_sizeMethod.
julia
domain_size(ds::Number)

Extends the domain_size function when ds is number (for dispatch purposes).

source


# ConstraintLearning.generate_populationMethod.
julia
generate_population(icn, pop_size

Generate a pôpulation of weigths (individuals) for the genetic algorithm weigthing icn.

source


# ConstraintLearning.icnMethod.
julia
icn(X,X̅; kargs..., parameters...)

TBW

source


# ConstraintLearning.lossMethod.
julia
loss(x, y, Q)

Loss of the prediction given by Q, a training set y, and a given configuration x.

source


# ConstraintLearning.make_dfMethod.
julia
make_df(X, Q, penalty, binarization, domains)

DataFrame arrangement to ouput some basic evaluation of a matrix Q.

source


# ConstraintLearning.make_set_penaltyMethod.
julia
make_set_penalty(X, X̅, args...; kargs)

Return a penalty function when the training set is already split into a pair of solutions X and non solutions .

source


# ConstraintLearning.make_training_setsMethod.
julia
make_training_sets(X, penalty, args...)

Return a pair of solutions and non solutions sets based on X and penalty.

source


# ConstraintLearning.mutually_exclusiveMethod.
julia
mutually_exclusive(layer, w)

Constraint ensuring that w encode exclusive operations in layer.

source


# ConstraintLearning.no_empty_layerMethod.
julia
no_empty_layer(x; X = nothing)

Constraint ensuring that at least one operation is selected.

source


# ConstraintLearning.optimize!Method.
julia
optimize!(icn, X, X_sols, global_iter, local_iter; metric=hamming, popSize=100)

Optimize and set the weigths of an ICN with a given set of configuration X and solutions X_sols. The best weigths among global_iter will be set.

source


# ConstraintLearning.parameter_specific_operationsMethod.
julia
parameter_specific_operations(x; X = nothing)

Constraint ensuring that at least one operation related to parameters is selected if the error function to be learned is parametric.

source


# ConstraintLearning.predictMethod.
julia
predict(x, Q)

Return the predictions given by Q for a given configuration x.

source


# ConstraintLearning.preliminariesMethod.
julia
preliminaries(args)

Preliminaries to the training process in a QUBOGradientOptimizer run.

source


# ConstraintLearning.quboFunction.
julia
qubo(X,X̅; kargs..., parameters...)

TBW

source


# ConstraintLearning.sub_eltypeMethod.
julia
sub_eltype(X)

Return the element type of of the first element of a collection.

source


# ConstraintLearning.train!Method.
julia
train!(Q, X, penalty, η, precision, X_test, oversampling, binarization, domains)

Training inner method.

source


# ConstraintLearning.trainMethod.
julia
train(X, penalty[, d]; optimizer = QUBOGradientOptimizer(), X_test = X)

Learn a QUBO matrix on training set X for a constraint defined by penalty with optional domain information d. By default, it uses a QUBOGradientOptimizer and X as a testing set.

source


# ConstraintLearning.δMethod.
julia
δ(X[, Y]; discrete = true)

Compute the extrema over a collection X``or a pair of collection(X, Y)`.

source


- + \ No newline at end of file diff --git a/dev/learning/qubo_constraints.html b/dev/learning/qubo_constraints.html index ab63d5f..2022ec6 100644 --- a/dev/learning/qubo_constraints.html +++ b/dev/learning/qubo_constraints.html @@ -8,17 +8,17 @@ - + - +
Skip to content

QUBOConstraints.jl

Documentation for QUBOConstraints.jl.

# QUBOConstraints.AbstractOptimizerType.
julia
AbstractOptimizer

An abstract type (interface) used to learn QUBO matrices from constraints. Only a train method is required.

source


# QUBOConstraints.QUBO_baseFunction.
julia
QUBO_base(n, weight = 1)

A basic QUBO matrix to ensure that binarized variables keep a valid encoding.

source


# QUBOConstraints.QUBO_linear_sumMethod.
julia
QUBO_linear_sum(n, σ)

One valid QUBO matrix given n variables and parameter σ for the linear sum constraint.

source


# QUBOConstraints.binarizeMethod.
julia
binarize(x[, domain]; binarization = :one_hot)

Binarize x following the binarization encoding. If x is a vector (instead of a number per say), domain is optional.

source


# QUBOConstraints.debinarizeMethod.
julia
debinarize(x[, domain]; binarization = :one_hot)

Transform a binary vector into a number or a set of number. If domain is not given, it will compute a default value based on binarization and x.

source


# QUBOConstraints.is_validFunction.
julia
is_valid(x, encoding::Symbol = :none)

Check if x has a valid format for encoding.

For instance, if encoding == :one_hot, at most one bit of x can be set to 1.

source


# QUBOConstraints.trainMethod.
julia
train(args...)

Default train method for any AbstractOptimizer.

source


- + \ No newline at end of file diff --git a/dev/meta/meta_strategist.html b/dev/meta/meta_strategist.html index d372e35..eb8d610 100644 --- a/dev/meta/meta_strategist.html +++ b/dev/meta/meta_strategist.html @@ -8,17 +8,17 @@ - + - + - + \ No newline at end of file diff --git a/dev/perf/benchmark_ext.html b/dev/perf/benchmark_ext.html index 973b804..cf8a5a1 100644 --- a/dev/perf/benchmark_ext.html +++ b/dev/perf/benchmark_ext.html @@ -8,17 +8,17 @@ - + - +
Skip to content

BenchmarkTools Extension

A benchmarking extension, based on BenchmarkTools.jl, has been interfaced with PerfChecker.jl. This section (will) provides some usage examples, documentation, and links to related notebooks.

- + \ No newline at end of file diff --git a/dev/perf/perf_checker.html b/dev/perf/perf_checker.html index f38470b..1eed353 100644 --- a/dev/perf/perf_checker.html +++ b/dev/perf/perf_checker.html @@ -8,17 +8,17 @@ - + - + - + \ No newline at end of file diff --git a/dev/perf/perf_interface.html b/dev/perf/perf_interface.html index 2a9b46a..d5ae0a1 100644 --- a/dev/perf/perf_interface.html +++ b/dev/perf/perf_interface.html @@ -8,17 +8,17 @@ - + - + - + \ No newline at end of file diff --git a/dev/public_api.html b/dev/public_api.html index 8c8f186..fcdf5cc 100644 --- a/dev/public_api.html +++ b/dev/public_api.html @@ -8,10 +8,10 @@ - + - + @@ -30,7 +30,7 @@ d4 = domain(4.3) d5 = domain(1,42,86.9)

source


# ConstraintDomains.domainMethod.
julia
domain()

Construct an EmptyDomain.

source


# ConstraintDomains.domainMethod.
julia
domain(a::Tuple{T, Bool}, b::Tuple{T, Bool}) where {T <: Real}
 domain(intervals::Vector{Tuple{Tuple{T, Bool},Tuple{T, Bool}}}) where {T <: Real}

Construct a domain of continuous interval(s). ```julia d1 = domain((0., true), (1., false)) # d1 = [0, 1) d2 = domain([ # d2 = 0, 1) ∪ (3.5, 42, (1., false), (3.5, false), (42., true), ])

source


# ConstraintDomains.domain_sizeMethod.
julia
domain_size(itv::Intervals)

Return the difference between the highest and lowest values in itv.

source


# ConstraintDomains.domain_sizeMethod.
julia
domain_size(d <: AbstractDomain)

Fallback method for domain_size(d) that return length(d).

source


# ConstraintDomains.domain_sizeMethod.
julia
domain_size(d::D) where D <: DiscreteDomain

Return the maximum distance between two points in d.

source


# ConstraintDomains.exploreMethod.
julia
explore(domains, concept, param = nothing; search_limit = 1000, solutions_limit = 100)

Search (a part of) a search space and returns a pair of vector of configurations: (solutions, non_solutions). If the search space size is over search_limit, then both solutions and non_solutions are limited to solutions_limit.

Beware that if the density of the solutions in the search space is low, solutions_limit needs to be reduced. This process will be automatic in the future (simple reinforcement learning).

Arguments:

  • domains: a collection of domains

  • concept: the concept of the targeted constraint

  • param: an optional parameter of the constraint

  • sol_number: the required number of solutions (half of the number of configurations), default to 100

source


# ConstraintDomains.generate_parametersMethod.
julia
generate_parameters(d<:AbstractDomain, param)

Generates random parameters based on the domain d and the kind of parameters param.

source


# ConstraintDomains.get_domainMethod.
julia
get_domain(::AbstractDomain)

Access the internal structure of any domain type.

source


# ConstraintDomains.intersect_domainsMethod.
julia
intersect_domains(d₁, d₂)

Compute the intersections of two domains.

source


# ConstraintDomains.merge_domainsMethod.
julia
merge_domains(d₁::AbstractDomain, d₂::AbstractDomain)

Merge two domains of same nature (discrete/contiuous).

source


# ConstraintDomains.to_domainsMethod.
julia
to_domains(args...)

Convert various arguments into valid domains format.

source


# Constraints.USUAL_CONSTRAINTSConstant.
julia
USUAL_CONSTRAINTS::Dict

Dictionary that contains all the usual constraints defined in Constraint.jl. It is based on XCSP3-core specifications available at https://arxiv.org/abs/2009.00514

Adding a new constraint is as simple as

julia
@usual name p a sym₁ sym₂

where

  • name: constraint name

  • p: the length of the parameters (0 means no parameters)

  • a: the length of the arguments/variables (0 means any length is possible).

  • symᵢ: a sequence of symmetries (can be left empty)

Both a alone, or p and a together are optional.

Note that concept_name needs to be defined. Unless both error_name and icn_error_name are defined, a default error function will be computed. Please (re-)define error_name for a hand_made error function.

source


# Constraints.USUAL_SYMMETRIESConstant.
julia
USUAL_SYMMETRIES

A Dictionary that contains the function to apply for each symmetry to avoid searching a whole space.

source


# Constraints.ConstraintType.
julia
Constraint

Parametric stucture with the following fields.

  • concept: a Boolean function that, given an assignment x, outputs true if x satisfies the constraint, and false otherwise.

  • error: a positive function that works as preferences over invalid assignements. Return 0.0 if the constraint is satisfied, and a strictly positive real otherwise.

source


# Constraints.argsMethod.
julia
args(c::Constraint)

Return the expected length restriction of the arguments in a constraint c. The value nothing indicates that any strictly positive number of value is accepted.

source


# Constraints.conceptMethod.
julia
concept(c::Constraint)

Return the concept (function) of constraint c. concept(c::Constraint, x...; param = nothing) Apply the concept of c to values x and optionally param.

source


# Constraints.error_fMethod.
julia
error_f(c::Constraint)

Return the error function of constraint c. error_f(c::Constraint, x; param = nothing) Apply the error function of c to values x and optionally param.

source


# Constraints.params_lengthMethod.
julia
params_length(c::Constraint)

Return the expected length restriction of the arguments in a constraint c. The value nothing indicates that any strictly positive number of parameters is accepted.

source


# Constraints.symmetriesMethod.
julia
symmetries(c::Constraint)

Return the list of symmetries of c.

source


- + \ No newline at end of file diff --git a/dev/solvers/cbls.html b/dev/solvers/cbls.html index 7f2d64a..8865d68 100644 --- a/dev/solvers/cbls.html +++ b/dev/solvers/cbls.html @@ -8,10 +8,10 @@ - + - + @@ -23,7 +23,7 @@ # Generic use @objective(model, ScalarFunction(f, X))

source


# CBLS.SequentialTasksType.

Local constraint ensuring that, given a vector X of size 4, |X[1] - X[2]| ≠ |X[3] - X[4]|).

julia
@constraint(model, X in SequentialTasks())

source


# CBLS.SumEqualParamType.

Global constraint ensuring that the sum of the values of X is equal to a given parameter param.

julia
@constraint(model, X in SumEqualParam(param))

source


# Base.copyMethod.
julia
Base.copy(set::MOIError) = begin

DOCSTRING

source


# Base.copyMethod.
julia
Base.copy(set::DiscreteSet) = begin

DOCSTRING

source


# JuMP.build_variableMethod.
julia
JuMP.build_variable(::Function, info::JuMP.VariableInfo, set::T) where T <: MOI.AbstractScalarSet

DOCSTRING

Arguments:

  • ``: DESCRIPTION

  • info: DESCRIPTION

  • set: DESCRIPTION

source


# MathOptInterface.add_constraintMethod.
julia
MOI.add_constraint(optimizer::Optimizer, vars::MOI.VectorOfVariables, set::MOIError)

DOCSTRING

Arguments:

  • optimizer: DESCRIPTION

  • vars: DESCRIPTION

  • set: DESCRIPTION

source


# MathOptInterface.add_constraintMethod.
julia
MOI.add_constraint(optimizer::Optimizer, v::VI, set::DiscreteSet{T}) where T <: Number

DOCSTRING

Arguments:

  • optimizer: DESCRIPTION

  • v: DESCRIPTION

  • set: DESCRIPTION

source


# MathOptInterface.add_variableMethod.
julia
MOI.add_variable(model::Optimizer) = begin

DOCSTRING

source


# MathOptInterface.empty!Method.
julia
MOI.empty!(opt) = begin

DOCSTRING

source


# MathOptInterface.getMethod.
julia
MOI.get(::Optimizer, ::MOI.SolverName) = begin

DOCSTRING

source


# MathOptInterface.is_emptyMethod.
julia
MOI.is_empty(model::Optimizer) = begin

DOCSTRING

source


# MathOptInterface.optimize!Method.
julia
MOI.optimize!(model::Optimizer)

source


# MathOptInterface.setFunction.
julia
MOI.set(::Optimizer, ::MOI.Silent, bool = true) = begin

DOCSTRING

Arguments:

  • ``: DESCRIPTION

  • ``: DESCRIPTION

  • bool: DESCRIPTION

source


# MathOptInterface.setMethod.
julia
MOI.set(model::Optimizer, p::MOI.RawOptimizerAttribute, value)

Set a RawOptimizerAttribute to value

source


# MathOptInterface.setMethod.
julia
MOI.set(model::Optimizer, ::MOI.TimeLimitSec, value::Union{Nothing,Float64})

Set the time limit

source


# MathOptInterface.supports_constraintMethod.
julia
MOI.supports_constraint(::Optimizer, ::Type{VOV}, ::Type{MOIError}) = begin

DOCSTRING

Arguments:

  • ``: DESCRIPTION

  • ``: DESCRIPTION

  • ``: DESCRIPTION

source


# MathOptInterface.supports_incremental_interfaceMethod.

Copy constructor for the optimizer

source


- + \ No newline at end of file diff --git a/dev/solvers/local_search_solvers.html b/dev/solvers/local_search_solvers.html index 95c738b..33b860b 100644 --- a/dev/solvers/local_search_solvers.html +++ b/dev/solvers/local_search_solvers.html @@ -8,10 +8,10 @@ - + - + @@ -53,7 +53,7 @@ variable(domain::AbstractDomain, name::AbstractString) where D <: AbstractDomain

Construct a variable with discrete domain. See the domain method for other options.

julia
d = domain([1,2,3,4], types = :indices)
 x1 = variable(d, "x1")
 x2 = variable([-89,56,28], "x2", domain = :indices)

source


- + \ No newline at end of file