diff --git a/previews/PR53/404.html b/previews/PR53/404.html index 7eec63f..125b32c 100644 --- a/previews/PR53/404.html +++ b/previews/PR53/404.html @@ -8,14 +8,14 @@ - +
- + \ No newline at end of file diff --git a/previews/PR53/assets/app.CMgMyO7q.js b/previews/PR53/assets/app.Da2KHHSU.js similarity index 95% rename from previews/PR53/assets/app.CMgMyO7q.js rename to previews/PR53/assets/app.Da2KHHSU.js index 8d2f274..93c5ac4 100644 --- a/previews/PR53/assets/app.CMgMyO7q.js +++ b/previews/PR53/assets/app.Da2KHHSU.js @@ -1 +1 @@ -import{U 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,d as P,u as v,y,x as w,ai as C,aj as R,ak as b,a6 as E}from"./chunks/framework.B__MqT43.js";import{R as S}from"./chunks/theme.D04yKJoq.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(S),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{w(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),R(),b(),s.setup&&s.setup(),()=>E(s.Layout)}});async function _(){globalThis.__VITEPRESS__=!0;const e=x(),a=j();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 j(){return h(T)}function x(){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=import(n)),o&&(e=!1),r},s.NotFound)}o&&_().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{_ as createApp}; +import{U 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,d as P,u as v,y,x as w,ai as C,aj as R,ak as b,a6 as E}from"./chunks/framework.B__MqT43.js";import{R as S}from"./chunks/theme.Dx443mF7.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(S),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{w(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),R(),b(),s.setup&&s.setup(),()=>E(s.Layout)}});async function _(){globalThis.__VITEPRESS__=!0;const e=x(),a=j();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 j(){return h(T)}function x(){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=import(n)),o&&(e=!1),r},s.NotFound)}o&&_().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{_ as createApp}; diff --git a/previews/PR53/assets/chunks/@localSearchIndexroot.BAdut2hj.js b/previews/PR53/assets/chunks/@localSearchIndexroot.BAdut2hj.js new file mode 100644 index 0000000..3566765 --- /dev/null +++ b/previews/PR53/assets/chunks/@localSearchIndexroot.BAdut2hj.js @@ -0,0 +1 @@ +const i='{"documentCount":159,"nextId":159,"documentIds":{"0":"/previews/PR53/constraints/comparison_constraints#Constraints.jl:-Streamlining-Constraint-Definition-and-Integration-in-Julia","1":"/previews/PR53/constraints/comparison_constraints#Comparison-based-Constraints","2":"/previews/PR53/constraints/connection_constraints#Constraints.jl:-Streamlining-Constraint-Definition-and-Integration-in-Julia","3":"/previews/PR53/constraints/connection_constraints#Connection-Constraints","4":"/previews/PR53/constraints/constraint_commons#constraintcommons-jl","5":"/previews/PR53/constraints/constraint_commons#parameters","6":"/previews/PR53/constraints/constraint_commons#performances","7":"/previews/PR53/constraints/constraint_commons#languages","8":"/previews/PR53/constraints/constraint_commons#Performances-2","9":"/previews/PR53/constraints/constraint_commons#extensions","10":"/previews/PR53/constraints/constraint_commons#Performances-3","11":"/previews/PR53/constraints/constraint_commons#sampling","12":"/previews/PR53/constraints/constraint_commons#Performances-4","13":"/previews/PR53/constraints/constraint_commons#extrema","14":"/previews/PR53/constraints/constraint_commons#Performances-5","15":"/previews/PR53/constraints/constraint_commons#dictionaries","16":"/previews/PR53/constraints/constraint_commons#Performances-6","17":"/previews/PR53/constraints/constraint_domains#ConstraintDomains.jl:-Defining-Variables-and-Exploring-Domains","18":"/previews/PR53/constraints/constraint_domains#commons","19":"/previews/PR53/constraints/constraint_domains#Extension-to-Base-module","20":"/previews/PR53/constraints/constraint_domains#performances","21":"/previews/PR53/constraints/constraint_domains#continuous","22":"/previews/PR53/constraints/constraint_domains#Extension-to-Base-module-2","23":"/previews/PR53/constraints/constraint_domains#Performances-2","24":"/previews/PR53/constraints/constraint_domains#discrete","25":"/previews/PR53/constraints/constraint_domains#Extension-to-Base-module-3","26":"/previews/PR53/constraints/constraint_domains#Performances-3","27":"/previews/PR53/constraints/constraint_domains#general","28":"/previews/PR53/constraints/constraint_domains#exploration","29":"/previews/PR53/constraints/constraint_domains#Performances-4","30":"/previews/PR53/constraints/constraint_domains#parameters","31":"/previews/PR53/constraints/constraint_models#constraintmodels-jl","32":"/previews/PR53/constraints/constraints#Interacting-with-Constraints-in-Julia","33":"/previews/PR53/constraints/constraints#Usual-Constraints-and-Parameters","34":"/previews/PR53/constraints/constraints#Concepts,-Error-Functions,-and-QUBO-matrices","35":"/previews/PR53/constraints/constraints_jl#Interacting-with-Constraints-in-Julia","36":"/previews/PR53/constraints/constraints_jl#Usual-Parameters","37":"/previews/PR53/constraints/constraints_jl#Concepts,-Error-Functions,-and-QUBO-matrices","38":"/previews/PR53/constraints/constraints_jl#Usual-Constraints","39":"/previews/PR53/constraints/counting_summing_constraints#Constraints.jl:-Streamlining-Constraint-Definition-and-Integration-in-Julia","40":"/previews/PR53/constraints/counting_summing_constraints#Counting-and-Summing-Constraints","41":"/previews/PR53/constraints/elementary_constraints#Constraints.jl:-Streamlining-Constraint-Definition-and-Integration-in-Julia","42":"/previews/PR53/constraints/elementary_constraints#Elementary-Constraints","43":"/previews/PR53/constraints/generic_constraints#Generic-Constraints","44":"/previews/PR53/constraints/generic_constraints#Intention-Constraints","45":"/previews/PR53/constraints/generic_constraints#Defining-an-intention-constraint-in-JC-API","46":"/previews/PR53/constraints/generic_constraints#apis","47":"/previews/PR53/constraints/generic_constraints#Extension-Constraints","48":"/previews/PR53/constraints/graph_constraints#Constraints.jl:-Streamlining-Constraint-Definition-and-Integration-in-Julia","49":"/previews/PR53/constraints/graph_constraints#Constraints-on-Graphs","50":"/previews/PR53/constraints/intro#Introduction-to-basics-constraint-based-modeling-tools","51":"/previews/PR53/constraints/intro#terminology","52":"/previews/PR53/constraints/intro#constraint","53":"/previews/PR53/constraints/intro#Constraint-Instantiation","54":"/previews/PR53/constraints/intro#configuration","55":"/previews/PR53/constraints/intro#Constraint-Satisfaction-or-Violation-by-a-Configuration","56":"/previews/PR53/constraints/intro#Domain-defined-variables","57":"/previews/PR53/constraints/intro#A-versatile-constraints\'-API","58":"/previews/PR53/constraints/intro#A-collection-of-models","59":"/previews/PR53/constraints/intro#Internal-Aspects","60":"/previews/PR53/constraints/language_constraints#Constraints.jl:-Streamlining-Constraint-Definition-and-Integration-in-Julia","61":"/previews/PR53/constraints/language_constraints#Constraints-defined-from-Languages","62":"/previews/PR53/constraints/packing_scheduling_constraints#Constraints.jl:-Streamlining-Constraint-Definition-and-Integration-in-Julia","63":"/previews/PR53/constraints/packing_scheduling_constraints#Packing-and-Scheduling-Constraints","64":"/previews/PR53/constraints/variables_and_domains#Defining-Variables-and-Exploring-Domains","65":"/previews/PR53/constraints/variables_and_domains#Implementing-the-AbstractDomain-Interface","66":"/previews/PR53/constraints/variables_and_domains#Discrete-Domains","67":"/previews/PR53/constraints/variables_and_domains#SetDomain","68":"/previews/PR53/constraints/variables_and_domains#RangeDomain","69":"/previews/PR53/constraints/variables_and_domains#Arbitrary-Domains","70":"/previews/PR53/constraints/variables_and_domains#Continuous-Domains","71":"/previews/PR53/cp/advanced#Advanced-Constraint-Programming-Techniques","72":"/previews/PR53/cp/advanced#Global-Constraints-and-Their-Uses","73":"/previews/PR53/cp/advanced#Search-Strategies-and-Optimization","74":"/previews/PR53/cp/applications#Applying-Optimization-Methods","75":"/previews/PR53/cp/applications#Case-Studies-and-Real-World-Applications","76":"/previews/PR53/cp/applications#From-Theory-to-Practice","77":"/previews/PR53/cp/contribution#Community-and-Contribution","78":"/previews/PR53/cp/contribution#Joining-the-JuliaConstraint-Community","79":"/previews/PR53/cp/contribution#Future-Directions","80":"/previews/PR53/cp/cp101#Constraint-Programming-101","81":"/previews/PR53/cp/cp101#What-is-Constraint-Programming?","82":"/previews/PR53/cp/cp101#Basic-Concepts-and-Terminology","83":"/previews/PR53/cp/cp101#How-CP-differs-from-other-optimization-techniques","84":"/previews/PR53/cp/ecosystem#Exploring-JuliaConstraint-Packages","85":"/previews/PR53/cp/ecosystem#Package-Overviews","86":"/previews/PR53/cp/ecosystem#Installation-and-Getting-Started-Guides","87":"/previews/PR53/cp/getting_started#Getting-Started-with-Julia-for-CP-and-Optimization","88":"/previews/PR53/cp/getting_started#Why-Julia?","89":"/previews/PR53/cp/getting_started#Setting-Up-Your-Julia-Environment","90":"/previews/PR53/cp/getting_started#Your-First-Julia-CP-Model","91":"/previews/PR53/cp/intro#Welcome-to-Julia-Constraints","92":"/previews/PR53/cp/models#Building-and-Analyzing-Models","93":"/previews/PR53/cp/models#Modeling-Best-Practices","94":"/previews/PR53/cp/models#Performance-Analysis-and-Improvement","95":"/previews/PR53/cp/opt#Dive-into-Optimization","96":"/previews/PR53/cp/opt#Understanding-Optimization","97":"/previews/PR53/cp/opt#Metaheuristics-Overview","98":"/previews/PR53/cp/opt#Mathematical-Programming-Basics","99":"/previews/PR53/cp/tuto_xp#Tutorials-and-Experiments","100":"/previews/PR53/cp/tuto_xp#Hands-On-Tutorials","101":"/previews/PR53/cp/tuto_xp#Experimental-Analysis","102":"/previews/PR53/full_api#Full-API","103":"/previews/PR53/learning/aggregation#Aggregation-Layer","104":"/previews/PR53/learning/aggregation#List-of-aggregations","105":"/previews/PR53/learning/aggregation#Layer-generation","106":"/previews/PR53/index-old#juliaconstraints","107":"/previews/PR53/index-old#Operational-Research-vs-Constraint-Programming","108":"/previews/PR53/index-old#Constraint-Based-Local-Search","109":"/previews/PR53/learning/arithmetic#Arithmetic-Layer","110":"/previews/PR53/learning/arithmetic#List-of-arithmetic-operations","111":"/previews/PR53/learning/arithmetic#Layer-generation","112":"/previews/PR53/learning/comparison#Comparison-Layer","113":"/previews/PR53/learning/comparison#List-of-comparisons","114":"/previews/PR53/learning/comparison#non-parametric","115":"/previews/PR53/learning/comparison#Param:-:val","116":"/previews/PR53/learning/comparison#Layer-generation","117":"/previews/PR53/learning/compositional_networks#compositionalnetworks-jl","118":"/previews/PR53/learning/compositional_networks#utilities","119":"/previews/PR53/learning/compositional_networks#metrics","120":"/previews/PR53/learning/constraint_learning#constraintlearning-jl","121":"/previews/PR53/learning/intro#Learning-about-Constraints","122":"/previews/PR53/learning/intro#parameters","123":"/previews/PR53/learning/layers#A-layer-structure-for-any-ICN","124":"/previews/PR53/learning/qubo_encoding#Encoding-for-QUBO-programs","125":"/previews/PR53/learning/qubo_constraints#Introduction-to-QUBOConstraints.jl","126":"/previews/PR53/learning/qubo_constraints#Basic-features","127":"/previews/PR53/learning/qubo_learning#Learning-QUBO-matrices","128":"/previews/PR53/learning/qubo_learning#interface","129":"/previews/PR53/learning/qubo_learning#Examples-with-various-optimizers","130":"/previews/PR53/learning/qubo_learning#Gradient-Descent","131":"/previews/PR53/learning/qubo_learning#Constraint-based-Local-Search","132":"/previews/PR53/learning/transformation#Transformations-Layer","133":"/previews/PR53/learning/transformation#List-of-transformations","134":"/previews/PR53/learning/transformation#non-parametric","135":"/previews/PR53/learning/transformation#Param:-:val","136":"/previews/PR53/learning/transformation#Layer-generation","137":"/previews/PR53/meta/meta_strategist#metastrategist-jl","138":"/previews/PR53/perf/api#api","139":"/previews/PR53/perf/benchmark_ext#BenchmarkTools-Extension","140":"/previews/PR53/perf/benchmark_ext#usage","141":"/previews/PR53/perf/benchmark_ext#options","142":"/previews/PR53/perf/chairmarks_ext#Chairmarks-Extension","143":"/previews/PR53/perf/chairmarks_ext#usage","144":"/previews/PR53/perf/chairmarks_ext#options","145":"/previews/PR53/perf/perf_checker#perfchecker-jl","146":"/previews/PR53/perf/perf_checker#usage","147":"/previews/PR53/perf/perf_interface#Extending-PerfChecker","148":"/previews/PR53/perf/perf_interface#The-Default-Options","149":"/previews/PR53/perf/perf_interface#Package-initialization","150":"/previews/PR53/perf/perf_interface#Preparatory-Code:","151":"/previews/PR53/perf/perf_interface#Main-Code-to-be-Performance-Tested","152":"/previews/PR53/perf/perf_interface#Post-Performance-Testing-Code","153":"/previews/PR53/perf/perf_interface#Converting-the-result-into-a-Table","154":"/previews/PR53/perf/tutorial#tutorial","155":"/previews/PR53/public_api#Public-API","156":"/previews/PR53/solvers/intro#solvers","157":"/previews/PR53/solvers/cbls#cbls-jl","158":"/previews/PR53/solvers/local_search_solvers#localsearchsolvers-jl"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[9,1,79],"1":[3,9,75],"2":[9,1,82],"3":[2,9,98],"4":[2,1,66],"5":[1,2,117],"6":[1,3,1],"7":[1,2,86],"8":[1,3,1],"9":[1,2,46],"10":[1,3,1],"11":[1,2,45],"12":[1,3,1],"13":[1,2,31],"14":[1,3,1],"15":[1,2,37],"16":[1,3,1],"17":[7,1,45],"18":[1,7,137],"19":[4,8,87],"20":[1,8,1],"21":[1,7,127],"22":[4,8,94],"23":[1,8,1],"24":[1,7,137],"25":[4,8,98],"26":[1,8,1],"27":[1,7,19],"28":[1,7,94],"29":[1,8,1],"30":[1,7,115],"31":[2,1,287],"32":[5,1,51],"33":[4,5,176],"34":[6,5,102],"35":[5,1,49],"36":[2,5,109],"37":[6,5,103],"38":[2,5,97],"39":[9,1,112],"40":[4,9,134],"41":[9,1,1],"42":[2,9,57],"43":[2,1,17],"44":[2,2,77],"45":[7,3,68],"46":[1,3,101],"47":[2,2,109],"48":[9,1,1],"49":[3,9,71],"50":[7,1,54],"51":[1,7,49],"52":[1,8,42],"53":[2,8,40],"54":[1,8,39],"55":[7,8,49],"56":[3,7,28],"57":[5,7,36],"58":[4,7,38],"59":[2,7,40],"60":[9,1,1],"61":[4,9,126],"62":[9,1,66],"63":[4,9,106],"64":[5,1,54],"65":[4,5,91],"66":[2,5,20],"67":[1,6,57],"68":[1,6,78],"69":[2,6,37],"70":[2,5,50],"71":[4,1,1],"72":[5,4,12],"73":[4,4,12],"74":[3,1,1],"75":[6,3,11],"76":[4,3,18],"77":[3,1,1],"78":[4,3,14],"79":[2,3,13],"80":[3,1,1],"81":[5,3,10],"82":[4,3,10],"83":[7,3,10],"84":[3,1,1],"85":[2,3,13],"86":[5,1,13],"87":[8,1,1],"88":[3,8,16],"89":[5,8,104],"90":[5,8,191],"91":[4,1,35],"92":[4,1,1],"93":[3,4,12],"94":[4,4,11],"95":[3,1,1],"96":[2,3,12],"97":[2,3,11],"98":[3,3,12],"99":[3,1,1],"100":[3,3,11],"101":[2,3,15],"102":[2,1,1158],"103":[2,1,11],"104":[3,2,26],"105":[2,2,26],"106":[1,1,122],"107":[5,1,93],"108":[4,1,80],"109":[2,1,11],"110":[4,2,22],"111":[2,2,25],"112":[2,1,11],"113":[3,2,10],"114":[2,5,38],"115":[2,5,18],"116":[2,5,50],"117":[2,1,5],"118":[1,2,94],"119":[1,2,46],"120":[2,1,232],"121":[3,1,6],"122":[1,3,111],"123":[6,1,145],"124":[4,1,64],"125":[4,1,5],"126":[2,4,35],"127":[3,1,1],"128":[1,3,31],"129":[4,3,1],"130":[2,7,102],"131":[4,7,1],"132":[2,1,30],"133":[3,2,10],"134":[2,5,67],"135":[2,5,20],"136":[2,5,159],"137":[2,1,5],"138":[1,1,57],"139":[2,1,26],"140":[1,2,48],"141":[1,2,31],"142":[2,1,26],"143":[1,2,49],"144":[1,2,25],"145":[2,1,51],"146":[1,2,150],"147":[2,1,49],"148":[3,2,53],"149":[2,2,38],"150":[3,2,58],"151":[6,2,61],"152":[4,2,42],"153":[6,2,59],"154":[1,1,129],"155":[2,1,616],"156":[1,1,3],"157":[2,1,473],"158":[2,1,508]},"averageFieldLength":[3.0125786163522004,3.4716981132075477,66.32704402515722],"storedFields":{"0":{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","titles":[]},"1":{"title":"Comparison-based Constraints","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"2":{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","titles":[]},"3":{"title":"Connection Constraints","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"4":{"title":"ConstraintCommons.jl","titles":[]},"5":{"title":"Parameters","titles":["ConstraintCommons.jl"]},"6":{"title":"Performances","titles":["ConstraintCommons.jl","Parameters"]},"7":{"title":"Languages","titles":["ConstraintCommons.jl"]},"8":{"title":"Performances","titles":["ConstraintCommons.jl","Languages"]},"9":{"title":"Extensions","titles":["ConstraintCommons.jl"]},"10":{"title":"Performances","titles":["ConstraintCommons.jl","Extensions"]},"11":{"title":"Sampling","titles":["ConstraintCommons.jl"]},"12":{"title":"Performances","titles":["ConstraintCommons.jl","Sampling"]},"13":{"title":"Extrema","titles":["ConstraintCommons.jl"]},"14":{"title":"Performances","titles":["ConstraintCommons.jl","Extrema"]},"15":{"title":"Dictionaries","titles":["ConstraintCommons.jl"]},"16":{"title":"Performances","titles":["ConstraintCommons.jl","Dictionaries"]},"17":{"title":"ConstraintDomains.jl: Defining Variables and Exploring Domains","titles":[]},"18":{"title":"Commons","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains"]},"19":{"title":"Extension to Base module","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains","Commons"]},"20":{"title":"Performances","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains","Commons"]},"21":{"title":"Continuous","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains"]},"22":{"title":"Extension to Base module","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains","Continuous"]},"23":{"title":"Performances","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains","Continuous"]},"24":{"title":"Discrete","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains"]},"25":{"title":"Extension to Base module","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains","Discrete"]},"26":{"title":"Performances","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains","Discrete"]},"27":{"title":"General","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains"]},"28":{"title":"Exploration","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains"]},"29":{"title":"Performances","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains","Exploration"]},"30":{"title":"Parameters","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains"]},"31":{"title":"ConstraintModels.jl","titles":[]},"32":{"title":"Interacting with Constraints in Julia","titles":[]},"33":{"title":"Usual Constraints and Parameters","titles":["Interacting with Constraints in Julia"]},"34":{"title":"Concepts, Error Functions, and QUBO matrices","titles":["Interacting with Constraints in Julia"]},"35":{"title":"Interacting with Constraints in Julia","titles":[]},"36":{"title":"Usual Parameters","titles":["Interacting with Constraints in Julia"]},"37":{"title":"Concepts, Error Functions, and QUBO matrices","titles":["Interacting with Constraints in Julia"]},"38":{"title":"Usual Constraints","titles":["Interacting with Constraints in Julia"]},"39":{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","titles":[]},"40":{"title":"Counting and Summing Constraints","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"41":{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","titles":[]},"42":{"title":"Elementary Constraints","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"43":{"title":"Generic Constraints","titles":[]},"44":{"title":"Intention Constraints","titles":["Generic Constraints"]},"45":{"title":"Defining an intention constraint in JC-API","titles":["Generic Constraints","Intention Constraints"]},"46":{"title":"APIs","titles":["Generic Constraints","Intention Constraints"]},"47":{"title":"Extension Constraints","titles":["Generic Constraints"]},"48":{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","titles":[]},"49":{"title":"Constraints on Graphs","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"50":{"title":"Introduction to basics constraint-based modeling tools","titles":[]},"51":{"title":"Terminology","titles":["Introduction to basics constraint-based modeling tools"]},"52":{"title":"Constraint","titles":["Introduction to basics constraint-based modeling tools","Terminology"]},"53":{"title":"Constraint Instantiation","titles":["Introduction to basics constraint-based modeling tools","Terminology"]},"54":{"title":"Configuration","titles":["Introduction to basics constraint-based modeling tools","Terminology"]},"55":{"title":"Constraint Satisfaction or Violation by a Configuration","titles":["Introduction to basics constraint-based modeling tools","Terminology"]},"56":{"title":"Domain-defined variables","titles":["Introduction to basics constraint-based modeling tools"]},"57":{"title":"A versatile constraints' API","titles":["Introduction to basics constraint-based modeling tools"]},"58":{"title":"A collection of models","titles":["Introduction to basics constraint-based modeling tools"]},"59":{"title":"Internal Aspects","titles":["Introduction to basics constraint-based modeling tools"]},"60":{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","titles":[]},"61":{"title":"Constraints defined from Languages","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"62":{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","titles":[]},"63":{"title":"Packing and Scheduling Constraints","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"64":{"title":"Defining Variables and Exploring Domains","titles":[]},"65":{"title":"Implementing the AbstractDomain Interface","titles":["Defining Variables and Exploring Domains"]},"66":{"title":"Discrete Domains","titles":["Defining Variables and Exploring Domains"]},"67":{"title":"SetDomain","titles":["Defining Variables and Exploring Domains","Discrete Domains"]},"68":{"title":"RangeDomain","titles":["Defining Variables and Exploring Domains","Discrete Domains"]},"69":{"title":"Arbitrary Domains","titles":["Defining Variables and Exploring Domains","Discrete Domains"]},"70":{"title":"Continuous Domains","titles":["Defining Variables and Exploring Domains"]},"71":{"title":"Advanced Constraint Programming Techniques","titles":[]},"72":{"title":"Global Constraints and Their Uses","titles":["Advanced Constraint Programming Techniques"]},"73":{"title":"Search Strategies and Optimization","titles":["Advanced Constraint Programming Techniques"]},"74":{"title":"Applying Optimization Methods","titles":[]},"75":{"title":"Case Studies and Real-World Applications","titles":["Applying Optimization Methods"]},"76":{"title":"From Theory to Practice","titles":["Applying Optimization Methods"]},"77":{"title":"Community and Contribution","titles":[]},"78":{"title":"Joining the JuliaConstraint Community","titles":["Community and Contribution"]},"79":{"title":"Future Directions","titles":["Community and Contribution"]},"80":{"title":"Constraint Programming 101","titles":[]},"81":{"title":"What is Constraint Programming?","titles":["Constraint Programming 101"]},"82":{"title":"Basic Concepts and Terminology","titles":["Constraint Programming 101"]},"83":{"title":"How CP differs from other optimization techniques","titles":["Constraint Programming 101"]},"84":{"title":"Exploring JuliaConstraint Packages","titles":[]},"85":{"title":"Package Overviews","titles":["Exploring JuliaConstraint Packages"]},"86":{"title":"Installation and Getting Started Guides","titles":[]},"87":{"title":"Getting Started with Julia for CP and Optimization","titles":[]},"88":{"title":"Why Julia?","titles":["Getting Started with Julia for CP and Optimization"]},"89":{"title":"Setting Up Your Julia Environment","titles":["Getting Started with Julia for CP and Optimization"]},"90":{"title":"Your First Julia CP Model","titles":["Getting Started with Julia for CP and Optimization"]},"91":{"title":"Welcome to Julia Constraints","titles":[]},"92":{"title":"Building and Analyzing Models","titles":[]},"93":{"title":"Modeling Best Practices","titles":["Building and Analyzing Models"]},"94":{"title":"Performance Analysis and Improvement","titles":["Building and Analyzing Models"]},"95":{"title":"Dive into Optimization","titles":[]},"96":{"title":"Understanding Optimization","titles":["Dive into Optimization"]},"97":{"title":"Metaheuristics Overview","titles":["Dive into Optimization"]},"98":{"title":"Mathematical Programming Basics","titles":["Dive into Optimization"]},"99":{"title":"Tutorials and Experiments","titles":[]},"100":{"title":"Hands-On Tutorials","titles":["Tutorials and Experiments"]},"101":{"title":"Experimental Analysis","titles":["Tutorials and Experiments"]},"102":{"title":"Full API","titles":[]},"103":{"title":"Aggregation Layer","titles":[]},"104":{"title":"List of aggregations","titles":["Aggregation Layer"]},"105":{"title":"Layer generation","titles":["Aggregation Layer"]},"106":{"title":"JuliaConstraints","titles":[]},"107":{"title":"Operational Research vs Constraint Programming","titles":["JuliaConstraints"]},"108":{"title":"Constraint-Based Local Search","titles":["JuliaConstraints"]},"109":{"title":"Arithmetic Layer","titles":[]},"110":{"title":"List of arithmetic operations","titles":["Arithmetic Layer"]},"111":{"title":"Layer generation","titles":["Arithmetic Layer"]},"112":{"title":"Comparison Layer","titles":[]},"113":{"title":"List of comparisons","titles":["Comparison Layer"]},"114":{"title":"Non-parametric","titles":["Comparison Layer","List of comparisons"]},"115":{"title":"Param: :val","titles":["Comparison Layer","List of comparisons"]},"116":{"title":"Layer generation","titles":["Comparison Layer","List of comparisons"]},"117":{"title":"CompositionalNetworks.jl","titles":[]},"118":{"title":"Utilities","titles":["CompositionalNetworks.jl"]},"119":{"title":"Metrics","titles":["CompositionalNetworks.jl"]},"120":{"title":"ConstraintLearning.jl","titles":[]},"121":{"title":"Learning about Constraints","titles":[]},"122":{"title":"Parameters","titles":["Learning about Constraints"]},"123":{"title":"A layer structure for any ICN","titles":[]},"124":{"title":"Encoding for QUBO programs","titles":[]},"125":{"title":"Introduction to QUBOConstraints.jl","titles":[]},"126":{"title":"Basic features","titles":["Introduction to QUBOConstraints.jl"]},"127":{"title":"Learning QUBO matrices","titles":[]},"128":{"title":"Interface","titles":["Learning QUBO matrices"]},"129":{"title":"Examples with various optimizers","titles":["Learning QUBO matrices"]},"130":{"title":"Gradient Descent","titles":["Learning QUBO matrices","Examples with various optimizers"]},"131":{"title":"Constraint-based Local Search","titles":["Learning QUBO matrices","Examples with various optimizers"]},"132":{"title":"Transformations Layer","titles":[]},"133":{"title":"List of transformations","titles":["Transformations Layer"]},"134":{"title":"Non-parametric","titles":["Transformations Layer","List of transformations"]},"135":{"title":"Param: :val","titles":["Transformations Layer","List of transformations"]},"136":{"title":"Layer generation","titles":["Transformations Layer","List of transformations"]},"137":{"title":"MetaStrategist.jl","titles":[]},"138":{"title":"API","titles":[]},"139":{"title":"BenchmarkTools Extension","titles":[]},"140":{"title":"Usage","titles":["BenchmarkTools Extension"]},"141":{"title":"Options","titles":["BenchmarkTools Extension"]},"142":{"title":"Chairmarks Extension","titles":[]},"143":{"title":"Usage","titles":["Chairmarks Extension"]},"144":{"title":"Options","titles":["Chairmarks Extension"]},"145":{"title":"PerfChecker.jl","titles":[]},"146":{"title":"Usage","titles":["PerfChecker.jl"]},"147":{"title":"Extending PerfChecker","titles":[]},"148":{"title":"The Default Options","titles":["Extending PerfChecker"]},"149":{"title":"Package initialization","titles":["Extending PerfChecker"]},"150":{"title":"Preparatory Code:","titles":["Extending PerfChecker"]},"151":{"title":"Main Code to be Performance Tested","titles":["Extending PerfChecker"]},"152":{"title":"Post Performance Testing Code","titles":["Extending PerfChecker"]},"153":{"title":"Converting the result into a Table","titles":["Extending PerfChecker"]},"154":{"title":"Tutorial","titles":[]},"155":{"title":"Public API","titles":[]},"156":{"title":"Solvers","titles":[]},"157":{"title":"CBLS.jl","titles":[]},"158":{"title":"LocalSearchSolvers.jl","titles":[]}},"dirtCount":0,"index":[["∅",{"2":{"157":1}}],["∩",{"2":{"157":1}}],["$kwarg",{"2":{"154":1}}],["$d",{"2":{"151":1}}],["$block",{"2":{"150":1,"151":1}}],["θ",{"2":{"130":2}}],["^2",{"2":{"130":1}}],["η",{"2":{"120":1,"130":6}}],["σ",{"2":{"102":2,"126":2,"155":2}}],["+",{"2":{"102":9,"104":1,"106":1,"140":1,"143":1}}],["∉",{"2":{"102":3,"157":2}}],["⋯",{"2":{"90":2}}],["×",{"2":{"90":3}}],["≠",{"2":{"45":1,"46":3,"47":3}}],["||",{"2":{"102":2,"157":1}}],["|the",{"2":{"45":1}}],["|≠|x",{"2":{"45":1}}],["|x",{"2":{"45":1}}],["−x",{"2":{"45":2}}],["7",{"2":{"31":3,"40":2,"63":3,"102":5,"138":1}}],["`function",{"2":{"158":1}}],["`struct",{"2":{"158":1}}],["``",{"2":{"157":3}}],["`",{"2":{"61":1,"102":1,"120":1}}],["`automaton`",{"2":{"61":1,"102":1}}],["`x`",{"2":{"61":2,"102":2}}],["`grid`",{"2":{"31":1}}],["`m`",{"2":{"31":1}}],["q",{"2":{"120":7,"130":18}}],["quite",{"2":{"90":1}}],["quote",{"2":{"149":1,"150":1,"151":1}}],["quot",{"2":{"63":4,"90":6,"102":10,"106":4,"146":2,"150":2}}],["qubooptimizer",{"2":{"120":2}}],["qubogradientoptimizer",{"2":{"120":4}}],["qubo",{"0":{"34":1,"37":1,"124":1,"127":1},"1":{"128":1,"129":1,"130":1,"131":1},"2":{"34":1,"37":1,"102":5,"120":4,"126":4,"128":1,"155":2}}],["quboconstraints",{"0":{"125":1},"1":{"126":1},"2":{"32":1,"34":1,"37":1,"102":7,"120":1,"124":3,"125":1,"126":2,"128":2,"130":1,"155":5}}],["quadractic",{"2":{"31":1}}],["queens",{"2":{"31":4}}],["qap",{"2":{"31":1}}],["right",{"2":{"102":18,"134":15,"136":3}}],["rules",{"2":{"61":2,"102":2,"157":1}}],["ruler",{"2":{"31":1,"45":4,"102":2,"157":2}}],["runtime",{"2":{"158":1}}],["runs",{"2":{"150":1,"151":1}}],["running",{"2":{"150":1}}],["run",{"2":{"31":1,"90":1,"120":1,"150":1,"151":1,"152":1,"157":1,"158":5}}],["rawoptimizerattribute",{"2":{"157":2}}],["raw",{"2":{"31":2}}],["rates",{"2":{"31":1}}],["rate",{"2":{"31":1}}],["rangeset",{"2":{"68":3}}],["ranges",{"2":{"24":1,"102":1,"155":1}}],["rangedomain",{"0":{"68":1},"2":{"18":1,"21":1,"24":3,"27":2,"46":1,"47":1,"102":5,"155":3}}],["range",{"2":{"18":1,"21":1,"24":3,"56":1,"57":1,"61":1,"65":1,"68":3,"102":4,"155":3,"157":1}}],["randomly",{"2":{"19":2,"22":1,"25":1,"30":1,"102":1,"122":1,"158":1}}],["random",{"2":{"19":2,"22":1,"25":1,"30":10,"65":1,"102":10,"122":2,"155":1,"158":2}}],["rand",{"2":{"18":1,"19":16,"22":9,"25":9,"30":8,"65":2,"102":13,"122":8,"154":1,"155":1,"158":2}}],["round",{"2":{"130":1,"158":1}}],["routing",{"2":{"49":2,"102":2,"107":1}}],["role",{"2":{"98":1}}],["roles",{"2":{"33":1,"36":1}}],["robust",{"2":{"59":1}}],["rows",{"2":{"90":1}}],["row",{"2":{"31":1,"90":1}}],["root",{"2":{"28":1,"102":1,"155":1}}],["r",{"2":{"18":2,"21":2,"24":2,"31":2,"37":1,"61":3,"102":5,"130":8,"155":2}}],["re",{"2":{"158":1}}],["remote",{"2":{"158":2}}],["remotely",{"2":{"158":1}}],["removed",{"2":{"68":1}}],["ref",{"2":{"132":1,"158":6}}],["reference",{"2":{"147":1}}],["refers",{"2":{"53":1,"55":1}}],["refer",{"2":{"31":4}}],["reinforcement",{"2":{"106":1}}],["requires",{"2":{"154":1}}],["required",{"2":{"102":1,"128":1}}],["requirements",{"2":{"7":2,"102":2}}],["rev",{"2":{"102":5,"134":1,"136":1}}],["reverse",{"2":{"31":1,"102":1,"136":1,"154":2}}],["reduce",{"2":{"102":3,"107":1,"110":2,"118":1}}],["registries",{"2":{"138":1}}],["regions",{"2":{"90":1}}],["regularconstraint",{"2":{"157":1}}],["regularization",{"2":{"102":2,"155":2}}],["regular",{"2":{"4":1,"5":1,"33":1,"36":1,"61":9,"102":10,"157":2}}],["reproducible",{"2":{"145":1}}],["represented",{"2":{"61":2,"102":2,"150":1,"157":1}}],["represents",{"2":{"54":1,"102":1,"157":3}}],["representing",{"2":{"28":1,"61":1,"102":2,"155":1,"157":3}}],["repositories",{"2":{"106":1}}],["replace",{"2":{"158":1}}],["replaced",{"2":{"68":1}}],["repl",{"2":{"89":1}}],["recommended",{"2":{"68":1,"157":1,"158":1}}],["recognize",{"2":{"7":1}}],["reusable",{"2":{"58":1}}],["relies",{"2":{"132":1}}],["relevant",{"2":{"50":1}}],["relate",{"2":{"102":1,"136":1}}],["related",{"2":{"17":1,"64":1,"102":1,"120":1,"121":1,"136":1,"139":1,"142":1,"153":1,"155":1}}],["relatively",{"2":{"102":1,"118":1,"158":1}}],["relation",{"2":{"52":1}}],["relationships",{"2":{"47":1}}],["retrieve",{"2":{"31":1}}],["returned",{"2":{"102":1}}],["returns",{"2":{"9":2,"19":3,"22":2,"25":2,"28":2,"30":1,"102":20,"122":1,"136":1,"138":1,"140":1,"143":1,"155":4,"157":19,"158":1}}],["return",{"2":{"1":3,"3":4,"5":1,"7":3,"18":3,"19":5,"21":3,"22":8,"24":3,"25":8,"28":1,"30":2,"31":1,"33":3,"34":4,"37":4,"38":3,"40":4,"42":1,"49":1,"61":1,"63":2,"102":64,"118":1,"120":4,"122":2,"123":5,"130":8,"148":1,"151":1,"153":1,"154":1,"155":21,"157":1,"158":21}}],["reach",{"2":{"102":1,"119":1,"155":1}}],["reactants",{"2":{"31":2}}],["reactions",{"2":{"31":1}}],["reaction",{"2":{"31":4}}],["readers",{"2":{"76":1,"78":1,"91":1}}],["real",{"0":{"75":1},"2":{"18":3,"21":5,"24":4,"76":1,"91":1,"102":7,"155":6,"157":2}}],["resume",{"2":{"158":1}}],["result",{"0":{"153":1},"2":{"102":23,"118":1,"134":8,"136":2,"150":1,"151":1,"152":1}}],["results",{"2":{"21":2,"31":1,"102":3,"146":3,"154":1}}],["restart",{"2":{"158":6}}],["restricting",{"2":{"158":2}}],["restriction",{"2":{"102":2,"155":2}}],["restricts",{"2":{"40":3,"102":3}}],["restricted",{"2":{"19":1,"22":1,"25":1,"158":4}}],["respect",{"2":{"102":1,"136":1}}],["respective",{"2":{"54":1,"64":1}}],["respectively",{"2":{"31":2}}],["research",{"0":{"107":1},"2":{"79":1,"106":1,"107":1}}],["resource",{"2":{"58":1}}],["δ",{"2":{"13":1,"102":1,"120":1,"130":1,"155":1}}],["∈",{"2":{"9":1,"18":1,"19":7,"22":7,"25":7,"65":2,"102":9,"155":2,"157":2,"158":3}}],["wrappers",{"2":{"106":1}}],["wrapping",{"2":{"106":1}}],["write",{"2":{"102":2,"106":1,"155":2}}],["would",{"2":{"53":1,"102":1}}],["worse",{"2":{"158":3}}],["world",{"0":{"75":1},"2":{"76":1,"91":1}}],["works",{"2":{"102":1,"147":1,"148":1,"155":1}}],["work",{"2":{"34":1,"37":1}}],["word",{"2":{"7":6,"30":2,"61":2,"102":8,"122":2,"155":1,"157":1}}],["was",{"2":{"147":1,"158":1}}],["want",{"2":{"140":1,"143":1}}],["warning",{"2":{"31":1,"51":1,"102":1}}],["way",{"2":{"17":1,"44":1,"46":1,"47":1,"64":1,"102":3,"122":1,"140":1,"143":1,"157":1}}],["while",{"2":{"107":2,"108":1,"158":5}}],["which",{"2":{"19":1,"31":7,"33":1,"36":1,"55":2,"61":2,"90":1,"102":6,"118":1,"123":1,"145":1,"147":1,"155":1,"157":1}}],["whole",{"2":{"102":1,"155":1,"158":1}}],["why",{"0":{"88":1}}],["what",{"0":{"81":1},"2":{"90":1,"91":1,"102":1}}],["whether",{"2":{"40":1,"51":1,"55":1,"63":1,"102":4,"157":1}}],["where",{"2":{"18":5,"19":5,"21":5,"22":4,"24":5,"25":4,"30":2,"31":1,"40":1,"49":2,"61":1,"65":1,"75":1,"102":18,"107":1,"108":2,"122":2,"130":1,"146":1,"155":6,"157":8,"158":69}}],["when",{"2":{"9":2,"31":1,"50":1,"90":1,"102":21,"120":2,"134":8,"136":2,"146":1,"155":2,"157":1,"158":2}}],["well",{"2":{"90":1}}],["welcome",{"0":{"91":1},"2":{"58":1}}],["weighting",{"2":{"120":1}}],["weighted",{"2":{"102":1}}],["weight",{"2":{"31":1,"102":2,"126":1,"155":1}}],["weights=nothing",{"2":{"102":1,"155":1}}],["weights",{"2":{"31":3,"102":18,"120":5,"123":6,"155":8}}],["weigths",{"2":{"31":1,"119":1,"123":1}}],["we",{"2":{"9":1,"11":1,"13":1,"15":1,"32":1,"33":1,"35":1,"38":1,"44":1,"45":1,"46":1,"50":1,"51":1,"53":1,"66":1,"69":1,"70":1,"89":4,"90":6,"122":1}}],["w",{"2":{"7":2,"30":2,"102":4,"120":2,"122":2,"123":2,"155":2}}],["wip",{"2":{"145":1}}],["wide",{"2":{"57":1,"61":1,"102":1,"157":1}}],["width",{"2":{"33":2,"38":2,"102":2,"155":2}}],["width=150",{"2":{"33":1,"38":1,"102":1,"155":1}}],["wikipedia",{"2":{"31":2,"90":1}}],["without",{"2":{"70":1,"102":17,"134":8}}],["with",{"0":{"32":1,"35":1,"87":1,"129":1},"1":{"33":1,"34":1,"36":1,"37":1,"38":1,"88":1,"89":1,"90":1,"130":1,"131":1},"2":{"5":1,"7":1,"21":1,"28":1,"30":1,"31":8,"33":5,"36":1,"38":4,"51":1,"53":1,"54":1,"57":1,"58":1,"61":4,"63":3,"68":1,"69":1,"83":1,"86":1,"90":5,"102":58,"106":3,"107":3,"108":1,"116":1,"118":2,"120":3,"123":4,"134":8,"136":3,"139":1,"141":1,"142":1,"144":1,"146":2,"148":1,"149":1,"154":1,"155":11,"157":6,"158":8}}],["within",{"2":{"4":1,"35":1,"61":2,"64":1,"65":1,"85":1,"89":1,"102":8,"103":1,"109":1,"112":1,"132":1,"157":6,"158":1}}],["will",{"2":{"5":1,"33":1,"38":1,"50":1,"64":1,"68":1,"69":1,"89":2,"90":1,"102":8,"105":1,"111":1,"116":1,"120":1,"123":1,"124":1,"139":1,"142":1,"155":7,"157":2}}],["kwarg",{"2":{"154":2}}],["keep",{"2":{"102":1,"126":1}}],["key",{"2":{"82":1,"102":2,"150":1,"151":1}}],["keyword",{"2":{"33":2,"34":1,"36":2,"37":1,"102":9,"147":1,"155":1,"158":1}}],["keywords",{"2":{"5":1,"33":1,"36":1,"102":2,"155":1}}],["k",{"2":{"102":2,"110":2,"158":1}}],["known",{"2":{"31":1,"40":3,"54":1,"102":5,"155":2,"158":1}}],["kargs",{"2":{"5":1,"34":4,"37":4,"102":7,"120":6,"155":5}}],["kind=",{"2":{"158":1}}],["kinds",{"2":{"7":1,"66":1}}],["kind",{"2":{"5":1,"13":1,"28":1,"30":1,"33":1,"36":1,"102":3,"122":1,"155":1,"158":6}}],["branch",{"2":{"146":1}}],["breaking",{"2":{"138":3,"146":3}}],["block",{"2":{"90":1,"146":1,"150":4,"151":2}}],["blocks",{"2":{"57":1,"90":2}}],["blank",{"2":{"31":2}}],["binarization==",{"2":{"130":1}}],["binarization",{"2":{"102":4,"120":2,"124":4,"130":13,"155":4}}],["binarize",{"2":{"102":2,"124":2,"130":3,"155":2}}],["binarized",{"2":{"102":1,"126":1}}],["binary",{"2":{"47":1,"102":1,"124":1,"155":1}}],["bias",{"2":{"102":3,"119":1,"155":3}}],["bit",{"2":{"102":2,"124":1,"155":2}}],["bits",{"2":{"102":3,"123":2,"155":1}}],["bitvector",{"2":{"102":5,"118":4,"155":1}}],["bijective",{"2":{"3":2,"102":2}}],["building",{"0":{"92":1},"1":{"93":1,"94":1},"2":{"93":1}}],["build",{"2":{"46":1,"47":1,"106":1,"114":4,"115":4,"116":1,"118":1,"119":1,"122":10,"123":1,"134":2,"135":6,"147":1,"157":2}}],["but",{"2":{"31":1,"90":1,"153":1}}],["b2",{"2":{"39":1}}],["b1",{"2":{"39":1}}],["bariable",{"2":{"158":1}}],["backends",{"2":{"145":1,"146":1}}],["backend",{"2":{"141":1,"144":1,"146":3,"149":1,"153":1}}],["back",{"2":{"49":2,"102":2}}],["backward",{"2":{"31":1}}],["basis",{"2":{"90":1}}],["basics",{"0":{"50":1,"98":1},"1":{"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1}}],["basic",{"0":{"82":1,"126":1},"2":{"4":1,"89":1,"102":5,"120":1,"126":1,"136":4,"153":1}}],["base",{"0":{"19":1,"22":1,"25":1},"2":{"4":1,"9":2,"18":3,"19":12,"22":8,"25":9,"27":3,"30":4,"31":9,"50":1,"65":3,"102":29,"122":4,"123":1,"126":2,"155":6,"157":5,"158":4}}],["based",{"0":{"1":1,"50":1,"108":1,"131":1},"1":{"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1},"2":{"5":3,"15":1,"28":1,"30":1,"33":4,"36":3,"38":1,"50":1,"102":10,"108":1,"120":2,"122":1,"123":1,"124":1,"136":2,"139":1,"142":1,"155":5,"157":1}}],["b",{"2":{"18":1,"19":8,"21":1,"22":8,"24":1,"25":8,"61":2,"102":11,"155":1}}],["boxplots",{"2":{"154":4}}],["boxes",{"2":{"90":1}}],["bounded",{"2":{"102":1}}],["bounding",{"2":{"102":6,"135":1,"136":2}}],["bounds",{"2":{"18":1,"65":1,"102":1,"155":1}}],["bold",{"2":{"51":1}}],["bool=true",{"2":{"39":1,"40":1,"102":1}}],["bool=false",{"2":{"39":1,"40":3,"102":3}}],["boolparameterdomain",{"2":{"30":1,"102":1,"122":1}}],["boolean",{"2":{"5":1,"11":1,"30":1,"33":1,"36":1,"102":5,"146":1,"155":2}}],["bool",{"2":{"5":1,"18":4,"21":4,"24":4,"33":1,"36":1,"40":1,"63":3,"102":9,"130":1,"146":1,"155":4,"157":8,"158":4}}],["both",{"2":{"4":1,"13":1,"17":1,"31":2,"64":1,"102":5,"107":1,"155":1,"157":1}}],["bytes",{"2":{"153":4,"154":1}}],["by",{"0":{"55":1},"2":{"3":2,"4":1,"7":1,"9":2,"19":1,"22":1,"24":1,"25":1,"31":1,"32":2,"33":1,"34":1,"35":2,"36":1,"37":1,"40":1,"44":2,"47":3,"61":4,"86":1,"100":1,"102":20,"108":1,"118":1,"120":4,"123":1,"150":2,"155":5,"157":4,"158":10}}],["below",{"2":{"154":1}}],["belongs",{"2":{"19":1,"22":1,"25":1,"158":2}}],["begin",{"2":{"140":2,"143":2,"146":2,"154":2,"157":4,"158":22}}],["benchmarked",{"2":{"140":1,"143":1}}],["benchmark",{"2":{"140":1,"153":1}}],["benchmarking",{"2":{"139":1,"142":1}}],["benchmarktools",{"0":{"139":1},"1":{"140":1,"141":1},"2":{"139":1,"140":2,"141":8,"143":1,"146":1}}],["better",{"2":{"107":1,"158":2}}],["between",{"2":{"3":2,"5":1,"13":2,"18":3,"21":2,"24":2,"31":2,"39":1,"45":2,"47":1,"51":1,"52":1,"65":1,"102":15,"155":7,"157":4,"158":1}}],["best",{"0":{"93":1},"2":{"89":1,"93":1,"120":1,"158":1}}],["been",{"2":{"66":1,"75":1,"139":1,"142":1,"158":7}}],["before",{"2":{"63":8,"102":8,"150":1}}],["because",{"2":{"44":1,"47":1,"55":2}}],["behavior",{"2":{"28":2,"65":1,"69":1,"102":2,"155":1}}],["be",{"0":{"151":1},"2":{"3":2,"17":1,"18":1,"28":3,"31":2,"40":2,"44":2,"47":3,"51":1,"52":1,"53":1,"54":1,"59":1,"61":3,"64":2,"68":3,"69":1,"70":1,"89":1,"90":1,"102":28,"105":1,"107":2,"108":2,"111":1,"116":1,"120":2,"122":1,"123":5,"124":1,"136":1,"140":2,"143":2,"146":4,"147":1,"148":1,"149":1,"150":2,"151":2,"152":2,"153":2,"155":9,"157":18,"158":3}}],["update",{"2":{"102":2}}],["upcoming",{"2":{"79":1}}],["up",{"0":{"89":1},"2":{"69":1,"158":1}}],["unfold",{"2":{"154":2}}],["undefkeyworderror",{"2":{"130":1}}],["under",{"2":{"102":1,"136":1}}],["understanding",{"0":{"96":1},"2":{"107":1}}],["unrolled",{"2":{"102":1}}],["unacceptable",{"2":{"102":2,"157":1}}],["unlikely",{"2":{"59":1}}],["unordered",{"2":{"24":1,"67":1,"102":1,"155":1}}],["until",{"2":{"11":1,"69":1,"102":1,"155":1}}],["unique",{"2":{"3":2,"45":2,"102":3,"157":2}}],["union",{"2":{"3":4,"5":1,"7":2,"15":1,"19":2,"22":1,"25":1,"27":2,"30":2,"40":1,"102":12,"122":2,"155":4,"157":4,"158":69}}],["utilities",{"0":{"118":1},"2":{"11":1,"59":1}}],["utilized",{"2":{"4":1,"102":1,"157":1}}],["us",{"2":{"157":1}}],["usage",{"0":{"140":1,"143":1,"146":1},"2":{"46":1,"139":1,"142":1,"146":1}}],["using",{"2":{"33":1,"38":1,"46":2,"47":2,"68":2,"90":1,"102":1,"106":1,"120":1,"140":2,"143":2,"145":1,"146":3,"149":1,"154":3,"155":1,"157":1}}],["usually",{"2":{"102":1,"158":1}}],["usual",{"0":{"33":1,"36":1,"38":1},"2":{"5":8,"33":14,"34":3,"36":5,"37":3,"38":9,"44":1,"45":3,"46":1,"102":24,"103":1,"109":1,"112":1,"132":1,"155":14}}],["uses",{"0":{"72":1},"2":{"102":1,"107":2,"108":2,"120":1,"136":1}}],["user",{"2":{"33":1,"36":1,"57":1,"150":1,"151":1,"158":2}}],["users",{"2":{"4":1,"17":1,"59":1,"89":2,"147":1,"148":1}}],["useful",{"2":{"15":1,"102":1,"108":2,"123":1,"157":4,"158":1}}],["used",{"2":{"3":6,"5":2,"7":3,"17":1,"18":1,"30":8,"33":2,"36":2,"42":2,"49":2,"59":1,"61":1,"63":8,"65":1,"89":1,"102":40,"107":1,"118":1,"120":2,"123":2,"128":1,"140":1,"143":1,"146":3,"155":1,"157":4,"158":1}}],["use",{"2":{"1":2,"4":1,"11":1,"17":1,"24":1,"34":2,"37":2,"40":1,"45":2,"59":1,"88":1,"89":2,"90":1,"102":5,"108":2,"132":1,"145":1,"147":1,"155":2,"157":2,"158":2}}],["ptm",{"2":{"158":1}}],["png",{"2":{"154":2}}],["pkgextensions",{"2":{"147":1}}],["pkgs",{"2":{"146":1,"154":1}}],["pkg",{"2":{"138":2,"146":1,"147":1}}],["penalty",{"2":{"120":9,"130":20}}],["perfchecker",{"0":{"145":1,"147":1},"1":{"146":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1},"2":{"138":5,"139":1,"140":1,"142":1,"143":1,"145":1,"146":2,"147":2,"148":3,"149":1,"150":1,"151":2,"152":1,"153":3,"154":3}}],["performance",{"0":{"94":1,"151":1,"152":1},"2":{"59":1,"88":1,"94":1,"145":2,"146":4,"148":1,"150":1,"151":1,"152":1,"154":2,"158":1}}],["performances",{"0":{"6":1,"8":1,"10":1,"12":1,"14":1,"16":1,"20":1,"23":1,"26":1,"29":1}}],["perform",{"2":{"28":1,"102":1,"155":1,"158":1}}],["per",{"2":{"32":1,"35":1,"102":1,"124":1,"155":1}}],["pôpulation",{"2":{"120":1}}],["phase",{"2":{"102":1,"123":2}}],["public",{"0":{"155":1}}],["push",{"2":{"130":1}}],["pure",{"2":{"106":3}}],["purely",{"2":{"106":1}}],["purposes",{"2":{"102":1,"120":1}}],["purpose",{"2":{"85":1}}],["puzzles",{"2":{"90":1}}],["puzzle",{"2":{"90":3}}],["plots",{"2":{"154":2}}],["plotting",{"2":{"153":1,"154":1}}],["plainly",{"2":{"149":1}}],["placeholder",{"2":{"69":1}}],["pluto",{"2":{"89":1}}],["please",{"2":{"45":1,"89":1}}],["pivotal",{"2":{"35":1}}],["p",{"2":{"31":2,"102":1,"119":1,"155":1,"157":1}}],["pseudo",{"2":{"30":1,"102":1}}],["pool",{"2":{"158":1}}],["populate",{"2":{"148":1}}],["population",{"2":{"102":2,"120":2,"155":2}}],["pop",{"2":{"120":2}}],["popsize=100",{"2":{"120":1}}],["popsize=200",{"2":{"102":1,"155":1}}],["popsize",{"2":{"102":4,"155":4}}],["positional",{"2":{"102":1}}],["positive",{"2":{"102":15,"104":3,"155":4}}],["post",{"0":{"152":1},"2":{"91":1,"152":2,"153":1,"158":1}}],["posed",{"2":{"90":1}}],["possible",{"2":{"54":1,"89":1,"107":1,"113":1,"133":1,"157":1,"158":2}}],["possibly",{"2":{"24":1,"69":1,"102":2}}],["pos",{"2":{"31":2}}],["point",{"2":{"19":3,"22":2,"25":2,"30":1,"63":2,"102":4,"122":1}}],["points",{"2":{"18":1,"21":1,"22":1,"24":3,"25":2,"102":5,"155":4}}],["practices",{"0":{"93":1},"2":{"93":1}}],["practice",{"0":{"76":1}}],["practical",{"2":{"32":1,"35":1,"69":1}}],["printing",{"2":{"158":2}}],["print",{"2":{"90":1,"158":8}}],["principles",{"2":{"51":1}}],["primary",{"2":{"85":1,"146":1}}],["primarily",{"2":{"17":1}}],["prep",{"2":{"150":3}}],["preparatory",{"0":{"150":1},"2":{"146":1,"150":1}}],["previous",{"2":{"146":3}}],["previously",{"2":{"46":1}}],["prelimnary",{"2":{"140":1,"143":1}}],["preliminaries",{"2":{"120":2,"130":3}}],["precision",{"2":{"120":1,"130":6}}],["prefix",{"2":{"102":3}}],["prefixed",{"2":{"33":1,"36":1}}],["preferences",{"2":{"102":1,"155":1}}],["predict",{"2":{"120":1,"130":9}}],["predictions",{"2":{"120":1}}],["prediction",{"2":{"120":1}}],["predicates",{"2":{"90":2}}],["predicate",{"2":{"44":1,"45":4,"46":2,"47":1,"51":1,"52":1,"102":9,"123":1,"157":7}}],["predefined",{"2":{"58":1}}],["pretty",{"2":{"33":3,"38":3,"102":3,"130":1,"155":3,"158":2}}],["present",{"2":{"31":1,"50":1,"102":1,"154":1}}],["proportional",{"2":{"102":1,"155":1}}],["property",{"2":{"44":1}}],["properties",{"2":{"31":1,"65":1}}],["properly",{"2":{"18":1,"65":1,"102":1,"155":1}}],["produce",{"2":{"102":1,"118":1}}],["product",{"2":{"102":1,"110":1}}],["products",{"2":{"31":2}}],["prod",{"2":{"102":2,"110":2}}],["projects",{"2":{"79":1}}],["providing",{"2":{"57":1,"102":2,"157":1}}],["provided",{"2":{"102":18,"134":8,"146":2,"150":1}}],["provide",{"2":{"15":1,"33":1,"34":1,"37":1,"38":1,"44":2,"46":2,"47":1,"65":1,"66":1,"69":1,"70":1,"86":1,"89":1,"100":1,"106":1,"122":1,"139":1,"142":1,"146":1,"148":1,"157":1}}],["provides",{"2":{"4":1,"50":1,"58":1,"59":1,"64":1,"90":1,"91":1,"106":1,"145":2}}],["programs",{"0":{"124":1}}],["programming",{"0":{"71":1,"80":1,"81":1,"98":1,"107":1},"1":{"72":1,"73":1,"81":1,"82":1,"83":1},"2":{"3":6,"4":1,"32":1,"35":1,"40":3,"42":2,"47":1,"49":2,"50":2,"63":6,"66":1,"83":1,"90":1,"91":1,"96":1,"98":1,"102":20,"106":3,"107":2,"108":4,"136":1,"157":1}}],["progress",{"2":{"34":1,"37":1}}],["problem",{"2":{"31":6,"45":1,"53":3,"76":1,"90":1,"107":2,"108":1,"158":3}}],["problems",{"2":{"31":2,"49":2,"50":1,"58":1,"61":1,"63":6,"70":1,"72":1,"73":1,"81":1,"90":1,"91":1,"96":1,"102":11,"106":4,"107":3,"108":6,"157":2,"158":1}}],["processing",{"2":{"102":1,"136":1}}],["process",{"2":{"58":1,"76":1,"102":1,"107":1,"120":1,"136":1,"146":1,"158":7}}],["processes",{"2":{"11":1,"107":1}}],["proceeds",{"2":{"31":1}}],["pacakge",{"2":{"146":1}}],["packing",{"0":{"63":1}}],["packages",{"0":{"84":1},"1":{"85":1},"2":{"4":2,"7":2,"102":2,"106":4,"145":1}}],["package",{"0":{"85":1,"149":1},"2":{"4":3,"5":1,"17":1,"35":1,"64":1,"85":1,"86":1,"138":1,"145":2,"146":1,"149":1,"154":1}}],["passed",{"2":{"102":2}}],["page",{"2":{"89":1}}],["patterfolds",{"2":{"154":1}}],["patterns",{"2":{"154":1}}],["pattern",{"2":{"102":1,"123":1}}],["patternfolds",{"2":{"21":1,"102":1,"154":3}}],["patch",{"2":{"138":2,"146":2}}],["patches",{"2":{"138":1,"146":1}}],["path",{"2":{"61":1,"102":6,"140":1,"143":1,"146":2,"154":1,"155":5,"157":1,"158":5}}],["parse",{"2":{"102":1}}],["paradigm",{"2":{"50":1,"107":1}}],["param=nothing",{"2":{"102":1,"155":1}}],["params",{"2":{"102":2,"130":1,"155":1}}],["parametric",{"0":{"114":1,"134":1},"2":{"102":4,"116":1,"120":1,"136":2,"155":3}}],["parameterization",{"2":{"102":1,"136":1}}],["parameter",{"2":{"5":3,"30":1,"33":4,"36":4,"61":2,"102":18,"118":2,"120":1,"126":1,"136":6,"150":1,"155":4,"157":1}}],["parameters=constraintcommons",{"2":{"5":1,"102":1,"155":1}}],["parameters",{"0":{"5":1,"30":1,"33":1,"36":1,"122":1},"1":{"6":1},"2":{"4":1,"5":19,"28":3,"30":12,"33":12,"36":8,"38":4,"102":44,"113":1,"120":5,"122":6,"133":1,"136":2,"141":8,"155":25}}],["param",{"0":{"115":1,"135":1},"2":{"30":2,"34":4,"37":4,"102":37,"115":4,"116":2,"118":5,"122":2,"135":6,"136":16,"155":20}}],["parts",{"2":{"59":1}}],["particularly",{"2":{"123":1}}],["particular",{"2":{"53":1}}],["partially",{"2":{"90":1,"102":1,"155":1}}],["partial",{"2":{"11":1,"28":1,"102":3,"155":2,"158":1}}],["part",{"2":{"28":1,"32":1,"35":1,"70":1,"89":1,"102":2,"106":1,"155":1}}],["pairs",{"2":{"31":2,"102":1,"157":2}}],["pairvarsparameterdomain",{"2":{"30":1,"102":1,"122":1}}],["paired",{"2":{"5":1,"30":1,"33":1,"36":1,"102":2}}],["pair",{"2":{"1":16,"5":2,"28":1,"31":5,"33":2,"36":2,"40":2,"42":4,"62":9,"63":15,"102":64,"120":3,"123":1,"155":1,"157":15}}],["zeros",{"2":{"130":3}}],["zero",{"2":{"31":1,"63":11,"102":11}}],["z",{"2":{"2":4,"39":4,"62":4}}],["lst",{"2":{"158":5}}],["ls",{"2":{"157":1}}],["load",{"2":{"149":1}}],["loss",{"2":{"120":2,"130":2}}],["loggingextra",{"2":{"158":1}}],["logging",{"2":{"158":1}}],["log",{"2":{"114":4,"115":4,"116":1,"118":1,"119":1,"122":10,"123":1,"134":2,"135":6,"158":1}}],["logic",{"2":{"102":2,"157":1}}],["logical",{"2":{"44":1}}],["low",{"2":{"106":1}}],["lower",{"2":{"102":1,"155":1}}],["lowest",{"2":{"18":1,"21":1,"24":1,"102":1,"155":1}}],["local",{"0":{"108":1,"131":1},"2":{"102":5,"108":1,"120":1,"123":1,"146":1,"155":5,"157":1,"158":7}}],["localsearchsolverscblstodo",{"2":{"89":1}}],["localsearchsolvers",{"0":{"158":1},"2":{"89":2,"106":1,"120":1,"157":1,"158":141}}],["locations",{"2":{"31":5}}],["loop",{"2":{"158":8}}],["loops",{"2":{"49":2,"102":3}}],["looks",{"2":{"146":1,"148":1,"149":1,"151":1,"154":1}}],["look",{"2":{"89":1,"90":1}}],["l",{"2":{"31":1,"102":15,"134":4,"135":1,"136":3,"153":5,"157":2}}],["l=n²",{"2":{"31":1}}],["lt",{"2":{"7":2,"18":1,"19":4,"22":4,"24":1,"25":4,"31":1,"44":1,"45":1,"61":2,"65":1,"102":10,"122":1,"155":2,"157":2,"158":3}}],["launch",{"2":{"158":1}}],["lazy",{"2":{"102":2,"118":2,"132":2,"155":2}}],["lang",{"2":{"102":3,"155":1}}],["lang=",{"2":{"102":1,"155":1}}],["language=",{"2":{"102":1,"155":1}}],["languageparameterdomain",{"2":{"30":1,"102":1,"122":1}}],["language",{"2":{"5":2,"33":2,"36":2,"46":1,"61":17,"89":3,"102":25,"155":5,"157":4}}],["languages",{"0":{"7":1,"61":1},"1":{"8":1},"2":{"4":1,"7":1,"30":1,"44":1,"102":1}}],["large",{"2":{"90":1,"107":1,"108":1}}],["labels",{"2":{"61":2,"102":2,"157":2}}],["labeled",{"2":{"61":2,"102":2,"157":2}}],["last",{"2":{"61":1,"90":1,"102":1,"138":2,"146":5,"157":1,"158":1}}],["layered",{"2":{"102":1,"155":1}}],["layers",{"2":{"102":9,"136":1,"155":4}}],["layer",{"0":{"103":1,"105":1,"109":1,"111":1,"112":1,"116":1,"123":1,"132":1,"136":1},"1":{"104":1,"105":1,"110":1,"111":1,"113":1,"114":1,"115":1,"116":1,"133":1,"134":1,"135":1,"136":1},"2":{"4":1,"22":2,"25":2,"102":42,"103":1,"105":3,"109":1,"111":3,"112":1,"114":1,"116":3,"120":4,"123":28,"132":1,"136":3,"155":16}}],["liking",{"2":{"148":1}}],["like",{"2":{"83":1,"97":1,"140":1,"143":1,"146":2,"148":1,"149":1,"151":1,"154":1}}],["likely",{"2":{"4":1}}],["littledict",{"2":{"102":2,"123":2,"136":1}}],["lies",{"2":{"33":1,"36":1}}],["links",{"2":{"31":1,"139":1,"142":1,"158":1}}],["linear",{"2":{"83":1,"96":1,"102":3,"126":3,"155":3}}],["line",{"2":{"31":9,"89":1}}],["limit",{"2":{"28":6,"63":2,"102":10,"155":8,"157":1,"158":10}}],["listed",{"2":{"102":2,"157":3}}],["listing",{"2":{"47":1}}],["list=x",{"2":{"33":1,"38":1,"102":2,"155":1}}],["list",{"0":{"104":1,"110":1,"113":1,"133":1},"1":{"114":1,"115":1,"116":1,"134":1,"135":1,"136":1},"2":{"0":2,"1":13,"2":2,"3":16,"5":5,"24":1,"25":1,"33":4,"36":4,"39":2,"40":24,"42":6,"45":1,"46":1,"47":1,"49":5,"61":8,"63":5,"102":92,"113":1,"133":1,"146":2,"155":3,"157":1,"158":11}}],["left",{"2":{"102":18,"134":10,"136":3}}],["let",{"2":{"90":1}}],["leverage",{"2":{"57":1}}],["levels",{"2":{"100":1}}],["level",{"2":{"44":1,"46":1,"50":1,"61":3,"102":3,"106":2,"158":9}}],["lesser",{"2":{"102":11,"134":6,"136":3}}],["less",{"2":{"44":1,"55":1,"90":1,"157":1}}],["leadsolvers",{"2":{"158":3}}],["leadsolver",{"2":{"158":1}}],["least",{"2":{"39":6,"40":4,"70":1,"102":4,"120":2,"157":1}}],["learn",{"2":{"91":1,"102":7,"120":5,"123":1,"128":1,"155":6}}],["learned",{"2":{"32":1,"35":1,"102":1,"120":1,"155":1}}],["learning",{"0":{"121":1,"127":1},"1":{"122":1,"128":1,"129":1,"130":1,"131":1},"2":{"4":1,"11":1,"17":2,"32":1,"35":1,"57":1,"64":1,"102":3,"106":1,"120":1,"121":1,"122":1,"123":2,"155":2}}],["length",{"2":{"18":2,"19":1,"21":1,"22":6,"24":1,"25":6,"63":3,"65":2,"102":23,"110":2,"123":2,"130":4,"153":1,"155":6,"158":12}}],["lengths",{"2":{"1":3,"63":6,"102":9}}],["giving",{"2":{"146":1}}],["give",{"2":{"102":1,"155":1}}],["given",{"2":{"31":2,"34":1,"37":1,"40":7,"53":1,"55":2,"61":2,"102":18,"120":6,"123":2,"124":1,"126":1,"146":1,"155":7,"157":6}}],["gives",{"2":{"0":2,"2":1}}],["gctimes",{"2":{"153":3,"154":1}}],["gctrial",{"2":{"141":2}}],["gc=d",{"2":{"151":1}}],["gc",{"2":{"144":1,"148":1,"151":1,"153":1}}],["gcsample",{"2":{"141":2}}],["gcc",{"2":{"40":3,"102":3}}],["game",{"2":{"90":1}}],["guides",{"0":{"86":1}}],["guide",{"2":{"76":1,"154":1}}],["gt",{"2":{"45":1,"106":1,"122":1,"146":6}}],["goes",{"2":{"140":1,"143":1,"146":2}}],["good",{"2":{"108":1,"147":1}}],["goal",{"2":{"31":1,"106":1}}],["golomb",{"2":{"31":2,"45":2,"102":1,"157":1}}],["g",{"2":{"31":1,"96":1,"102":15,"134":8,"135":1,"136":3}}],["grads",{"2":{"130":2}}],["gradientdescentoptimizer",{"2":{"130":5}}],["gradient",{"0":{"130":1},"2":{"120":1,"130":1}}],["graphs",{"0":{"49":1}}],["graph",{"2":{"31":4,"61":1,"102":1,"157":1,"158":1}}],["greater",{"2":{"102":12,"134":7,"136":3}}],["grid",{"2":{"31":5,"90":3}}],["genetic",{"2":{"97":1,"102":4,"120":3,"155":4}}],["generation",{"0":{"105":1,"111":1,"116":1,"136":1},"2":{"102":2,"155":2}}],["generating",{"2":{"65":1}}],["generated",{"2":{"34":1,"37":1,"102":18,"134":8,"155":1}}],["generates",{"2":{"30":1,"102":5,"122":1,"123":2,"136":1,"155":1}}],["generate",{"2":{"30":10,"102":26,"105":1,"111":1,"116":1,"118":2,"120":2,"122":2,"123":4,"136":2,"155":7}}],["generalstate",{"2":{"158":2}}],["generally",{"2":{"31":1}}],["general",{"0":{"27":1},"2":{"51":1,"158":1}}],["generic",{"0":{"43":1},"1":{"44":1,"45":1,"46":1,"47":1},"2":{"4":1,"43":1,"53":2,"57":1,"102":1,"106":1,"157":1,"158":2}}],["getting",{"0":{"86":1,"87":1},"1":{"88":1,"89":1,"90":1},"2":{"86":1}}],["get",{"2":{"18":1,"31":2,"90":1,"102":5,"136":2,"138":2,"155":1,"157":6,"158":17}}],["global",{"0":{"72":1},"2":{"1":7,"3":6,"40":4,"42":2,"49":2,"63":6,"72":1,"90":1,"102":36,"120":2,"155":5,"157":15}}],["i+1",{"2":{"90":1}}],["iconic",{"2":{"90":1}}],["icnlocalsearchoptimizer",{"2":{"120":3}}],["icngeneticoptimizer",{"2":{"120":4}}],["icnoptimizer",{"2":{"120":3}}],["icnconfig",{"2":{"120":4}}],["icns",{"2":{"103":1,"109":1,"112":1,"120":1,"123":1,"132":1}}],["icn=icn",{"2":{"102":1,"155":1}}],["icn",{"0":{"123":1},"2":{"22":2,"25":2,"102":36,"105":1,"111":1,"116":1,"120":12,"123":7,"136":1,"155":23}}],["ignores",{"2":{"63":1,"102":1}}],["ignore",{"2":{"63":1,"102":1}}],["ignored",{"2":{"62":1,"63":2,"102":2}}],["illustrate",{"2":{"45":1}}],["io",{"2":{"31":2}}],["improving",{"2":{"158":1}}],["improve",{"2":{"94":1,"107":1,"108":1}}],["improvement",{"0":{"94":1},"2":{"158":1}}],["impossible",{"2":{"108":1}}],["importance",{"2":{"91":1,"101":1}}],["import",{"2":{"46":1,"47":1,"67":1,"68":1}}],["impact",{"2":{"73":1}}],["implemented",{"2":{"68":2,"69":1,"106":1}}],["implementing",{"0":{"65":1}}],["implements",{"2":{"57":1}}],["implement",{"2":{"7":1,"18":1,"30":1,"65":1,"102":2,"122":1,"155":1}}],["implementations",{"2":{"65":1}}],["implementation",{"2":{"7":2,"102":2,"132":1,"155":2}}],["immutable",{"2":{"24":1,"102":1,"155":1}}],["i`",{"2":{"19":1,"22":1,"25":1,"102":1}}],["i",{"2":{"19":10,"21":7,"22":8,"24":3,"25":8,"30":2,"49":2,"63":4,"90":4,"102":64,"118":2,"119":1,"122":2,"123":2,"130":2,"134":17,"153":8,"154":4,"155":3,"157":2,"158":1}}],["iterate",{"2":{"158":1}}],["iterators",{"2":{"130":1}}],["iteration",{"2":{"102":2,"155":2,"158":8}}],["iterations",{"2":{"28":1,"102":1,"155":1,"158":3}}],["iter=100",{"2":{"102":2,"155":2}}],["iter",{"2":{"102":8,"120":3,"155":8,"158":1}}],["itself",{"2":{"102":1,"155":1}}],["its",{"2":{"21":1,"24":1,"31":1,"59":1,"66":1,"81":1,"85":1,"88":1,"89":2,"90":1,"91":1,"98":1,"102":5,"118":2,"146":1,"155":3,"158":2}}],["ith",{"2":{"19":2,"22":1,"25":1,"30":1,"102":1,"122":1}}],["itvls",{"2":{"21":3,"102":3}}],["itv",{"2":{"18":2,"19":8,"21":2,"22":7,"24":2,"25":7,"30":3,"102":9,"122":3,"154":2,"155":2}}],["it",{"2":{"4":2,"17":1,"18":1,"30":8,"32":1,"33":2,"35":1,"38":2,"40":2,"44":1,"45":1,"46":1,"49":2,"52":1,"53":1,"54":1,"55":1,"57":1,"59":1,"61":1,"63":6,"65":1,"68":2,"69":1,"89":1,"90":4,"102":65,"106":2,"108":2,"113":1,"120":1,"123":1,"124":1,"133":1,"136":1,"138":1,"145":1,"146":1,"147":1,"148":2,"149":1,"151":1,"154":2,"155":6,"157":7,"158":6}}],["isa",{"2":{"130":1}}],["issue",{"2":{"122":1,"132":1}}],["isempty",{"2":{"9":1,"19":3,"102":4,"155":1}}],["is",{"0":{"81":1},"2":{"3":10,"4":1,"5":3,"9":2,"17":1,"18":2,"19":5,"21":3,"22":4,"25":4,"28":7,"30":9,"31":9,"32":1,"33":6,"34":6,"35":1,"36":1,"37":6,"38":5,"40":15,"42":3,"44":3,"45":1,"46":3,"49":5,"50":1,"52":1,"53":1,"54":1,"55":5,"59":1,"61":9,"63":10,"65":3,"67":1,"68":2,"89":1,"90":6,"102":161,"105":1,"106":5,"107":5,"108":4,"111":1,"116":2,"118":1,"120":5,"122":2,"123":7,"124":4,"128":1,"134":16,"136":4,"145":1,"146":2,"147":1,"149":1,"152":2,"154":3,"155":32,"157":32,"158":17}}],["identity",{"2":{"102":14,"114":4,"134":6,"136":4}}],["identified",{"2":{"102":1}}],["ids",{"2":{"30":1,"102":1}}],["idparameterdomain",{"2":{"30":1,"102":1,"122":1}}],["id=nothing",{"2":{"3":4,"102":4}}],["id=3",{"2":{"2":1,"3":1,"102":1}}],["id=1",{"2":{"2":3,"3":3,"102":3}}],["id",{"2":{"2":3,"5":1,"31":2,"33":1,"36":1,"102":1,"157":2,"158":13}}],["iff",{"2":{"102":2,"116":1,"136":1,"155":2}}],["if",{"2":{"1":3,"3":4,"7":3,"18":1,"19":10,"22":9,"25":9,"30":2,"34":1,"37":1,"40":4,"42":1,"49":1,"53":1,"55":1,"61":2,"63":2,"65":1,"89":1,"90":1,"102":63,"120":1,"122":2,"123":4,"124":4,"130":4,"155":10,"157":9,"158":14}}],["initpkgs",{"2":{"149":2}}],["init",{"2":{"130":1}}],["initialization",{"0":{"149":1}}],["initializes",{"2":{"102":1}}],["initial",{"2":{"108":1}}],["inner",{"2":{"120":1,"158":1}}],["invalid",{"2":{"102":3,"155":1,"157":1}}],["involves",{"2":{"52":1,"106":1}}],["involving",{"2":{"51":1,"102":1,"136":1}}],["inf",{"2":{"158":1}}],["infrastructure",{"2":{"64":1}}],["information",{"2":{"32":2,"35":2,"89":1,"102":1,"120":1,"155":1,"157":1,"158":1}}],["info",{"2":{"0":12,"2":23,"39":25,"46":2,"47":2,"62":15,"157":2,"158":6}}],["inside",{"2":{"147":1,"150":1,"151":1}}],["inspired",{"2":{"33":1,"36":1}}],["instructions",{"2":{"86":1}}],["installed",{"2":{"89":1,"138":1}}],["install",{"2":{"89":1}}],["installing",{"2":{"86":1}}],["installation",{"0":{"86":1}}],["instantiated",{"2":{"53":1}}],["instantiation",{"0":{"53":1},"2":{"42":9,"51":1,"53":1,"55":2,"102":9,"157":2}}],["instances",{"2":{"89":1}}],["instance",{"2":{"31":4,"33":1,"36":1,"61":2,"102":3,"124":1,"155":1,"157":13,"158":2}}],["instead",{"2":{"5":1,"33":1,"36":1,"102":4,"118":2,"124":1,"155":3,"157":2,"158":1}}],["insertion",{"2":{"15":1,"102":1,"155":1,"157":1}}],["insert",{"2":{"15":1,"102":1,"155":1,"158":3}}],["indice",{"2":{"158":1}}],["indices",{"2":{"158":6}}],["indicate",{"2":{"158":2}}],["indicates",{"2":{"31":1,"102":2,"155":2}}],["indicating",{"2":{"28":1,"102":1,"155":1}}],["individuals",{"2":{"120":1}}],["industry",{"2":{"106":1}}],["ind",{"2":{"15":1,"102":1,"155":1,"158":2}}],["independently",{"2":{"158":1}}],["independent",{"2":{"5":1,"33":1,"36":1,"102":1,"158":1}}],["indexed",{"2":{"3":2,"102":2}}],["index",{"2":{"3":3,"5":1,"33":1,"36":1,"49":2,"102":6,"157":7,"158":1}}],["inc",{"2":{"158":6}}],["increment",{"2":{"158":3}}],["incremental",{"2":{"157":4}}],["increase",{"2":{"15":1,"102":1,"155":1}}],["increasing",{"2":{"0":1,"1":10,"102":10}}],["inclusive",{"2":{"102":3,"123":3}}],["include",{"2":{"106":1,"157":1}}],["included",{"2":{"102":1,"157":1}}],["includes",{"2":{"57":1,"63":1,"102":3,"116":1,"136":1,"155":2}}],["inception",{"2":{"66":1}}],["incsert",{"2":{"15":2,"102":1,"155":1}}],["inputs",{"2":{"102":1}}],["input",{"2":{"5":3,"31":1,"33":3,"36":3,"102":6,"146":3,"147":1}}],["introductory",{"2":{"91":1}}],["introduction",{"0":{"50":1,"125":1},"1":{"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"126":1},"2":{"125":1}}],["introduce",{"2":{"82":1,"85":1,"97":1,"158":1}}],["into",{"0":{"95":1,"153":1},"1":{"96":1,"97":1,"98":1},"2":{"18":1,"31":1,"43":1,"72":1,"102":6,"104":1,"118":1,"120":1,"123":1,"124":1,"152":1,"153":1,"155":3,"158":1}}],["intend",{"2":{"158":1}}],["intended",{"2":{"146":1}}],["intensional",{"2":{"102":1}}],["intension",{"2":{"102":2}}],["intentionally",{"2":{"44":1}}],["intentional",{"2":{"44":1}}],["intention",{"0":{"44":1,"45":1},"1":{"45":1,"46":1},"2":{"0":3,"2":4,"39":4,"43":1,"44":2,"45":2,"46":5,"47":3,"62":2,"157":17}}],["interpretable",{"2":{"102":1,"123":1,"155":1}}],["interpreted",{"2":{"61":2,"68":1,"102":2,"157":1}}],["interacting",{"0":{"32":1,"35":1},"1":{"33":1,"34":1,"36":1,"37":1,"38":1},"2":{"123":1}}],["interdiction",{"2":{"31":2,"158":2}}],["intersect",{"2":{"21":2,"24":1,"102":2,"155":1}}],["intersections",{"2":{"21":2,"24":1,"102":2,"155":1}}],["intersection",{"2":{"5":1,"102":1,"155":1}}],["interval",{"2":{"18":1,"19":2,"21":6,"22":2,"24":3,"25":2,"30":1,"70":3,"102":8,"122":1,"154":1,"155":1}}],["intervalsfold",{"2":{"154":1}}],["intervals",{"2":{"18":2,"19":5,"21":5,"22":4,"24":2,"25":4,"27":2,"30":2,"56":1,"70":2,"102":11,"122":2,"154":2,"155":2}}],["internally",{"2":{"102":1,"118":1}}],["internals",{"2":{"28":1,"50":1,"102":1}}],["internal",{"0":{"59":1},"2":{"7":1,"18":1,"31":2,"59":1,"102":4,"123":1,"155":1,"158":4}}],["interfaced",{"2":{"139":1,"142":1}}],["interfaces",{"2":{"17":1,"89":1,"145":1}}],["interface",{"0":{"65":1,"128":1},"2":{"7":2,"18":1,"34":1,"37":1,"44":1,"46":1,"57":1,"65":1,"89":2,"102":4,"106":3,"128":1,"145":1,"147":1,"155":1,"157":4}}],["interoperability",{"2":{"4":1}}],["integers",{"2":{"68":1}}],["integer",{"2":{"5":1,"28":3,"31":3,"33":1,"36":1,"40":1,"96":1,"102":5,"106":1,"146":1,"155":3,"157":5}}],["integration",{"0":{"0":1,"2":1,"39":1,"41":1,"48":1,"60":1,"62":1},"1":{"1":1,"3":1,"40":1,"42":1,"49":1,"61":1,"63":1}}],["int",{"2":{"0":5,"1":8,"2":8,"3":1,"19":2,"22":2,"25":2,"28":1,"31":11,"33":1,"38":1,"39":12,"40":9,"46":2,"47":2,"49":1,"61":2,"62":6,"68":1,"90":1,"102":35,"118":8,"130":2,"155":4,"157":9,"158":30}}],["in",{"0":{"0":1,"2":1,"32":1,"35":1,"39":1,"41":1,"45":1,"48":1,"60":1,"62":1},"1":{"1":1,"3":1,"33":1,"34":1,"36":1,"37":1,"38":1,"40":1,"42":1,"49":1,"61":1,"63":1},"2":{"0":8,"1":6,"2":12,"3":14,"4":1,"5":4,"7":2,"9":1,"13":1,"15":1,"17":1,"18":4,"19":6,"21":3,"22":8,"24":5,"25":9,"30":1,"31":9,"32":1,"33":11,"34":1,"35":1,"36":7,"37":1,"38":4,"39":17,"40":24,"42":4,"43":1,"44":2,"45":1,"46":6,"47":6,"49":6,"51":3,"53":1,"54":1,"56":1,"62":8,"63":18,"64":2,"65":2,"66":1,"67":4,"68":2,"70":1,"81":1,"89":1,"90":7,"91":1,"98":1,"101":1,"102":133,"106":7,"108":3,"114":2,"118":2,"119":1,"120":3,"122":1,"123":7,"130":2,"132":1,"134":1,"136":1,"138":1,"140":2,"143":2,"146":1,"147":1,"149":1,"150":1,"152":1,"153":5,"154":3,"155":28,"157":39,"158":16}}],["vov",{"2":{"157":5}}],["vf",{"2":{"154":5}}],["v",{"2":{"102":3,"118":3,"138":7,"154":5,"155":2,"157":12,"158":3}}],["vs",{"0":{"107":1},"2":{"102":3}}],["v4",{"2":{"67":2}}],["v3",{"2":{"39":3,"67":2}}],["v2",{"2":{"39":3,"67":2,"68":1}}],["v1",{"2":{"39":3,"67":2,"68":3}}],["vi",{"2":{"157":3}}],["via",{"2":{"145":1,"147":1,"148":1,"152":1}}],["viable",{"2":{"102":6,"123":5,"155":1}}],["visuals",{"2":{"154":4}}],["visualization",{"2":{"145":1,"146":1}}],["visual",{"2":{"89":1}}],["vision",{"2":{"79":1}}],["violates",{"2":{"55":1}}],["violated",{"2":{"34":1,"37":1,"55":2}}],["violation",{"0":{"55":1},"2":{"51":1}}],["vice",{"2":{"3":2,"102":3,"136":1}}],["vec",{"2":{"90":1}}],["vectorofvariables",{"2":{"157":3}}],["vectors",{"2":{"28":1,"102":4,"110":2,"134":1,"154":1,"155":1}}],["vector",{"2":{"1":6,"5":5,"7":1,"18":1,"19":4,"21":4,"22":3,"24":1,"25":3,"30":1,"33":3,"36":3,"40":9,"61":2,"102":62,"104":1,"110":2,"118":2,"122":1,"124":2,"130":5,"134":8,"136":1,"138":2,"146":2,"154":1,"155":10,"157":17,"158":1}}],["verbose",{"2":{"158":4}}],["verbosity",{"2":{"157":1,"158":1}}],["very",{"2":{"107":1}}],["verifies",{"2":{"61":2,"102":2,"157":1}}],["versionnumber",{"2":{"138":1,"146":1}}],["version",{"2":{"89":1,"102":2,"136":1,"138":3,"146":5,"157":1}}],["versions",{"2":{"34":1,"37":1,"138":3,"146":4,"154":1}}],["versatile",{"0":{"57":1},"2":{"102":2,"157":1}}],["versa",{"2":{"3":2,"102":3,"136":1}}],["var",{"2":{"102":20,"158":12}}],["variety",{"2":{"108":1}}],["varies",{"2":{"51":1}}],["various",{"0":{"129":1},"1":{"130":1,"131":1},"2":{"13":1,"18":1,"32":1,"35":1,"56":1,"73":1,"89":1,"100":1,"102":2,"108":1,"136":1,"145":2,"155":1}}],["variant",{"2":{"63":2,"102":2}}],["variants",{"2":{"1":3,"3":4,"40":4,"42":1,"49":1,"61":2,"63":2,"90":1,"102":19}}],["variableconstrainedoncreation",{"2":{"157":1}}],["variableinfo",{"2":{"157":2}}],["variables",{"0":{"17":1,"56":1,"64":1},"1":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1},"2":{"3":8,"17":1,"30":1,"40":8,"42":2,"46":1,"47":2,"49":2,"51":3,"52":3,"53":3,"54":3,"56":1,"61":1,"64":2,"70":1,"82":1,"90":3,"102":32,"106":1,"119":1,"122":1,"126":2,"155":4,"157":9,"158":26}}],["variable",{"2":{"0":5,"2":8,"3":6,"5":2,"19":3,"22":3,"25":3,"33":2,"36":2,"39":12,"44":2,"46":2,"47":4,"55":1,"62":6,"65":1,"67":8,"68":4,"90":2,"102":11,"155":2,"157":9,"158":40}}],["vars",{"2":{"5":2,"33":2,"36":2,"42":2,"62":9,"63":15,"102":51,"114":3,"157":20,"158":24}}],["vars=dictionary",{"2":{"158":1}}],["vars=ones",{"2":{"40":2,"102":2}}],["vars=nothing",{"2":{"1":10,"102":10}}],["vars=",{"2":{"1":4,"42":2,"102":11}}],["vars=zeros",{"2":{"1":2,"102":2}}],["valparameterdomain",{"2":{"30":1,"102":1,"122":1}}],["validity",{"2":{"102":1,"157":1}}],["valid",{"2":{"18":1,"61":1,"102":10,"107":2,"124":3,"126":2,"155":5,"157":7}}],["val=3",{"2":{"39":1,"40":1,"102":1}}],["val=2",{"2":{"2":1,"3":1,"39":2,"40":3,"102":4}}],["val=15",{"2":{"39":2,"40":2,"102":2}}],["val=1",{"2":{"1":2,"2":1,"3":1,"40":1,"102":4}}],["val=nothing",{"2":{"1":2,"3":2,"102":4}}],["val",{"0":{"115":1,"135":1},"2":{"1":3,"2":8,"3":8,"5":1,"15":2,"18":1,"31":4,"33":1,"36":1,"39":24,"40":21,"49":4,"62":7,"63":6,"65":1,"102":124,"114":3,"115":3,"135":2,"136":8,"148":2,"149":2,"150":2,"151":2,"152":2,"154":2,"155":3,"157":16,"158":8}}],["value2",{"2":{"140":1,"143":1,"146":1}}],["value1",{"2":{"140":1,"143":1,"146":1}}],["valued",{"2":{"61":1,"102":1,"157":1}}],["values",{"2":{"1":13,"3":4,"5":1,"18":2,"21":2,"24":4,"30":3,"31":4,"33":1,"34":2,"36":1,"37":2,"40":24,"42":6,"47":2,"49":3,"51":1,"54":1,"61":2,"67":1,"90":2,"102":67,"136":5,"141":1,"144":1,"146":1,"155":5,"157":12,"158":11}}],["value",{"2":{"0":5,"1":1,"2":8,"3":13,"5":1,"19":8,"22":7,"24":2,"25":10,"30":2,"31":1,"33":1,"36":1,"39":12,"40":5,"46":2,"47":2,"49":4,"61":3,"62":6,"90":3,"102":59,"116":2,"122":1,"123":1,"124":1,"136":8,"146":1,"155":13,"157":15,"158":20}}],["valsparameterdomain",{"2":{"30":1,"102":1,"122":1}}],["vals=nothing",{"2":{"33":1,"38":1,"102":2,"155":1}}],["vals=",{"2":{"1":2,"39":7,"40":13,"102":15}}],["vals",{"2":{"0":1,"1":2,"5":2,"33":2,"36":2,"39":19,"40":18,"102":24,"134":2,"136":2,"157":7}}],["mts",{"2":{"158":7}}],["mkpath",{"2":{"154":1}}],["myperfextension",{"2":{"148":1,"149":1,"150":1,"151":1,"152":1}}],["mypackagename",{"2":{"146":1}}],["mixed",{"2":{"106":1}}],["mission",{"2":{"91":1}}],["missing",{"2":{"46":1,"47":1,"114":8,"115":8,"116":2,"118":2,"119":2,"122":20,"123":2,"134":4,"135":12}}],["might",{"2":{"90":2}}],["minor",{"2":{"146":2}}],["min",{"2":{"130":2,"157":1}}],["minkowski",{"2":{"102":1,"119":1,"155":1}}],["minus",{"2":{"102":28,"114":2,"115":2,"134":2,"135":2,"136":4}}],["mincut",{"2":{"31":1,"158":2}}],["minimization",{"2":{"157":1}}],["minimizing",{"2":{"31":1}}],["minimal",{"2":{"7":2,"68":1,"102":4,"118":1,"119":1,"155":3,"158":3}}],["minimum",{"2":{"2":6,"3":11,"13":1,"31":1,"102":12,"130":2,"155":1,"157":4}}],["mutable",{"2":{"158":2}}],["mutually",{"2":{"102":4,"105":1,"111":1,"116":1,"120":1,"123":1,"155":3}}],["much",{"2":{"34":1,"37":1,"108":1}}],["must",{"2":{"18":1,"24":1,"31":2,"40":2,"44":1,"47":2,"52":2,"61":2,"65":2,"102":8,"107":1,"155":2,"157":7}}],["multithreading",{"2":{"158":1}}],["multithreaded",{"2":{"158":1}}],["multi",{"2":{"61":1,"102":1,"157":1}}],["multiplied",{"2":{"31":1}}],["multiplication",{"2":{"9":1,"102":1,"155":1}}],["multimedia",{"2":{"31":4}}],["multivalued",{"2":{"7":3,"102":2,"155":1}}],["map",{"2":{"102":1,"118":1,"130":5,"158":4}}],["mapping",{"2":{"102":1,"136":1}}],["makie",{"2":{"145":1,"146":1}}],["making",{"2":{"69":1,"108":1}}],["makes",{"2":{"55":1,"106":1}}],["make",{"2":{"11":1,"102":8,"106":1,"107":1,"116":1,"120":3,"130":2,"132":2,"136":3,"154":1,"158":1}}],["may",{"2":{"69":1,"108":1}}],["major",{"2":{"34":1,"37":1,"122":1,"138":2,"146":2}}],["macro",{"2":{"33":2,"38":2,"102":6,"132":1,"145":1,"148":1,"154":1,"155":2,"157":1}}],["machinery",{"2":{"32":1,"35":1}}],["mainsolver",{"2":{"157":1,"158":7}}],["mainly",{"2":{"64":1,"69":1,"102":1}}],["main",{"0":{"151":1},"2":{"33":1,"36":1,"43":1,"102":1,"145":1,"148":1,"149":1,"155":1,"157":1,"158":5}}],["manages",{"2":{"158":1}}],["manage",{"2":{"158":1}}],["managed",{"2":{"158":1}}],["manager",{"2":{"89":1}}],["manipulating",{"2":{"123":1}}],["manipulation",{"2":{"32":1,"35":1,"102":1,"136":1}}],["manufacturing",{"2":{"107":1}}],["manhattan",{"2":{"102":1,"119":1,"155":1}}],["many",{"2":{"11":1,"102":1,"146":1,"155":1}}],["matter",{"2":{"146":1,"157":1}}],["matters",{"2":{"121":1}}],["match",{"2":{"102":3,"157":2}}],["matches",{"2":{"102":3,"157":2}}],["maths",{"2":{"102":1,"155":1}}],["mathematical",{"0":{"98":1},"2":{"50":1,"51":1,"52":1,"98":1,"107":2,"108":1}}],["mathoptinterface",{"2":{"31":2,"46":1,"47":1,"50":1,"67":1,"68":1,"157":17}}],["matrices",{"0":{"34":1,"37":1,"127":1},"1":{"128":1,"129":1,"130":1,"131":1},"2":{"34":1,"37":1,"102":1,"120":1,"128":1}}],["matrix",{"2":{"31":4,"102":2,"120":2,"126":2,"155":1}}],["magic",{"2":{"31":2}}],["marks",{"2":{"31":1,"45":2,"102":2,"157":2}}],["max",{"2":{"28":4,"102":8,"118":2,"123":2,"155":4,"157":1,"158":10}}],["maximum",{"2":{"2":5,"3":11,"13":1,"18":1,"21":1,"24":1,"28":2,"102":16,"155":5,"157":4,"158":6}}],["mmds",{"2":{"7":1}}],["m",{"2":{"5":2,"31":6,"67":5,"68":3,"90":5,"102":2,"155":2,"158":139}}],["mddconstraint",{"2":{"157":2}}],["mdd",{"2":{"5":1,"7":3,"30":1,"33":1,"36":1,"61":12,"102":16,"122":1,"155":2,"157":2}}],["mdash",{"2":{"1":3,"3":4,"5":2,"7":6,"9":3,"11":1,"13":1,"15":1,"18":6,"19":5,"21":8,"22":4,"24":10,"25":5,"27":2,"28":3,"30":13,"31":18,"33":5,"34":2,"36":1,"37":2,"38":4,"40":4,"42":1,"49":1,"61":2,"63":2,"65":1,"102":187,"104":2,"105":1,"110":2,"111":1,"114":1,"116":1,"118":6,"119":3,"120":28,"122":3,"123":11,"124":3,"126":2,"128":2,"134":9,"136":2,"138":4,"155":74,"157":72,"158":144}}],["memory",{"2":{"141":2}}],["membership",{"2":{"65":1}}],["measurement",{"2":{"158":1}}],["measure",{"2":{"102":2,"155":2}}],["meaningful",{"2":{"101":1}}],["meaning",{"2":{"40":2,"102":2,"123":1}}],["means",{"2":{"3":2,"39":1,"102":5}}],["metasolver",{"2":{"158":4}}],["metastrategist",{"0":{"137":1},"2":{"137":1}}],["metadata",{"2":{"106":1}}],["metaheuristics",{"0":{"97":1},"2":{"83":1}}],["metrics",{"0":{"119":1},"2":{"145":1,"154":1}}],["metric=hamming",{"2":{"102":1,"120":1,"155":1}}],["metric",{"2":{"102":8,"120":6,"155":8}}],["method",{"2":{"5":1,"7":1,"18":1,"19":3,"21":1,"22":3,"24":1,"25":3,"31":16,"34":1,"37":1,"102":171,"120":26,"123":1,"128":2,"134":8,"138":3,"148":1,"149":2,"150":2,"151":1,"152":2,"153":1,"155":55,"157":24,"158":128}}],["methods",{"0":{"74":1},"1":{"75":1,"76":1},"2":{"4":2,"7":1,"18":1,"30":1,"33":1,"38":1,"51":1,"65":2,"83":1,"102":4,"118":2,"122":1,"155":3,"158":3}}],["meets",{"2":{"51":1}}],["merge",{"2":{"21":2,"24":2,"102":2,"155":2,"158":1}}],["move",{"2":{"158":3}}],["moved",{"2":{"122":1}}],["more",{"2":{"58":1,"68":1,"102":2,"146":1}}],["mode",{"2":{"157":1}}],["modeled",{"2":{"158":1}}],["modeler",{"2":{"31":13}}],["modellike",{"2":{"157":2}}],["models",{"0":{"58":1,"92":1},"1":{"93":1,"94":1},"2":{"50":1,"58":3,"64":1,"65":1,"90":1,"93":1,"94":1,"102":1,"106":2,"107":2,"136":1}}],["modeling",{"0":{"50":1,"93":1},"1":{"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1},"2":{"44":1,"46":1,"58":1,"89":2,"90":1,"106":1}}],["modelize",{"2":{"31":1}}],["model",{"0":{"90":1},"2":{"0":19,"2":28,"31":14,"39":36,"46":7,"47":7,"61":1,"62":18,"67":1,"68":1,"90":3,"102":3,"157":45,"158":75}}],["module",{"0":{"19":1,"22":1,"25":1},"2":{"102":1}}],["mostly",{"2":{"153":1}}],["most",{"2":{"17":1,"39":6,"40":4,"57":1,"59":1,"90":1,"102":5,"124":1,"155":1,"157":1}}],["moisupports",{"2":{"157":1}}],["moisum",{"2":{"157":1}}],["moiregular",{"2":{"157":1}}],["moiordered",{"2":{"157":1}}],["moinooverlap",{"2":{"157":1}}],["moinvalues",{"2":{"157":1}}],["moimultivalueddecisiondiagram",{"2":{"157":1}}],["moiminimum",{"2":{"157":1}}],["moimaximum",{"2":{"157":1}}],["moiintention",{"2":{"157":17}}],["moiinstantiation",{"2":{"157":1}}],["moiextension",{"2":{"157":1}}],["moierror",{"2":{"157":5}}],["moielement",{"2":{"157":1}}],["moidistdifferent",{"2":{"157":1}}],["moicumulative",{"2":{"157":1}}],["moiconflicts",{"2":{"157":1}}],["moiallequal",{"2":{"157":1}}],["moialldifferent",{"2":{"157":1}}],["moi",{"2":{"0":3,"2":4,"17":1,"31":1,"39":4,"46":5,"47":5,"50":1,"62":2,"64":1,"67":10,"68":8,"70":3,"157":38}}],["nbits",{"2":{"102":2,"123":1,"155":1}}],["nbsp",{"2":{"1":3,"3":4,"5":2,"7":6,"9":3,"11":1,"13":1,"15":1,"18":6,"19":5,"21":8,"22":4,"24":10,"25":5,"27":2,"28":3,"30":13,"31":18,"33":5,"34":2,"36":1,"37":2,"38":4,"40":4,"42":1,"49":1,"61":2,"63":2,"65":1,"102":187,"104":2,"105":1,"110":2,"111":1,"114":1,"116":1,"118":6,"119":3,"120":28,"122":3,"123":11,"124":3,"126":2,"128":2,"134":9,"136":2,"138":4,"155":74,"157":72,"158":144}}],["nvars",{"2":{"102":12,"155":4}}],["nvalues",{"2":{"39":9,"40":8,"102":8,"157":1}}],["nine",{"2":{"90":1}}],["n5",{"2":{"61":2,"102":2}}],["n4",{"2":{"61":3,"102":3}}],["n3",{"2":{"61":2,"102":2}}],["n2",{"2":{"61":2,"102":2}}],["n1",{"2":{"61":2,"102":2}}],["n²",{"2":{"31":1}}],["n×n",{"2":{"31":1}}],["n",{"2":{"31":16,"102":7,"118":4,"126":3,"130":9,"155":2}}],["numerous",{"2":{"70":1}}],["numerical",{"2":{"67":1,"69":1}}],["numeric",{"2":{"24":1,"102":1}}],["numbers",{"2":{"102":2,"146":1}}],["number",{"2":{"18":1,"22":3,"24":2,"25":3,"28":2,"31":2,"40":11,"65":1,"102":52,"104":1,"119":1,"120":2,"123":5,"124":3,"134":8,"146":1,"155":18,"157":23,"158":12}}],["normalized",{"2":{"102":1,"155":1}}],["normal",{"2":{"102":1,"136":1}}],["norm",{"2":{"102":2}}],["nooverlap",{"2":{"62":4,"157":2}}],["now",{"2":{"31":1,"90":1}}],["node",{"2":{"31":2,"61":3,"102":3,"157":3}}],["no",{"2":{"31":4,"62":6,"63":20,"102":24,"118":1,"120":1,"123":1,"136":1,"157":1}}],["nonnegative",{"2":{"157":1}}],["none",{"2":{"102":4,"124":1,"130":2,"136":3,"141":1,"144":1,"148":1,"155":1,"157":1}}],["nonlinear",{"2":{"96":1}}],["non",{"0":{"114":1,"134":1},"2":{"24":1,"28":2,"68":1,"69":1,"102":4,"120":4,"136":1,"155":3,"158":1}}],["not",{"2":{"21":1,"31":2,"32":1,"34":1,"35":1,"37":1,"40":1,"44":1,"46":1,"52":1,"63":6,"68":1,"89":1,"90":3,"102":18,"124":1,"136":1,"155":2,"157":4,"158":1}}],["nothing",{"2":{"1":1,"9":5,"34":2,"37":2,"40":2,"102":17,"118":1,"120":2,"130":1,"144":2,"148":2,"150":1,"154":1,"155":11,"157":15}}],["notebooks",{"2":{"89":1,"139":1,"142":1}}],["note",{"2":{"0":2,"2":1,"5":1,"32":1,"34":1,"37":1,"44":1,"46":1,"89":1,"90":1,"157":1}}],["neighbours",{"2":{"158":2}}],["neighbourhood",{"2":{"158":2}}],["neither",{"2":{"102":1}}],["never",{"2":{"158":1}}],["negation",{"2":{"102":1}}],["necessarily",{"2":{"89":1}}],["necessary",{"2":{"64":1,"158":3}}],["next",{"2":{"49":2,"102":2,"138":2,"146":3}}],["networks",{"2":{"107":1}}],["network",{"2":{"102":1,"123":1,"155":1}}],["net",{"2":{"31":1}}],["new",{"2":{"21":3,"33":3,"38":3,"58":1,"102":8,"106":1,"146":1,"155":3,"157":1,"158":2}}],["needs",{"2":{"102":2,"136":1,"155":1}}],["need",{"2":{"13":1,"90":2,"147":1}}],["natural",{"2":{"44":1,"46":1}}],["nature",{"2":{"5":1,"21":1,"24":1,"33":2,"36":2,"102":2,"155":1}}],["navigate",{"2":{"33":1,"38":1}}],["names",{"2":{"102":1,"136":1}}],["name=",{"2":{"102":1,"155":1}}],["name",{"2":{"5":1,"33":2,"34":1,"36":1,"37":1,"38":1,"102":9,"146":4,"155":8,"157":2,"158":8}}],["86",{"2":{"18":1,"21":1,"24":1,"102":1,"155":1}}],["89",{"2":{"18":2,"21":2,"24":2,"67":6,"102":2,"155":2,"158":1}}],["8",{"2":{"0":1,"2":2,"31":3,"39":6,"40":5,"63":1,"102":6}}],["63",{"2":{"70":1}}],["6+5=11",{"2":{"55":1}}],["69",{"2":{"18":1,"21":1,"24":1,"67":3,"102":1,"155":1}}],["6",{"2":{"0":1,"3":1,"31":2,"39":1,"42":1,"62":3,"63":3,"102":5,"138":1,"147":1}}],["≥",{"2":{"0":1,"39":3,"130":1}}],["\\tzero",{"2":{"62":1}}],["\\theights",{"2":{"62":1}}],["\\tlengths",{"2":{"62":2}}],["\\tlist",{"2":{"0":1,"2":2,"39":2}}],["\\torigins",{"2":{"62":2}}],["\\toperator",{"2":{"0":1}}],["\\t\\toccurs",{"2":{"39":1}}],["\\t\\texcept",{"2":{"39":1}}],["\\t\\tvalues",{"2":{"39":2}}],["\\t\\tcondition",{"2":{"2":1,"39":2}}],["\\tcondition",{"2":{"2":1,"62":1}}],["\\tindex",{"2":{"2":1}}],["56",{"2":{"158":1}}],["53",{"2":{"18":1,"21":1,"24":1,"67":3,"102":1,"155":1}}],["5",{"2":{"0":3,"1":1,"2":12,"3":11,"18":1,"21":1,"24":1,"31":2,"39":32,"40":29,"42":3,"62":22,"63":13,"68":3,"102":75,"106":1,"130":1,"138":1,"140":1,"143":1,"146":1,"155":1,"157":1,"158":1}}],["o",{"2":{"120":1,"158":16}}],["output",{"2":{"102":2,"120":1,"150":1,"151":1,"152":1,"153":1,"155":2}}],["outputs",{"2":{"102":1,"138":3,"155":1}}],["out",{"2":{"90":1}}],["our",{"2":{"11":1,"33":1,"36":1,"53":1,"90":2}}],["own",{"2":{"89":1,"90":1,"158":1}}],["odd",{"2":{"69":1}}],["occurrences",{"2":{"40":7,"102":7,"157":4}}],["occurs",{"2":{"39":1,"40":2,"102":2}}],["others",{"2":{"106":1}}],["other",{"0":{"83":1},"2":{"31":1,"50":1,"83":1,"89":1,"90":4,"106":1,"107":1,"108":2,"140":1,"143":1,"146":1,"153":1,"158":2}}],["otherwise",{"2":{"1":3,"3":4,"7":1,"19":1,"22":1,"25":1,"30":1,"34":1,"37":1,"40":4,"42":1,"49":1,"55":1,"63":2,"102":28,"122":1,"155":3,"157":4,"158":1}}],["objs=dictionary",{"2":{"158":1}}],["objs",{"2":{"158":7}}],["objectives",{"2":{"158":10}}],["objective",{"2":{"90":1,"157":4,"158":24}}],["object",{"2":{"28":3,"102":3,"155":3}}],["observable",{"2":{"31":1}}],["overloading",{"2":{"152":1}}],["overloaded",{"2":{"148":1,"149":1,"150":1,"151":1,"152":1,"153":2}}],["overlap",{"2":{"62":6,"63":21,"102":21,"157":1}}],["overhead",{"2":{"141":2}}],["oversampling",{"2":{"120":1,"130":6}}],["oversample",{"2":{"11":2,"102":2,"130":1,"155":2}}],["overview",{"0":{"97":1},"2":{"91":1}}],["overviews",{"0":{"85":1}}],["over",{"2":{"13":1,"90":2,"102":6,"119":1,"120":1,"145":1,"155":3,"158":1}}],["once",{"2":{"89":1}}],["ongoing",{"2":{"63":2,"102":2}}],["ones",{"2":{"56":1}}],["one",{"2":{"5":2,"30":1,"33":2,"34":1,"36":2,"37":1,"90":3,"102":16,"105":1,"111":1,"116":1,"118":2,"120":2,"122":1,"123":2,"124":4,"126":1,"130":1,"146":1,"155":10,"157":1,"158":3}}],["on",{"0":{"49":1,"100":1},"2":{"5":3,"18":1,"28":3,"30":1,"31":1,"33":4,"36":3,"38":1,"42":2,"44":1,"45":2,"50":1,"65":1,"68":1,"73":1,"89":1,"102":17,"106":1,"107":3,"120":3,"122":1,"124":1,"132":1,"136":2,"139":1,"142":1,"146":1,"151":1,"155":6,"157":4,"158":2}}],["only",{"2":{"4":1,"32":1,"35":1,"40":1,"90":1,"102":6,"105":1,"111":1,"116":1,"123":2,"128":1,"155":3,"157":2,"158":1}}],["originating",{"2":{"102":1,"157":2}}],["origins",{"2":{"63":6,"102":6}}],["oriented",{"2":{"4":1}}],["organizations",{"2":{"107":1}}],["organization",{"2":{"85":1,"91":1}}],["org",{"2":{"33":1,"38":1,"102":1,"155":1}}],["or",{"0":{"55":1},"2":{"4":2,"5":4,"9":1,"15":1,"18":2,"19":1,"21":1,"22":1,"24":1,"25":1,"31":1,"32":1,"33":3,"34":4,"36":3,"37":4,"40":1,"44":1,"47":2,"51":1,"52":1,"55":2,"56":1,"63":4,"65":2,"79":1,"89":1,"90":1,"102":28,"106":2,"107":4,"108":2,"124":1,"136":5,"138":3,"146":7,"155":9,"157":2,"158":6}}],["order",{"2":{"1":6,"31":1,"42":2,"102":9,"136":1,"157":3}}],["ordered",{"2":{"0":6,"1":6,"102":8,"123":1,"157":2,"158":1}}],["official",{"2":{"89":1}}],["offers",{"2":{"58":1}}],["often",{"2":{"49":2,"63":6,"102":8,"107":1,"146":1}}],["of",{"0":{"58":1,"104":1,"110":1,"113":1,"133":1},"1":{"114":1,"115":1,"116":1,"134":1,"135":1,"136":1},"2":{"1":14,"3":17,"4":1,"5":12,"7":3,"11":3,"13":4,"18":3,"19":5,"21":7,"22":10,"24":7,"25":11,"28":17,"30":2,"31":33,"32":3,"33":20,"34":11,"35":3,"36":11,"37":11,"38":9,"40":35,"42":6,"47":4,"49":8,"50":4,"51":2,"52":1,"53":3,"54":2,"55":1,"56":1,"57":3,"58":1,"59":3,"61":10,"63":14,"65":4,"66":2,"67":1,"69":1,"70":2,"76":1,"79":1,"88":2,"89":1,"90":11,"91":2,"94":1,"96":2,"98":1,"101":1,"102":301,"104":2,"105":2,"106":7,"107":2,"108":4,"111":2,"116":2,"118":6,"119":3,"120":14,"122":5,"123":15,"124":3,"132":3,"134":13,"136":8,"138":2,"145":1,"146":15,"149":1,"150":1,"151":1,"152":1,"153":1,"154":2,"155":100,"157":48,"158":78}}],["opt",{"2":{"157":2}}],["optmizers",{"2":{"120":1}}],["option",{"2":{"146":4,"157":1}}],["option2",{"2":{"140":1,"143":1,"146":1}}],["option1",{"2":{"140":1,"143":1,"146":1}}],["options",{"0":{"141":1,"144":1,"148":1},"2":{"120":2,"141":1,"144":1,"146":3,"148":3,"157":5,"158":34}}],["optionally",{"2":{"34":2,"37":2,"102":2,"155":2}}],["optional",{"2":{"28":1,"31":1,"102":10,"120":1,"124":1,"146":1,"155":10,"158":2}}],["optimisation",{"2":{"106":1}}],["optimizing",{"2":{"107":1,"158":7}}],["optimization",{"0":{"73":1,"74":1,"83":1,"87":1,"95":1,"96":1},"1":{"75":1,"76":1,"88":1,"89":1,"90":1,"96":1,"97":1,"98":1},"2":{"51":1,"58":1,"66":1,"75":1,"76":1,"88":1,"91":1,"93":1,"96":2,"98":1,"107":2,"158":2}}],["optimized",{"2":{"157":1}}],["optimize",{"2":{"0":3,"2":4,"31":1,"39":4,"46":2,"47":2,"62":2,"102":1,"107":1,"120":11,"155":1,"157":4}}],["optimizers",{"0":{"129":1},"1":{"130":1,"131":1},"2":{"120":1}}],["optimizer",{"2":{"0":3,"2":4,"39":4,"46":7,"47":7,"62":2,"67":11,"68":7,"90":1,"106":1,"120":6,"130":8,"157":59,"158":3}}],["open",{"2":{"39":1,"40":6,"70":1,"102":6,"132":1,"154":1}}],["operate",{"2":{"102":1,"136":1}}],["operational",{"0":{"107":1},"2":{"107":1}}],["operation",{"2":{"68":1,"102":5,"120":2,"123":5}}],["operations",{"0":{"110":1},"2":{"9":1,"22":2,"25":2,"102":21,"105":1,"111":2,"116":1,"120":3,"123":13,"136":1,"155":7}}],["operators",{"2":{"30":1,"102":1}}],["operator",{"2":{"1":3,"5":2,"33":2,"36":2,"40":1,"102":6}}],["opparameterdomain",{"2":{"30":1,"102":1,"122":1}}],["op",{"2":{"0":1,"2":6,"3":8,"5":1,"33":1,"36":1,"39":16,"40":10,"49":4,"62":4,"63":4,"102":29,"123":2,"157":9}}],["op==",{"2":{"40":1,"102":1}}],["op===",{"2":{"3":2,"40":4,"102":6}}],["op=>",{"2":{"1":2,"102":2}}],["op=≥",{"2":{"1":2,"39":1,"40":1,"102":3}}],["op=+",{"2":{"1":2,"102":2}}],["op=",{"2":{"0":1,"1":6,"102":6}}],["op=≤",{"2":{"0":1,"1":6,"40":3,"102":9}}],["epoch",{"2":{"158":1}}],["err",{"2":{"157":3}}],["error",{"0":{"34":1,"37":1},"2":{"34":9,"37":9,"102":24,"120":1,"155":6,"157":4,"158":4}}],["euclidian",{"2":{"114":1,"115":1}}],["euclidean",{"2":{"102":6}}],["efficiency",{"2":{"107":1}}],["efficient",{"2":{"34":1,"37":1,"50":1,"59":1,"68":1,"93":1,"102":1}}],["efficiently",{"2":{"11":1,"31":1,"157":1}}],["eq",{"2":{"102":22,"134":12,"135":1,"136":6}}],["equiped",{"2":{"31":1}}],["equilibrium",{"2":{"31":4}}],["equivalent",{"2":{"19":1,"22":1,"25":1,"102":1}}],["equalities",{"2":{"102":2,"136":2}}],["equal",{"2":{"0":5,"1":8,"3":2,"31":1,"40":1,"55":1,"102":17,"134":3,"136":1,"157":4}}],["empty",{"2":{"102":1,"120":2,"136":1,"155":1,"157":7,"158":11}}],["emptydomain",{"2":{"18":2,"21":1,"24":1,"102":2,"155":1}}],["embodies",{"2":{"102":2,"157":1}}],["evolves",{"2":{"158":1}}],["evolution",{"2":{"154":2}}],["evals=d",{"2":{"151":1}}],["evals",{"2":{"141":2,"144":1,"148":1,"151":1,"154":1}}],["evaluated",{"2":{"158":1}}],["evaluates",{"2":{"102":2}}],["evaluation",{"2":{"120":1}}],["eventually",{"2":{"49":2,"102":2}}],["even",{"2":{"31":1}}],["ever",{"2":{"15":1}}],["editors",{"2":{"89":1}}],["edge",{"2":{"61":2,"102":2,"157":2}}],["earlier",{"2":{"138":1}}],["easily",{"2":{"145":1,"146":1}}],["easier",{"2":{"102":1}}],["easy",{"2":{"106":1,"145":1,"147":1}}],["ease",{"2":{"88":1}}],["eachrow",{"2":{"130":4}}],["each",{"2":{"3":2,"5":2,"22":1,"25":1,"31":3,"33":3,"36":3,"49":2,"57":1,"61":2,"85":1,"86":1,"90":5,"102":12,"123":1,"132":1,"147":1,"155":2,"157":2,"158":1}}],["etc",{"2":{"56":1,"146":1}}],["e",{"2":{"31":1,"49":2,"61":4,"63":4,"96":1,"102":15,"119":1,"130":3,"155":1,"158":1}}],["else",{"2":{"130":4}}],["eltype",{"2":{"27":3,"102":3,"120":2}}],["elementary",{"0":{"42":1}}],["elements",{"2":{"11":1,"18":1,"31":1,"65":2,"69":1,"102":18,"104":1,"118":1,"123":1,"134":8,"155":2}}],["element",{"2":{"2":9,"3":9,"68":1,"102":9,"120":2,"138":1,"157":2,"158":1}}],["either",{"2":{"18":1,"21":1,"24":1,"34":1,"37":1,"47":2,"63":4,"102":8,"106":1,"155":4}}],["enabled",{"2":{"158":1}}],["enumerate",{"2":{"130":1}}],["entry",{"2":{"102":3,"158":1}}],["enforcing",{"2":{"102":2,"157":1}}],["environment",{"0":{"89":1},"2":{"146":1,"154":1}}],["encapsulate",{"2":{"102":1,"136":1,"158":2}}],["encapsuler",{"2":{"21":1,"102":1}}],["encode",{"2":{"120":1}}],["encoded",{"2":{"61":2,"102":2,"157":1}}],["encoding",{"0":{"124":1},"2":{"102":5,"124":4,"126":1,"155":4}}],["encompass",{"2":{"102":1}}],["encourage",{"2":{"78":1,"89":2}}],["ensure",{"2":{"90":1,"102":1,"126":1}}],["ensures",{"2":{"42":2,"45":2,"49":2,"61":2,"63":6,"90":1,"102":12,"157":2}}],["ensuring",{"2":{"1":7,"40":5,"57":1,"102":17,"120":3,"136":1,"157":18}}],["energy",{"2":{"31":1}}],["enough",{"2":{"30":1,"102":1}}],["end``",{"2":{"158":1}}],["end",{"2":{"7":2,"46":1,"47":1,"90":2,"102":2,"130":15,"140":2,"143":2,"146":2,"148":1,"149":1,"150":1,"151":2,"153":1,"154":3,"157":1,"158":4}}],["existing",{"2":{"102":2,"106":1,"107":1}}],["exists",{"2":{"90":1,"102":3,"150":1}}],["ex",{"2":{"102":3}}],["expansion",{"2":{"102":1}}],["export",{"2":{"102":1,"155":1,"158":1}}],["expr",{"2":{"102":2,"149":1,"150":3,"151":3}}],["express",{"2":{"157":1}}],["expressing",{"2":{"70":1}}],["expressions",{"2":{"123":1}}],["expression",{"2":{"40":1,"44":1,"102":8}}],["expresses",{"2":{"52":1}}],["experimental",{"0":{"101":1},"2":{"101":1}}],["experiments",{"0":{"99":1},"1":{"100":1,"101":1},"2":{"101":1}}],["expected",{"2":{"102":4,"155":3}}],["expect",{"2":{"91":1}}],["expectations",{"2":{"89":1}}],["explicit",{"2":{"102":2,"157":1}}],["explicitly",{"2":{"47":1,"102":2,"157":3}}],["explanation",{"2":{"96":1,"102":1}}],["explored",{"2":{"28":2,"102":3,"155":3}}],["exploresettings",{"2":{"28":6,"102":6,"155":6}}],["explore",{"2":{"17":1,"28":4,"64":1,"102":7,"155":4}}],["exploring",{"0":{"17":1,"64":1,"84":1},"1":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"85":1},"2":{"122":1}}],["explorations",{"2":{"17":1,"64":1}}],["exploration",{"0":{"28":1},"1":{"29":1},"2":{"11":1,"28":4,"30":1,"102":5,"155":3}}],["exclu",{"2":{"102":3,"123":3}}],["exclusive",{"2":{"102":11,"105":1,"111":1,"116":1,"120":3,"123":9,"155":3}}],["excluded",{"2":{"102":1,"157":2}}],["exclude",{"2":{"40":1,"102":1}}],["exceeds",{"2":{"55":1}}],["exceed",{"2":{"52":1,"63":2,"102":2}}],["except",{"2":{"40":2,"102":2}}],["except=vals",{"2":{"33":1,"38":1,"102":2,"155":1}}],["exact",{"2":{"108":4}}],["exactly",{"2":{"39":7,"40":4,"102":4,"157":3}}],["exampleusing",{"2":{"102":2}}],["example2",{"2":{"102":2}}],["examples",{"0":{"129":1},"1":{"130":1,"131":1},"2":{"1":3,"3":4,"11":1,"40":4,"42":1,"49":1,"61":2,"63":2,"69":1,"89":1,"102":22,"136":1,"139":1,"142":1,"154":1}}],["example",{"2":{"0":2,"2":1,"5":1,"33":4,"34":1,"37":1,"38":4,"44":2,"46":1,"47":1,"50":1,"52":1,"53":1,"54":1,"55":1,"89":1,"102":8,"138":1,"140":2,"143":2,"147":1,"150":1,"155":6}}],["externally",{"2":{"158":1}}],["external",{"2":{"102":1,"136":1}}],["extensibility",{"2":{"59":1}}],["extensionally",{"2":{"47":1}}],["extensional",{"2":{"47":1}}],["extension",{"0":{"19":1,"22":1,"25":1,"47":1,"139":1,"142":1},"1":{"140":1,"141":1,"143":1,"144":1},"2":{"43":1,"102":8,"139":1,"140":1,"142":1,"143":1,"147":4,"157":4}}],["extensions",{"0":{"9":1},"1":{"10":1},"2":{"4":1,"140":1,"143":1}}],["extending",{"0":{"147":1},"1":{"148":1,"149":1,"150":1,"151":1,"152":1,"153":1},"2":{"147":1}}],["extended",{"2":{"102":19,"118":2,"134":8,"147":1,"155":2}}],["extends",{"2":{"9":3,"19":5,"22":3,"25":3,"27":1,"30":2,"31":4,"102":7,"120":3,"122":2,"155":3}}],["extend",{"2":{"9":1,"18":1,"27":1,"65":1,"102":2,"147":1,"153":1,"155":1}}],["extracted",{"2":{"32":1,"33":1,"35":1,"38":1,"57":1}}],["extracts",{"2":{"5":1,"102":2,"155":1}}],["extract",{"2":{"5":2,"34":1,"37":1,"102":2,"155":2}}],["extremal",{"2":{"68":1}}],["extrema",{"0":{"13":1},"1":{"14":1},"2":{"4":1,"13":3,"102":2,"120":1,"130":1,"155":2,"158":3}}],["ecosystem",{"2":{"4":1,"17":1,"32":1,"35":1,"64":1,"89":1,"106":1}}],["especially",{"2":{"108":1}}],["estimation",{"2":{"34":1,"37":1}}],["establishes",{"2":{"3":2,"102":2}}],["essentially",{"2":{"53":1}}],["essential",{"2":{"4":1,"65":1,"147":1}}],["hide",{"2":{"102":2}}],["highly",{"2":{"123":1}}],["highlight",{"2":{"91":1}}],["highlighting",{"2":{"78":1,"88":1}}],["high",{"2":{"50":1,"106":1}}],["higher",{"2":{"44":1,"46":1}}],["highest",{"2":{"18":1,"21":1,"24":1,"102":1,"155":1,"158":1}}],["helps",{"2":{"106":1}}],["help",{"2":{"106":2,"107":1}}],["heuristic",{"2":{"90":1,"108":2}}],["heights",{"2":{"63":5,"102":5,"157":1}}],["here",{"2":{"46":1,"102":1,"138":1,"140":1,"143":1,"146":2,"150":2,"151":1,"152":1,"154":1,"157":1}}],["heavily",{"2":{"33":1,"36":1,"132":1}}],["heavy",{"2":{"32":1,"35":1}}],["https",{"2":{"33":1,"38":1,"102":1,"155":1}}],["hamming",{"2":{"102":4,"119":2,"120":3,"155":4}}],["hardware",{"2":{"89":1}}],["hands",{"0":{"100":1}}],["hand",{"2":{"34":1,"37":1,"107":1}}],["handled",{"2":{"21":1,"102":1}}],["handle",{"2":{"0":3,"2":4,"18":1,"39":4,"62":2,"102":1,"158":2}}],["have",{"2":{"31":1,"33":1,"36":1,"53":1,"75":1,"89":1,"102":6,"108":1,"118":2,"155":4,"157":1}}],["has",{"2":{"11":1,"66":1,"90":1,"102":6,"123":1,"124":1,"139":1,"142":1,"147":1,"155":2,"158":10}}],["hot",{"2":{"102":3,"124":3,"130":1,"155":3}}],["hosts",{"2":{"106":1}}],["host",{"2":{"89":1}}],["holds",{"2":{"106":1}}],["hold",{"2":{"3":4,"102":4,"120":1}}],["however",{"2":{"55":1,"59":1,"90":1}}],["how",{"0":{"83":1},"2":{"0":3,"2":4,"34":1,"37":1,"39":4,"44":1,"45":1,"62":2,"72":1,"78":1,"94":1,"101":1,"113":1,"133":1}}],["fetch",{"2":{"158":1}}],["feasible",{"2":{"90":2,"108":1}}],["features",{"0":{"126":1},"2":{"17":1,"32":1,"35":1,"57":1,"64":1,"85":1,"122":1,"145":1}}],["feature",{"2":{"4":1,"34":1,"37":1,"147":1}}],["f2",{"2":{"158":2}}],["fraction",{"2":{"153":1}}],["framework",{"2":{"50":1,"59":1,"106":1}}],["front",{"2":{"132":1}}],["from",{"0":{"61":1,"76":1,"83":1},"2":{"19":4,"22":2,"25":3,"30":2,"31":2,"33":1,"38":1,"53":1,"57":1,"61":1,"76":1,"90":2,"91":1,"102":14,"107":1,"120":1,"122":3,"128":1,"136":2,"145":1,"150":1,"151":1,"152":1,"153":1,"154":4,"155":2,"157":6,"158":17}}],["friendly",{"2":{"57":1}}],["free",{"2":{"31":1}}],["filter",{"2":{"130":1}}],["file",{"2":{"102":7,"123":1,"155":7}}],["filled",{"2":{"90":1}}],["fill",{"2":{"31":4,"90":1}}],["fields",{"2":{"102":1,"155":1,"157":1}}],["finishes",{"2":{"63":8,"102":8}}],["finish",{"2":{"61":2,"102":2}}],["finally",{"2":{"34":1,"37":1}}],["finer",{"2":{"34":1,"37":1}}],["finds",{"2":{"138":1}}],["finding",{"2":{"106":1,"107":1,"108":2}}],["find",{"2":{"33":1,"36":1,"108":5,"158":2}}],["first",{"0":{"90":1},"2":{"3":2,"39":1,"61":1,"63":8,"90":1,"102":15,"120":1,"130":4,"138":1,"146":4,"157":1,"158":1}}],["flatten",{"2":{"130":1}}],["flexibility",{"2":{"89":1}}],["flexible",{"2":{"28":3,"47":1,"50":1,"102":6,"136":1,"155":4}}],["float64",{"2":{"102":2,"130":1,"157":1,"158":5}}],["flows",{"2":{"31":1}}],["flow",{"2":{"31":1}}],["floor",{"2":{"28":2,"102":2,"155":2}}],["f",{"2":{"7":1,"11":2,"34":6,"37":5,"102":16,"118":6,"155":14,"157":40,"158":7}}],["full",{"0":{"102":1}}],["func",{"2":{"158":6}}],["funcs",{"2":{"102":2,"118":2,"155":2}}],["functionalities",{"2":{"59":1,"65":1}}],["functioning",{"2":{"59":1}}],["functions",{"0":{"34":1,"37":1},"2":{"4":1,"31":1,"102":8,"116":1,"123":3,"136":4,"147":1,"153":2,"155":2}}],["function",{"2":{"1":3,"3":4,"5":2,"7":2,"9":3,"11":2,"13":1,"15":2,"18":4,"19":5,"21":6,"22":4,"24":7,"25":5,"27":2,"28":3,"30":4,"31":1,"33":4,"34":7,"37":7,"38":4,"40":4,"42":1,"44":1,"49":1,"61":3,"63":2,"90":1,"102":67,"104":2,"105":1,"110":2,"111":1,"114":2,"116":1,"118":12,"119":3,"120":4,"122":3,"123":9,"124":3,"126":2,"128":1,"130":7,"132":1,"134":10,"136":6,"138":1,"153":1,"155":31,"157":30,"158":18}}],["fundamental",{"2":{"102":1,"157":1}}],["fundamentals",{"2":{"98":1}}],["further",{"2":{"31":1,"89":1}}],["future",{"0":{"79":1},"2":{"5":1}}],["found",{"2":{"123":1}}],["foundation",{"2":{"65":1}}],["foundational",{"2":{"4":1}}],["follwing",{"2":{"145":1}}],["follows",{"2":{"90":1,"146":1,"157":1}}],["following",{"2":{"11":1,"18":1,"40":1,"51":1,"65":1,"102":8,"118":2,"124":1,"136":1,"140":1,"143":1,"154":1,"155":6,"158":1}}],["follow",{"2":{"5":1}}],["folder",{"2":{"154":2}}],["fold",{"2":{"106":1,"154":1}}],["focuses",{"2":{"106":1,"107":2}}],["formulating",{"2":{"76":1}}],["formal",{"2":{"52":1,"158":1}}],["formatted",{"2":{"102":2,"118":1,"155":1}}],["format",{"2":{"5":1,"18":1,"31":9,"33":1,"36":1,"102":3,"124":1,"155":2}}],["form",{"2":{"49":2,"102":2}}],["forbidden",{"2":{"31":1,"102":1,"157":2}}],["forwarded",{"2":{"158":1}}],["forward",{"2":{"31":2,"90":1}}],["foreseeable",{"2":{"5":1}}],["for",{"0":{"87":1,"123":1,"124":1},"1":{"88":1,"89":1,"90":1},"2":{"0":2,"2":1,"3":4,"5":1,"7":3,"9":1,"15":1,"18":3,"19":3,"21":2,"22":3,"24":2,"25":3,"27":2,"28":2,"30":2,"31":12,"33":1,"34":2,"36":1,"37":2,"39":1,"44":1,"45":1,"46":2,"47":2,"50":3,"54":1,"55":1,"58":1,"59":1,"63":6,"64":1,"65":5,"68":2,"69":1,"79":1,"86":1,"88":1,"89":3,"90":2,"93":1,"102":54,"106":5,"107":1,"108":3,"114":9,"115":8,"116":2,"117":1,"118":4,"119":2,"120":8,"122":21,"123":4,"124":2,"126":1,"128":1,"130":2,"134":5,"135":12,"136":5,"137":1,"138":1,"145":3,"146":5,"147":2,"148":1,"150":2,"151":1,"153":5,"154":5,"155":13,"157":14,"158":18}}],["faster",{"2":{"158":1}}],["fails",{"2":{"51":1}}],["facilities",{"2":{"31":6}}],["facilitates",{"2":{"102":1,"136":1}}],["facilitate",{"2":{"4":1,"32":1,"35":1}}],["fake",{"2":{"30":1,"102":1,"122":1}}],["fakeautomaton",{"2":{"7":2,"19":2,"22":1,"25":1,"30":5,"102":5,"122":4}}],["fallback",{"2":{"18":1,"19":2,"21":1,"22":2,"24":1,"25":2,"102":4,"155":1}}],["false",{"2":{"0":4,"1":3,"2":9,"3":10,"7":1,"9":1,"11":1,"19":2,"22":2,"25":2,"30":1,"39":4,"40":4,"42":1,"46":1,"47":1,"49":1,"55":1,"63":2,"70":1,"102":31,"116":1,"122":1,"130":3,"155":5,"157":4,"158":2}}],["fa",{"2":{"7":1,"19":4,"22":2,"25":2,"30":3,"102":3,"122":3}}],["swap",{"2":{"158":2}}],["switch",{"2":{"102":1,"119":1,"155":1}}],["src",{"2":{"157":2}}],["sltns",{"2":{"120":2}}],["smaller",{"2":{"108":1}}],["small",{"2":{"108":1}}],["script",{"2":{"154":1}}],["scatterlines",{"2":{"146":1,"154":1}}],["scalarfunction",{"2":{"157":3}}],["scalars",{"2":{"102":1,"114":1}}],["scalar",{"2":{"5":2,"33":2,"36":2,"102":5,"104":1,"157":1}}],["science",{"2":{"88":1}}],["scenario",{"2":{"76":1}}],["scheduling",{"0":{"63":1},"2":{"63":6,"102":6,"107":1}}],["syntaxes",{"2":{"50":1,"64":1}}],["syntax",{"2":{"34":1,"37":1,"89":1,"90":1,"157":1,"158":1}}],["systems",{"2":{"107":2}}],["system",{"2":{"31":1}}],["symb",{"2":{"102":2}}],["symbols",{"2":{"9":2,"102":11,"118":4,"123":1,"146":2,"155":6}}],["symbol",{"2":{"5":4,"9":3,"28":1,"33":4,"34":2,"37":2,"38":4,"102":34,"123":1,"124":1,"130":1,"136":5,"146":1,"147":1,"155":15,"158":3}}],["symmetry",{"2":{"102":1,"155":1}}],["symmetries",{"2":{"102":4,"155":4}}],["symcon",{"2":{"9":1,"102":1,"155":1}}],["square",{"2":{"28":1,"31":3,"102":1,"155":1}}],["sqrt",{"2":{"28":1,"102":1,"155":1}}],["successfully",{"2":{"75":1}}],["such",{"2":{"5":2,"31":2,"32":1,"33":2,"36":2,"44":3,"46":2,"50":1,"56":1,"61":1,"70":1,"82":1,"102":5,"106":1,"107":2,"123":1,"136":1,"157":1,"158":4}}],["subs",{"2":{"158":3}}],["subsolvers",{"2":{"158":4}}],["subsolver",{"2":{"158":6}}],["subsets",{"2":{"90":2}}],["subset",{"2":{"53":1,"157":1}}],["sub",{"2":{"120":1,"158":1}}],["subtract",{"2":{"102":1,"136":1}}],["subtraction",{"2":{"102":1,"136":1}}],["subtype",{"2":{"31":1}}],["subgrid",{"2":{"90":1}}],["subgrids",{"2":{"90":1}}],["supply",{"2":{"107":1}}],["supplies",{"2":{"31":1,"106":1}}],["support",{"2":{"102":1,"157":1}}],["supported",{"2":{"102":4,"157":2}}],["supports=nothing",{"2":{"102":1}}],["supports",{"2":{"56":1,"102":7,"157":13}}],["supertype",{"2":{"21":1,"24":1,"65":1,"102":2,"155":2}}],["super",{"2":{"18":1,"65":1,"102":1,"155":1}}],["sudoku",{"2":{"31":17,"90":4,"158":1}}],["sudokuinstances",{"2":{"31":1}}],["sudokuinstance",{"2":{"31":19}}],["summary",{"2":{"108":1}}],["summing",{"0":{"40":1}}],["sum",{"2":{"22":1,"25":1,"28":2,"31":1,"39":8,"40":8,"52":1,"63":2,"102":21,"104":2,"110":3,"126":3,"155":5,"157":3}}],["stop",{"2":{"158":5}}],["storing",{"2":{"106":1,"154":1}}],["storage",{"2":{"68":1}}],["stored",{"2":{"150":1,"151":1}}],["stores",{"2":{"24":2,"102":2,"154":2,"155":1}}],["store",{"2":{"21":3,"30":8,"32":1,"35":1,"102":15,"118":1,"123":2,"155":1,"158":3}}],["stuff",{"2":{"130":2}}],["studio",{"2":{"89":1}}],["studies",{"0":{"75":1},"2":{"75":1}}],["stipulates",{"2":{"102":1,"157":2}}],["still",{"2":{"34":1,"37":1}}],["step",{"2":{"86":2,"100":2,"102":2,"158":3}}],["stamp",{"2":{"158":4}}],["status",{"2":{"158":4}}],["static",{"2":{"158":1}}],["statistical",{"2":{"107":1}}],["states",{"2":{"61":4,"102":4}}],["statement",{"2":{"52":1}}],["state",{"2":{"31":3,"54":1,"158":36}}],["stands",{"2":{"64":1}}],["standards",{"2":{"50":1,"57":1}}],["standard",{"2":{"17":1,"31":3,"33":1,"36":1,"43":1,"64":1,"106":1}}],["started",{"0":{"86":1,"87":1},"1":{"88":1,"89":1,"90":1},"2":{"86":1}}],["starts",{"2":{"63":8,"102":9,"108":1,"158":2}}],["start",{"2":{"31":1,"49":2,"61":2,"90":1,"102":4,"146":1}}],["starting",{"2":{"31":2,"102":1,"158":1}}],["start=",{"2":{"31":1}}],["stdout",{"2":{"31":1}}],["str",{"2":{"158":1}}],["straight",{"2":{"90":1}}],["straightforward",{"2":{"44":1,"157":1}}],["strategies",{"0":{"73":1},"2":{"73":1}}],["streamline",{"2":{"58":1}}],["streamlining",{"0":{"0":1,"2":1,"39":1,"41":1,"48":1,"60":1,"62":1},"1":{"1":1,"3":1,"40":1,"42":1,"49":1,"61":1,"63":1}}],["strongly",{"2":{"51":1}}],["string",{"2":{"19":4,"22":4,"25":4,"31":1,"102":8,"118":1,"123":1,"146":1,"155":1,"157":1,"158":1}}],["strictly",{"2":{"1":8,"102":13,"104":1,"155":3}}],["struct",{"2":{"18":1,"31":3,"102":1,"158":4}}],["structure",{"0":{"123":1},"2":{"7":3,"18":2,"30":1,"31":1,"65":1,"69":1,"102":7,"108":1,"120":1,"123":4,"155":5,"158":5}}],["structures",{"2":{"4":1}}],["silent",{"2":{"157":4,"158":1}}],["sig",{"2":{"102":17,"134":8}}],["signature",{"2":{"102":2,"118":2,"155":2}}],["significance",{"2":{"81":1}}],["single",{"2":{"90":1,"102":3,"104":1,"110":2}}],["since",{"2":{"44":1,"46":1,"66":1,"158":1}}],["sink",{"2":{"31":3}}],["simulated",{"2":{"97":1}}],["simplified",{"2":{"102":3}}],["simplify",{"2":{"72":1}}],["simple",{"2":{"33":1,"38":1,"90":2,"102":1,"155":1}}],["simply",{"2":{"19":2,"22":1,"25":1,"30":1,"34":1,"37":1,"67":1,"90":1,"102":2,"122":1,"146":1}}],["similar",{"2":{"18":1,"39":1,"65":1,"102":1,"155":1}}],["situations",{"2":{"13":1}}],["sizes",{"2":{"28":1,"102":1,"155":1}}],["size",{"2":{"5":1,"18":5,"21":8,"24":8,"28":1,"31":3,"33":1,"36":1,"49":3,"65":1,"102":31,"118":1,"120":7,"123":2,"130":2,"155":15,"158":4}}],["split",{"2":{"120":1}}],["specialize",{"2":{"158":10}}],["specialized",{"2":{"102":2,"114":1,"134":1,"158":10}}],["specializing",{"2":{"158":1}}],["specifying",{"2":{"28":3,"64":1,"102":5,"155":3,"157":5}}],["specify",{"2":{"17":1}}],["specific",{"2":{"42":4,"51":2,"53":1,"54":1,"55":1,"102":6,"120":2,"136":1,"141":1,"144":1,"157":2}}],["specifically",{"2":{"19":2,"22":1,"25":1,"30":1,"102":2,"122":1,"157":1}}],["specification",{"2":{"5":1}}],["specifications",{"2":{"5":2,"33":1,"38":1,"102":1,"155":1}}],["specified",{"2":{"19":2,"22":1,"25":1,"28":1,"30":1,"31":2,"102":3,"122":1,"136":1,"155":1,"157":2}}],["specifies",{"2":{"3":6,"40":1,"44":1,"47":1,"52":1,"102":8,"136":1}}],["space",{"2":{"28":2,"102":9,"107":1,"155":7,"157":3,"158":1}}],["spaces",{"2":{"11":1,"66":1}}],["span",{"2":{"21":1,"24":1,"102":1}}],["s2",{"2":{"9":1,"102":1,"155":1}}],["s1",{"2":{"9":1,"102":1,"155":1}}],["s",{"2":{"5":3,"7":6,"18":2,"21":1,"24":1,"31":5,"34":4,"37":4,"65":2,"90":1,"102":18,"114":4,"115":4,"116":1,"118":1,"119":1,"122":10,"123":1,"134":2,"135":6,"138":1,"149":1,"151":1,"155":14,"158":109}}],["sat",{"2":{"158":3}}],["satisfaction",{"0":{"55":1},"2":{"51":1,"58":1,"102":2,"106":1,"157":1,"158":3}}],["satisfying",{"2":{"158":2}}],["satisfy",{"2":{"40":3,"44":1,"47":1,"52":1,"102":3,"106":1,"107":1,"108":1,"157":2}}],["satisfies",{"2":{"40":6,"55":1,"61":1,"102":8,"108":1,"155":1,"157":4}}],["satisfied",{"2":{"3":4,"34":1,"37":1,"42":1,"49":1,"55":2,"61":1,"63":2,"102":10,"107":1,"155":1,"157":1,"158":1}}],["save",{"2":{"154":2}}],["say",{"2":{"102":1,"124":1,"155":1}}],["samples=d",{"2":{"151":1}}],["samples",{"2":{"141":2,"144":1,"148":1,"151":1,"153":5,"154":1}}],["samplings",{"2":{"28":5,"102":5,"155":5}}],["sampling",{"0":{"11":1},"1":{"12":1},"2":{"4":1,"11":2}}],["same",{"2":{"21":1,"24":1,"31":2,"33":1,"38":1,"102":4,"155":2,"157":1}}],["shifted",{"2":{"130":3}}],["shrink",{"2":{"102":2}}],["share",{"2":{"79":1,"93":1}}],["shared",{"2":{"4":1,"59":1}}],["show",{"2":{"102":4,"118":1,"123":1,"155":1}}],["showcase",{"2":{"75":1}}],["shortcut",{"2":{"34":1,"37":1,"102":1,"155":1}}],["should",{"2":{"3":6,"17":1,"44":1,"46":1,"102":11,"118":2,"155":2,"157":4,"158":3}}],["seaperl",{"2":{"106":1}}],["searching",{"2":{"102":1,"155":1}}],["search",{"0":{"73":1,"108":1,"131":1},"2":{"11":1,"28":9,"73":1,"97":1,"102":20,"107":1,"108":3,"123":1,"155":20,"157":1,"158":1}}],["select",{"2":{"146":1,"158":4}}],["selection",{"2":{"102":1,"136":1}}],["selected",{"2":{"102":8,"105":1,"111":1,"116":1,"120":2,"123":6,"155":4,"158":1}}],["series",{"2":{"90":1,"158":1}}],["serves",{"2":{"4":1}}],["sequence",{"2":{"49":6,"61":4,"102":10,"157":3}}],["seen",{"2":{"52":1}}],["see",{"2":{"45":1,"70":2,"158":1}}],["separates",{"2":{"102":1,"118":1}}],["separator",{"2":{"31":1}}],["sep",{"2":{"31":2,"102":2,"118":2}}],["segment",{"2":{"31":3}}],["several",{"2":{"13":1,"59":1,"89":1,"106":1,"123":1}}],["sec",{"2":{"158":1}}],["section",{"2":{"5":1,"45":1,"139":1,"142":1}}],["seconds=d",{"2":{"151":1}}],["seconds",{"2":{"141":2,"144":1,"148":1,"151":1,"154":1,"158":1}}],["second",{"2":{"3":2,"63":8,"102":10}}],["setter",{"2":{"90":1}}],["setting",{"0":{"89":1},"2":{"158":1}}],["settings",{"2":{"28":4,"102":4,"155":4,"158":1}}],["setup",{"2":{"89":1}}],["setdomain",{"0":{"67":1},"2":{"18":1,"21":1,"24":3,"25":2,"67":1,"68":1,"102":5,"155":5}}],["set",{"2":{"3":4,"7":1,"9":2,"19":2,"22":1,"24":3,"25":1,"30":1,"31":4,"40":3,"42":2,"47":2,"52":1,"54":1,"55":1,"67":1,"70":1,"102":31,"107":1,"116":1,"118":1,"120":11,"122":1,"124":2,"136":1,"155":11,"157":68,"158":22}}],["sets",{"2":{"3":2,"28":1,"56":1,"68":1,"69":1,"102":3,"120":3,"155":1}}],["sound",{"2":{"69":1}}],["source",{"2":{"1":3,"3":4,"5":3,"7":7,"9":3,"11":1,"13":1,"15":1,"18":10,"19":15,"21":12,"22":15,"24":14,"25":16,"27":2,"28":3,"30":17,"31":21,"33":5,"34":3,"36":1,"37":3,"38":4,"40":4,"42":1,"49":1,"61":2,"63":2,"65":1,"102":187,"104":2,"105":1,"110":2,"111":1,"114":1,"116":1,"118":6,"119":3,"120":28,"122":7,"123":11,"124":3,"126":2,"128":2,"134":9,"136":2,"138":4,"155":74,"157":74,"158":144}}],["soon",{"2":{"68":1,"157":1}}],["so",{"2":{"31":1,"90":1,"102":2,"107":1}}],["sols",{"2":{"102":1,"120":4,"155":1}}],["solving",{"2":{"50":1,"73":1,"76":1,"81":1,"89":1,"91":1,"107":4,"158":4}}],["solve",{"2":{"31":1,"90":1,"106":2,"107":1,"158":3}}],["solverversion",{"2":{"157":1}}],["solvername",{"2":{"157":1}}],["solvers",{"0":{"156":1},"2":{"89":3,"90":4,"106":10,"108":3,"123":1,"156":1,"158":2}}],["solver",{"2":{"31":6,"90":2,"106":1,"108":2,"120":1,"157":11,"158":29}}],["solutions",{"2":{"4":1,"28":7,"102":11,"106":1,"107":2,"108":4,"119":1,"120":8,"155":11,"158":9}}],["solution",{"2":{"0":2,"2":1,"31":2,"90":3,"102":3,"107":1,"108":4,"119":1,"155":1,"157":3,"158":4}}],["something",{"2":{"102":1}}],["some",{"2":{"9":1,"11":1,"69":1,"90":1,"102":1,"103":1,"106":1,"109":1,"112":1,"120":1,"122":1,"132":1,"139":1,"142":1,"146":1,"155":1,"157":1}}],["t2",{"2":{"157":4}}],["t1",{"2":{"157":3}}],["tbw",{"2":{"120":4,"158":2}}],["typically",{"2":{"107":1}}],["typeof",{"2":{"157":1}}],["typemax",{"2":{"130":1,"158":1}}],["type",{"2":{"7":4,"18":6,"21":2,"24":5,"27":1,"28":2,"30":9,"31":7,"65":5,"102":35,"108":2,"120":7,"123":1,"128":2,"136":1,"155":15,"157":55,"158":17}}],["types",{"2":{"4":1,"43":1,"47":1,"56":1,"65":1,"96":1,"102":2,"136":2,"158":8}}],["tutorial",{"0":{"154":1}}],["tutorials",{"0":{"99":1,"100":1},"1":{"100":1,"101":1},"2":{"100":1}}],["tuples",{"2":{"47":2,"102":6,"157":4}}],["tuple",{"2":{"3":7,"18":5,"21":5,"24":5,"28":1,"31":2,"63":1,"102":18,"146":1,"155":6,"157":9}}],["tips",{"2":{"93":1}}],["timelimitsec",{"2":{"157":1}}],["timestamps",{"2":{"158":1}}],["times",{"2":{"39":1,"40":3,"102":3,"153":3,"154":2}}],["time",{"2":{"31":1,"63":8,"102":10,"108":1,"123":2,"136":1,"141":2,"153":1,"157":1,"158":27}}],["temporary",{"2":{"158":1}}],["templates",{"2":{"58":1}}],["tests",{"2":{"146":1}}],["tested",{"0":{"151":1},"2":{"146":1,"150":1}}],["test",{"2":{"120":2,"130":6,"145":1,"146":2}}],["testing",{"0":{"152":1},"2":{"102":1,"120":1,"145":1,"148":1,"151":1,"152":1,"154":2}}],["text",{"2":{"103":1,"109":1,"112":1,"132":1}}],["teach",{"2":{"94":1}}],["techniques",{"0":{"71":1,"83":1},"1":{"72":1,"73":1},"2":{"107":2,"108":2}}],["terminology",{"0":{"51":1,"82":1},"1":{"52":1,"53":1,"54":1,"55":1},"2":{"51":1}}],["tendency",{"2":{"31":1}}],["tag",{"2":{"146":1}}],["tags",{"2":{"146":2,"154":1}}],["tackle",{"2":{"122":1}}],["tabu",{"2":{"97":1,"158":46}}],["table",{"0":{"153":1},"2":{"33":4,"38":4,"102":4,"130":1,"152":2,"153":4,"155":4}}],["task",{"2":{"63":16,"102":16}}],["tasks",{"2":{"63":18,"102":18,"157":1,"158":1}}],["taken",{"2":{"154":1}}],["takes",{"2":{"42":2,"102":4,"157":1}}],["take",{"2":{"33":1,"38":1,"90":1,"102":1,"108":1,"146":1,"155":1}}],["targeted",{"2":{"28":1,"89":1,"102":2,"155":2,"158":3}}],["target",{"2":{"5":1,"33":1,"36":1,"102":1}}],["tries",{"2":{"108":1}}],["tr",{"2":{"102":58,"118":3,"134":29,"135":6}}],["track",{"2":{"141":1,"144":1,"148":1}}],["train",{"2":{"102":3,"120":2,"128":3,"130":5,"155":2}}],["training",{"2":{"102":1,"120":7,"155":1}}],["transpose",{"2":{"130":3}}],["transportation",{"2":{"107":1}}],["transported",{"2":{"31":1}}],["transform",{"2":{"102":1,"124":1,"155":1}}],["transforms",{"2":{"102":4,"136":4}}],["transformations",{"0":{"132":1,"133":1},"1":{"133":1,"134":2,"135":2,"136":2},"2":{"102":16,"116":1,"133":1,"136":15,"155":3}}],["transformation",{"2":{"102":12,"132":3,"136":8,"155":4}}],["try",{"2":{"51":1,"89":1,"108":1,"130":1}}],["true",{"2":{"0":4,"1":3,"2":5,"3":6,"7":3,"9":1,"11":1,"19":2,"22":2,"25":2,"30":1,"39":10,"40":4,"42":1,"46":1,"47":1,"49":1,"55":1,"62":1,"63":2,"70":1,"102":28,"120":1,"122":1,"123":1,"144":1,"148":1,"154":1,"155":4,"157":6,"158":3}}],["t",{"2":{"7":2,"18":8,"21":11,"24":14,"30":5,"31":10,"61":2,"102":29,"146":1,"155":14,"157":25,"158":7}}],["two",{"2":{"3":2,"7":1,"18":1,"21":3,"24":3,"31":1,"43":1,"47":1,"52":1,"63":4,"102":11,"106":1,"155":3,"157":1}}],["tolerance",{"2":{"141":4}}],["too",{"2":{"108":1}}],["tools",{"0":{"50":1},"1":{"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1},"2":{"32":1,"35":1}}],["towards",{"2":{"102":1,"155":1}}],["topics",{"2":{"100":1}}],["total",{"2":{"22":1,"25":1,"102":1}}],["to",{"0":{"19":1,"22":1,"25":1,"50":1,"76":1,"91":1,"125":1,"151":1},"1":{"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"126":1},"2":{"0":3,"1":9,"2":4,"3":12,"4":2,"5":2,"7":1,"9":1,"11":1,"13":1,"15":1,"17":3,"18":4,"19":6,"21":3,"22":4,"24":1,"25":4,"28":6,"30":18,"31":16,"32":1,"33":7,"34":9,"35":1,"36":3,"37":9,"38":4,"39":4,"40":13,"42":2,"44":1,"45":6,"46":1,"47":1,"49":3,"51":3,"53":2,"54":1,"55":2,"57":1,"58":1,"59":3,"61":4,"62":2,"63":2,"64":2,"65":1,"68":2,"78":1,"89":4,"90":6,"91":1,"94":1,"101":1,"102":191,"103":1,"106":3,"107":5,"108":9,"109":1,"110":2,"112":1,"118":6,"119":1,"120":12,"122":4,"123":3,"124":1,"125":1,"126":1,"128":1,"130":1,"132":2,"134":16,"136":7,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":3,"146":10,"147":3,"148":4,"149":2,"150":3,"151":2,"152":3,"153":5,"154":3,"155":49,"157":36,"158":49}}],["todo",{"2":{"0":3,"2":4,"39":4,"45":1,"62":2,"89":1,"90":4,"102":1,"158":1}}],["th",{"2":{"102":1,"123":1}}],["throw",{"2":{"130":1}}],["through",{"2":{"17":1,"34":2,"37":2,"44":3,"46":2,"56":1,"64":1,"76":1,"89":3,"102":3,"104":1,"110":2,"120":2}}],["threads",{"2":{"141":1,"144":1,"146":2,"148":1,"158":12}}],["threshold",{"2":{"102":1,"136":1}}],["three",{"2":{"66":1}}],["than",{"2":{"44":1,"55":1,"58":1,"102":11,"134":5,"136":1,"157":1}}],["that",{"2":{"0":2,"1":7,"2":1,"3":14,"4":1,"5":2,"18":2,"19":2,"21":1,"22":2,"24":3,"25":2,"31":2,"33":2,"34":1,"36":1,"37":1,"38":1,"40":11,"42":4,"44":4,"45":2,"46":1,"47":4,"49":2,"52":3,"61":5,"63":12,"64":1,"65":1,"89":1,"90":6,"91":1,"102":101,"105":1,"106":3,"107":4,"108":5,"111":1,"116":2,"118":2,"120":3,"123":3,"126":1,"136":3,"145":1,"147":1,"153":1,"155":16,"157":33,"158":10}}],["those",{"2":{"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"123":1}}],["thus",{"2":{"31":1}}],["third",{"2":{"3":2,"102":2}}],["this",{"2":{"0":2,"2":1,"3":2,"5":1,"17":1,"31":1,"34":3,"37":3,"45":1,"50":1,"51":1,"52":1,"55":1,"58":1,"61":2,"63":2,"64":1,"69":1,"90":2,"102":16,"122":1,"123":2,"136":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"146":2,"147":1,"148":2,"149":2,"150":2,"151":1,"154":2,"155":1,"157":8,"158":3}}],["them",{"2":{"102":1,"106":1,"157":1,"158":1}}],["theory",{"0":{"76":1}}],["then",{"2":{"45":1,"53":1,"102":2,"158":2}}],["their",{"0":{"72":1},"2":{"33":1,"36":1,"52":1,"54":1,"56":1,"64":2,"70":1,"73":1,"89":1,"90":1,"102":1,"136":1,"141":1,"144":1,"145":1,"148":1}}],["they",{"2":{"31":1,"44":3,"47":3,"72":1,"78":1,"106":1,"107":1,"108":1}}],["there",{"2":{"31":3,"61":1,"102":2,"147":1,"153":1,"157":1}}],["these",{"2":{"5":1,"44":1,"47":2,"65":1,"102":1,"108":1,"153":1}}],["the",{"0":{"65":1,"78":1,"148":1,"153":1},"2":{"0":2,"1":10,"2":1,"3":25,"4":3,"5":17,"7":2,"9":3,"11":2,"13":5,"15":2,"17":2,"18":8,"19":4,"21":8,"22":8,"24":6,"25":9,"28":18,"30":5,"31":50,"32":5,"33":35,"34":17,"35":5,"36":20,"37":17,"38":15,"39":1,"40":41,"42":3,"43":1,"44":6,"45":9,"46":6,"47":5,"49":16,"50":1,"51":3,"52":2,"53":5,"54":2,"55":7,"57":1,"58":2,"59":2,"61":17,"63":33,"64":4,"65":8,"66":1,"76":1,"78":1,"79":1,"85":1,"88":1,"89":9,"90":13,"91":3,"94":1,"98":1,"101":1,"102":479,"103":1,"104":1,"105":3,"106":4,"107":3,"108":3,"109":1,"111":3,"112":1,"113":2,"114":1,"116":4,"118":4,"119":2,"120":17,"122":7,"123":19,"124":1,"126":1,"132":5,"133":2,"134":21,"136":12,"138":5,"140":3,"143":3,"145":2,"146":19,"147":3,"148":2,"149":2,"150":6,"151":5,"152":5,"153":3,"154":10,"155":144,"157":155,"158":120}}],["001",{"2":{"130":1}}],["00514",{"2":{"33":1,"38":1,"102":1,"155":1}}],["0≤z",{"2":{"2":2}}],["0≤x",{"2":{"0":1}}],["0≤y",{"2":{"0":1}}],["0",{"2":{"0":1,"1":14,"2":1,"3":1,"18":1,"19":2,"21":1,"22":1,"24":1,"25":1,"31":54,"34":1,"37":1,"39":12,"40":8,"46":2,"47":2,"49":1,"54":1,"61":22,"67":3,"68":6,"90":2,"102":73,"130":1,"138":8,"154":11,"155":3,"157":2,"158":9}}],["yes",{"2":{"158":1}}],["yet",{"2":{"18":1,"21":1,"31":1,"102":2}}],["you",{"2":{"106":1,"140":1,"143":1}}],["your",{"0":{"89":1,"90":1}}],["y=1",{"2":{"102":1}}],["y=5",{"2":{"55":1}}],["y=2",{"2":{"54":1,"55":1}}],["y",{"2":{"0":4,"2":4,"39":6,"44":2,"46":18,"47":19,"52":1,"54":1,"62":4,"106":1,"120":4,"130":7,"158":2}}],["≤6",{"2":{"62":1}}],["≤",{"2":{"19":4,"22":4,"25":4,"39":2,"62":3,"63":1,"68":2,"90":2,"102":5}}],["≤12",{"2":{"62":1}}],["≤10",{"2":{"39":3}}],["≤1",{"2":{"2":1}}],["≤5",{"2":{"0":2,"2":6,"39":5,"62":4}}],["≤2",{"2":{"0":1}}],["≤4",{"2":{"0":2,"2":1,"39":4}}],["42",{"2":{"18":1,"21":1,"24":1,"40":2,"67":3,"70":3,"102":3,"155":1}}],["4",{"2":{"0":7,"1":12,"2":23,"3":15,"18":1,"21":1,"24":1,"31":3,"39":32,"40":14,"42":4,"45":2,"46":7,"47":10,"49":4,"62":19,"63":18,"67":3,"68":3,"102":82,"138":1,"154":1,"155":1,"157":1,"158":1}}],[">",{"2":{"0":3,"2":4,"39":5,"46":4,"47":4,"49":1,"62":2,"102":1,"130":8,"157":2}}],["x``or",{"2":{"120":1}}],["x̅",{"2":{"120":4}}],["xto",{"2":{"102":1,"119":1,"155":1}}],["xn",{"2":{"90":1}}],["x4",{"2":{"67":1}}],["x3",{"2":{"61":1,"67":1,"102":1}}],["x3c",{"2":{"0":2,"1":4,"7":3,"18":6,"19":9,"21":11,"22":8,"24":12,"25":8,"30":12,"31":3,"39":4,"40":2,"46":4,"47":4,"61":1,"62":2,"63":1,"102":48,"120":1,"122":3,"130":2,"155":18,"157":70,"158":91}}],["x=x1",{"2":{"90":1}}],["x=6",{"2":{"55":1}}],["x=3",{"2":{"54":1,"55":1}}],["x26",{"2":{"102":4}}],["x2",{"2":{"53":1,"61":1,"67":1,"68":1,"102":1,"158":2}}],["x1+x2≤10",{"2":{"53":1}}],["x1",{"2":{"53":1,"61":1,"67":1,"68":1,"102":1,"158":2}}],["x+y≤10",{"2":{"52":1,"53":1,"55":1}}],["xi",{"2":{"46":2,"47":2}}],["xcsp³",{"2":{"43":1}}],["xcsp3",{"2":{"5":3,"7":1,"33":6,"36":4,"38":2,"57":1,"102":3,"155":1}}],["xcsp",{"2":{"0":3,"1":3,"2":4,"3":4,"33":3,"36":2,"38":1,"39":4,"40":4,"42":1,"45":1,"46":1,"47":1,"49":1,"50":1,"61":2,"62":2,"63":2,"102":21,"155":1}}],["x",{"2":{"0":12,"1":23,"2":16,"3":8,"11":2,"13":2,"19":10,"22":10,"25":10,"31":4,"33":1,"34":4,"37":4,"38":1,"39":22,"40":28,"42":2,"44":2,"45":8,"46":10,"47":11,"49":2,"52":1,"54":1,"61":6,"62":8,"63":8,"90":6,"102":298,"104":3,"106":2,"110":4,"114":1,"118":6,"119":8,"120":33,"124":8,"130":42,"134":60,"140":1,"143":1,"154":4,"155":33,"157":50,"158":68}}],["=>",{"2":{"61":15,"102":15,"130":1,"140":3,"141":10,"143":3,"144":6,"146":2,"148":6,"154":7}}],["=usual",{"2":{"33":1,"38":1,"102":1,"155":1}}],["=0",{"2":{"31":1}}],["==",{"2":{"2":9,"3":4,"19":1,"39":9,"40":2,"49":1,"102":9,"124":1,"130":2,"155":1,"157":3}}],["=",{"2":{"0":12,"1":3,"2":34,"3":12,"5":1,"15":2,"18":5,"19":4,"21":5,"22":4,"24":5,"25":4,"28":5,"31":11,"33":2,"34":2,"36":1,"37":2,"38":1,"39":83,"40":16,"42":1,"45":5,"46":10,"47":10,"49":5,"61":16,"62":32,"63":17,"67":10,"68":6,"70":3,"90":1,"102":124,"106":1,"110":2,"116":1,"118":1,"120":12,"124":3,"126":1,"130":34,"136":5,"146":8,"149":1,"150":1,"151":1,"152":1,"153":9,"154":7,"155":34,"157":19,"158":48}}],["ci",{"2":{"145":1,"157":3}}],["circuit",{"2":{"49":12,"102":12}}],["cn",{"2":{"90":1}}],["c=c1",{"2":{"90":1}}],["c=usual",{"2":{"33":2,"38":2,"102":2,"155":2}}],["clear",{"2":{"108":1}}],["classic",{"2":{"90":2}}],["closed",{"2":{"39":1,"40":9,"70":1,"102":9,"154":1}}],["creating",{"2":{"146":1}}],["creation",{"2":{"102":1,"136":1}}],["created",{"2":{"157":1,"158":1}}],["creates",{"2":{"102":1,"154":1}}],["create",{"2":{"28":1,"31":3,"102":3,"155":2,"157":3}}],["crucial",{"2":{"59":1}}],["csps",{"2":{"58":1,"106":1}}],["cc",{"2":{"40":2,"102":2}}],["c2",{"2":{"39":1,"154":2}}],["c1",{"2":{"39":1}}],["cplex",{"2":{"106":1}}],["cp",{"0":{"83":1,"87":1,"90":1},"1":{"88":1,"89":1,"90":1},"2":{"32":1,"35":1,"50":1,"56":1,"73":1,"75":1,"81":1,"89":1,"90":2,"91":1,"93":1,"101":1,"106":9,"107":4}}],["capacited",{"2":{"158":1}}],["capacity",{"2":{"158":1}}],["capacities",{"2":{"31":1}}],["cairomakie",{"2":{"154":1}}],["call",{"2":{"154":1}}],["calls",{"2":{"102":2}}],["called",{"2":{"44":1,"47":1,"90":3,"102":1,"158":2}}],["cast",{"2":{"90":1,"102":1}}],["case",{"0":{"75":1},"2":{"140":1,"143":1,"146":1,"149":1,"152":1,"153":1}}],["catch",{"2":{"130":1}}],["categorized",{"2":{"43":1}}],["catalog",{"2":{"32":1,"35":1,"58":1}}],["cardinalityclosed",{"2":{"39":1}}],["cardinalityopen",{"2":{"39":1}}],["cardinality",{"2":{"39":9,"40":20,"102":20}}],["care",{"2":{"33":1,"38":1,"102":1,"155":1}}],["cannot",{"2":{"70":1}}],["can",{"2":{"17":1,"18":1,"33":2,"36":2,"40":3,"52":1,"61":1,"64":1,"65":1,"78":1,"89":1,"90":3,"91":1,"102":10,"108":1,"123":5,"124":1,"136":1,"140":1,"143":1,"146":3,"147":1,"148":1,"153":1,"155":3,"157":2,"158":1}}],["current",{"2":{"102":2,"123":1,"155":1,"158":1}}],["currently",{"2":{"19":2,"22":1,"25":1,"30":1,"46":1,"47":1,"102":1,"122":1,"157":1}}],["cumulative",{"2":{"62":9,"63":9,"102":9,"157":3}}],["customize",{"2":{"148":1}}],["custom",{"2":{"56":1,"146":4,"149":1,"153":1,"154":1}}],["cut",{"2":{"31":1,"158":1}}],["certain",{"2":{"3":4,"63":2,"102":6,"157":2}}],["chuffed",{"2":{"106":1}}],["choose",{"2":{"158":1}}],["choice",{"2":{"89":1}}],["chosen",{"2":{"33":1,"36":1}}],["chair",{"2":{"153":6,"154":2}}],["chairmark",{"2":{"143":1,"146":1,"148":1,"149":1,"150":1,"151":1,"152":1,"154":3}}],["chairmarks",{"0":{"142":1},"1":{"143":1,"144":1},"2":{"142":1,"143":1,"147":1,"148":1,"149":2,"150":1,"151":1,"152":1,"153":2,"154":5}}],["chains",{"2":{"107":1}}],["challenge",{"2":{"122":1}}],["challenged",{"2":{"70":1}}],["chapter",{"2":{"64":1,"91":1}}],["characteristics",{"2":{"57":1}}],["change",{"2":{"31":2}}],["changes",{"2":{"21":1,"24":1,"31":1,"102":2,"108":1,"155":1}}],["channel",{"2":{"2":12,"3":9,"102":9}}],["chemical",{"2":{"31":3}}],["checked",{"2":{"157":1}}],["checkout",{"2":{"146":1}}],["checkres",{"2":{"146":1,"154":2}}],["checking",{"2":{"65":1}}],["checks",{"2":{"61":1,"102":6,"157":1}}],["check",{"2":{"1":3,"3":8,"19":1,"22":1,"25":1,"40":7,"42":2,"45":1,"49":1,"61":2,"63":1,"90":1,"102":27,"114":4,"115":4,"116":1,"118":1,"119":1,"122":10,"123":2,"124":1,"134":2,"135":6,"140":1,"143":1,"145":2,"146":1,"148":1,"151":3,"152":1,"154":1,"155":1,"157":4,"158":10}}],["cosntriction",{"2":{"158":1}}],["cost",{"2":{"158":19}}],["costs",{"2":{"107":1,"158":20}}],["copied",{"2":{"157":7}}],["copy",{"2":{"157":19}}],["cops",{"2":{"106":1}}],["covering",{"2":{"100":1}}],["cover",{"2":{"98":1}}],["covers",{"2":{"4":1}}],["code",{"0":{"150":1,"151":1,"152":1},"2":{"50":1,"89":1,"102":5,"140":2,"143":2,"146":2,"150":3,"151":2,"152":1,"154":1,"155":3}}],["coded",{"2":{"34":1,"37":1}}],["co",{"2":{"40":2,"102":11,"114":5,"115":4}}],["coefficients",{"2":{"40":1,"102":1}}],["coeffs",{"2":{"39":1,"40":2,"102":2}}],["could",{"2":{"44":1,"47":1,"54":1}}],["counting",{"0":{"40":1},"2":{"102":1,"136":1}}],["count",{"2":{"39":9,"40":6,"102":95,"104":3,"134":40,"135":4,"136":21,"157":4}}],["counter",{"2":{"15":2,"102":2,"155":2,"158":1}}],["couple",{"2":{"33":1,"38":1}}],["columns",{"2":{"90":1}}],["column",{"2":{"90":1}}],["collaborate",{"2":{"78":1}}],["collect",{"2":{"46":1,"47":1,"130":1,"154":4}}],["collection",{"0":{"58":1},"2":{"15":1,"19":2,"21":1,"22":1,"25":1,"28":3,"30":1,"33":1,"34":1,"36":1,"37":1,"44":1,"45":1,"46":1,"58":1,"90":4,"102":9,"106":1,"119":1,"120":3,"122":1,"155":6,"157":1,"158":5}}],["collections",{"2":{"13":2,"102":1,"155":1}}],["col",{"2":{"31":1}}],["coordinates",{"2":{"31":1}}],["come",{"2":{"157":1}}],["commonly",{"2":{"146":1}}],["common",{"2":{"106":1}}],["commons",{"0":{"18":1},"1":{"19":1,"20":1}}],["command",{"2":{"89":1}}],["community",{"0":{"77":1,"78":1},"1":{"78":1,"79":1},"2":{"78":1}}],["communities",{"2":{"51":1}}],["combinatorial",{"2":{"50":1,"81":1,"107":1,"123":1}}],["compile",{"2":{"102":1,"136":1}}],["comprehensive",{"2":{"102":2,"157":1}}],["computational",{"2":{"88":1}}],["computes",{"2":{"158":1}}],["computed",{"2":{"102":17,"134":8}}],["compute",{"2":{"13":2,"21":2,"24":1,"31":1,"102":7,"119":1,"120":1,"124":1,"155":4,"157":1,"158":17}}],["compliance",{"2":{"61":2,"102":2,"157":1}}],["complexity",{"2":{"100":1}}],["complex",{"2":{"47":1,"58":1,"72":1,"107":2,"108":1}}],["completely",{"2":{"102":1,"155":1}}],["completed",{"2":{"90":1}}],["complete",{"2":{"28":4,"102":8,"155":7}}],["compatibility",{"2":{"57":1}}],["compare",{"2":{"1":1,"102":2,"157":2}}],["comparisons",{"0":{"113":1},"1":{"114":1,"115":1,"116":1},"2":{"102":2,"116":1,"136":2}}],["comparison",{"0":{"1":1,"112":1},"1":{"113":1,"114":1,"115":1,"116":1},"2":{"1":1,"5":1,"33":1,"36":1,"40":1,"102":10,"112":1,"113":1,"114":1,"116":2,"136":1,"155":5}}],["components",{"2":{"58":1,"59":1,"102":2,"118":2,"155":2}}],["compositions",{"2":{"102":1}}],["compositionalneworks",{"2":{"118":1}}],["compositionalnetworks",{"0":{"117":1},"1":{"118":1,"119":1},"2":{"32":1,"34":1,"37":1,"102":77,"104":2,"105":1,"110":2,"111":1,"114":1,"116":1,"117":1,"118":6,"119":3,"120":3,"123":10,"134":9,"136":2,"155":26}}],["compositional",{"2":{"102":1,"123":1,"155":1}}],["composition",{"2":{"102":24,"118":1,"155":21}}],["compose",{"2":{"90":1,"102":12,"123":1,"155":8}}],["composed",{"2":{"28":1,"102":3,"155":3}}],["compounds",{"2":{"31":1}}],["core",{"2":{"4":1,"5":3,"7":1,"33":7,"36":5,"38":2,"43":1,"57":2,"66":1,"102":3,"155":1}}],["correspond",{"2":{"33":1,"36":1}}],["corresponding",{"2":{"31":1,"102":1,"136":1}}],["corresponds",{"2":{"3":2,"102":2}}],["correspondence",{"2":{"3":2,"102":2}}],["config",{"2":{"146":3,"148":1,"150":1,"151":1,"152":1}}],["configuring",{"2":{"157":1}}],["configurable",{"2":{"145":1}}],["configuration",{"0":{"54":1,"55":1},"2":{"31":2,"51":2,"54":2,"55":4,"102":8,"120":4,"150":1,"151":1,"154":1,"155":2,"157":6,"158":3}}],["configurations",{"2":{"11":1,"28":1,"102":6,"120":1,"155":2,"157":4,"158":1}}],["configure",{"2":{"28":2,"102":2,"155":2}}],["conflict",{"2":{"102":1,"157":1}}],["conflicted",{"2":{"102":3,"157":1}}],["conflicts",{"2":{"102":8,"157":4}}],["conflicts=nothing",{"2":{"102":1}}],["conduct",{"2":{"101":1}}],["conditions",{"2":{"102":1,"107":1,"136":1,"158":1}}],["condition",{"2":{"2":1,"3":13,"39":1,"40":15,"52":1,"63":3,"102":31,"157":6}}],["concerned",{"2":{"107":2}}],["concentrations",{"2":{"31":2}}],["concepts",{"0":{"34":1,"37":1,"82":1},"2":{"82":1,"97":1}}],["concept",{"2":{"0":7,"1":10,"2":15,"3":8,"28":4,"33":1,"34":9,"37":9,"38":1,"39":26,"40":15,"42":2,"45":1,"46":2,"47":2,"49":2,"61":4,"62":9,"63":6,"102":96,"155":21,"157":2}}],["converting",{"0":{"153":1}}],["converted",{"2":{"152":1,"157":4}}],["convert",{"2":{"18":1,"27":3,"102":7,"118":2,"123":1,"153":1,"155":1,"157":2}}],["containing",{"2":{"157":1,"158":1}}],["container",{"2":{"102":1,"123":1,"157":1}}],["contains",{"2":{"33":1,"38":1,"90":1,"102":4,"123":1,"155":2}}],["content",{"2":{"91":1}}],["context",{"2":{"18":1,"65":1,"102":1,"123":2,"155":1}}],["contrast",{"2":{"83":1,"108":1}}],["contribute",{"2":{"78":1}}],["contribution",{"0":{"77":1},"1":{"78":1,"79":1}}],["contributions",{"2":{"58":1}}],["contributing",{"2":{"59":1}}],["contiguous",{"2":{"102":12,"134":2,"136":4}}],["contiuous",{"2":{"21":1,"24":1,"102":1,"155":1}}],["continuousdomain",{"2":{"21":2,"102":2,"155":1}}],["continuous",{"0":{"21":1,"70":1},"1":{"22":1,"23":1},"2":{"17":1,"18":2,"21":2,"24":1,"31":1,"56":1,"64":1,"65":1,"70":1,"102":3,"155":3}}],["connecting",{"2":{"9":1,"102":1,"155":1}}],["connection",{"0":{"3":1}}],["connector",{"2":{"9":1,"102":1,"155":1}}],["cons=dictionary",{"2":{"158":1}}],["cons",{"2":{"158":31}}],["consecutive",{"2":{"68":1}}],["consistent",{"2":{"51":1,"102":1}}],["consisempty",{"2":{"9":1,"102":1,"155":1}}],["consider",{"2":{"52":1}}],["considered",{"2":{"40":2,"102":2,"158":1}}],["considers",{"2":{"7":1}}],["consin",{"2":{"9":1,"102":1,"155":1}}],["constriction",{"2":{"158":4}}],["constrains",{"2":{"158":1}}],["constrained",{"2":{"157":2,"158":2}}],["constraintprogrammingextensions",{"2":{"106":1}}],["constraintlearning",{"0":{"120":1},"2":{"32":1,"120":27,"138":1}}],["constraintmodels",{"0":{"31":1},"2":{"31":14,"58":1,"106":1}}],["constraintdomains",{"0":{"17":1},"1":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1},"2":{"17":1,"18":6,"21":8,"24":10,"28":3,"30":11,"56":1,"64":1,"65":2,"67":1,"68":1,"70":1,"102":35,"106":1,"122":1,"155":19}}],["constraintcommons",{"0":{"4":1},"1":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1},"2":{"4":1,"5":3,"7":6,"9":3,"11":1,"13":1,"15":1,"30":2,"33":1,"36":1,"59":1,"102":18,"122":1,"155":12,"157":2}}],["constraint",{"0":{"0":1,"2":1,"39":1,"41":1,"45":1,"48":1,"50":1,"52":1,"53":1,"55":1,"60":1,"62":1,"71":1,"80":1,"81":1,"107":1,"108":1,"131":1},"1":{"1":1,"3":1,"40":1,"42":1,"49":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"61":1,"63":1,"72":1,"73":1,"81":1,"82":1,"83":1},"2":{"0":7,"1":7,"2":9,"3":24,"4":1,"5":9,"11":1,"17":1,"19":3,"22":3,"25":3,"28":1,"32":1,"33":11,"34":12,"35":1,"36":3,"37":12,"38":8,"39":12,"40":20,"42":7,"44":5,"45":5,"46":8,"47":8,"49":7,"50":2,"51":5,"52":3,"53":5,"55":6,"57":1,"58":1,"61":6,"62":6,"63":20,"65":1,"66":1,"67":4,"68":2,"90":7,"91":1,"102":155,"106":5,"107":1,"108":5,"120":4,"123":1,"126":1,"136":3,"155":38,"157":66,"158":33}}],["constraintsolver",{"2":{"106":1}}],["constraints",{"0":{"0":1,"1":1,"2":1,"3":1,"32":1,"33":1,"35":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"47":1,"48":1,"49":1,"57":1,"60":1,"61":1,"62":1,"63":1,"72":1,"91":1,"121":1},"1":{"1":1,"3":1,"33":1,"34":1,"36":1,"37":1,"38":1,"40":1,"42":1,"44":1,"45":2,"46":2,"47":1,"49":1,"61":1,"63":1,"122":1},"2":{"0":9,"1":3,"2":12,"3":4,"4":1,"5":9,"7":3,"17":2,"32":3,"33":34,"34":4,"35":4,"36":8,"37":4,"38":26,"39":12,"40":4,"42":1,"43":2,"44":3,"45":3,"46":4,"47":4,"49":1,"50":2,"57":3,"59":1,"61":2,"62":6,"63":2,"64":2,"70":1,"72":1,"82":1,"89":1,"90":2,"102":75,"106":4,"107":3,"108":2,"120":1,"121":1,"122":1,"128":1,"155":40,"157":1,"158":23}}],["constructor",{"2":{"31":1,"69":1,"120":3,"158":1}}],["constructing",{"2":{"31":1,"58":1}}],["construct",{"2":{"18":3,"21":3,"24":3,"30":1,"31":3,"102":6,"155":5,"158":3}}],["constant",{"2":{"5":1,"33":2,"36":1,"38":1,"102":3,"155":2}}],["cblstodo",{"2":{"90":4}}],["cbls",{"0":{"157":1},"2":{"0":6,"2":11,"39":8,"46":7,"47":7,"62":4,"67":8,"68":4,"89":2,"90":3,"106":3,"108":3,"120":1,"157":49,"158":1}}],["c",{"2":{"0":9,"1":14,"2":12,"3":15,"19":1,"22":1,"25":1,"33":4,"34":8,"37":8,"38":4,"39":11,"40":19,"42":2,"46":3,"47":3,"49":4,"61":10,"62":6,"63":11,"102":116,"154":2,"155":24,"158":31}}],["3j+1",{"2":{"90":1}}],["3i+1",{"2":{"90":1}}],["324",{"2":{"70":1}}],["3+2=5",{"2":{"55":1}}],["39",{"0":{"57":1},"2":{"18":1,"19":1,"22":1,"25":1,"65":2,"89":1,"90":1,"102":6,"114":4,"115":4,"116":1,"118":1,"119":1,"122":11,"123":1,"134":2,"135":6,"138":1,"146":1,"151":1,"155":1,"158":4}}],["3",{"2":{"0":10,"1":17,"2":21,"3":15,"18":2,"21":2,"24":2,"31":6,"34":1,"37":1,"39":47,"40":33,"42":4,"45":2,"46":6,"47":9,"49":6,"62":27,"63":26,"67":9,"68":3,"70":3,"90":6,"102":125,"138":1,"154":1,"155":3,"157":1,"158":1}}],["9×9",{"2":{"31":4}}],["9",{"2":{"0":2,"18":1,"21":1,"24":1,"31":4,"39":1,"90":7,"102":1,"155":1}}],["28",{"2":{"158":1}}],["225",{"2":{"102":1}}],["200",{"2":{"102":2,"120":1,"155":2}}],["2009",{"2":{"33":1,"38":1,"102":1,"155":1}}],["2",{"2":{"0":10,"1":15,"2":26,"3":16,"18":2,"21":2,"24":2,"31":5,"34":1,"37":1,"39":68,"40":40,"42":4,"45":2,"46":5,"47":8,"49":3,"61":10,"62":33,"63":28,"67":6,"70":4,"90":2,"102":146,"138":1,"154":8,"155":3,"157":3,"158":1}}],["14",{"2":{"67":3}}],["15",{"2":{"39":1,"140":1,"143":1}}],["123",{"2":{"18":1,"21":1,"24":1,"67":3,"102":1,"155":1}}],["12",{"2":{"18":1,"21":1,"24":1,"62":1,"63":1,"67":3,"102":2,"155":1}}],["10000",{"2":{"158":1}}],["1000",{"2":{"154":4}}],["100",{"2":{"102":2,"154":1,"155":2,"158":1}}],["101",{"0":{"80":1},"1":{"81":1,"82":1,"83":1}}],["10^6",{"2":{"28":2,"102":2,"155":2}}],["10",{"2":{"2":2,"39":22,"40":27,"46":3,"47":3,"52":1,"54":1,"55":2,"62":2,"102":29,"106":1,"140":1,"143":1,"154":1,"155":2,"158":2}}],["1≤z",{"2":{"39":2,"62":2}}],["1≤y",{"2":{"0":1,"2":2,"39":3,"62":2}}],["1≤x",{"2":{"0":2,"2":4,"39":7,"62":2}}],["1",{"2":{"0":30,"1":19,"2":44,"3":17,"15":2,"18":2,"21":2,"24":2,"31":3,"34":2,"37":2,"39":122,"40":34,"42":4,"45":2,"46":8,"47":11,"49":4,"61":15,"62":61,"63":41,"67":3,"68":9,"70":1,"90":5,"102":174,"124":1,"126":1,"130":4,"138":8,"141":1,"144":2,"148":2,"153":4,"154":3,"155":6,"157":4,"158":4}}],["df",{"2":{"120":2,"130":24}}],["ds",{"2":{"120":2}}],["datatype",{"2":{"158":1}}],["dataframe",{"2":{"120":1,"130":2}}],["data",{"2":{"102":2,"136":2,"158":1}}],["due",{"2":{"89":1}}],["during",{"2":{"11":1,"102":1,"123":2}}],["d1",{"2":{"67":1,"68":1,"70":1}}],["done",{"2":{"152":1}}],["domath",{"2":{"140":1,"143":1}}],["domain",{"0":{"56":1},"2":{"18":19,"19":1,"21":12,"22":1,"24":15,"25":1,"28":2,"30":9,"31":1,"40":1,"56":1,"65":7,"67":4,"68":3,"70":3,"90":1,"102":47,"106":1,"120":3,"122":1,"124":4,"155":34,"158":20}}],["domains",{"0":{"17":1,"64":1,"66":1,"69":1,"70":1},"1":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"65":1,"66":1,"67":2,"68":2,"69":2,"70":1},"2":{"17":2,"18":4,"19":3,"21":9,"22":2,"24":7,"25":2,"27":2,"28":10,"30":1,"31":1,"54":2,"56":2,"64":3,"65":1,"66":1,"68":1,"69":1,"70":2,"82":1,"102":34,"120":2,"122":3,"130":11,"155":27,"158":3}}],["dom",{"2":{"102":8,"120":2,"130":4,"155":4}}],["download",{"2":{"89":1}}],["do",{"2":{"63":4,"102":6,"136":1,"155":1}}],["doesn",{"2":{"102":3,"146":1}}],["does",{"2":{"63":2,"102":9,"157":4}}],["documenter",{"2":{"114":4,"115":4,"116":1,"118":1,"119":1,"122":10,"123":1,"134":2,"135":6}}],["documentation",{"2":{"31":1,"50":1,"89":1,"117":1,"120":1,"137":1,"139":1,"142":1,"146":1,"157":1,"158":1}}],["docstring",{"2":{"114":8,"115":8,"116":2,"118":2,"119":2,"122":20,"123":2,"134":4,"135":12,"157":23,"158":29}}],["doc",{"2":{"51":1}}],["d₂",{"2":{"21":2,"24":2,"102":2,"155":2}}],["d₁",{"2":{"21":2,"24":2,"102":2,"155":2}}],["draw",{"2":{"19":2,"22":1,"25":1,"30":1,"102":1,"122":1,"158":5}}],["d5",{"2":{"18":1,"21":1,"24":1,"102":1,"155":1}}],["d4",{"2":{"18":1,"21":1,"24":1,"67":1,"102":1,"155":1}}],["d3",{"2":{"18":1,"21":1,"24":1,"67":1,"70":1,"102":1,"155":1}}],["d2",{"2":{"18":1,"21":1,"24":1,"67":1,"68":1,"70":1,"102":1,"155":1}}],["dynamic",{"2":{"18":1,"21":1,"31":1,"65":1,"68":1,"102":3,"136":1,"155":1,"158":11}}],["d",{"2":{"15":1,"18":14,"19":29,"21":7,"22":23,"24":9,"25":26,"27":1,"30":12,"61":4,"65":7,"102":54,"120":2,"122":11,"130":2,"151":2,"152":2,"154":3,"155":22,"158":9}}],["dir",{"2":{"140":1,"143":1,"154":4}}],["directions",{"0":{"79":1},"2":{"102":1,"136":1}}],["directed",{"2":{"61":1,"102":1,"157":1}}],["direct",{"2":{"59":1}}],["directly",{"2":{"44":1,"46":1,"102":1,"157":1}}],["diff",{"2":{"102":4,"114":1,"115":1}}],["differs",{"0":{"83":1}}],["difference",{"2":{"13":2,"18":1,"21":1,"24":1,"33":1,"36":1,"102":12,"155":2}}],["different",{"2":{"0":5,"1":8,"5":1,"31":1,"33":4,"34":1,"36":2,"37":1,"38":2,"44":1,"45":6,"46":3,"47":2,"51":1,"59":1,"89":1,"90":1,"102":29,"107":1,"136":3,"145":1,"154":1,"155":4,"157":1,"158":1}}],["digits",{"2":{"90":2}}],["dive",{"0":{"95":1},"1":{"96":1,"97":1,"98":1},"2":{"72":1}}],["dispatch",{"2":{"102":1,"120":1,"136":1,"158":2}}],["displays",{"2":{"31":1}}],["display",{"2":{"31":13}}],["discuss",{"2":{"73":1,"88":1,"101":1}}],["discreteset",{"2":{"46":1,"47":1,"67":8,"157":6}}],["discretedomain",{"2":{"18":1,"19":3,"21":1,"22":3,"24":4,"25":3,"30":1,"102":7,"122":1,"130":1,"155":3}}],["discrete",{"0":{"24":1,"66":1},"1":{"25":1,"26":1,"67":1,"68":1,"69":1},"2":{"17":1,"18":1,"21":1,"24":4,"56":1,"64":1,"65":1,"66":2,"68":1,"102":5,"120":1,"155":5,"157":5,"158":1}}],["distributed",{"2":{"158":1}}],["distdifferent",{"2":{"46":3,"47":3,"157":1}}],["dist",{"2":{"44":1,"45":6,"46":3,"47":2,"102":5,"158":1}}],["distinct",{"2":{"40":2,"90":2,"102":2,"157":1}}],["distances",{"2":{"31":4,"45":2,"102":1,"157":1}}],["distance",{"2":{"18":2,"21":1,"24":1,"31":1,"65":1,"102":8,"119":1,"155":5,"157":3,"158":1}}],["diagram",{"2":{"7":1,"61":4,"102":5,"155":1,"157":1}}],["diagrams",{"2":{"7":2,"102":1}}],["dictionaryview",{"2":{"158":1}}],["dictionary",{"2":{"5":1,"15":1,"31":3,"33":5,"38":5,"102":18,"136":2,"145":1,"146":1,"148":2,"150":1,"151":1,"154":1,"155":8,"158":6}}],["dictionaries",{"0":{"15":1},"1":{"16":1},"2":{"4":1,"15":1}}],["dict",{"2":{"5":3,"33":5,"38":5,"61":4,"102":12,"140":1,"143":1,"146":1,"148":2,"150":3,"151":3,"152":3,"154":1,"155":8}}],["dict=usual",{"2":{"5":1,"102":1,"155":1}}],["dimparameterdomain",{"2":{"30":1,"102":1,"122":1}}],["dimensions",{"2":{"30":1,"102":1}}],["dimension",{"2":{"5":1,"33":1,"36":1,"102":1,"157":5,"158":1}}],["dim=1",{"2":{"3":2,"102":2}}],["dim=2",{"2":{"2":2,"3":2,"102":2}}],["dim",{"2":{"2":1,"5":1,"33":1,"36":1,"62":1,"63":2,"102":3,"130":3,"157":7,"158":4}}],["deepcopy",{"2":{"158":1}}],["deeper",{"2":{"72":1}}],["debugging",{"2":{"158":1}}],["debinarize",{"2":{"102":1,"124":1,"155":1}}],["deprecated",{"2":{"157":1}}],["dependencies",{"2":{"154":1}}],["depend",{"2":{"102":1,"136":1}}],["depending",{"2":{"89":1,"146":1}}],["depends",{"2":{"18":1,"65":1,"102":1,"155":1,"158":1}}],["devops",{"2":{"146":2,"154":1}}],["develop",{"2":{"146":1}}],["developing",{"2":{"50":1}}],["developers",{"2":{"4":1}}],["development",{"2":{"4":1,"146":1}}],["denotes",{"2":{"102":2}}],["derived",{"2":{"102":1,"157":1}}],["delta",{"2":{"158":6}}],["delegates",{"2":{"102":1,"136":1}}],["delete",{"2":{"18":1,"25":3,"65":1,"102":5,"155":4,"158":13}}],["delineation",{"2":{"102":2,"157":1}}],["details",{"2":{"114":4,"115":4,"116":1,"118":1,"119":1,"122":10,"123":1,"134":2,"135":6}}],["detailed",{"2":{"64":1}}],["determine",{"2":{"102":2,"155":1}}],["determined",{"2":{"28":1,"102":1,"155":1,"158":1}}],["determining",{"2":{"65":1}}],["deterministic",{"2":{"7":1,"102":1,"155":1}}],["dedicated",{"2":{"45":1}}],["decrement",{"2":{"158":1}}],["decrease",{"2":{"158":2}}],["decreasing",{"2":{"1":8,"102":8}}],["decay",{"2":{"158":3}}],["declare",{"2":{"102":1,"157":1}}],["decisions",{"2":{"107":1}}],["decision",{"2":{"7":3,"61":1,"102":3,"155":1,"157":1}}],["descent",{"0":{"130":1},"2":{"120":1}}],["descriptions",{"2":{"33":4,"38":4,"102":4,"155":4}}],["description",{"2":{"33":1,"38":1,"45":1,"102":3,"155":2,"157":12,"158":10}}],["described",{"2":{"33":1,"36":1}}],["describes",{"2":{"31":1}}],["describe",{"2":{"5":1,"33":4,"36":2,"38":2,"102":3,"103":1,"109":1,"112":1,"130":1,"132":1,"155":2,"158":3}}],["design",{"2":{"32":1,"35":1}}],["designed",{"2":{"4":1,"32":1,"35":1,"44":1,"46":1,"145":1}}],["defines",{"2":{"21":1,"24":1,"46":1,"47":1,"102":2,"123":1,"155":1,"157":1}}],["defined",{"0":{"56":1,"61":1},"2":{"18":1,"24":1,"33":1,"38":1,"40":1,"44":3,"47":3,"56":1,"64":1,"68":1,"90":2,"102":9,"114":1,"120":2,"134":1,"141":1,"144":1,"146":1,"155":2,"157":4,"158":1}}],["define",{"2":{"17":1,"33":1,"38":1,"44":1,"45":2,"47":1,"64":1,"81":1,"90":1,"102":6,"155":2,"157":1}}],["defining",{"0":{"17":1,"45":1,"64":1},"1":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1},"2":{"33":1,"38":1,"44":1,"46":1,"65":1,"102":1,"155":1,"157":2}}],["definition",{"0":{"0":1,"2":1,"39":1,"41":1,"48":1,"60":1,"62":1},"1":{"1":1,"3":1,"40":1,"42":1,"49":1,"61":1,"63":1},"2":{"32":1,"35":1,"52":1,"53":1,"54":1,"55":1,"102":1}}],["default",{"0":{"148":1},"2":{"5":3,"19":1,"28":5,"31":9,"33":3,"34":1,"37":1,"38":3,"40":1,"69":1,"102":21,"120":4,"124":1,"128":1,"141":9,"144":1,"146":3,"148":2,"155":14,"158":2}}],["defaults",{"2":{"1":1,"5":1,"15":1,"102":8,"120":2,"155":2}}],["after",{"2":{"152":1}}],["affects",{"2":{"113":1,"133":1}}],["affect",{"2":{"102":1,"155":1}}],["authors",{"2":{"145":1}}],["auto",{"2":{"130":1}}],["automated",{"2":{"102":1}}],["automatically",{"2":{"28":1,"102":1}}],["automata",{"2":{"7":2,"102":1}}],["automaton",{"2":{"5":1,"7":5,"30":4,"33":1,"36":1,"61":7,"102":16,"122":2,"155":3,"157":2}}],["among",{"2":{"120":1,"158":1}}],["amount",{"2":{"31":1}}],["aggragation",{"2":{"103":1}}],["aggregate",{"2":{"102":1,"104":1}}],["aggregations",{"0":{"104":1},"2":{"102":1,"105":1,"155":1}}],["aggregation",{"0":{"103":1},"1":{"104":1,"105":1},"2":{"102":4,"105":1,"155":4}}],["ag",{"2":{"102":2,"104":2}}],["against",{"2":{"42":1,"102":2,"136":1}}],["again",{"2":{"31":1}}],["avoid",{"2":{"102":2,"155":1,"157":2,"158":1}}],["available",{"2":{"31":2,"33":1,"38":1,"44":1,"46":1,"89":2,"102":2,"106":1,"136":1,"155":1,"158":1}}],["a2",{"2":{"39":2}}],["a1",{"2":{"39":2}}],["achieve",{"2":{"145":1}}],["accurate",{"2":{"130":2}}],["according",{"2":{"102":1,"136":1,"154":1,"157":1}}],["access",{"2":{"18":1,"102":5,"123":1,"155":4,"158":20}}],["acceptable",{"2":{"102":2,"157":1}}],["accepted",{"2":{"61":2,"102":4,"155":2,"157":1}}],["accepts",{"2":{"7":3,"30":1,"31":4,"102":3,"122":1,"155":1}}],["accept",{"2":{"7":6,"30":3,"102":7,"122":3,"155":1}}],["across",{"2":{"59":1,"154":1}}],["action",{"2":{"102":2,"155":2}}],["actual",{"2":{"53":1,"102":1,"154":1,"155":1}}],["acts",{"2":{"32":1,"35":1}}],["appropriate",{"2":{"102":1,"136":1,"151":1,"153":1}}],["approach",{"2":{"90":1,"107":2}}],["appear",{"2":{"40":3,"102":3}}],["applies",{"2":{"102":1,"118":1,"157":1}}],["applied",{"2":{"34":1,"37":1,"53":1,"75":1,"90":1,"102":3,"136":1,"155":2,"157":1,"158":2}}],["applications",{"0":{"75":1}}],["application",{"2":{"32":1,"35":1,"51":1,"53":1,"102":1}}],["applying",{"0":{"74":1},"1":{"75":1,"76":1}}],["apply",{"2":{"34":4,"37":4,"102":7,"136":2,"155":5}}],["apicbls",{"2":{"67":1,"68":1,"70":1}}],["apis",{"0":{"46":1}}],["api",{"0":{"45":1,"57":1,"102":1,"138":1,"155":1},"2":{"33":2,"36":2,"44":1,"46":1,"50":1,"138":1}}],["apixcspjumpmoi",{"2":{"0":3,"2":4,"39":4,"46":1,"47":1,"62":2}}],["advantages",{"2":{"88":1}}],["advanced",{"0":{"71":1},"1":{"72":1,"73":1},"2":{"4":1}}],["adjusted",{"2":{"28":1,"102":1}}],["adds",{"2":{"102":4}}],["added",{"2":{"45":1,"46":1,"157":1}}],["adding",{"2":{"33":2,"38":2,"102":2,"155":2}}],["additional",{"2":{"28":1,"102":1,"155":1}}],["additionally",{"2":{"18":1,"65":1,"102":1,"155":1}}],["add",{"2":{"18":1,"24":2,"44":1,"45":1,"46":3,"47":3,"65":1,"67":8,"68":4,"89":1,"90":4,"102":4,"155":3,"157":9,"158":20}}],["aka",{"2":{"17":1}}],["absolute",{"2":{"102":2}}],["abs",{"2":{"33":1,"38":1,"45":2,"46":6,"47":6,"102":5,"114":1,"115":1,"155":1}}],["abstractstring",{"2":{"158":2}}],["abstractstring=",{"2":{"9":1,"102":1,"155":1}}],["abstractstate",{"2":{"158":1}}],["abstractsolver",{"2":{"158":70}}],["abstractscalarset",{"2":{"157":2}}],["abstractscalarfunction",{"2":{"157":1}}],["abstractoptimizer",{"2":{"102":2,"120":2,"128":2,"130":1,"155":1,"157":1}}],["abstractmatrix",{"2":{"31":4}}],["abstractmultivalueddecisiondiagram",{"2":{"7":3,"102":3,"155":1,"157":1}}],["abstractrange",{"2":{"18":1,"21":1,"24":2,"102":2,"155":2}}],["abstractdomain",{"0":{"65":1},"2":{"18":5,"19":6,"21":4,"22":5,"24":4,"25":5,"27":1,"30":10,"65":5,"102":25,"122":2,"155":10,"158":6}}],["abstractdictionary",{"2":{"15":1,"102":1,"155":1}}],["abstractdict",{"2":{"15":1,"102":1,"155":1}}],["abstractautomaton`",{"2":{"61":1,"102":1}}],["abstractautomaton",{"2":{"7":3,"30":1,"61":2,"102":6,"155":1,"157":2}}],["abstract",{"2":{"4":1,"7":2,"18":1,"21":1,"24":1,"65":2,"102":6,"120":2,"128":1,"155":3,"158":2}}],["abstractvectorset",{"2":{"157":22}}],["abstractvector",{"2":{"3":4,"42":2,"49":1,"63":5,"102":31,"118":1,"134":9,"158":1}}],["about",{"0":{"121":1},"1":{"122":1},"2":{"17":1,"32":1,"35":1,"64":1,"106":1,"121":1,"156":1,"157":1,"158":1}}],["attribution",{"2":{"158":1}}],["attributed",{"2":{"158":6}}],["attribute",{"2":{"158":2}}],["attached",{"2":{"158":1}}],["atmost",{"2":{"39":1,"157":2}}],["atleast",{"2":{"39":1,"157":2}}],["atoms",{"2":{"31":1}}],["at",{"2":{"7":1,"31":1,"33":1,"38":1,"39":12,"40":8,"63":2,"65":1,"70":1,"89":1,"102":15,"120":2,"123":2,"124":1,"155":3,"157":3,"158":1}}],["algorithm",{"2":{"102":4,"108":2,"120":3,"155":4}}],["algorithms",{"2":{"97":1,"108":1}}],["already",{"2":{"90":1,"102":3,"114":1,"120":1,"134":1,"158":1}}],["alternative",{"2":{"123":1}}],["alternatively",{"2":{"46":1,"47":1}}],["although",{"2":{"89":1}}],["also",{"2":{"32":1,"35":1,"40":3,"54":1,"64":1,"90":1,"102":5,"116":1,"136":1,"153":1,"155":2}}],["along",{"2":{"5":1,"33":1,"36":1,"50":1,"89":1,"102":1}}],["allocs",{"2":{"153":4,"154":1}}],["allocation",{"2":{"107":1}}],["allocations",{"2":{"102":17,"134":8,"154":1}}],["allowing",{"2":{"102":3,"136":1,"157":1}}],["allows",{"2":{"68":1}}],["allow",{"2":{"47":1}}],["allequal",{"2":{"0":1,"157":2}}],["alldifferent",{"2":{"0":2,"90":5,"157":2}}],["all",{"2":{"0":10,"1":24,"5":1,"13":1,"21":1,"31":1,"33":4,"34":1,"36":1,"37":1,"38":3,"40":1,"47":1,"50":1,"65":1,"89":1,"90":2,"102":45,"106":1,"108":1,"116":1,"118":1,"136":1,"138":2,"140":1,"143":1,"155":10,"157":6,"158":4}}],["aspect",{"2":{"64":1}}],["aspects",{"0":{"59":1}}],["assert",{"2":{"102":1,"123":1}}],["associated",{"2":{"31":1,"90":1,"123":1,"149":1}}],["assigned",{"2":{"54":1}}],["assign",{"2":{"31":1,"102":1,"155":1,"158":1}}],["assignments",{"2":{"55":1,"102":1,"155":1}}],["assignment",{"2":{"31":1,"51":1,"54":1,"102":1,"155":1}}],["as",{"2":{"4":1,"5":2,"7":1,"11":1,"21":1,"24":3,"31":3,"32":2,"33":6,"35":1,"36":3,"38":3,"40":3,"44":3,"46":3,"47":1,"50":1,"52":1,"54":1,"56":1,"61":2,"64":1,"67":1,"68":5,"69":2,"70":2,"82":1,"89":1,"90":1,"102":29,"106":1,"107":2,"114":1,"118":2,"120":1,"123":1,"134":1,"136":1,"138":1,"141":1,"144":1,"146":5,"147":1,"155":8,"157":4,"158":6}}],["angles",{"2":{"107":1}}],["anonymous",{"2":{"102":1,"118":1}}],["another",{"2":{"3":2,"34":1,"37":1,"102":2,"106":1}}],["annealing",{"2":{"97":1}}],["analyze",{"2":{"94":1,"107":1}}],["analyzing",{"0":{"92":1},"1":{"93":1,"94":1}}],["analysis",{"0":{"94":1,"101":1},"2":{"101":1,"107":1}}],["any",{"0":{"123":1},"2":{"9":1,"18":2,"19":1,"22":1,"25":1,"31":1,"63":6,"65":1,"102":19,"128":1,"146":1,"155":8,"157":4,"158":1}}],["an",{"0":{"45":1},"2":{"1":3,"4":1,"5":3,"7":2,"9":1,"18":2,"21":6,"22":1,"24":3,"25":1,"28":5,"31":3,"33":3,"36":3,"40":1,"45":1,"46":1,"50":1,"54":1,"61":3,"65":2,"76":1,"90":1,"91":2,"102":64,"108":3,"118":3,"120":7,"123":5,"128":1,"132":1,"136":1,"145":1,"146":1,"147":1,"153":1,"154":1,"155":23,"157":12,"158":11}}],["and",{"0":{"0":1,"2":1,"17":1,"33":1,"34":1,"37":1,"39":1,"40":1,"41":1,"48":1,"60":1,"62":1,"63":1,"64":1,"72":1,"73":1,"75":1,"77":1,"82":1,"86":1,"87":1,"92":1,"94":1,"99":1},"1":{"1":1,"3":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"40":1,"42":1,"49":1,"61":1,"63":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"78":1,"79":1,"88":1,"89":1,"90":1,"93":1,"94":1,"100":1,"101":1},"2":{"3":2,"4":4,"5":1,"7":1,"9":1,"11":1,"13":1,"17":2,"18":2,"21":2,"24":1,"28":1,"30":2,"31":13,"32":3,"33":1,"34":4,"35":3,"37":4,"38":1,"39":2,"40":1,"43":1,"44":1,"47":1,"49":2,"50":3,"51":1,"52":2,"53":1,"54":2,"55":3,"56":1,"57":2,"58":2,"59":2,"61":1,"64":5,"65":3,"68":1,"72":1,"73":1,"75":1,"76":1,"78":1,"79":1,"81":1,"82":1,"83":1,"85":1,"86":1,"88":2,"89":2,"90":4,"91":2,"93":2,"94":1,"97":1,"98":1,"100":1,"101":1,"102":65,"106":3,"107":8,"108":3,"113":1,"118":1,"120":10,"122":2,"123":3,"124":1,"126":1,"133":1,"134":5,"136":3,"138":1,"139":1,"142":1,"146":1,"148":1,"154":2,"155":23,"157":10,"158":11}}],["arrange",{"2":{"138":3}}],["arrangement",{"2":{"120":1}}],["array",{"2":{"39":1}}],["ar",{"2":{"102":2,"110":2}}],["arxiv",{"2":{"33":1,"38":1,"102":1,"155":1}}],["arbitrary",{"0":{"69":1},"2":{"24":1,"69":1,"102":2,"150":1}}],["arbitrarydomain",{"2":{"24":1,"102":1}}],["argmax",{"2":{"158":3}}],["argument",{"2":{"31":4,"33":1,"36":1,"102":7,"157":1}}],["arguments",{"2":{"1":3,"3":4,"5":1,"18":1,"21":1,"28":2,"31":1,"33":4,"34":3,"36":1,"37":3,"38":3,"40":4,"42":1,"49":1,"61":2,"63":2,"102":44,"155":16,"157":27,"158":8}}],["args",{"2":{"18":4,"28":1,"34":4,"37":4,"65":3,"102":13,"120":3,"128":1,"155":10}}],["arithmetic",{"0":{"109":1,"110":1},"1":{"110":1,"111":1},"2":{"5":1,"33":1,"36":1,"102":6,"109":1,"111":2,"155":5}}],["areas",{"2":{"79":1}}],["are",{"2":{"1":10,"4":1,"5":1,"11":1,"17":1,"21":1,"24":1,"31":5,"33":3,"34":2,"36":3,"37":2,"43":1,"44":4,"45":2,"47":4,"56":1,"58":1,"59":1,"63":2,"64":1,"65":1,"68":1,"69":1,"90":1,"102":42,"105":1,"106":2,"107":2,"111":1,"116":1,"123":2,"134":8,"136":1,"141":1,"144":1,"146":1,"147":1,"150":1,"151":1,"153":2,"155":5,"157":8,"158":2}}],["a",{"0":{"55":1,"57":1,"58":1,"123":1,"153":1},"2":{"0":2,"1":3,"2":1,"3":22,"4":1,"5":4,"7":11,"15":2,"18":9,"19":19,"21":8,"22":17,"24":8,"25":17,"28":9,"30":15,"31":26,"32":1,"33":10,"34":5,"35":2,"36":4,"37":5,"38":6,"40":13,"42":8,"44":10,"45":2,"46":3,"47":4,"49":8,"50":1,"51":5,"52":6,"53":5,"54":4,"55":3,"57":2,"58":1,"61":29,"63":8,"65":4,"67":2,"68":2,"69":2,"76":1,"89":2,"90":12,"102":284,"104":2,"106":7,"107":4,"108":7,"110":2,"118":8,"119":2,"120":23,"122":5,"123":16,"124":7,"126":2,"128":1,"132":1,"136":10,"138":3,"139":1,"142":1,"145":3,"146":8,"147":2,"148":1,"152":1,"153":1,"154":1,"155":79,"157":48,"158":51}}],["jacop",{"2":{"106":1}}],["j+1",{"2":{"90":1}}],["j",{"2":{"90":1}}],["joinpath",{"2":{"154":3}}],["join",{"2":{"78":1}}],["joining",{"0":{"78":1}}],["just",{"2":{"150":1}}],["jumpcbls",{"2":{"67":1,"68":1,"70":1}}],["jump",{"2":{"0":9,"2":11,"17":1,"31":17,"39":12,"44":1,"46":2,"47":1,"50":1,"62":6,"64":1,"67":2,"68":2,"89":3,"90":2,"106":1,"157":10,"158":1}}],["juliajump",{"2":{"157":3}}],["juliajulia>",{"2":{"138":1,"140":1,"143":1}}],["julia>",{"2":{"140":1,"143":1}}],["juliapost",{"2":{"158":1}}],["juliaperfchecker",{"2":{"149":1,"150":1,"152":1}}],["juliapredicate",{"2":{"157":1}}],["juliapredict",{"2":{"120":1}}],["juliapreliminaries",{"2":{"120":1}}],["juliaparameter",{"2":{"120":1}}],["juliaparams",{"2":{"102":1,"155":1}}],["juliapairvarsparameterdomain",{"2":{"30":1,"102":1}}],["juliaqubogradientoptimizer",{"2":{"120":1}}],["juliaqubo",{"2":{"102":2,"120":1,"126":2,"155":1}}],["juliaqap",{"2":{"31":1}}],["juliaweights",{"2":{"102":3,"155":3}}],["juliatrain",{"2":{"102":1,"120":2,"128":1,"155":1}}],["juliatransformation",{"2":{"102":1,"136":1,"155":1}}],["juliatr",{"2":{"102":19,"134":9}}],["juliato",{"2":{"18":1,"102":1,"155":1}}],["juliaremote",{"2":{"158":2}}],["juliaregularization",{"2":{"102":1,"155":1}}],["juliareduce",{"2":{"102":1,"118":1}}],["juliarangedomain",{"2":{"24":1,"102":1,"155":1}}],["juliahamming",{"2":{"102":1,"119":1,"155":1}}],["juliafunction",{"2":{"148":1,"151":1,"153":1}}],["juliafunctions",{"2":{"102":1,"123":1}}],["juliafor",{"2":{"90":2}}],["juliafake",{"2":{"30":1,"102":1}}],["juliafakeautomaton",{"2":{"30":1,"102":1}}],["juliaup",{"2":{"89":1}}],["juliausual",{"2":{"33":1,"38":1,"102":3,"155":2}}],["juliausing",{"2":{"0":9,"2":12,"39":12,"46":3,"47":3,"62":6,"67":3,"68":1,"70":1,"89":2,"154":1}}],["juliano",{"2":{"120":1}}],["julianbits",{"2":{"102":2,"123":1,"155":1}}],["julian",{"2":{"31":1}}],["juliagolomb",{"2":{"31":1}}],["juliageneralstate",{"2":{"158":1}}],["juliagenerate",{"2":{"30":1,"102":5,"120":1,"122":1,"123":2,"155":1}}],["juliaget",{"2":{"18":1,"102":1,"155":1,"158":12}}],["juliavalue",{"2":{"90":1}}],["juliavalsparameterdomain",{"2":{"30":1,"102":1}}],["juliavalparameterdomain",{"2":{"30":1,"102":1}}],["juliavariable",{"2":{"158":3}}],["juliavar",{"2":{"19":1,"22":1,"25":1,"158":1}}],["juliao",{"2":{"158":1}}],["juliaobjective",{"2":{"158":4}}],["juliaoptions",{"2":{"158":1}}],["juliaoptimizer",{"2":{"157":2}}],["juliaoptimize",{"2":{"90":1,"120":1}}],["juliaopparameterdomain",{"2":{"30":1,"102":1}}],["juliaoversample",{"2":{"11":1,"102":1,"155":1}}],["julialoss",{"2":{"120":1}}],["julialeadsolver",{"2":{"158":1}}],["julialearn",{"2":{"102":1,"155":1}}],["julialength",{"2":{"22":1,"25":1,"102":1,"123":1,"158":5}}],["julialazy",{"2":{"102":2,"118":2,"155":2}}],["julialayers",{"2":{"102":1}}],["julialayer",{"2":{"102":1,"123":1}}],["julialanguageparameterdomain",{"2":{"30":1,"102":1}}],["juliais",{"2":{"102":2,"123":1,"124":1,"155":1,"158":2}}],["juliaicnlocalsearchoptimizer",{"2":{"120":1}}],["juliaicngeneticoptimizer",{"2":{"120":1}}],["juliaicnconfig",{"2":{"120":1}}],["juliaicn",{"2":{"102":1,"120":1,"155":1}}],["juliaidparameterdomain",{"2":{"30":1,"102":1}}],["juliaintention",{"2":{"157":1}}],["juliaintersect",{"2":{"21":2,"24":1,"102":2,"155":1}}],["juliaintervals",{"2":{"21":1,"102":1}}],["juliaincsert",{"2":{"15":1,"102":1,"155":1}}],["juliabinarize",{"2":{"102":1,"124":1,"155":1}}],["juliaboolparameterdomain",{"2":{"30":1,"102":1}}],["juliabase",{"2":{"19":13,"21":1,"22":12,"24":1,"25":13,"27":2,"30":4,"31":4,"102":17,"122":4,"155":1,"157":5}}],["juliastop",{"2":{"158":1}}],["juliastatus",{"2":{"158":1}}],["juliastruct",{"2":{"102":1,"120":1,"130":1,"155":1}}],["juliaspecialize",{"2":{"158":2}}],["juliasolve",{"2":{"158":2}}],["juliasolution",{"2":{"158":1}}],["juliascalarfunction",{"2":{"157":1}}],["juliasub",{"2":{"120":1}}],["juliasudoku",{"2":{"31":1}}],["juliasudokuinstance",{"2":{"31":2}}],["juliashow",{"2":{"102":2,"123":1,"155":1}}],["juliashrink",{"2":{"102":1}}],["juliaselected",{"2":{"102":1,"123":1}}],["juliasetdomain",{"2":{"24":1,"102":1,"155":1}}],["juliasymbols",{"2":{"102":1,"155":1}}],["juliasymbol",{"2":{"102":1,"123":1}}],["juliasymmetries",{"2":{"102":1,"155":1}}],["juliasymcon",{"2":{"9":1,"102":1,"155":1}}],["juliamodel",{"2":{"158":1}}],["juliamoi",{"2":{"157":17}}],["juliamoisupports",{"2":{"157":1}}],["juliamoisum",{"2":{"157":1}}],["juliamoiregular",{"2":{"157":1}}],["juliamoiordered",{"2":{"157":1}}],["juliamoinooverlap",{"2":{"157":1}}],["juliamoinvalues",{"2":{"157":1}}],["juliamoimultivalueddecisiondiagram",{"2":{"157":1}}],["juliamoiminimum",{"2":{"157":1}}],["juliamoimaximum",{"2":{"157":1}}],["juliamoiintention",{"2":{"157":1}}],["juliamoiinstantiation",{"2":{"157":1}}],["juliamoiextension",{"2":{"157":1}}],["juliamoierror",{"2":{"157":1}}],["juliamoielement",{"2":{"157":1}}],["juliamoidistdifferent",{"2":{"157":1}}],["juliamoicumulative",{"2":{"157":1}}],["juliamoiconflicts",{"2":{"157":1}}],["juliamoiallequal",{"2":{"157":1}}],["juliamoialldifferent",{"2":{"157":1}}],["juliamts",{"2":{"158":1}}],["juliamutually",{"2":{"120":1}}],["juliamutable",{"2":{"31":1}}],["juliaminkowski",{"2":{"102":1,"119":1,"155":1}}],["juliamincut",{"2":{"31":1}}],["juliamax",{"2":{"158":1}}],["juliamainsolver",{"2":{"158":1}}],["juliamap",{"2":{"102":1,"118":1}}],["juliamanhattan",{"2":{"102":1,"119":1,"155":1}}],["juliamake",{"2":{"102":2,"120":3,"136":1}}],["juliamagic",{"2":{"31":1}}],["juliam",{"2":{"90":1}}],["juliamerge",{"2":{"21":1,"24":1,"102":1,"155":1}}],["juliamdd",{"2":{"7":1,"102":1,"155":1}}],["juliax",{"2":{"19":1,"22":1,"25":1,"158":1}}],["juliaxcsp",{"2":{"1":3,"3":4,"40":4,"42":1,"49":1,"61":2,"63":2,"102":19}}],["juliad",{"2":{"158":1}}],["juliadraw",{"2":{"158":1}}],["juliadelete",{"2":{"158":2}}],["juliadebinarize",{"2":{"102":1,"124":1,"155":1}}],["juliadescribe",{"2":{"33":2,"38":2,"102":2,"155":2,"158":1}}],["juliadist",{"2":{"158":1}}],["juliadiscreteset",{"2":{"157":1}}],["juliadiscretedomain",{"2":{"24":1,"102":1,"155":1}}],["juliadisplay",{"2":{"31":1}}],["juliadimparameterdomain",{"2":{"30":1,"102":1}}],["juliad1",{"2":{"18":1,"21":1,"24":1,"102":1,"155":1}}],["juliadomain",{"2":{"18":6,"21":6,"24":6,"102":6,"120":1,"155":6,"158":1}}],["juliaempty",{"2":{"158":2}}],["juliaemptydomain",{"2":{"18":1,"102":1}}],["juliae",{"2":{"102":1}}],["juliaerror",{"2":{"34":1,"37":1,"102":1,"155":1,"157":1}}],["juliaexclu",{"2":{"102":1,"123":1}}],["juliaexplore",{"2":{"28":1,"102":2,"155":2}}],["juliaexploresettings",{"2":{"28":1,"102":1,"155":1}}],["juliaextract",{"2":{"5":3,"102":3,"155":3}}],["juliaδ",{"2":{"13":1,"102":1,"120":1,"155":1}}],["juliaas",{"2":{"102":2,"118":2}}],["juliaaggregation",{"2":{"102":1,"105":1,"155":1}}],["juliaag",{"2":{"102":2,"104":2}}],["juliaarithmetic",{"2":{"102":1,"111":1,"155":1}}],["juliaar",{"2":{"102":2,"110":2}}],["juliaargs",{"2":{"102":1,"155":1}}],["juliaarbitrarydomain",{"2":{"24":1,"102":1}}],["juliaadd",{"2":{"24":1,"102":1,"155":1,"158":2}}],["juliaat",{"2":{"7":1,"102":1}}],["juliaaccept",{"2":{"7":1,"30":1,"102":1,"122":1,"155":1}}],["juliaautomaton",{"2":{"7":1,"102":1,"155":1}}],["juliaabstractsolver",{"2":{"158":1}}],["juliaabstractoptimizer",{"2":{"102":1,"128":1}}],["juliaabstractdomain",{"2":{"18":1,"65":1,"102":1,"155":1}}],["juliaabstractautomaton",{"2":{"7":1,"102":1}}],["juliaabstractmultivalueddecisiondiagram",{"2":{"7":1,"102":1}}],["juliacompose",{"2":{"102":2,"155":2}}],["juliacompositionalnetworks",{"2":{"120":2}}],["juliacomposition",{"2":{"102":3,"155":3}}],["juliacomparison",{"2":{"102":1,"116":1,"155":1}}],["juliacode",{"2":{"102":1,"155":1}}],["juliaco",{"2":{"102":9,"114":1}}],["juliacontinuousdomain",{"2":{"21":1,"102":1,"155":1}}],["juliaconsisempty",{"2":{"9":1,"102":1,"155":1}}],["juliaconsin",{"2":{"9":1,"102":1,"155":1}}],["juliaconstriction",{"2":{"158":1}}],["juliaconstraint",{"0":{"78":1,"84":1},"1":{"85":1},"2":{"79":1,"85":1,"91":1,"102":1,"155":1,"158":3}}],["juliaconstraints",{"0":{"106":1},"1":{"107":1,"108":1},"2":{"33":4,"38":4,"102":4,"106":6,"155":4}}],["juliaconstraintcommons",{"2":{"7":1,"30":1,"102":1,"122":1}}],["juliaconst",{"2":{"5":2,"33":2,"36":2,"45":1,"102":2,"120":2}}],["juliaconcept",{"2":{"1":7,"3":4,"34":3,"37":3,"40":9,"42":1,"49":1,"61":2,"63":4,"102":37,"155":3}}],["juliachemical",{"2":{"31":1}}],["juliac",{"2":{"1":3,"3":4,"40":4,"42":1,"49":1,"61":2,"63":2,"102":18}}],["julia",{"0":{"0":1,"2":1,"32":1,"35":1,"39":1,"41":1,"48":1,"60":1,"62":1,"87":1,"88":1,"89":1,"90":1,"91":1},"1":{"1":1,"3":1,"33":1,"34":1,"36":1,"37":1,"38":1,"40":1,"42":1,"49":1,"61":1,"63":1,"88":1,"89":1,"90":1},"2":{"0":3,"2":4,"4":2,"7":2,"17":1,"24":1,"28":1,"31":5,"33":3,"35":1,"36":2,"38":1,"39":4,"46":1,"47":1,"50":3,"57":1,"59":1,"62":2,"64":1,"68":3,"70":3,"88":1,"89":7,"90":5,"102":13,"106":8,"114":1,"120":1,"134":1,"136":1,"141":1,"144":1,"146":3,"147":1,"155":5,"157":17,"158":83}}],["jc",{"0":{"45":1},"2":{"0":3,"2":4,"33":1,"36":1,"39":4,"44":1,"46":2,"47":1,"50":1,"62":2,"67":1,"68":1,"70":1}}],["jl",{"0":{"0":1,"2":1,"4":1,"17":1,"31":1,"39":1,"41":1,"48":1,"60":1,"62":1,"117":1,"120":1,"125":1,"137":1,"145":1,"157":1,"158":1},"1":{"1":1,"3":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"40":1,"42":1,"49":1,"61":1,"63":1,"118":1,"119":1,"126":1,"146":1},"2":{"4":1,"17":1,"31":1,"32":1,"33":1,"34":2,"35":1,"37":2,"38":1,"44":1,"45":1,"46":1,"56":1,"57":1,"58":1,"59":1,"64":1,"65":1,"89":3,"102":1,"106":8,"117":1,"120":1,"123":1,"125":1,"137":1,"138":1,"139":2,"142":2,"145":2,"146":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":4,"155":1,"157":2,"158":2}}]],"serializationVersion":2}';export{i as default}; diff --git a/previews/PR53/assets/chunks/@localSearchIndexroot.W7AntqT5.js b/previews/PR53/assets/chunks/@localSearchIndexroot.W7AntqT5.js deleted file mode 100644 index 5113c7e..0000000 --- a/previews/PR53/assets/chunks/@localSearchIndexroot.W7AntqT5.js +++ /dev/null @@ -1 +0,0 @@ -const i='{"documentCount":160,"nextId":160,"documentIds":{"0":"/previews/PR53/constraints/comparison_constraints#Constraints.jl:-Streamlining-Constraint-Definition-and-Integration-in-Julia","1":"/previews/PR53/constraints/comparison_constraints#Comparison-based-Constraints","2":"/previews/PR53/constraints/connection_constraints#Constraints.jl:-Streamlining-Constraint-Definition-and-Integration-in-Julia","3":"/previews/PR53/constraints/connection_constraints#Connection-Constraints","4":"/previews/PR53/constraints/constraint_commons#constraintcommons-jl","5":"/previews/PR53/constraints/constraint_commons#parameters","6":"/previews/PR53/constraints/constraint_commons#performances","7":"/previews/PR53/constraints/constraint_commons#languages","8":"/previews/PR53/constraints/constraint_commons#Performances-2","9":"/previews/PR53/constraints/constraint_commons#extensions","10":"/previews/PR53/constraints/constraint_commons#Performances-3","11":"/previews/PR53/constraints/constraint_commons#sampling","12":"/previews/PR53/constraints/constraint_commons#Performances-4","13":"/previews/PR53/constraints/constraint_commons#extrema","14":"/previews/PR53/constraints/constraint_commons#Performances-5","15":"/previews/PR53/constraints/constraint_commons#dictionaries","16":"/previews/PR53/constraints/constraint_commons#Performances-6","17":"/previews/PR53/constraints/constraint_domains#ConstraintDomains.jl:-Defining-Variables-and-Exploring-Domains","18":"/previews/PR53/constraints/constraint_domains#commons","19":"/previews/PR53/constraints/constraint_domains#Extension-to-Base-module","20":"/previews/PR53/constraints/constraint_domains#performances","21":"/previews/PR53/constraints/constraint_domains#continuous","22":"/previews/PR53/constraints/constraint_domains#Extension-to-Base-module-2","23":"/previews/PR53/constraints/constraint_domains#Performances-2","24":"/previews/PR53/constraints/constraint_domains#discrete","25":"/previews/PR53/constraints/constraint_domains#Extension-to-Base-module-3","26":"/previews/PR53/constraints/constraint_domains#Performances-3","27":"/previews/PR53/constraints/constraint_domains#general","28":"/previews/PR53/constraints/constraint_domains#exploration","29":"/previews/PR53/constraints/constraint_domains#Performances-4","30":"/previews/PR53/constraints/constraint_domains#parameters","31":"/previews/PR53/constraints/constraint_models#constraintmodels-jl","32":"/previews/PR53/constraints/constraints#Interacting-with-Constraints-in-Julia","33":"/previews/PR53/constraints/constraints#Usual-Constraints-and-Parameters","34":"/previews/PR53/constraints/constraints#Concepts,-Error-Functions,-and-QUBO-matrices","35":"/previews/PR53/constraints/constraints_jl#Interacting-with-Constraints-in-Julia","36":"/previews/PR53/constraints/constraints_jl#Usual-Parameters","37":"/previews/PR53/constraints/constraints_jl#Concepts,-Error-Functions,-and-QUBO-matrices","38":"/previews/PR53/constraints/constraints_jl#Usual-Constraints","39":"/previews/PR53/constraints/counting_summing_constraints#Constraints.jl:-Streamlining-Constraint-Definition-and-Integration-in-Julia","40":"/previews/PR53/constraints/counting_summing_constraints#Counting-and-Summing-Constraints","41":"/previews/PR53/constraints/elementary_constraints#Constraints.jl:-Streamlining-Constraint-Definition-and-Integration-in-Julia","42":"/previews/PR53/constraints/elementary_constraints#Elementary-Constraints","43":"/previews/PR53/constraints/generic_constraints#Generic-Constraints","44":"/previews/PR53/constraints/generic_constraints#Intention-Constraints","45":"/previews/PR53/constraints/generic_constraints#Defining-an-intention-constraint-in-JC-API","46":"/previews/PR53/constraints/generic_constraints#apis","47":"/previews/PR53/constraints/generic_constraints#Specific-documentation","48":"/previews/PR53/constraints/generic_constraints#Extension-Constraints","49":"/previews/PR53/constraints/graph_constraints#Constraints.jl:-Streamlining-Constraint-Definition-and-Integration-in-Julia","50":"/previews/PR53/constraints/graph_constraints#Constraints-on-Graphs","51":"/previews/PR53/constraints/intro#Introduction-to-basics-constraint-based-modeling-tools","52":"/previews/PR53/constraints/intro#terminology","53":"/previews/PR53/constraints/intro#constraint","54":"/previews/PR53/constraints/intro#Constraint-Instantiation","55":"/previews/PR53/constraints/intro#configuration","56":"/previews/PR53/constraints/intro#Constraint-Satisfaction-or-Violation-by-a-Configuration","57":"/previews/PR53/constraints/intro#Domain-defined-variables","58":"/previews/PR53/constraints/intro#A-versatile-constraints\'-API","59":"/previews/PR53/constraints/intro#A-collection-of-models","60":"/previews/PR53/constraints/intro#Internal-Aspects","61":"/previews/PR53/constraints/language_constraints#Constraints.jl:-Streamlining-Constraint-Definition-and-Integration-in-Julia","62":"/previews/PR53/constraints/language_constraints#Constraints-defined-from-Languages","63":"/previews/PR53/constraints/packing_scheduling_constraints#Constraints.jl:-Streamlining-Constraint-Definition-and-Integration-in-Julia","64":"/previews/PR53/constraints/packing_scheduling_constraints#Packing-and-Scheduling-Constraints","65":"/previews/PR53/constraints/variables_and_domains#Defining-Variables-and-Exploring-Domains","66":"/previews/PR53/constraints/variables_and_domains#Implementing-the-AbstractDomain-Interface","67":"/previews/PR53/constraints/variables_and_domains#Discrete-Domains","68":"/previews/PR53/constraints/variables_and_domains#SetDomain","69":"/previews/PR53/constraints/variables_and_domains#RangeDomain","70":"/previews/PR53/constraints/variables_and_domains#Arbitrary-Domains","71":"/previews/PR53/constraints/variables_and_domains#Continuous-Domains","72":"/previews/PR53/cp/advanced#Advanced-Constraint-Programming-Techniques","73":"/previews/PR53/cp/advanced#Global-Constraints-and-Their-Uses","74":"/previews/PR53/cp/advanced#Search-Strategies-and-Optimization","75":"/previews/PR53/cp/applications#Applying-Optimization-Methods","76":"/previews/PR53/cp/applications#Case-Studies-and-Real-World-Applications","77":"/previews/PR53/cp/applications#From-Theory-to-Practice","78":"/previews/PR53/cp/contribution#Community-and-Contribution","79":"/previews/PR53/cp/contribution#Joining-the-JuliaConstraint-Community","80":"/previews/PR53/cp/contribution#Future-Directions","81":"/previews/PR53/cp/cp101#Constraint-Programming-101","82":"/previews/PR53/cp/cp101#What-is-Constraint-Programming?","83":"/previews/PR53/cp/cp101#Basic-Concepts-and-Terminology","84":"/previews/PR53/cp/cp101#How-CP-differs-from-other-optimization-techniques","85":"/previews/PR53/cp/ecosystem#Exploring-JuliaConstraint-Packages","86":"/previews/PR53/cp/ecosystem#Package-Overviews","87":"/previews/PR53/cp/ecosystem#Installation-and-Getting-Started-Guides","88":"/previews/PR53/cp/getting_started#Getting-Started-with-Julia-for-CP-and-Optimization","89":"/previews/PR53/cp/getting_started#Why-Julia?","90":"/previews/PR53/cp/getting_started#Setting-Up-Your-Julia-Environment","91":"/previews/PR53/cp/getting_started#Your-First-Julia-CP-Model","92":"/previews/PR53/cp/intro#Welcome-to-Julia-Constraints","93":"/previews/PR53/cp/models#Building-and-Analyzing-Models","94":"/previews/PR53/cp/models#Modeling-Best-Practices","95":"/previews/PR53/cp/models#Performance-Analysis-and-Improvement","96":"/previews/PR53/cp/opt#Dive-into-Optimization","97":"/previews/PR53/cp/opt#Understanding-Optimization","98":"/previews/PR53/cp/opt#Metaheuristics-Overview","99":"/previews/PR53/cp/opt#Mathematical-Programming-Basics","100":"/previews/PR53/cp/tuto_xp#Tutorials-and-Experiments","101":"/previews/PR53/cp/tuto_xp#Hands-On-Tutorials","102":"/previews/PR53/cp/tuto_xp#Experimental-Analysis","103":"/previews/PR53/index-old#juliaconstraints","104":"/previews/PR53/index-old#Operational-Research-vs-Constraint-Programming","105":"/previews/PR53/index-old#Constraint-Based-Local-Search","106":"/previews/PR53/full_api#Full-API","107":"/previews/PR53/learning/aggregation#Aggregation-Layer","108":"/previews/PR53/learning/aggregation#List-of-aggregations","109":"/previews/PR53/learning/aggregation#Layer-generation","110":"/previews/PR53/learning/arithmetic#Arithmetic-Layer","111":"/previews/PR53/learning/arithmetic#List-of-arithmetic-operations","112":"/previews/PR53/learning/arithmetic#Layer-generation","113":"/previews/PR53/learning/comparison#Comparison-Layer","114":"/previews/PR53/learning/comparison#List-of-comparisons","115":"/previews/PR53/learning/comparison#non-parametric","116":"/previews/PR53/learning/comparison#Param:-:val","117":"/previews/PR53/learning/comparison#Layer-generation","118":"/previews/PR53/learning/compositional_networks#compositionalnetworks-jl","119":"/previews/PR53/learning/compositional_networks#utilities","120":"/previews/PR53/learning/compositional_networks#metrics","121":"/previews/PR53/learning/constraint_learning#constraintlearning-jl","122":"/previews/PR53/learning/intro#Learning-about-Constraints","123":"/previews/PR53/learning/intro#parameters","124":"/previews/PR53/learning/layers#A-layer-structure-for-any-ICN","125":"/previews/PR53/learning/qubo_constraints#Introduction-to-QUBOConstraints.jl","126":"/previews/PR53/learning/qubo_constraints#Basic-features","127":"/previews/PR53/learning/qubo_encoding#Encoding-for-QUBO-programs","128":"/previews/PR53/learning/qubo_learning#Learning-QUBO-matrices","129":"/previews/PR53/learning/qubo_learning#interface","130":"/previews/PR53/learning/qubo_learning#Examples-with-various-optimizers","131":"/previews/PR53/learning/qubo_learning#Gradient-Descent","132":"/previews/PR53/learning/qubo_learning#Constraint-based-Local-Search","133":"/previews/PR53/learning/transformation#Transformations-Layer","134":"/previews/PR53/learning/transformation#List-of-transformations","135":"/previews/PR53/learning/transformation#non-parametric","136":"/previews/PR53/learning/transformation#Param:-:val","137":"/previews/PR53/learning/transformation#Layer-generation","138":"/previews/PR53/meta/meta_strategist#metastrategist-jl","139":"/previews/PR53/perf/api#api","140":"/previews/PR53/perf/benchmark_ext#BenchmarkTools-Extension","141":"/previews/PR53/perf/benchmark_ext#usage","142":"/previews/PR53/perf/benchmark_ext#options","143":"/previews/PR53/perf/chairmarks_ext#Chairmarks-Extension","144":"/previews/PR53/perf/chairmarks_ext#usage","145":"/previews/PR53/perf/chairmarks_ext#options","146":"/previews/PR53/perf/perf_checker#perfchecker-jl","147":"/previews/PR53/perf/perf_checker#usage","148":"/previews/PR53/perf/perf_interface#Extending-PerfChecker","149":"/previews/PR53/perf/perf_interface#The-Default-Options","150":"/previews/PR53/perf/perf_interface#Package-initialization","151":"/previews/PR53/perf/perf_interface#Preparatory-Code:","152":"/previews/PR53/perf/perf_interface#Main-Code-to-be-Performance-Tested","153":"/previews/PR53/perf/perf_interface#Post-Performance-Testing-Code","154":"/previews/PR53/perf/perf_interface#Converting-the-result-into-a-Table","155":"/previews/PR53/perf/tutorial#tutorial","156":"/previews/PR53/public_api#Public-API","157":"/previews/PR53/solvers/cbls#cbls-jl","158":"/previews/PR53/solvers/intro#solvers","159":"/previews/PR53/solvers/local_search_solvers#localsearchsolvers-jl"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[9,1,79],"1":[3,9,75],"2":[9,1,82],"3":[2,9,98],"4":[2,1,66],"5":[1,2,117],"6":[1,3,1],"7":[1,2,86],"8":[1,3,1],"9":[1,2,46],"10":[1,3,1],"11":[1,2,45],"12":[1,3,1],"13":[1,2,31],"14":[1,3,1],"15":[1,2,37],"16":[1,3,1],"17":[7,1,45],"18":[1,7,137],"19":[4,8,87],"20":[1,8,1],"21":[1,7,127],"22":[4,8,94],"23":[1,8,1],"24":[1,7,137],"25":[4,8,98],"26":[1,8,1],"27":[1,7,19],"28":[1,7,94],"29":[1,8,1],"30":[1,7,115],"31":[2,1,287],"32":[5,1,51],"33":[4,5,176],"34":[6,5,102],"35":[5,1,49],"36":[2,5,109],"37":[6,5,103],"38":[2,5,97],"39":[9,1,112],"40":[4,9,134],"41":[9,1,1],"42":[2,9,57],"43":[2,1,17],"44":[2,2,77],"45":[7,3,69],"46":[1,3,94],"47":[2,3,77],"48":[2,2,55],"49":[9,1,1],"50":[3,9,71],"51":[7,1,54],"52":[1,7,49],"53":[1,8,42],"54":[2,8,40],"55":[1,8,39],"56":[7,8,49],"57":[3,7,28],"58":[5,7,36],"59":[4,7,38],"60":[2,7,40],"61":[9,1,1],"62":[4,9,126],"63":[9,1,66],"64":[4,9,106],"65":[5,1,54],"66":[4,5,91],"67":[2,5,20],"68":[1,6,57],"69":[1,6,78],"70":[2,6,37],"71":[2,5,50],"72":[4,1,1],"73":[5,4,12],"74":[4,4,12],"75":[3,1,1],"76":[6,3,11],"77":[4,3,18],"78":[3,1,1],"79":[4,3,14],"80":[2,3,13],"81":[3,1,1],"82":[5,3,10],"83":[4,3,10],"84":[7,3,10],"85":[3,1,1],"86":[2,3,13],"87":[5,1,13],"88":[8,1,1],"89":[3,8,16],"90":[5,8,104],"91":[5,8,191],"92":[4,1,35],"93":[4,1,1],"94":[3,4,12],"95":[4,4,11],"96":[3,1,1],"97":[2,3,12],"98":[2,3,11],"99":[3,3,12],"100":[3,1,1],"101":[3,3,11],"102":[2,3,15],"103":[1,1,122],"104":[5,1,93],"105":[4,1,80],"106":[2,1,1158],"107":[2,1,11],"108":[3,2,26],"109":[2,2,26],"110":[2,1,11],"111":[4,2,22],"112":[2,2,25],"113":[2,1,11],"114":[3,2,10],"115":[2,5,38],"116":[2,5,18],"117":[2,5,50],"118":[2,1,5],"119":[1,2,94],"120":[1,2,46],"121":[2,1,232],"122":[3,1,6],"123":[1,3,111],"124":[6,1,145],"125":[4,1,5],"126":[2,4,35],"127":[4,1,64],"128":[3,1,1],"129":[1,3,31],"130":[4,3,1],"131":[2,7,102],"132":[4,7,1],"133":[2,1,30],"134":[3,2,10],"135":[2,5,67],"136":[2,5,20],"137":[2,5,159],"138":[2,1,5],"139":[1,1,57],"140":[2,1,26],"141":[1,2,48],"142":[1,2,31],"143":[2,1,26],"144":[1,2,49],"145":[1,2,25],"146":[2,1,51],"147":[1,2,150],"148":[2,1,49],"149":[3,2,53],"150":[2,2,38],"151":[3,2,58],"152":[6,2,61],"153":[4,2,42],"154":[6,2,59],"155":[1,1,129],"156":[2,1,616],"157":[2,1,473],"158":[1,1,3],"159":[2,1,508]},"averageFieldLength":[3.006249999999999,3.4687499999999987,66.01875000000001],"storedFields":{"0":{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","titles":[]},"1":{"title":"Comparison-based Constraints","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"2":{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","titles":[]},"3":{"title":"Connection Constraints","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"4":{"title":"ConstraintCommons.jl","titles":[]},"5":{"title":"Parameters","titles":["ConstraintCommons.jl"]},"6":{"title":"Performances","titles":["ConstraintCommons.jl","Parameters"]},"7":{"title":"Languages","titles":["ConstraintCommons.jl"]},"8":{"title":"Performances","titles":["ConstraintCommons.jl","Languages"]},"9":{"title":"Extensions","titles":["ConstraintCommons.jl"]},"10":{"title":"Performances","titles":["ConstraintCommons.jl","Extensions"]},"11":{"title":"Sampling","titles":["ConstraintCommons.jl"]},"12":{"title":"Performances","titles":["ConstraintCommons.jl","Sampling"]},"13":{"title":"Extrema","titles":["ConstraintCommons.jl"]},"14":{"title":"Performances","titles":["ConstraintCommons.jl","Extrema"]},"15":{"title":"Dictionaries","titles":["ConstraintCommons.jl"]},"16":{"title":"Performances","titles":["ConstraintCommons.jl","Dictionaries"]},"17":{"title":"ConstraintDomains.jl: Defining Variables and Exploring Domains","titles":[]},"18":{"title":"Commons","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains"]},"19":{"title":"Extension to Base module","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains","Commons"]},"20":{"title":"Performances","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains","Commons"]},"21":{"title":"Continuous","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains"]},"22":{"title":"Extension to Base module","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains","Continuous"]},"23":{"title":"Performances","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains","Continuous"]},"24":{"title":"Discrete","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains"]},"25":{"title":"Extension to Base module","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains","Discrete"]},"26":{"title":"Performances","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains","Discrete"]},"27":{"title":"General","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains"]},"28":{"title":"Exploration","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains"]},"29":{"title":"Performances","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains","Exploration"]},"30":{"title":"Parameters","titles":["ConstraintDomains.jl: Defining Variables and Exploring Domains"]},"31":{"title":"ConstraintModels.jl","titles":[]},"32":{"title":"Interacting with Constraints in Julia","titles":[]},"33":{"title":"Usual Constraints and Parameters","titles":["Interacting with Constraints in Julia"]},"34":{"title":"Concepts, Error Functions, and QUBO matrices","titles":["Interacting with Constraints in Julia"]},"35":{"title":"Interacting with Constraints in Julia","titles":[]},"36":{"title":"Usual Parameters","titles":["Interacting with Constraints in Julia"]},"37":{"title":"Concepts, Error Functions, and QUBO matrices","titles":["Interacting with Constraints in Julia"]},"38":{"title":"Usual Constraints","titles":["Interacting with Constraints in Julia"]},"39":{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","titles":[]},"40":{"title":"Counting and Summing Constraints","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"41":{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","titles":[]},"42":{"title":"Elementary Constraints","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"43":{"title":"Generic Constraints","titles":[]},"44":{"title":"Intention Constraints","titles":["Generic Constraints"]},"45":{"title":"Defining an intention constraint in JC-API","titles":["Generic Constraints","Intention Constraints"]},"46":{"title":"APIs","titles":["Generic Constraints","Intention Constraints"]},"47":{"title":"Specific documentation","titles":["Generic Constraints","Intention Constraints"]},"48":{"title":"Extension Constraints","titles":["Generic Constraints"]},"49":{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","titles":[]},"50":{"title":"Constraints on Graphs","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"51":{"title":"Introduction to basics constraint-based modeling tools","titles":[]},"52":{"title":"Terminology","titles":["Introduction to basics constraint-based modeling tools"]},"53":{"title":"Constraint","titles":["Introduction to basics constraint-based modeling tools","Terminology"]},"54":{"title":"Constraint Instantiation","titles":["Introduction to basics constraint-based modeling tools","Terminology"]},"55":{"title":"Configuration","titles":["Introduction to basics constraint-based modeling tools","Terminology"]},"56":{"title":"Constraint Satisfaction or Violation by a Configuration","titles":["Introduction to basics constraint-based modeling tools","Terminology"]},"57":{"title":"Domain-defined variables","titles":["Introduction to basics constraint-based modeling tools"]},"58":{"title":"A versatile constraints' API","titles":["Introduction to basics constraint-based modeling tools"]},"59":{"title":"A collection of models","titles":["Introduction to basics constraint-based modeling tools"]},"60":{"title":"Internal Aspects","titles":["Introduction to basics constraint-based modeling tools"]},"61":{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","titles":[]},"62":{"title":"Constraints defined from Languages","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"63":{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","titles":[]},"64":{"title":"Packing and Scheduling Constraints","titles":["Constraints.jl: Streamlining Constraint Definition and Integration in Julia"]},"65":{"title":"Defining Variables and Exploring Domains","titles":[]},"66":{"title":"Implementing the AbstractDomain Interface","titles":["Defining Variables and Exploring Domains"]},"67":{"title":"Discrete Domains","titles":["Defining Variables and Exploring Domains"]},"68":{"title":"SetDomain","titles":["Defining Variables and Exploring Domains","Discrete Domains"]},"69":{"title":"RangeDomain","titles":["Defining Variables and Exploring Domains","Discrete Domains"]},"70":{"title":"Arbitrary Domains","titles":["Defining Variables and Exploring Domains","Discrete Domains"]},"71":{"title":"Continuous Domains","titles":["Defining Variables and Exploring Domains"]},"72":{"title":"Advanced Constraint Programming Techniques","titles":[]},"73":{"title":"Global Constraints and Their Uses","titles":["Advanced Constraint Programming Techniques"]},"74":{"title":"Search Strategies and Optimization","titles":["Advanced Constraint Programming Techniques"]},"75":{"title":"Applying Optimization Methods","titles":[]},"76":{"title":"Case Studies and Real-World Applications","titles":["Applying Optimization Methods"]},"77":{"title":"From Theory to Practice","titles":["Applying Optimization Methods"]},"78":{"title":"Community and Contribution","titles":[]},"79":{"title":"Joining the JuliaConstraint Community","titles":["Community and Contribution"]},"80":{"title":"Future Directions","titles":["Community and Contribution"]},"81":{"title":"Constraint Programming 101","titles":[]},"82":{"title":"What is Constraint Programming?","titles":["Constraint Programming 101"]},"83":{"title":"Basic Concepts and Terminology","titles":["Constraint Programming 101"]},"84":{"title":"How CP differs from other optimization techniques","titles":["Constraint Programming 101"]},"85":{"title":"Exploring JuliaConstraint Packages","titles":[]},"86":{"title":"Package Overviews","titles":["Exploring JuliaConstraint Packages"]},"87":{"title":"Installation and Getting Started Guides","titles":[]},"88":{"title":"Getting Started with Julia for CP and Optimization","titles":[]},"89":{"title":"Why Julia?","titles":["Getting Started with Julia for CP and Optimization"]},"90":{"title":"Setting Up Your Julia Environment","titles":["Getting Started with Julia for CP and Optimization"]},"91":{"title":"Your First Julia CP Model","titles":["Getting Started with Julia for CP and Optimization"]},"92":{"title":"Welcome to Julia Constraints","titles":[]},"93":{"title":"Building and Analyzing Models","titles":[]},"94":{"title":"Modeling Best Practices","titles":["Building and Analyzing Models"]},"95":{"title":"Performance Analysis and Improvement","titles":["Building and Analyzing Models"]},"96":{"title":"Dive into Optimization","titles":[]},"97":{"title":"Understanding Optimization","titles":["Dive into Optimization"]},"98":{"title":"Metaheuristics Overview","titles":["Dive into Optimization"]},"99":{"title":"Mathematical Programming Basics","titles":["Dive into Optimization"]},"100":{"title":"Tutorials and Experiments","titles":[]},"101":{"title":"Hands-On Tutorials","titles":["Tutorials and Experiments"]},"102":{"title":"Experimental Analysis","titles":["Tutorials and Experiments"]},"103":{"title":"JuliaConstraints","titles":[]},"104":{"title":"Operational Research vs Constraint Programming","titles":["JuliaConstraints"]},"105":{"title":"Constraint-Based Local Search","titles":["JuliaConstraints"]},"106":{"title":"Full API","titles":[]},"107":{"title":"Aggregation Layer","titles":[]},"108":{"title":"List of aggregations","titles":["Aggregation Layer"]},"109":{"title":"Layer generation","titles":["Aggregation Layer"]},"110":{"title":"Arithmetic Layer","titles":[]},"111":{"title":"List of arithmetic operations","titles":["Arithmetic Layer"]},"112":{"title":"Layer generation","titles":["Arithmetic Layer"]},"113":{"title":"Comparison Layer","titles":[]},"114":{"title":"List of comparisons","titles":["Comparison Layer"]},"115":{"title":"Non-parametric","titles":["Comparison Layer","List of comparisons"]},"116":{"title":"Param: :val","titles":["Comparison Layer","List of comparisons"]},"117":{"title":"Layer generation","titles":["Comparison Layer","List of comparisons"]},"118":{"title":"CompositionalNetworks.jl","titles":[]},"119":{"title":"Utilities","titles":["CompositionalNetworks.jl"]},"120":{"title":"Metrics","titles":["CompositionalNetworks.jl"]},"121":{"title":"ConstraintLearning.jl","titles":[]},"122":{"title":"Learning about Constraints","titles":[]},"123":{"title":"Parameters","titles":["Learning about Constraints"]},"124":{"title":"A layer structure for any ICN","titles":[]},"125":{"title":"Introduction to QUBOConstraints.jl","titles":[]},"126":{"title":"Basic features","titles":["Introduction to QUBOConstraints.jl"]},"127":{"title":"Encoding for QUBO programs","titles":[]},"128":{"title":"Learning QUBO matrices","titles":[]},"129":{"title":"Interface","titles":["Learning QUBO matrices"]},"130":{"title":"Examples with various optimizers","titles":["Learning QUBO matrices"]},"131":{"title":"Gradient Descent","titles":["Learning QUBO matrices","Examples with various optimizers"]},"132":{"title":"Constraint-based Local Search","titles":["Learning QUBO matrices","Examples with various optimizers"]},"133":{"title":"Transformations Layer","titles":[]},"134":{"title":"List of transformations","titles":["Transformations Layer"]},"135":{"title":"Non-parametric","titles":["Transformations Layer","List of transformations"]},"136":{"title":"Param: :val","titles":["Transformations Layer","List of transformations"]},"137":{"title":"Layer generation","titles":["Transformations Layer","List of transformations"]},"138":{"title":"MetaStrategist.jl","titles":[]},"139":{"title":"API","titles":[]},"140":{"title":"BenchmarkTools Extension","titles":[]},"141":{"title":"Usage","titles":["BenchmarkTools Extension"]},"142":{"title":"Options","titles":["BenchmarkTools Extension"]},"143":{"title":"Chairmarks Extension","titles":[]},"144":{"title":"Usage","titles":["Chairmarks Extension"]},"145":{"title":"Options","titles":["Chairmarks Extension"]},"146":{"title":"PerfChecker.jl","titles":[]},"147":{"title":"Usage","titles":["PerfChecker.jl"]},"148":{"title":"Extending PerfChecker","titles":[]},"149":{"title":"The Default Options","titles":["Extending PerfChecker"]},"150":{"title":"Package initialization","titles":["Extending PerfChecker"]},"151":{"title":"Preparatory Code:","titles":["Extending PerfChecker"]},"152":{"title":"Main Code to be Performance Tested","titles":["Extending PerfChecker"]},"153":{"title":"Post Performance Testing Code","titles":["Extending PerfChecker"]},"154":{"title":"Converting the result into a Table","titles":["Extending PerfChecker"]},"155":{"title":"Tutorial","titles":[]},"156":{"title":"Public API","titles":[]},"157":{"title":"CBLS.jl","titles":[]},"158":{"title":"Solvers","titles":[]},"159":{"title":"LocalSearchSolvers.jl","titles":[]}},"dirtCount":0,"index":[["∅",{"2":{"157":1}}],["∩",{"2":{"157":1}}],["$kwarg",{"2":{"155":1}}],["$d",{"2":{"152":1}}],["$block",{"2":{"151":1,"152":1}}],["θ",{"2":{"131":2}}],["^2",{"2":{"131":1}}],["η",{"2":{"121":1,"131":6}}],["σ",{"2":{"106":2,"126":2,"156":2}}],["∉",{"2":{"106":3,"157":2}}],["⋯",{"2":{"91":2}}],["×",{"2":{"91":3}}],["+",{"2":{"47":2,"103":1,"106":9,"108":1,"141":1,"144":1}}],["≠",{"2":{"45":1,"46":1}}],["||",{"2":{"106":2,"157":1}}],["|the",{"2":{"45":1}}],["|≠|x",{"2":{"45":1}}],["|x",{"2":{"45":1}}],["−x",{"2":{"45":2}}],["7",{"2":{"31":3,"40":2,"64":3,"106":5,"139":1}}],["`function",{"2":{"159":1}}],["`struct",{"2":{"159":1}}],["``",{"2":{"157":3}}],["`",{"2":{"62":1,"106":1,"121":1}}],["`automaton`",{"2":{"62":1,"106":1}}],["`x`",{"2":{"62":2,"106":2}}],["`grid`",{"2":{"31":1}}],["`m`",{"2":{"31":1}}],["q",{"2":{"121":7,"131":18}}],["quite",{"2":{"91":1}}],["quote",{"2":{"150":1,"151":1,"152":1}}],["quot",{"2":{"64":4,"91":6,"103":4,"106":10,"147":2,"151":2}}],["qubooptimizer",{"2":{"121":2}}],["qubogradientoptimizer",{"2":{"121":4}}],["qubo",{"0":{"34":1,"37":1,"127":1,"128":1},"1":{"129":1,"130":1,"131":1,"132":1},"2":{"34":1,"37":1,"106":5,"121":4,"126":4,"129":1,"156":2}}],["quboconstraints",{"0":{"125":1},"1":{"126":1},"2":{"32":1,"34":1,"37":1,"106":7,"121":1,"125":1,"126":2,"127":3,"129":2,"131":1,"156":5}}],["quadractic",{"2":{"31":1}}],["queens",{"2":{"31":4}}],["qap",{"2":{"31":1}}],["right",{"2":{"106":18,"135":15,"137":3}}],["rules",{"2":{"62":2,"106":2,"157":1}}],["ruler",{"2":{"31":1,"45":4,"47":2,"106":2,"157":2}}],["runtime",{"2":{"159":1}}],["runs",{"2":{"151":1,"152":1}}],["running",{"2":{"151":1}}],["run",{"2":{"31":1,"91":1,"121":1,"151":1,"152":1,"153":1,"157":1,"159":5}}],["rawoptimizerattribute",{"2":{"157":2}}],["raw",{"2":{"31":2}}],["rates",{"2":{"31":1}}],["rate",{"2":{"31":1}}],["rangeset",{"2":{"69":3}}],["ranges",{"2":{"24":1,"106":1,"156":1}}],["rangedomain",{"0":{"69":1},"2":{"18":1,"21":1,"24":3,"27":2,"106":5,"156":3}}],["range",{"2":{"18":1,"21":1,"24":3,"57":1,"58":1,"62":1,"66":1,"69":3,"106":4,"156":3,"157":1}}],["randomly",{"2":{"19":2,"22":1,"25":1,"30":1,"106":1,"123":1,"159":1}}],["random",{"2":{"19":2,"22":1,"25":1,"30":10,"66":1,"106":10,"123":2,"156":1,"159":2}}],["rand",{"2":{"18":1,"19":16,"22":9,"25":9,"30":8,"66":2,"106":13,"123":8,"155":1,"156":1,"159":2}}],["round",{"2":{"131":1,"159":1}}],["routing",{"2":{"50":2,"104":1,"106":2}}],["role",{"2":{"99":1}}],["roles",{"2":{"33":1,"36":1}}],["robust",{"2":{"60":1}}],["rows",{"2":{"91":1}}],["row",{"2":{"31":1,"91":1}}],["root",{"2":{"28":1,"106":1,"156":1}}],["r",{"2":{"18":2,"21":2,"24":2,"31":2,"37":1,"62":3,"106":5,"131":8,"156":2}}],["re",{"2":{"159":1}}],["remote",{"2":{"159":2}}],["remotely",{"2":{"159":1}}],["removed",{"2":{"69":1}}],["ref",{"2":{"133":1,"159":6}}],["reference",{"2":{"148":1}}],["refers",{"2":{"54":1,"56":1}}],["refer",{"2":{"31":4}}],["requires",{"2":{"155":1}}],["required",{"2":{"106":1,"129":1}}],["requirements",{"2":{"7":2,"106":2}}],["rev",{"2":{"106":5,"135":1,"137":1}}],["reverse",{"2":{"31":1,"106":1,"137":1,"155":2}}],["reduce",{"2":{"104":1,"106":3,"111":2,"119":1}}],["reinforcement",{"2":{"103":1}}],["registries",{"2":{"139":1}}],["regions",{"2":{"91":1}}],["regularconstraint",{"2":{"157":1}}],["regularization",{"2":{"106":2,"156":2}}],["regular",{"2":{"4":1,"5":1,"33":1,"36":1,"62":9,"106":10,"157":2}}],["reproducible",{"2":{"146":1}}],["represented",{"2":{"62":2,"106":2,"151":1,"157":1}}],["represents",{"2":{"55":1,"106":1,"157":3}}],["representing",{"2":{"28":1,"62":1,"106":2,"156":1,"157":3}}],["repositories",{"2":{"103":1}}],["replace",{"2":{"159":1}}],["replaced",{"2":{"69":1}}],["repl",{"2":{"90":1}}],["recommended",{"2":{"69":1,"157":1,"159":1}}],["recognize",{"2":{"7":1}}],["reusable",{"2":{"59":1}}],["relies",{"2":{"133":1}}],["relevant",{"2":{"51":1}}],["relate",{"2":{"106":1,"137":1}}],["related",{"2":{"17":1,"65":1,"106":1,"121":1,"122":1,"137":1,"140":1,"143":1,"154":1,"156":1}}],["relatively",{"2":{"106":1,"119":1,"159":1}}],["relation",{"2":{"53":1}}],["relationships",{"2":{"48":1}}],["retrieve",{"2":{"31":1}}],["returned",{"2":{"106":1}}],["returns",{"2":{"9":2,"19":3,"22":2,"25":2,"28":2,"30":1,"106":20,"123":1,"137":1,"139":1,"141":1,"144":1,"156":4,"157":19,"159":1}}],["return",{"2":{"1":3,"3":4,"5":1,"7":3,"18":3,"19":5,"21":3,"22":8,"24":3,"25":8,"28":1,"30":2,"31":1,"33":3,"34":4,"37":4,"38":3,"40":4,"42":1,"50":1,"62":1,"64":2,"106":64,"119":1,"121":4,"123":2,"124":5,"131":8,"149":1,"152":1,"154":1,"155":1,"156":21,"157":1,"159":21}}],["reach",{"2":{"106":1,"120":1,"156":1}}],["reactants",{"2":{"31":2}}],["reactions",{"2":{"31":1}}],["reaction",{"2":{"31":4}}],["readers",{"2":{"77":1,"79":1,"92":1}}],["real",{"0":{"76":1},"2":{"18":3,"21":5,"24":4,"77":1,"92":1,"106":7,"156":6,"157":2}}],["resume",{"2":{"159":1}}],["result",{"0":{"154":1},"2":{"106":23,"119":1,"135":8,"137":2,"151":1,"152":1,"153":1}}],["results",{"2":{"21":2,"31":1,"106":3,"147":3,"155":1}}],["restart",{"2":{"159":6}}],["restricting",{"2":{"159":2}}],["restriction",{"2":{"106":2,"156":2}}],["restricts",{"2":{"40":3,"106":3}}],["restricted",{"2":{"19":1,"22":1,"25":1,"159":4}}],["respect",{"2":{"106":1,"137":1}}],["respective",{"2":{"55":1,"65":1}}],["respectively",{"2":{"31":2}}],["research",{"0":{"104":1},"2":{"80":1,"103":1,"104":1}}],["resource",{"2":{"59":1}}],["δ",{"2":{"13":1,"106":1,"121":1,"131":1,"156":1}}],["∈",{"2":{"9":1,"18":1,"19":7,"22":7,"25":7,"66":2,"106":9,"156":2,"157":2,"159":3}}],["write",{"2":{"103":1,"106":2,"156":2}}],["wrappers",{"2":{"103":1}}],["wrapping",{"2":{"103":1}}],["would",{"2":{"54":1,"106":1}}],["worse",{"2":{"159":3}}],["world",{"0":{"76":1},"2":{"77":1,"92":1}}],["works",{"2":{"106":1,"148":1,"149":1,"156":1}}],["work",{"2":{"34":1,"37":1}}],["word",{"2":{"7":6,"30":2,"62":2,"106":8,"123":2,"156":1,"157":1}}],["was",{"2":{"148":1,"159":1}}],["want",{"2":{"141":1,"144":1}}],["warning",{"2":{"31":1,"52":1,"106":1}}],["way",{"2":{"17":1,"44":1,"46":1,"48":1,"65":1,"106":3,"123":1,"141":1,"144":1,"157":1}}],["whole",{"2":{"106":1,"156":1,"159":1}}],["while",{"2":{"104":2,"105":1,"159":5}}],["which",{"2":{"19":1,"31":7,"33":1,"36":1,"56":2,"62":2,"91":1,"106":6,"119":1,"124":1,"146":1,"148":1,"156":1,"157":1}}],["why",{"0":{"89":1}}],["what",{"0":{"82":1},"2":{"91":1,"92":1,"106":1}}],["whether",{"2":{"40":1,"52":1,"56":1,"64":1,"106":4,"157":1}}],["where",{"2":{"18":5,"19":5,"21":5,"22":4,"24":5,"25":4,"30":2,"31":1,"40":1,"47":1,"50":2,"62":1,"66":1,"76":1,"104":1,"105":2,"106":18,"123":2,"131":1,"147":1,"156":6,"157":8,"159":69}}],["when",{"2":{"9":2,"31":1,"51":1,"91":1,"106":21,"121":2,"135":8,"137":2,"147":1,"156":2,"157":1,"159":2}}],["well",{"2":{"91":1}}],["welcome",{"0":{"92":1},"2":{"59":1}}],["weighting",{"2":{"121":1}}],["weighted",{"2":{"106":1}}],["weight",{"2":{"31":1,"106":2,"126":1,"156":1}}],["weights=nothing",{"2":{"106":1,"156":1}}],["weights",{"2":{"31":3,"106":18,"121":5,"124":6,"156":8}}],["weigths",{"2":{"31":1,"120":1,"124":1}}],["we",{"2":{"9":1,"11":1,"13":1,"15":1,"32":1,"33":1,"35":1,"38":1,"44":1,"45":1,"46":1,"51":1,"52":1,"54":1,"67":1,"70":1,"71":1,"90":4,"91":6,"123":1}}],["w",{"2":{"7":2,"30":2,"106":4,"121":2,"123":2,"124":2,"156":2}}],["wip",{"2":{"146":1}}],["wide",{"2":{"58":1,"62":1,"106":1,"157":1}}],["width",{"2":{"33":2,"38":2,"106":2,"156":2}}],["width=150",{"2":{"33":1,"38":1,"106":1,"156":1}}],["wikipedia",{"2":{"31":2,"91":1}}],["without",{"2":{"71":1,"106":17,"135":8}}],["with",{"0":{"32":1,"35":1,"88":1,"130":1},"1":{"33":1,"34":1,"36":1,"37":1,"38":1,"89":1,"90":1,"91":1,"131":1,"132":1},"2":{"5":1,"7":1,"21":1,"28":1,"30":1,"31":8,"33":5,"36":1,"38":4,"52":1,"54":1,"55":1,"58":1,"59":1,"62":4,"64":3,"69":1,"70":1,"84":1,"87":1,"91":5,"103":3,"104":3,"105":1,"106":58,"117":1,"119":2,"121":3,"124":4,"135":8,"137":3,"140":1,"142":1,"143":1,"145":1,"147":2,"149":1,"150":1,"155":1,"156":11,"157":6,"159":8}}],["within",{"2":{"4":1,"35":1,"46":1,"62":2,"65":1,"66":1,"86":1,"90":1,"106":8,"107":1,"110":1,"113":1,"133":1,"157":6,"159":1}}],["will",{"2":{"5":1,"33":1,"38":1,"51":1,"65":1,"69":1,"70":1,"90":2,"91":1,"106":8,"109":1,"112":1,"117":1,"121":1,"124":1,"127":1,"140":1,"143":1,"156":7,"157":2}}],["kwarg",{"2":{"155":2}}],["keep",{"2":{"106":1,"126":1}}],["key",{"2":{"83":1,"106":2,"151":1,"152":1}}],["keyword",{"2":{"33":2,"34":1,"36":2,"37":1,"106":9,"148":1,"156":1,"159":1}}],["keywords",{"2":{"5":1,"33":1,"36":1,"106":2,"156":1}}],["k",{"2":{"106":2,"111":2,"159":1}}],["known",{"2":{"31":1,"40":3,"55":1,"106":5,"156":2,"159":1}}],["kargs",{"2":{"5":1,"34":4,"37":4,"106":7,"121":6,"156":5}}],["kind=",{"2":{"159":1}}],["kinds",{"2":{"7":1,"67":1}}],["kind",{"2":{"5":1,"13":1,"28":1,"30":1,"33":1,"36":1,"106":3,"123":1,"156":1,"159":6}}],["branch",{"2":{"147":1}}],["breaking",{"2":{"139":3,"147":3}}],["build",{"2":{"103":1,"115":4,"116":4,"117":1,"119":1,"120":1,"123":10,"124":1,"135":2,"136":6,"148":1,"157":2}}],["building",{"0":{"93":1},"1":{"94":1,"95":1},"2":{"94":1}}],["but",{"2":{"31":1,"91":1,"154":1}}],["block",{"2":{"91":1,"147":1,"151":4,"152":2}}],["blocks",{"2":{"58":1,"91":2}}],["blank",{"2":{"31":2}}],["binarization==",{"2":{"131":1}}],["binarization",{"2":{"106":4,"121":2,"127":4,"131":13,"156":4}}],["binarize",{"2":{"106":2,"127":2,"131":3,"156":2}}],["binarized",{"2":{"106":1,"126":1}}],["binary",{"2":{"48":1,"106":1,"127":1,"156":1}}],["bias",{"2":{"106":3,"120":1,"156":3}}],["bit",{"2":{"106":2,"127":1,"156":2}}],["bits",{"2":{"106":3,"124":2,"156":1}}],["bitvector",{"2":{"106":5,"119":4,"156":1}}],["bijective",{"2":{"3":2,"106":2}}],["b2",{"2":{"39":1}}],["b1",{"2":{"39":1}}],["bariable",{"2":{"159":1}}],["backends",{"2":{"146":1,"147":1}}],["backend",{"2":{"142":1,"145":1,"147":3,"150":1,"154":1}}],["back",{"2":{"50":2,"106":2}}],["backward",{"2":{"31":1}}],["basis",{"2":{"91":1}}],["basics",{"0":{"51":1,"99":1},"1":{"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1}}],["basic",{"0":{"83":1,"126":1},"2":{"4":1,"90":1,"106":5,"121":1,"126":1,"137":4,"154":1}}],["base",{"0":{"19":1,"22":1,"25":1},"2":{"4":1,"9":2,"18":3,"19":12,"22":8,"25":9,"27":3,"30":4,"31":9,"51":1,"66":3,"106":29,"123":4,"124":1,"126":2,"156":6,"157":5,"159":4}}],["based",{"0":{"1":1,"51":1,"105":1,"132":1},"1":{"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1},"2":{"5":3,"15":1,"28":1,"30":1,"33":4,"36":3,"38":1,"51":1,"105":1,"106":10,"121":2,"123":1,"124":1,"127":1,"137":2,"140":1,"143":1,"156":5,"157":1}}],["b",{"2":{"18":1,"19":8,"21":1,"22":8,"24":1,"25":8,"62":2,"106":11,"156":1}}],["boxplots",{"2":{"155":4}}],["boxes",{"2":{"91":1}}],["bounded",{"2":{"106":1}}],["bounding",{"2":{"106":6,"136":1,"137":2}}],["bounds",{"2":{"18":1,"66":1,"106":1,"156":1}}],["bold",{"2":{"52":1}}],["bool=true",{"2":{"39":1,"40":1,"106":1}}],["bool=false",{"2":{"39":1,"40":3,"106":3}}],["boolparameterdomain",{"2":{"30":1,"106":1,"123":1}}],["boolean",{"2":{"5":1,"11":1,"30":1,"33":1,"36":1,"106":5,"147":1,"156":2}}],["bool",{"2":{"5":1,"18":4,"21":4,"24":4,"33":1,"36":1,"40":1,"64":3,"106":9,"131":1,"147":1,"156":4,"157":8,"159":4}}],["both",{"2":{"4":1,"13":1,"17":1,"31":2,"65":1,"104":1,"106":5,"156":1,"157":1}}],["bytes",{"2":{"154":4,"155":1}}],["by",{"0":{"56":1},"2":{"3":2,"4":1,"7":1,"9":2,"19":1,"22":1,"24":1,"25":1,"31":1,"32":2,"33":1,"34":1,"35":2,"36":1,"37":1,"40":1,"44":2,"48":3,"62":4,"87":1,"101":1,"105":1,"106":20,"119":1,"121":4,"124":1,"151":2,"156":5,"157":4,"159":10}}],["below",{"2":{"155":1}}],["belongs",{"2":{"19":1,"22":1,"25":1,"159":2}}],["begin",{"2":{"141":2,"144":2,"147":2,"155":2,"157":4,"159":22}}],["benchmarked",{"2":{"141":1,"144":1}}],["benchmark",{"2":{"141":1,"154":1}}],["benchmarking",{"2":{"140":1,"143":1}}],["benchmarktools",{"0":{"140":1},"1":{"141":1,"142":1},"2":{"140":1,"141":2,"142":8,"144":1,"147":1}}],["better",{"2":{"104":1,"159":2}}],["between",{"2":{"3":2,"5":1,"13":2,"18":3,"21":2,"24":2,"31":2,"39":1,"45":2,"47":4,"48":1,"52":1,"53":1,"66":1,"106":15,"156":7,"157":4,"159":1}}],["best",{"0":{"94":1},"2":{"90":1,"94":1,"121":1,"159":1}}],["been",{"2":{"67":1,"76":1,"140":1,"143":1,"159":7}}],["before",{"2":{"64":8,"106":8,"151":1}}],["because",{"2":{"44":1,"48":1,"56":2}}],["behavior",{"2":{"28":2,"66":1,"70":1,"106":2,"156":1}}],["be",{"0":{"152":1},"2":{"3":2,"17":1,"18":1,"28":3,"31":2,"40":2,"44":2,"48":3,"52":1,"53":1,"54":1,"55":1,"60":1,"62":3,"65":2,"69":3,"70":1,"71":1,"90":1,"91":1,"104":2,"105":2,"106":28,"109":1,"112":1,"117":1,"121":2,"123":1,"124":5,"127":1,"137":1,"141":2,"144":2,"147":4,"148":1,"149":1,"150":1,"151":2,"152":2,"153":2,"154":2,"156":9,"157":18,"159":3}}],["update",{"2":{"106":2}}],["upcoming",{"2":{"80":1}}],["up",{"0":{"90":1},"2":{"70":1,"159":1}}],["unfold",{"2":{"155":2}}],["undefkeyworderror",{"2":{"131":1}}],["under",{"2":{"106":1,"137":1}}],["understanding",{"0":{"97":1},"2":{"104":1}}],["unrolled",{"2":{"106":1}}],["unacceptable",{"2":{"106":2,"157":1}}],["unlikely",{"2":{"60":1}}],["unordered",{"2":{"24":1,"68":1,"106":1,"156":1}}],["until",{"2":{"11":1,"70":1,"106":1,"156":1}}],["unique",{"2":{"3":2,"45":2,"47":1,"106":3,"157":2}}],["union",{"2":{"3":4,"5":1,"7":2,"15":1,"19":2,"22":1,"25":1,"27":2,"30":2,"40":1,"106":12,"123":2,"156":4,"157":4,"159":69}}],["utilities",{"0":{"119":1},"2":{"11":1,"60":1}}],["utilized",{"2":{"4":1,"106":1,"157":1}}],["us",{"2":{"157":1}}],["usage",{"0":{"141":1,"144":1,"147":1},"2":{"46":1,"140":1,"143":1,"147":1}}],["using",{"2":{"33":1,"38":1,"46":1,"69":2,"91":1,"103":1,"106":1,"121":1,"141":2,"144":2,"146":1,"147":3,"150":1,"155":3,"156":1,"157":1}}],["usually",{"2":{"47":1,"106":1,"159":1}}],["usual",{"0":{"33":1,"36":1,"38":1},"2":{"5":8,"33":14,"34":3,"36":5,"37":3,"38":9,"44":1,"45":3,"46":1,"106":24,"107":1,"110":1,"113":1,"133":1,"156":14}}],["uses",{"0":{"73":1},"2":{"104":2,"105":2,"106":1,"121":1,"137":1}}],["user",{"2":{"33":1,"36":1,"58":1,"151":1,"152":1,"159":2}}],["users",{"2":{"4":1,"17":1,"60":1,"90":2,"148":1,"149":1}}],["useful",{"2":{"15":1,"105":2,"106":1,"124":1,"157":4,"159":1}}],["used",{"2":{"3":6,"5":2,"7":3,"17":1,"18":1,"30":8,"33":2,"36":2,"42":2,"50":2,"60":1,"62":1,"64":8,"66":1,"90":1,"104":1,"106":40,"119":1,"121":2,"124":2,"129":1,"141":1,"144":1,"147":3,"156":1,"157":4,"159":1}}],["use",{"2":{"1":2,"4":1,"11":1,"17":1,"24":1,"34":2,"37":2,"40":1,"45":2,"60":1,"89":1,"90":2,"91":1,"105":2,"106":5,"133":1,"146":1,"148":1,"156":2,"157":2,"159":2}}],["ptm",{"2":{"159":1}}],["png",{"2":{"155":2}}],["pkgextensions",{"2":{"148":1}}],["pkgs",{"2":{"147":1,"155":1}}],["pkg",{"2":{"139":2,"147":1,"148":1}}],["penalty",{"2":{"121":9,"131":20}}],["perfchecker",{"0":{"146":1,"148":1},"1":{"147":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1},"2":{"139":5,"140":1,"141":1,"143":1,"144":1,"146":1,"147":2,"148":2,"149":3,"150":1,"151":1,"152":2,"153":1,"154":3,"155":3}}],["performance",{"0":{"95":1,"152":1,"153":1},"2":{"60":1,"89":1,"95":1,"146":2,"147":4,"149":1,"151":1,"152":1,"153":1,"155":2,"159":1}}],["performances",{"0":{"6":1,"8":1,"10":1,"12":1,"14":1,"16":1,"20":1,"23":1,"26":1,"29":1}}],["perform",{"2":{"28":1,"106":1,"156":1,"159":1}}],["per",{"2":{"32":1,"35":1,"106":1,"127":1,"156":1}}],["pôpulation",{"2":{"121":1}}],["phase",{"2":{"106":1,"124":2}}],["public",{"0":{"156":1}}],["push",{"2":{"131":1}}],["pure",{"2":{"103":3}}],["purely",{"2":{"103":1}}],["purposes",{"2":{"106":1,"121":1}}],["purpose",{"2":{"86":1}}],["puzzles",{"2":{"91":1}}],["puzzle",{"2":{"91":3}}],["plots",{"2":{"155":2}}],["plotting",{"2":{"154":1,"155":1}}],["plainly",{"2":{"150":1}}],["placeholder",{"2":{"70":1}}],["pluto",{"2":{"90":1}}],["please",{"2":{"45":1,"90":1}}],["pivotal",{"2":{"35":1}}],["p",{"2":{"31":2,"106":1,"120":1,"156":1,"157":1}}],["pseudo",{"2":{"30":1,"106":1}}],["pool",{"2":{"159":1}}],["populate",{"2":{"149":1}}],["population",{"2":{"106":2,"121":2,"156":2}}],["pop",{"2":{"121":2}}],["popsize=100",{"2":{"121":1}}],["popsize=200",{"2":{"106":1,"156":1}}],["popsize",{"2":{"106":4,"156":4}}],["positional",{"2":{"106":1}}],["positive",{"2":{"106":15,"108":3,"156":4}}],["post",{"0":{"153":1},"2":{"92":1,"153":2,"154":1,"159":1}}],["posed",{"2":{"91":1}}],["possible",{"2":{"55":1,"90":1,"104":1,"114":1,"134":1,"157":1,"159":2}}],["possibly",{"2":{"24":1,"70":1,"106":2}}],["pos",{"2":{"31":2}}],["point",{"2":{"19":3,"22":2,"25":2,"30":1,"64":2,"106":4,"123":1}}],["points",{"2":{"18":1,"21":1,"22":1,"24":3,"25":2,"106":5,"156":4}}],["practices",{"0":{"94":1},"2":{"94":1}}],["practice",{"0":{"77":1}}],["practical",{"2":{"32":1,"35":1,"70":1}}],["printing",{"2":{"159":2}}],["print",{"2":{"91":1,"159":8}}],["principles",{"2":{"52":1}}],["primary",{"2":{"86":1,"147":1}}],["primarily",{"2":{"17":1}}],["prep",{"2":{"151":3}}],["preparatory",{"0":{"151":1},"2":{"147":1,"151":1}}],["previous",{"2":{"147":3}}],["previously",{"2":{"46":1}}],["prelimnary",{"2":{"141":1,"144":1}}],["preliminaries",{"2":{"121":2,"131":3}}],["precision",{"2":{"121":1,"131":6}}],["prefix",{"2":{"106":3}}],["prefixed",{"2":{"33":1,"36":1}}],["preferences",{"2":{"106":1,"156":1}}],["predict",{"2":{"121":1,"131":9}}],["predictions",{"2":{"121":1}}],["prediction",{"2":{"121":1}}],["predicates",{"2":{"91":2}}],["predicate",{"2":{"44":1,"45":4,"46":2,"47":4,"52":1,"53":1,"106":9,"124":1,"157":7}}],["predefined",{"2":{"59":1}}],["pretty",{"2":{"33":3,"38":3,"106":3,"131":1,"156":3,"159":2}}],["present",{"2":{"31":1,"51":1,"106":1,"155":1}}],["proportional",{"2":{"106":1,"156":1}}],["property",{"2":{"44":1}}],["properties",{"2":{"31":1,"66":1}}],["properly",{"2":{"18":1,"66":1,"106":1,"156":1}}],["produce",{"2":{"106":1,"119":1}}],["product",{"2":{"106":1,"111":1}}],["products",{"2":{"31":2}}],["prod",{"2":{"106":2,"111":2}}],["projects",{"2":{"80":1}}],["providing",{"2":{"58":1,"106":2,"157":1}}],["provided",{"2":{"106":18,"135":8,"147":2,"151":1}}],["provide",{"2":{"15":1,"33":1,"34":1,"37":1,"38":1,"44":2,"46":2,"48":1,"66":1,"67":1,"70":1,"71":1,"87":1,"90":1,"101":1,"103":1,"123":1,"140":1,"143":1,"147":1,"149":1,"157":1}}],["provides",{"2":{"4":1,"51":1,"59":1,"60":1,"65":1,"91":1,"92":1,"103":1,"146":2}}],["programs",{"0":{"127":1}}],["programming",{"0":{"72":1,"81":1,"82":1,"99":1,"104":1},"1":{"73":1,"74":1,"82":1,"83":1,"84":1},"2":{"3":6,"4":1,"32":1,"35":1,"40":3,"42":2,"48":1,"50":2,"51":2,"64":6,"67":1,"84":1,"91":1,"92":1,"97":1,"99":1,"103":3,"104":2,"105":4,"106":20,"137":1,"157":1}}],["progress",{"2":{"34":1,"37":1}}],["problem",{"2":{"31":6,"45":1,"54":3,"77":1,"91":1,"104":2,"105":1,"159":3}}],["problems",{"2":{"31":2,"50":2,"51":1,"59":1,"62":1,"64":6,"71":1,"73":1,"74":1,"82":1,"91":1,"92":1,"97":1,"103":4,"104":3,"105":6,"106":11,"157":2,"159":1}}],["processing",{"2":{"106":1,"137":1}}],["process",{"2":{"59":1,"77":1,"104":1,"106":1,"121":1,"137":1,"147":1,"159":7}}],["processes",{"2":{"11":1,"104":1}}],["proceeds",{"2":{"31":1}}],["pacakge",{"2":{"147":1}}],["packing",{"0":{"64":1}}],["packages",{"0":{"85":1},"1":{"86":1},"2":{"4":2,"7":2,"103":4,"106":2,"146":1}}],["package",{"0":{"86":1,"150":1},"2":{"4":3,"5":1,"17":1,"35":1,"65":1,"86":1,"87":1,"139":1,"146":2,"147":1,"150":1,"155":1}}],["passed",{"2":{"106":2}}],["page",{"2":{"90":1}}],["patterfolds",{"2":{"155":1}}],["patterns",{"2":{"155":1}}],["pattern",{"2":{"106":1,"124":1}}],["patternfolds",{"2":{"21":1,"106":1,"155":3}}],["patch",{"2":{"139":2,"147":2}}],["patches",{"2":{"139":1,"147":1}}],["path",{"2":{"62":1,"106":6,"141":1,"144":1,"147":2,"155":1,"156":5,"157":1,"159":5}}],["parse",{"2":{"106":1}}],["paradigm",{"2":{"51":1,"104":1}}],["param=nothing",{"2":{"106":1,"156":1}}],["params",{"2":{"106":2,"131":1,"156":1}}],["parametric",{"0":{"115":1,"135":1},"2":{"106":4,"117":1,"121":1,"137":2,"156":3}}],["parameterization",{"2":{"106":1,"137":1}}],["parameter",{"2":{"5":3,"30":1,"33":4,"36":4,"62":2,"106":18,"119":2,"121":1,"126":1,"137":6,"151":1,"156":4,"157":1}}],["parameters=constraintcommons",{"2":{"5":1,"106":1,"156":1}}],["parameters",{"0":{"5":1,"30":1,"33":1,"36":1,"123":1},"1":{"6":1},"2":{"4":1,"5":19,"28":3,"30":12,"33":12,"36":8,"38":4,"106":44,"114":1,"121":5,"123":6,"134":1,"137":2,"142":8,"156":25}}],["param",{"0":{"116":1,"136":1},"2":{"30":2,"34":4,"37":4,"106":37,"116":4,"117":2,"119":5,"123":2,"136":6,"137":16,"156":20}}],["parts",{"2":{"60":1}}],["particularly",{"2":{"124":1}}],["particular",{"2":{"54":1}}],["partially",{"2":{"91":1,"106":1,"156":1}}],["partial",{"2":{"11":1,"28":1,"106":3,"156":2,"159":1}}],["part",{"2":{"28":1,"32":1,"35":1,"71":1,"90":1,"103":1,"106":2,"156":1}}],["pairs",{"2":{"31":2,"47":1,"106":1,"157":2}}],["pairvarsparameterdomain",{"2":{"30":1,"106":1,"123":1}}],["paired",{"2":{"5":1,"30":1,"33":1,"36":1,"106":2}}],["pair",{"2":{"1":16,"5":2,"28":1,"31":5,"33":2,"36":2,"40":2,"42":4,"63":9,"64":15,"106":64,"121":3,"124":1,"156":1,"157":15}}],["zeros",{"2":{"131":3}}],["zero",{"2":{"31":1,"64":11,"106":11}}],["z",{"2":{"2":4,"39":4,"63":4}}],["lst",{"2":{"159":5}}],["ls",{"2":{"157":1}}],["load",{"2":{"150":1}}],["loss",{"2":{"121":2,"131":2}}],["loggingextra",{"2":{"159":1}}],["logging",{"2":{"159":1}}],["log",{"2":{"115":4,"116":4,"117":1,"119":1,"120":1,"123":10,"124":1,"135":2,"136":6,"159":1}}],["logic",{"2":{"106":2,"157":1}}],["logical",{"2":{"44":1}}],["lower",{"2":{"106":1,"156":1}}],["lowest",{"2":{"18":1,"21":1,"24":1,"106":1,"156":1}}],["low",{"2":{"103":1}}],["local",{"0":{"105":1,"132":1},"2":{"105":1,"106":5,"121":1,"124":1,"147":1,"156":5,"157":1,"159":7}}],["localsearchsolverscblstodo",{"2":{"90":1}}],["localsearchsolvers",{"0":{"159":1},"2":{"90":2,"103":1,"121":1,"157":1,"159":141}}],["locations",{"2":{"31":5}}],["loop",{"2":{"159":8}}],["loops",{"2":{"50":2,"106":3}}],["looks",{"2":{"147":1,"149":1,"150":1,"152":1,"155":1}}],["look",{"2":{"90":1,"91":1}}],["l",{"2":{"31":1,"106":15,"135":4,"136":1,"137":3,"154":5,"157":2}}],["l=n²",{"2":{"31":1}}],["lt",{"2":{"7":2,"18":1,"19":4,"22":4,"24":1,"25":4,"31":1,"44":1,"45":1,"62":2,"66":1,"106":10,"123":1,"156":2,"157":2,"159":3}}],["launch",{"2":{"159":1}}],["lazy",{"2":{"106":2,"119":2,"133":2,"156":2}}],["lang",{"2":{"106":3,"156":1}}],["lang=",{"2":{"106":1,"156":1}}],["language=",{"2":{"106":1,"156":1}}],["languageparameterdomain",{"2":{"30":1,"106":1,"123":1}}],["language",{"2":{"5":2,"33":2,"36":2,"46":1,"62":17,"90":3,"106":25,"156":5,"157":4}}],["languages",{"0":{"7":1,"62":1},"1":{"8":1},"2":{"4":1,"7":1,"30":1,"44":1,"106":1}}],["large",{"2":{"91":1,"104":1,"105":1}}],["labels",{"2":{"62":2,"106":2,"157":2}}],["labeled",{"2":{"62":2,"106":2,"157":2}}],["last",{"2":{"62":1,"91":1,"106":1,"139":2,"147":5,"157":1,"159":1}}],["layered",{"2":{"106":1,"156":1}}],["layers",{"2":{"106":9,"137":1,"156":4}}],["layer",{"0":{"107":1,"109":1,"110":1,"112":1,"113":1,"117":1,"124":1,"133":1,"137":1},"1":{"108":1,"109":1,"111":1,"112":1,"114":1,"115":1,"116":1,"117":1,"134":1,"135":1,"136":1,"137":1},"2":{"4":1,"22":2,"25":2,"106":42,"107":1,"109":3,"110":1,"112":3,"113":1,"115":1,"117":3,"121":4,"124":28,"133":1,"137":3,"156":16}}],["liking",{"2":{"149":1}}],["like",{"2":{"84":1,"98":1,"141":1,"144":1,"147":2,"149":1,"150":1,"152":1,"155":1}}],["likely",{"2":{"4":1}}],["littledict",{"2":{"106":2,"124":2,"137":1}}],["lies",{"2":{"33":1,"36":1}}],["links",{"2":{"31":1,"140":1,"143":1,"159":1}}],["linear",{"2":{"84":1,"97":1,"106":3,"126":3,"156":3}}],["line",{"2":{"31":9,"90":1}}],["limit",{"2":{"28":6,"64":2,"106":10,"156":8,"157":1,"159":10}}],["listed",{"2":{"106":2,"157":3}}],["listing",{"2":{"48":1}}],["list=x",{"2":{"33":1,"38":1,"106":2,"156":1}}],["list",{"0":{"108":1,"111":1,"114":1,"134":1},"1":{"115":1,"116":1,"117":1,"135":1,"136":1,"137":1},"2":{"0":2,"1":13,"2":2,"3":16,"5":5,"24":1,"25":1,"33":4,"36":4,"39":2,"40":24,"42":6,"45":1,"46":1,"47":5,"50":5,"62":8,"64":5,"106":92,"114":1,"134":1,"147":2,"156":3,"157":1,"159":11}}],["left",{"2":{"106":18,"135":10,"137":3}}],["let",{"2":{"91":1}}],["leverage",{"2":{"58":1}}],["levels",{"2":{"101":1}}],["level",{"2":{"44":1,"46":1,"51":1,"62":3,"103":2,"106":3,"159":9}}],["lesser",{"2":{"106":11,"135":6,"137":3}}],["less",{"2":{"44":1,"56":1,"91":1,"157":1}}],["leadsolvers",{"2":{"159":3}}],["leadsolver",{"2":{"159":1}}],["least",{"2":{"39":6,"40":4,"71":1,"106":4,"121":2,"157":1}}],["learn",{"2":{"92":1,"106":7,"121":5,"124":1,"129":1,"156":6}}],["learned",{"2":{"32":1,"35":1,"106":1,"121":1,"156":1}}],["learning",{"0":{"122":1,"128":1},"1":{"123":1,"129":1,"130":1,"131":1,"132":1},"2":{"4":1,"11":1,"17":2,"32":1,"35":1,"58":1,"65":1,"103":1,"106":3,"121":1,"122":1,"123":1,"124":2,"156":2}}],["length",{"2":{"18":2,"19":1,"21":1,"22":6,"24":1,"25":6,"64":3,"66":2,"106":23,"111":2,"124":2,"131":4,"154":1,"156":6,"159":12}}],["lengths",{"2":{"1":3,"64":6,"106":9}}],["giving",{"2":{"147":1}}],["give",{"2":{"106":1,"156":1}}],["given",{"2":{"31":2,"34":1,"37":1,"40":7,"54":1,"56":2,"62":2,"106":18,"121":6,"124":2,"126":1,"127":1,"147":1,"156":7,"157":6}}],["gives",{"2":{"0":2,"2":1,"46":1}}],["gctimes",{"2":{"154":3,"155":1}}],["gctrial",{"2":{"142":2}}],["gc=d",{"2":{"152":1}}],["gc",{"2":{"145":1,"149":1,"152":1,"154":1}}],["gcsample",{"2":{"142":2}}],["gcc",{"2":{"40":3,"106":3}}],["game",{"2":{"91":1}}],["guides",{"0":{"87":1}}],["guide",{"2":{"77":1,"155":1}}],["gt",{"2":{"45":1,"103":1,"123":1,"147":6}}],["goes",{"2":{"141":1,"144":1,"147":2}}],["good",{"2":{"105":1,"148":1}}],["goal",{"2":{"31":1,"103":1}}],["golomb",{"2":{"31":2,"45":2,"47":1,"106":1,"157":1}}],["g",{"2":{"31":1,"97":1,"106":15,"135":8,"136":1,"137":3}}],["grads",{"2":{"131":2}}],["gradientdescentoptimizer",{"2":{"131":5}}],["gradient",{"0":{"131":1},"2":{"121":1,"131":1}}],["graphs",{"0":{"50":1}}],["graph",{"2":{"31":4,"62":1,"106":1,"157":1,"159":1}}],["greater",{"2":{"106":12,"135":7,"137":3}}],["grid",{"2":{"31":5,"91":3}}],["genetic",{"2":{"98":1,"106":4,"121":3,"156":4}}],["generation",{"0":{"109":1,"112":1,"117":1,"137":1},"2":{"106":2,"156":2}}],["generating",{"2":{"66":1}}],["generated",{"2":{"34":1,"37":1,"106":18,"135":8,"156":1}}],["generates",{"2":{"30":1,"106":5,"123":1,"124":2,"137":1,"156":1}}],["generate",{"2":{"30":10,"106":26,"109":1,"112":1,"117":1,"119":2,"121":2,"123":2,"124":4,"137":2,"156":7}}],["generalstate",{"2":{"159":2}}],["generally",{"2":{"31":1}}],["general",{"0":{"27":1},"2":{"52":1,"159":1}}],["generic",{"0":{"43":1},"1":{"44":1,"45":1,"46":1,"47":1,"48":1},"2":{"4":1,"43":1,"47":1,"54":2,"58":1,"103":1,"106":1,"157":1,"159":2}}],["getting",{"0":{"87":1,"88":1},"1":{"89":1,"90":1,"91":1},"2":{"87":1}}],["get",{"2":{"18":1,"31":2,"91":1,"106":5,"137":2,"139":2,"156":1,"157":6,"159":17}}],["global",{"0":{"73":1},"2":{"1":7,"3":6,"40":4,"42":2,"50":2,"64":6,"73":1,"91":1,"106":36,"121":2,"156":5,"157":15}}],["i+1",{"2":{"91":1}}],["iconic",{"2":{"91":1}}],["icnlocalsearchoptimizer",{"2":{"121":3}}],["icngeneticoptimizer",{"2":{"121":4}}],["icnoptimizer",{"2":{"121":3}}],["icnconfig",{"2":{"121":4}}],["icns",{"2":{"107":1,"110":1,"113":1,"121":1,"124":1,"133":1}}],["icn=icn",{"2":{"106":1,"156":1}}],["icn",{"0":{"124":1},"2":{"22":2,"25":2,"106":36,"109":1,"112":1,"117":1,"121":12,"124":7,"137":1,"156":23}}],["ignores",{"2":{"64":1,"106":1}}],["ignore",{"2":{"64":1,"106":1}}],["ignored",{"2":{"63":1,"64":2,"106":2}}],["illustrate",{"2":{"45":1}}],["io",{"2":{"31":2}}],["improving",{"2":{"159":1}}],["improve",{"2":{"95":1,"104":1,"105":1}}],["improvement",{"0":{"95":1},"2":{"159":1}}],["impossible",{"2":{"105":1}}],["importance",{"2":{"92":1,"102":1}}],["import",{"2":{"68":1,"69":1}}],["impact",{"2":{"74":1}}],["implemented",{"2":{"69":2,"70":1,"103":1}}],["implementing",{"0":{"66":1}}],["implements",{"2":{"58":1}}],["implement",{"2":{"7":1,"18":1,"30":1,"66":1,"106":2,"123":1,"156":1}}],["implementations",{"2":{"66":1}}],["implementation",{"2":{"7":2,"106":2,"133":1,"156":2}}],["immutable",{"2":{"24":1,"106":1,"156":1}}],["i`",{"2":{"19":1,"22":1,"25":1,"106":1}}],["i",{"2":{"19":10,"21":7,"22":8,"24":3,"25":8,"30":2,"50":2,"64":4,"91":4,"106":64,"119":2,"120":1,"123":2,"124":2,"131":2,"135":17,"154":8,"155":4,"156":3,"157":2,"159":1}}],["iterate",{"2":{"159":1}}],["iterators",{"2":{"131":1}}],["iteration",{"2":{"106":2,"156":2,"159":8}}],["iterations",{"2":{"28":1,"106":1,"156":1,"159":3}}],["iter=100",{"2":{"106":2,"156":2}}],["iter",{"2":{"106":8,"121":3,"156":8,"159":1}}],["itself",{"2":{"106":1,"156":1}}],["its",{"2":{"21":1,"24":1,"31":1,"60":1,"67":1,"82":1,"86":1,"89":1,"90":2,"91":1,"92":1,"99":1,"106":5,"119":2,"147":1,"156":3,"159":2}}],["ith",{"2":{"19":2,"22":1,"25":1,"30":1,"106":1,"123":1}}],["itvls",{"2":{"21":3,"106":3}}],["itv",{"2":{"18":2,"19":8,"21":2,"22":7,"24":2,"25":7,"30":3,"106":9,"123":3,"155":2,"156":2}}],["it",{"2":{"4":2,"17":1,"18":1,"30":8,"32":1,"33":2,"35":1,"38":2,"40":2,"44":1,"45":1,"46":1,"47":2,"50":2,"53":1,"54":1,"55":1,"56":1,"58":1,"60":1,"62":1,"64":6,"66":1,"69":2,"70":1,"90":1,"91":4,"103":2,"105":2,"106":65,"114":1,"121":1,"124":1,"127":1,"134":1,"137":1,"139":1,"146":1,"147":1,"148":1,"149":2,"150":1,"152":1,"155":2,"156":6,"157":7,"159":6}}],["isa",{"2":{"131":1}}],["issue",{"2":{"123":1,"133":1}}],["isempty",{"2":{"9":1,"19":3,"106":4,"156":1}}],["is",{"0":{"82":1},"2":{"3":10,"4":1,"5":3,"9":2,"17":1,"18":2,"19":5,"21":3,"22":4,"25":4,"28":7,"30":9,"31":9,"32":1,"33":6,"34":6,"35":1,"36":1,"37":6,"38":5,"40":15,"42":3,"44":3,"45":1,"46":3,"47":2,"50":5,"51":1,"53":1,"54":1,"55":1,"56":5,"60":1,"62":9,"64":10,"66":3,"68":1,"69":2,"90":1,"91":6,"103":5,"104":5,"105":4,"106":161,"109":1,"112":1,"117":2,"119":1,"121":5,"123":2,"124":7,"127":4,"129":1,"135":16,"137":4,"146":1,"147":2,"148":1,"150":1,"153":2,"155":3,"156":32,"157":32,"159":17}}],["identity",{"2":{"106":14,"115":4,"135":6,"137":4}}],["identified",{"2":{"106":1}}],["ids",{"2":{"30":1,"106":1}}],["idparameterdomain",{"2":{"30":1,"106":1,"123":1}}],["id=nothing",{"2":{"3":4,"106":4}}],["id=3",{"2":{"2":1,"3":1,"106":1}}],["id=1",{"2":{"2":3,"3":3,"106":3}}],["id",{"2":{"2":3,"5":1,"31":2,"33":1,"36":1,"106":1,"157":2,"159":13}}],["iff",{"2":{"106":2,"117":1,"137":1,"156":2}}],["if",{"2":{"1":3,"3":4,"7":3,"18":1,"19":10,"22":9,"25":9,"30":2,"34":1,"37":1,"40":4,"42":1,"50":1,"54":1,"56":1,"62":2,"64":2,"66":1,"90":1,"91":1,"106":63,"121":1,"123":2,"124":4,"127":4,"131":4,"156":10,"157":9,"159":14}}],["initpkgs",{"2":{"150":2}}],["init",{"2":{"131":1}}],["initialization",{"0":{"150":1}}],["initializes",{"2":{"106":1}}],["initial",{"2":{"105":1}}],["inner",{"2":{"121":1,"159":1}}],["invalid",{"2":{"106":3,"156":1,"157":1}}],["involves",{"2":{"53":1,"103":1}}],["involving",{"2":{"52":1,"106":1,"137":1}}],["inf",{"2":{"159":1}}],["infrastructure",{"2":{"65":1}}],["information",{"2":{"32":2,"35":2,"90":1,"106":1,"121":1,"156":1,"157":1,"159":1}}],["info",{"2":{"0":12,"2":23,"39":25,"46":1,"63":15,"157":2,"159":6}}],["inside",{"2":{"148":1,"151":1,"152":1}}],["inspired",{"2":{"33":1,"36":1}}],["instructions",{"2":{"87":1}}],["installed",{"2":{"90":1,"139":1}}],["install",{"2":{"90":1}}],["installing",{"2":{"87":1}}],["installation",{"0":{"87":1}}],["instantiated",{"2":{"54":1}}],["instantiation",{"0":{"54":1},"2":{"42":9,"52":1,"54":1,"56":2,"106":9,"157":2}}],["instances",{"2":{"90":1}}],["instance",{"2":{"31":4,"33":1,"36":1,"62":2,"106":3,"127":1,"156":1,"157":13,"159":2}}],["instead",{"2":{"5":1,"33":1,"36":1,"106":4,"119":2,"127":1,"156":3,"157":2,"159":1}}],["insertion",{"2":{"15":1,"106":1,"156":1,"157":1}}],["insert",{"2":{"15":1,"106":1,"156":1,"159":3}}],["indice",{"2":{"159":1}}],["indices",{"2":{"159":6}}],["indicate",{"2":{"159":2}}],["indicates",{"2":{"31":1,"106":2,"156":2}}],["indicating",{"2":{"28":1,"106":1,"156":1}}],["individuals",{"2":{"121":1}}],["industry",{"2":{"103":1}}],["ind",{"2":{"15":1,"106":1,"156":1,"159":2}}],["independently",{"2":{"159":1}}],["independent",{"2":{"5":1,"33":1,"36":1,"106":1,"159":1}}],["indexed",{"2":{"3":2,"106":2}}],["index",{"2":{"3":3,"5":1,"33":1,"36":1,"50":2,"106":6,"157":7,"159":1}}],["inc",{"2":{"159":6}}],["increment",{"2":{"159":3}}],["incremental",{"2":{"157":4}}],["increase",{"2":{"15":1,"106":1,"156":1}}],["increasing",{"2":{"0":1,"1":10,"106":10}}],["inclusive",{"2":{"106":3,"124":3}}],["included",{"2":{"106":1,"157":1}}],["include",{"2":{"103":1,"157":1}}],["includes",{"2":{"58":1,"64":1,"106":3,"117":1,"137":1,"156":2}}],["inception",{"2":{"67":1}}],["incsert",{"2":{"15":2,"106":1,"156":1}}],["inputs",{"2":{"106":1}}],["input",{"2":{"5":3,"31":1,"33":3,"36":3,"106":6,"147":3,"148":1}}],["introductory",{"2":{"92":1}}],["introduction",{"0":{"51":1,"125":1},"1":{"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"126":1},"2":{"125":1}}],["introduce",{"2":{"83":1,"86":1,"98":1,"159":1}}],["into",{"0":{"96":1,"154":1},"1":{"97":1,"98":1,"99":1},"2":{"18":1,"31":1,"43":1,"73":1,"106":6,"108":1,"119":1,"121":1,"124":1,"127":1,"153":1,"154":1,"156":3,"159":1}}],["intend",{"2":{"159":1}}],["intended",{"2":{"147":1}}],["intensional",{"2":{"47":1,"106":1}}],["intension",{"2":{"45":1,"46":3,"47":2,"106":2}}],["intentionally",{"2":{"44":1}}],["intentional",{"2":{"44":1}}],["intention",{"0":{"44":1,"45":1},"1":{"45":1,"46":1,"47":1},"2":{"0":3,"2":4,"39":4,"43":1,"44":2,"45":1,"46":1,"63":2,"157":17}}],["interpretable",{"2":{"106":1,"124":1,"156":1}}],["interpreted",{"2":{"62":2,"69":1,"106":2,"157":1}}],["interacting",{"0":{"32":1,"35":1},"1":{"33":1,"34":1,"36":1,"37":1,"38":1},"2":{"124":1}}],["interdiction",{"2":{"31":2,"159":2}}],["intersect",{"2":{"21":2,"24":1,"106":2,"156":1}}],["intersections",{"2":{"21":2,"24":1,"106":2,"156":1}}],["intersection",{"2":{"5":1,"106":1,"156":1}}],["interval",{"2":{"18":1,"19":2,"21":6,"22":2,"24":3,"25":2,"30":1,"46":1,"71":3,"106":8,"123":1,"155":1,"156":1}}],["intervalsfold",{"2":{"155":1}}],["intervals",{"2":{"18":2,"19":5,"21":5,"22":4,"24":2,"25":4,"27":2,"30":2,"57":1,"71":2,"106":11,"123":2,"155":2,"156":2}}],["internally",{"2":{"106":1,"119":1}}],["internals",{"2":{"28":1,"51":1,"106":1}}],["internal",{"0":{"60":1},"2":{"7":1,"18":1,"31":2,"60":1,"106":4,"124":1,"156":1,"159":4}}],["interfaced",{"2":{"140":1,"143":1}}],["interfaces",{"2":{"17":1,"90":1,"146":1}}],["interface",{"0":{"66":1,"129":1},"2":{"7":2,"18":1,"34":1,"37":1,"44":1,"46":1,"58":1,"66":1,"90":2,"103":3,"106":4,"129":1,"146":1,"148":1,"156":1,"157":4}}],["interoperability",{"2":{"4":1}}],["integers",{"2":{"69":1}}],["integer",{"2":{"5":1,"28":3,"31":3,"33":1,"36":1,"40":1,"97":1,"103":1,"106":5,"147":1,"156":3,"157":5}}],["integration",{"0":{"0":1,"2":1,"39":1,"41":1,"49":1,"61":1,"63":1},"1":{"1":1,"3":1,"40":1,"42":1,"50":1,"62":1,"64":1}}],["int",{"2":{"0":5,"1":8,"2":8,"3":1,"19":2,"22":2,"25":2,"28":1,"31":11,"33":1,"38":1,"39":12,"40":9,"46":1,"47":1,"50":1,"62":2,"63":6,"69":1,"91":1,"106":35,"119":8,"131":2,"156":4,"157":9,"159":30}}],["in",{"0":{"0":1,"2":1,"32":1,"35":1,"39":1,"41":1,"45":1,"49":1,"61":1,"63":1},"1":{"1":1,"3":1,"33":1,"34":1,"36":1,"37":1,"38":1,"40":1,"42":1,"50":1,"62":1,"64":1},"2":{"0":8,"1":6,"2":12,"3":14,"4":1,"5":4,"7":2,"9":1,"13":1,"15":1,"17":1,"18":4,"19":6,"21":3,"22":8,"24":5,"25":9,"30":1,"31":9,"32":1,"33":11,"34":1,"35":1,"36":7,"37":1,"38":4,"39":17,"40":24,"42":4,"43":1,"44":2,"45":1,"46":3,"47":1,"48":1,"50":6,"52":3,"54":1,"55":1,"57":1,"63":8,"64":18,"65":2,"66":2,"67":1,"68":4,"69":2,"71":1,"82":1,"90":1,"91":7,"92":1,"99":1,"102":1,"103":7,"105":3,"106":133,"115":2,"119":2,"120":1,"121":3,"123":1,"124":7,"131":2,"133":1,"135":1,"137":1,"139":1,"141":2,"144":2,"147":1,"148":1,"150":1,"151":1,"153":1,"154":5,"155":3,"156":28,"157":39,"159":16}}],["vov",{"2":{"157":5}}],["vf",{"2":{"155":5}}],["v",{"2":{"106":3,"119":3,"139":7,"155":5,"156":2,"157":12,"159":3}}],["vs",{"0":{"104":1},"2":{"106":3}}],["v4",{"2":{"68":2}}],["v3",{"2":{"39":3,"68":2}}],["v2",{"2":{"39":3,"68":2,"69":1}}],["v1",{"2":{"39":3,"68":2,"69":3}}],["vi",{"2":{"157":3}}],["via",{"2":{"146":1,"148":1,"149":1,"153":1}}],["viable",{"2":{"106":6,"124":5,"156":1}}],["visuals",{"2":{"155":4}}],["visualization",{"2":{"146":1,"147":1}}],["visual",{"2":{"90":1}}],["vision",{"2":{"80":1}}],["violates",{"2":{"56":1}}],["violated",{"2":{"34":1,"37":1,"56":2}}],["violation",{"0":{"56":1},"2":{"52":1}}],["vice",{"2":{"3":2,"106":3,"137":1}}],["vec",{"2":{"91":1}}],["vectorofvariables",{"2":{"157":3}}],["vectors",{"2":{"28":1,"106":4,"111":2,"135":1,"155":1,"156":1}}],["vector",{"2":{"1":6,"5":5,"7":1,"18":1,"19":4,"21":4,"22":3,"24":1,"25":3,"30":1,"33":3,"36":3,"40":9,"47":1,"62":2,"106":62,"108":1,"111":2,"119":2,"123":1,"127":2,"131":5,"135":8,"137":1,"139":2,"147":2,"155":1,"156":10,"157":17,"159":1}}],["verbose",{"2":{"159":4}}],["verbosity",{"2":{"157":1,"159":1}}],["very",{"2":{"104":1}}],["verifies",{"2":{"62":2,"106":2,"157":1}}],["versionnumber",{"2":{"139":1,"147":1}}],["version",{"2":{"90":1,"106":2,"137":1,"139":3,"147":5,"157":1}}],["versions",{"2":{"34":1,"37":1,"139":3,"147":4,"155":1}}],["versatile",{"0":{"58":1},"2":{"106":2,"157":1}}],["versa",{"2":{"3":2,"106":3,"137":1}}],["var",{"2":{"106":20,"159":12}}],["variety",{"2":{"105":1}}],["varies",{"2":{"52":1}}],["various",{"0":{"130":1},"1":{"131":1,"132":1},"2":{"13":1,"18":1,"32":1,"35":1,"57":1,"74":1,"90":1,"101":1,"105":1,"106":2,"137":1,"146":2,"156":1}}],["variant",{"2":{"64":2,"106":2}}],["variants",{"2":{"1":3,"3":4,"40":4,"42":1,"47":1,"50":1,"62":2,"64":2,"91":1,"106":19}}],["variableconstrainedoncreation",{"2":{"157":1}}],["variableinfo",{"2":{"157":2}}],["variables",{"0":{"17":1,"57":1,"65":1},"1":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1},"2":{"3":8,"17":1,"30":1,"40":8,"42":2,"47":1,"48":1,"50":2,"52":3,"53":3,"54":3,"55":3,"57":1,"62":1,"65":2,"71":1,"83":1,"91":3,"103":1,"106":32,"120":1,"123":1,"126":2,"156":4,"157":9,"159":26}}],["variable",{"2":{"0":5,"2":8,"3":6,"5":2,"19":3,"22":3,"25":3,"33":2,"36":2,"39":12,"44":2,"46":1,"48":2,"56":1,"63":6,"66":1,"68":8,"69":4,"91":2,"106":11,"156":2,"157":9,"159":40}}],["vars",{"2":{"5":2,"33":2,"36":2,"42":2,"63":9,"64":15,"106":51,"115":3,"157":20,"159":24}}],["vars=dictionary",{"2":{"159":1}}],["vars=ones",{"2":{"40":2,"106":2}}],["vars=nothing",{"2":{"1":10,"106":10}}],["vars=",{"2":{"1":4,"42":2,"106":11}}],["vars=zeros",{"2":{"1":2,"106":2}}],["valparameterdomain",{"2":{"30":1,"106":1,"123":1}}],["validity",{"2":{"47":1,"106":1,"157":1}}],["valid",{"2":{"18":1,"62":1,"104":2,"106":10,"126":2,"127":3,"156":5,"157":7}}],["val=3",{"2":{"39":1,"40":1,"106":1}}],["val=2",{"2":{"2":1,"3":1,"39":2,"40":3,"106":4}}],["val=15",{"2":{"39":2,"40":2,"106":2}}],["val=1",{"2":{"1":2,"2":1,"3":1,"40":1,"106":4}}],["val=nothing",{"2":{"1":2,"3":2,"106":4}}],["val",{"0":{"116":1,"136":1},"2":{"1":3,"2":8,"3":8,"5":1,"15":2,"18":1,"31":4,"33":1,"36":1,"39":24,"40":21,"50":4,"63":7,"64":6,"66":1,"106":124,"115":3,"116":3,"136":2,"137":8,"149":2,"150":2,"151":2,"152":2,"153":2,"155":2,"156":3,"157":16,"159":8}}],["value2",{"2":{"141":1,"144":1,"147":1}}],["value1",{"2":{"141":1,"144":1,"147":1}}],["valued",{"2":{"62":1,"106":1,"157":1}}],["values",{"2":{"1":13,"3":4,"5":1,"18":2,"21":2,"24":4,"30":3,"31":4,"33":1,"34":2,"36":1,"37":2,"40":24,"42":6,"48":2,"50":3,"52":1,"55":1,"62":2,"68":1,"91":2,"106":67,"137":5,"142":1,"145":1,"147":1,"156":5,"157":12,"159":11}}],["value",{"2":{"0":5,"1":1,"2":8,"3":13,"5":1,"19":8,"22":7,"24":2,"25":10,"30":2,"31":1,"33":1,"36":1,"39":12,"40":5,"46":1,"50":4,"62":3,"63":6,"91":3,"106":59,"117":2,"123":1,"124":1,"127":1,"137":8,"147":1,"156":13,"157":15,"159":20}}],["valsparameterdomain",{"2":{"30":1,"106":1,"123":1}}],["vals=nothing",{"2":{"33":1,"38":1,"106":2,"156":1}}],["vals=",{"2":{"1":2,"39":7,"40":13,"106":15}}],["vals",{"2":{"0":1,"1":2,"5":2,"33":2,"36":2,"39":19,"40":18,"106":24,"135":2,"137":2,"157":7}}],["mts",{"2":{"159":7}}],["mkpath",{"2":{"155":1}}],["myperfextension",{"2":{"149":1,"150":1,"151":1,"152":1,"153":1}}],["mypackagename",{"2":{"147":1}}],["missing",{"2":{"115":8,"116":8,"117":2,"119":2,"120":2,"123":20,"124":2,"135":4,"136":12}}],["mission",{"2":{"92":1}}],["mixed",{"2":{"103":1}}],["might",{"2":{"91":2}}],["minor",{"2":{"147":2}}],["min",{"2":{"131":2,"157":1}}],["minkowski",{"2":{"106":1,"120":1,"156":1}}],["minus",{"2":{"106":28,"115":2,"116":2,"135":2,"136":2,"137":4}}],["mincut",{"2":{"31":1,"159":2}}],["minimization",{"2":{"157":1}}],["minimizing",{"2":{"31":1}}],["minimal",{"2":{"7":2,"69":1,"106":4,"119":1,"120":1,"156":3,"159":3}}],["minimum",{"2":{"2":6,"3":11,"13":1,"31":1,"106":12,"131":2,"156":1,"157":4}}],["mutable",{"2":{"159":2}}],["mutually",{"2":{"106":4,"109":1,"112":1,"117":1,"121":1,"124":1,"156":3}}],["much",{"2":{"34":1,"37":1,"105":1}}],["must",{"2":{"18":1,"24":1,"31":2,"40":2,"44":1,"48":2,"53":2,"62":2,"66":2,"104":1,"106":8,"156":2,"157":7}}],["multithreading",{"2":{"159":1}}],["multithreaded",{"2":{"159":1}}],["multi",{"2":{"62":1,"106":1,"157":1}}],["multiplied",{"2":{"31":1}}],["multiplication",{"2":{"9":1,"106":1,"156":1}}],["multimedia",{"2":{"31":4}}],["multivalued",{"2":{"7":3,"106":2,"156":1}}],["map",{"2":{"106":1,"119":1,"131":5,"159":4}}],["mapping",{"2":{"106":1,"137":1}}],["makie",{"2":{"146":1,"147":1}}],["making",{"2":{"70":1,"105":1}}],["makes",{"2":{"56":1,"103":1}}],["make",{"2":{"11":1,"103":1,"104":1,"106":8,"117":1,"121":3,"131":2,"133":2,"137":3,"155":1,"159":1}}],["may",{"2":{"70":1,"105":1}}],["major",{"2":{"34":1,"37":1,"123":1,"139":2,"147":2}}],["macro",{"2":{"33":2,"38":2,"106":6,"133":1,"146":1,"149":1,"155":1,"156":2,"157":1}}],["machinery",{"2":{"32":1,"35":1}}],["mainsolver",{"2":{"157":1,"159":7}}],["mainly",{"2":{"65":1,"70":1,"106":1}}],["main",{"0":{"152":1},"2":{"33":1,"36":1,"43":1,"106":1,"146":1,"149":1,"150":1,"156":1,"157":1,"159":5}}],["manages",{"2":{"159":1}}],["manage",{"2":{"159":1}}],["managed",{"2":{"159":1}}],["manager",{"2":{"90":1}}],["manipulating",{"2":{"124":1}}],["manipulation",{"2":{"32":1,"35":1,"106":1,"137":1}}],["manhattan",{"2":{"106":1,"120":1,"156":1}}],["manufacturing",{"2":{"104":1}}],["many",{"2":{"11":1,"106":1,"147":1,"156":1}}],["matter",{"2":{"147":1,"157":1}}],["matters",{"2":{"122":1}}],["match",{"2":{"106":3,"157":2}}],["matches",{"2":{"106":3,"157":2}}],["maths",{"2":{"106":1,"156":1}}],["mathematical",{"0":{"99":1},"2":{"51":1,"52":1,"53":1,"99":1,"104":2,"105":1}}],["mathoptinterface",{"2":{"31":2,"51":1,"68":1,"69":1,"157":17}}],["matrices",{"0":{"34":1,"37":1,"128":1},"1":{"129":1,"130":1,"131":1,"132":1},"2":{"34":1,"37":1,"106":1,"121":1,"129":1}}],["matrix",{"2":{"31":4,"106":2,"121":2,"126":2,"156":1}}],["magic",{"2":{"31":2}}],["marks",{"2":{"31":1,"45":2,"47":2,"106":2,"157":2}}],["max",{"2":{"28":4,"106":8,"119":2,"124":2,"156":4,"157":1,"159":10}}],["maximum",{"2":{"2":5,"3":11,"13":1,"18":1,"21":1,"24":1,"28":2,"106":16,"156":5,"157":4,"159":6}}],["mmds",{"2":{"7":1}}],["m",{"2":{"5":2,"31":6,"68":5,"69":3,"91":5,"106":2,"156":2,"159":139}}],["mddconstraint",{"2":{"157":2}}],["mdd",{"2":{"5":1,"7":3,"30":1,"33":1,"36":1,"62":12,"106":16,"123":1,"156":2,"157":2}}],["mdash",{"2":{"1":3,"3":4,"5":2,"7":6,"9":3,"11":1,"13":1,"15":1,"18":6,"19":5,"21":8,"22":4,"24":10,"25":5,"27":2,"28":3,"30":13,"31":18,"33":5,"34":2,"36":1,"37":2,"38":4,"40":4,"42":1,"47":1,"50":1,"62":2,"64":2,"66":1,"106":187,"108":2,"109":1,"111":2,"112":1,"115":1,"117":1,"119":6,"120":3,"121":28,"123":3,"124":11,"126":2,"127":3,"129":2,"135":9,"137":2,"139":4,"156":74,"157":72,"159":144}}],["memory",{"2":{"142":2}}],["membership",{"2":{"66":1}}],["measurement",{"2":{"159":1}}],["measure",{"2":{"106":2,"156":2}}],["meaningful",{"2":{"102":1}}],["meaning",{"2":{"40":2,"106":2,"124":1}}],["means",{"2":{"3":2,"39":1,"106":5}}],["metrics",{"0":{"120":1},"2":{"146":1,"155":1}}],["metric=hamming",{"2":{"106":1,"121":1,"156":1}}],["metric",{"2":{"106":8,"121":6,"156":8}}],["metasolver",{"2":{"159":4}}],["metastrategist",{"0":{"138":1},"2":{"138":1}}],["metadata",{"2":{"103":1}}],["metaheuristics",{"0":{"98":1},"2":{"84":1}}],["method",{"2":{"5":1,"7":1,"18":1,"19":3,"21":1,"22":3,"24":1,"25":3,"31":16,"34":1,"37":1,"106":171,"121":26,"124":1,"129":2,"135":8,"139":3,"149":1,"150":2,"151":2,"152":1,"153":2,"154":1,"156":55,"157":24,"159":128}}],["methods",{"0":{"75":1},"1":{"76":1,"77":1},"2":{"4":2,"7":1,"18":1,"30":1,"33":1,"38":1,"52":1,"66":2,"84":1,"106":4,"119":2,"123":1,"156":3,"159":3}}],["meets",{"2":{"52":1}}],["merge",{"2":{"21":2,"24":2,"106":2,"156":2,"159":1}}],["move",{"2":{"159":3}}],["moved",{"2":{"123":1}}],["more",{"2":{"59":1,"69":1,"106":2,"147":1}}],["mode",{"2":{"157":1}}],["modeled",{"2":{"159":1}}],["modeler",{"2":{"31":13}}],["modellike",{"2":{"157":2}}],["models",{"0":{"59":1,"93":1},"1":{"94":1,"95":1},"2":{"51":1,"59":3,"65":1,"66":1,"91":1,"94":1,"95":1,"103":2,"104":2,"106":1,"137":1}}],["modeling",{"0":{"51":1,"94":1},"1":{"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1},"2":{"44":1,"46":1,"59":1,"90":2,"91":1,"103":1}}],["modelize",{"2":{"31":1}}],["model",{"0":{"91":1},"2":{"0":19,"2":28,"31":14,"39":36,"46":5,"62":1,"63":18,"68":1,"69":1,"91":3,"106":3,"157":45,"159":75}}],["module",{"0":{"19":1,"22":1,"25":1},"2":{"106":1}}],["mostly",{"2":{"154":1}}],["most",{"2":{"17":1,"39":6,"40":4,"58":1,"60":1,"91":1,"106":5,"127":1,"156":1,"157":1}}],["moisupports",{"2":{"157":1}}],["moisum",{"2":{"157":1}}],["moiregular",{"2":{"157":1}}],["moiordered",{"2":{"157":1}}],["moinooverlap",{"2":{"157":1}}],["moinvalues",{"2":{"157":1}}],["moimultivalueddecisiondiagram",{"2":{"157":1}}],["moiminimum",{"2":{"157":1}}],["moimaximum",{"2":{"157":1}}],["moiintention",{"2":{"157":17}}],["moiinstantiation",{"2":{"157":1}}],["moiextension",{"2":{"157":1}}],["moierror",{"2":{"157":5}}],["moielement",{"2":{"157":1}}],["moidistdifferent",{"2":{"157":1}}],["moicumulative",{"2":{"157":1}}],["moiconflicts",{"2":{"157":1}}],["moiallequal",{"2":{"157":1}}],["moialldifferent",{"2":{"157":1}}],["moi",{"2":{"0":3,"2":4,"17":1,"31":1,"39":4,"46":1,"51":1,"63":2,"65":1,"68":10,"69":8,"71":3,"157":38}}],["nbits",{"2":{"106":2,"124":1,"156":1}}],["nbsp",{"2":{"1":3,"3":4,"5":2,"7":6,"9":3,"11":1,"13":1,"15":1,"18":6,"19":5,"21":8,"22":4,"24":10,"25":5,"27":2,"28":3,"30":13,"31":18,"33":5,"34":2,"36":1,"37":2,"38":4,"40":4,"42":1,"47":1,"50":1,"62":2,"64":2,"66":1,"106":187,"108":2,"109":1,"111":2,"112":1,"115":1,"117":1,"119":6,"120":3,"121":28,"123":3,"124":11,"126":2,"127":3,"129":2,"135":9,"137":2,"139":4,"156":74,"157":72,"159":144}}],["nvars",{"2":{"106":12,"156":4}}],["nvalues",{"2":{"39":9,"40":8,"106":8,"157":1}}],["nine",{"2":{"91":1}}],["n5",{"2":{"62":2,"106":2}}],["n4",{"2":{"62":3,"106":3}}],["n3",{"2":{"62":2,"106":2}}],["n2",{"2":{"62":2,"106":2}}],["n1",{"2":{"62":2,"106":2}}],["n²",{"2":{"31":1}}],["n×n",{"2":{"31":1}}],["n",{"2":{"31":16,"106":7,"119":4,"126":3,"131":9,"156":2}}],["numerous",{"2":{"71":1}}],["numerical",{"2":{"68":1,"70":1}}],["numeric",{"2":{"24":1,"106":1}}],["numbers",{"2":{"106":2,"147":1}}],["number",{"2":{"18":1,"22":3,"24":2,"25":3,"28":2,"31":2,"40":11,"66":1,"106":52,"108":1,"120":1,"121":2,"124":5,"127":3,"135":8,"147":1,"156":18,"157":23,"159":12}}],["normalized",{"2":{"106":1,"156":1}}],["normal",{"2":{"106":1,"137":1}}],["norm",{"2":{"106":2}}],["nooverlap",{"2":{"63":4,"157":2}}],["now",{"2":{"31":1,"91":1}}],["node",{"2":{"31":2,"62":3,"106":3,"157":3}}],["no",{"2":{"31":4,"47":1,"63":6,"64":20,"106":24,"119":1,"121":1,"124":1,"137":1,"157":1}}],["nonnegative",{"2":{"157":1}}],["none",{"2":{"106":4,"127":1,"131":2,"137":3,"142":1,"145":1,"149":1,"156":1,"157":1}}],["nonlinear",{"2":{"97":1}}],["non",{"0":{"115":1,"135":1},"2":{"24":1,"28":2,"69":1,"70":1,"106":4,"121":4,"137":1,"156":3,"159":1}}],["not",{"2":{"21":1,"31":2,"32":1,"34":1,"35":1,"37":1,"40":1,"44":1,"46":1,"53":1,"64":6,"69":1,"90":1,"91":3,"106":18,"127":1,"137":1,"156":2,"157":4,"159":1}}],["nothing",{"2":{"1":1,"9":5,"34":2,"37":2,"40":2,"106":17,"119":1,"121":2,"131":1,"145":2,"149":2,"151":1,"155":1,"156":11,"157":15}}],["notebooks",{"2":{"90":1,"140":1,"143":1}}],["note",{"2":{"0":2,"2":1,"5":1,"32":1,"34":1,"37":1,"44":1,"46":2,"90":1,"91":1,"157":1}}],["neighbours",{"2":{"159":2}}],["neighbourhood",{"2":{"159":2}}],["neither",{"2":{"106":1}}],["never",{"2":{"159":1}}],["negation",{"2":{"106":1}}],["necessarily",{"2":{"90":1}}],["necessary",{"2":{"65":1,"159":3}}],["next",{"2":{"50":2,"106":2,"139":2,"147":3}}],["network",{"2":{"106":1,"124":1,"156":1}}],["networks",{"2":{"104":1}}],["net",{"2":{"31":1}}],["new",{"2":{"21":3,"33":3,"38":3,"59":1,"103":1,"106":8,"147":1,"156":3,"157":1,"159":2}}],["needs",{"2":{"106":2,"137":1,"156":1}}],["need",{"2":{"13":1,"91":2,"148":1}}],["natural",{"2":{"44":1,"46":1}}],["nature",{"2":{"5":1,"21":1,"24":1,"33":2,"36":2,"106":2,"156":1}}],["navigate",{"2":{"33":1,"38":1}}],["names",{"2":{"106":1,"137":1}}],["name=",{"2":{"106":1,"156":1}}],["name",{"2":{"5":1,"33":2,"34":1,"36":1,"37":1,"38":1,"106":9,"147":4,"156":8,"157":2,"159":8}}],["86",{"2":{"18":1,"21":1,"24":1,"106":1,"156":1}}],["89",{"2":{"18":2,"21":2,"24":2,"68":6,"106":2,"156":2,"159":1}}],["8",{"2":{"0":1,"2":2,"31":3,"39":6,"40":5,"64":1,"106":6}}],["63",{"2":{"71":1}}],["6+5=11",{"2":{"56":1}}],["69",{"2":{"18":1,"21":1,"24":1,"68":3,"106":1,"156":1}}],["6",{"2":{"0":1,"3":1,"31":2,"39":1,"42":1,"63":3,"64":3,"106":5,"139":1,"148":1}}],["≥",{"2":{"0":1,"39":3,"131":1}}],["\\tzero",{"2":{"63":1}}],["\\theights",{"2":{"63":1}}],["\\tlengths",{"2":{"63":2}}],["\\tlist",{"2":{"0":1,"2":2,"39":2}}],["\\torigins",{"2":{"63":2}}],["\\toperator",{"2":{"0":1}}],["\\t\\toccurs",{"2":{"39":1}}],["\\t\\texcept",{"2":{"39":1}}],["\\t\\tvalues",{"2":{"39":2}}],["\\t\\tcondition",{"2":{"2":1,"39":2}}],["\\tcondition",{"2":{"2":1,"63":1}}],["\\tindex",{"2":{"2":1}}],["56",{"2":{"159":1}}],["53",{"2":{"18":1,"21":1,"24":1,"68":3,"106":1,"156":1}}],["5",{"2":{"0":3,"1":1,"2":12,"3":11,"18":1,"21":1,"24":1,"31":2,"39":32,"40":29,"42":3,"63":22,"64":13,"69":3,"103":1,"106":75,"131":1,"139":1,"141":1,"144":1,"147":1,"156":1,"157":1,"159":1}}],["o",{"2":{"121":1,"159":16}}],["output",{"2":{"106":2,"121":1,"151":1,"152":1,"153":1,"154":1,"156":2}}],["outputs",{"2":{"106":1,"139":3,"156":1}}],["out",{"2":{"91":1}}],["our",{"2":{"11":1,"33":1,"36":1,"54":1,"91":2}}],["own",{"2":{"90":1,"91":1,"159":1}}],["odd",{"2":{"70":1}}],["occurrences",{"2":{"40":7,"106":7,"157":4}}],["occurs",{"2":{"39":1,"40":2,"106":2}}],["others",{"2":{"103":1}}],["other",{"0":{"84":1},"2":{"31":1,"51":1,"84":1,"90":1,"91":4,"103":1,"104":1,"105":2,"141":1,"144":1,"147":1,"154":1,"159":2}}],["otherwise",{"2":{"1":3,"3":4,"7":1,"19":1,"22":1,"25":1,"30":1,"34":1,"37":1,"40":4,"42":1,"50":1,"56":1,"64":2,"106":28,"123":1,"156":3,"157":4,"159":1}}],["objs=dictionary",{"2":{"159":1}}],["objs",{"2":{"159":7}}],["objectives",{"2":{"159":10}}],["objective",{"2":{"91":1,"157":4,"159":24}}],["object",{"2":{"28":3,"106":3,"156":3}}],["observable",{"2":{"31":1}}],["overloading",{"2":{"153":1}}],["overloaded",{"2":{"149":1,"150":1,"151":1,"152":1,"153":1,"154":2}}],["overlap",{"2":{"63":6,"64":21,"106":21,"157":1}}],["overhead",{"2":{"142":2}}],["oversampling",{"2":{"121":1,"131":6}}],["oversample",{"2":{"11":2,"106":2,"131":1,"156":2}}],["overview",{"0":{"98":1},"2":{"92":1}}],["overviews",{"0":{"86":1}}],["over",{"2":{"13":1,"47":2,"91":2,"106":6,"120":1,"121":1,"146":1,"156":3,"159":1}}],["once",{"2":{"90":1}}],["ongoing",{"2":{"64":2,"106":2}}],["ones",{"2":{"57":1}}],["one",{"2":{"5":2,"30":1,"33":2,"34":1,"36":2,"37":1,"91":3,"106":16,"109":1,"112":1,"117":1,"119":2,"121":2,"123":1,"124":2,"126":1,"127":4,"131":1,"147":1,"156":10,"157":1,"159":3}}],["on",{"0":{"50":1,"101":1},"2":{"5":3,"18":1,"28":3,"30":1,"31":1,"33":4,"36":3,"38":1,"42":2,"44":1,"45":2,"47":1,"51":1,"66":1,"69":1,"74":1,"90":1,"103":1,"104":3,"106":17,"121":3,"123":1,"127":1,"133":1,"137":2,"140":1,"143":1,"147":1,"152":1,"156":6,"157":4,"159":2}}],["only",{"2":{"4":1,"32":1,"35":1,"40":1,"91":1,"106":6,"109":1,"112":1,"117":1,"124":2,"129":1,"156":3,"157":2,"159":1}}],["originating",{"2":{"106":1,"157":2}}],["origins",{"2":{"64":6,"106":6}}],["oriented",{"2":{"4":1}}],["organizations",{"2":{"104":1}}],["organization",{"2":{"86":1,"92":1}}],["org",{"2":{"33":1,"38":1,"106":1,"156":1}}],["or",{"0":{"56":1},"2":{"4":2,"5":4,"9":1,"15":1,"18":2,"19":1,"21":1,"22":1,"24":1,"25":1,"31":1,"32":1,"33":3,"34":4,"36":3,"37":4,"40":1,"44":1,"48":2,"52":1,"53":1,"56":2,"57":1,"64":4,"66":2,"80":1,"90":1,"91":1,"103":2,"104":4,"105":2,"106":28,"127":1,"137":5,"139":3,"147":7,"156":9,"157":2,"159":6}}],["order",{"2":{"1":6,"31":1,"42":2,"106":9,"137":1,"157":3}}],["ordered",{"2":{"0":6,"1":6,"106":8,"124":1,"157":2,"159":1}}],["official",{"2":{"90":1}}],["offers",{"2":{"59":1}}],["often",{"2":{"50":2,"64":6,"104":1,"106":8,"147":1}}],["of",{"0":{"59":1,"108":1,"111":1,"114":1,"134":1},"1":{"115":1,"116":1,"117":1,"135":1,"136":1,"137":1},"2":{"1":14,"3":17,"4":1,"5":12,"7":3,"11":3,"13":4,"18":3,"19":5,"21":7,"22":10,"24":7,"25":11,"28":17,"30":2,"31":33,"32":3,"33":20,"34":11,"35":3,"36":11,"37":11,"38":9,"40":35,"42":6,"47":3,"48":4,"50":8,"51":4,"52":2,"53":1,"54":3,"55":2,"56":1,"57":1,"58":3,"59":1,"60":3,"62":10,"64":14,"66":4,"67":2,"68":1,"70":1,"71":2,"77":1,"80":1,"89":2,"90":1,"91":11,"92":2,"95":1,"97":2,"99":1,"102":1,"103":7,"104":2,"105":4,"106":301,"108":2,"109":2,"112":2,"117":2,"119":6,"120":3,"121":14,"123":5,"124":15,"127":3,"133":3,"135":13,"137":8,"139":2,"146":1,"147":15,"150":1,"151":1,"152":1,"153":1,"154":1,"155":2,"156":100,"157":48,"159":78}}],["opt",{"2":{"157":2}}],["optmizers",{"2":{"121":1}}],["option",{"2":{"147":4,"157":1}}],["option2",{"2":{"141":1,"144":1,"147":1}}],["option1",{"2":{"141":1,"144":1,"147":1}}],["options",{"0":{"142":1,"145":1,"149":1},"2":{"121":2,"142":1,"145":1,"147":3,"149":3,"157":5,"159":34}}],["optionally",{"2":{"34":2,"37":2,"106":2,"156":2}}],["optional",{"2":{"28":1,"31":1,"106":10,"121":1,"127":1,"147":1,"156":10,"159":2}}],["optimisation",{"2":{"103":1}}],["optimizing",{"2":{"104":1,"159":7}}],["optimization",{"0":{"74":1,"75":1,"84":1,"88":1,"96":1,"97":1},"1":{"76":1,"77":1,"89":1,"90":1,"91":1,"97":1,"98":1,"99":1},"2":{"52":1,"59":1,"67":1,"76":1,"77":1,"89":1,"92":1,"94":1,"97":2,"99":1,"104":2,"159":2}}],["optimized",{"2":{"157":1}}],["optimize",{"2":{"0":3,"2":4,"31":1,"39":4,"46":1,"63":2,"104":1,"106":1,"121":11,"156":1,"157":4}}],["optimizers",{"0":{"130":1},"1":{"131":1,"132":1},"2":{"121":1}}],["optimizer",{"2":{"0":3,"2":4,"39":4,"46":1,"63":2,"68":11,"69":7,"91":1,"103":1,"121":6,"131":8,"157":59,"159":3}}],["open",{"2":{"39":1,"40":6,"71":1,"106":6,"133":1,"155":1}}],["operate",{"2":{"106":1,"137":1}}],["operational",{"0":{"104":1},"2":{"104":1}}],["operation",{"2":{"69":1,"106":5,"121":2,"124":5}}],["operations",{"0":{"111":1},"2":{"9":1,"22":2,"25":2,"106":21,"109":1,"112":2,"117":1,"121":3,"124":13,"137":1,"156":7}}],["operators",{"2":{"30":1,"106":1}}],["operator",{"2":{"1":3,"5":2,"33":2,"36":2,"40":1,"106":6}}],["opparameterdomain",{"2":{"30":1,"106":1,"123":1}}],["op",{"2":{"0":1,"2":6,"3":8,"5":1,"33":1,"36":1,"39":16,"40":10,"50":4,"63":4,"64":4,"106":29,"124":2,"157":9}}],["op==",{"2":{"40":1,"106":1}}],["op===",{"2":{"3":2,"40":4,"106":6}}],["op=>",{"2":{"1":2,"106":2}}],["op=≥",{"2":{"1":2,"39":1,"40":1,"106":3}}],["op=+",{"2":{"1":2,"106":2}}],["op=",{"2":{"0":1,"1":6,"106":6}}],["op=≤",{"2":{"0":1,"1":6,"40":3,"106":9}}],["epoch",{"2":{"159":1}}],["err",{"2":{"157":3}}],["error",{"0":{"34":1,"37":1},"2":{"34":9,"37":9,"106":24,"121":1,"156":6,"157":4,"159":4}}],["euclidian",{"2":{"115":1,"116":1}}],["euclidean",{"2":{"106":6}}],["eq",{"2":{"106":22,"135":12,"136":1,"137":6}}],["equiped",{"2":{"31":1}}],["equilibrium",{"2":{"31":4}}],["equivalent",{"2":{"19":1,"22":1,"25":1,"106":1}}],["equalities",{"2":{"106":2,"137":2}}],["equal",{"2":{"0":5,"1":8,"3":2,"31":1,"40":1,"56":1,"106":17,"135":3,"137":1,"157":4}}],["empty",{"2":{"106":1,"121":2,"137":1,"156":1,"157":7,"159":11}}],["emptydomain",{"2":{"18":2,"21":1,"24":1,"106":2,"156":1}}],["embodies",{"2":{"106":2,"157":1}}],["evolves",{"2":{"159":1}}],["evolution",{"2":{"155":2}}],["evals=d",{"2":{"152":1}}],["evals",{"2":{"142":2,"145":1,"149":1,"152":1,"155":1}}],["evaluated",{"2":{"159":1}}],["evaluates",{"2":{"106":2}}],["evaluation",{"2":{"121":1}}],["eventually",{"2":{"50":2,"106":2}}],["even",{"2":{"31":1}}],["ever",{"2":{"15":1}}],["efficiency",{"2":{"104":1}}],["efficient",{"2":{"34":1,"37":1,"51":1,"60":1,"69":1,"94":1,"106":1}}],["efficiently",{"2":{"11":1,"31":1,"157":1}}],["editors",{"2":{"90":1}}],["edge",{"2":{"62":2,"106":2,"157":2}}],["earlier",{"2":{"139":1}}],["easily",{"2":{"146":1,"147":1}}],["easier",{"2":{"106":1}}],["easy",{"2":{"103":1,"146":1,"148":1}}],["ease",{"2":{"89":1}}],["eachrow",{"2":{"131":4}}],["each",{"2":{"3":2,"5":2,"22":1,"25":1,"31":3,"33":3,"36":3,"50":2,"58":1,"62":2,"86":1,"87":1,"91":5,"106":12,"124":1,"133":1,"148":1,"156":2,"157":2,"159":1}}],["etc",{"2":{"57":1,"147":1}}],["e",{"2":{"31":1,"50":2,"62":4,"64":4,"97":1,"106":15,"120":1,"131":3,"156":1,"159":1}}],["else",{"2":{"131":4}}],["eltype",{"2":{"27":3,"106":3,"121":2}}],["elementary",{"0":{"42":1}}],["elements",{"2":{"11":1,"18":1,"31":1,"66":2,"70":1,"106":18,"108":1,"119":1,"124":1,"135":8,"156":2}}],["element",{"2":{"2":9,"3":9,"69":1,"106":9,"121":2,"139":1,"157":2,"159":1}}],["either",{"2":{"18":1,"21":1,"24":1,"34":1,"37":1,"48":2,"64":4,"103":1,"106":8,"156":4}}],["enabled",{"2":{"159":1}}],["enumerate",{"2":{"131":1}}],["entry",{"2":{"106":3,"159":1}}],["enforcing",{"2":{"106":2,"157":1}}],["environment",{"0":{"90":1},"2":{"147":1,"155":1}}],["encapsulate",{"2":{"106":1,"137":1,"159":2}}],["encapsuler",{"2":{"21":1,"106":1}}],["encode",{"2":{"121":1}}],["encoded",{"2":{"62":2,"106":2,"157":1}}],["encoding",{"0":{"127":1},"2":{"106":5,"126":1,"127":4,"156":4}}],["encourage",{"2":{"79":1,"90":2}}],["encompass",{"2":{"47":1,"106":1}}],["ensure",{"2":{"91":1,"106":1,"126":1}}],["ensures",{"2":{"42":2,"45":2,"50":2,"62":2,"64":6,"91":1,"106":12,"157":2}}],["ensuring",{"2":{"1":7,"40":5,"47":2,"58":1,"106":17,"121":3,"137":1,"157":18}}],["energy",{"2":{"31":1}}],["enough",{"2":{"30":1,"106":1}}],["end``",{"2":{"159":1}}],["end",{"2":{"7":2,"91":2,"106":2,"131":15,"141":2,"144":2,"147":2,"149":1,"150":1,"151":1,"152":2,"154":1,"155":3,"157":1,"159":4}}],["ex",{"2":{"106":3}}],["existing",{"2":{"103":1,"104":1,"106":2}}],["exists",{"2":{"91":1,"106":3,"151":1}}],["expansion",{"2":{"106":1}}],["export",{"2":{"106":1,"156":1,"159":1}}],["expr",{"2":{"106":2,"150":1,"151":3,"152":3}}],["express",{"2":{"157":1}}],["expressing",{"2":{"71":1}}],["expressions",{"2":{"124":1}}],["expression",{"2":{"40":1,"44":1,"106":8}}],["expresses",{"2":{"53":1}}],["experimental",{"0":{"102":1},"2":{"102":1}}],["experiments",{"0":{"100":1},"1":{"101":1,"102":1},"2":{"102":1}}],["expected",{"2":{"106":4,"156":3}}],["expect",{"2":{"92":1}}],["expectations",{"2":{"90":1}}],["explicit",{"2":{"106":2,"157":1}}],["explicitly",{"2":{"48":1,"106":2,"157":3}}],["explanation",{"2":{"97":1,"106":1}}],["explored",{"2":{"28":2,"106":3,"156":3}}],["exploresettings",{"2":{"28":6,"106":6,"156":6}}],["explore",{"2":{"17":1,"28":4,"65":1,"106":7,"156":4}}],["exploring",{"0":{"17":1,"65":1,"85":1},"1":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"86":1},"2":{"123":1}}],["explorations",{"2":{"17":1,"65":1}}],["exploration",{"0":{"28":1},"1":{"29":1},"2":{"11":1,"28":4,"30":1,"106":5,"156":3}}],["exclu",{"2":{"106":3,"124":3}}],["exclusive",{"2":{"106":11,"109":1,"112":1,"117":1,"121":3,"124":9,"156":3}}],["excluded",{"2":{"106":1,"157":2}}],["exclude",{"2":{"40":1,"106":1}}],["exceeds",{"2":{"56":1}}],["exceed",{"2":{"53":1,"64":2,"106":2}}],["except",{"2":{"40":2,"106":2}}],["except=vals",{"2":{"33":1,"38":1,"106":2,"156":1}}],["exact",{"2":{"105":4}}],["exactly",{"2":{"39":7,"40":4,"106":4,"157":3}}],["exampleusing",{"2":{"47":2,"106":2}}],["example2",{"2":{"47":2,"106":2}}],["examples",{"0":{"130":1},"1":{"131":1,"132":1},"2":{"1":3,"3":4,"11":1,"40":4,"42":1,"47":1,"50":1,"62":2,"64":2,"70":1,"90":1,"106":22,"137":1,"140":1,"143":1,"155":1}}],["example",{"2":{"0":2,"2":1,"5":1,"33":4,"34":1,"37":1,"38":4,"44":2,"46":2,"48":1,"51":1,"53":1,"54":1,"55":1,"56":1,"90":1,"106":8,"139":1,"141":2,"144":2,"148":1,"151":1,"156":6}}],["externally",{"2":{"159":1}}],["external",{"2":{"106":1,"137":1}}],["extensibility",{"2":{"60":1}}],["extensionally",{"2":{"48":1}}],["extensional",{"2":{"48":1}}],["extension",{"0":{"19":1,"22":1,"25":1,"48":1,"140":1,"143":1},"1":{"141":1,"142":1,"144":1,"145":1},"2":{"43":1,"106":8,"140":1,"141":1,"143":1,"144":1,"148":4,"157":4}}],["extensions",{"0":{"9":1},"1":{"10":1},"2":{"4":1,"141":1,"144":1}}],["extending",{"0":{"148":1},"1":{"149":1,"150":1,"151":1,"152":1,"153":1,"154":1},"2":{"148":1}}],["extended",{"2":{"106":19,"119":2,"135":8,"148":1,"156":2}}],["extends",{"2":{"9":3,"19":5,"22":3,"25":3,"27":1,"30":2,"31":4,"106":7,"121":3,"123":2,"156":3}}],["extend",{"2":{"9":1,"18":1,"27":1,"66":1,"106":2,"148":1,"154":1,"156":1}}],["extracted",{"2":{"32":1,"33":1,"35":1,"38":1,"58":1}}],["extracts",{"2":{"5":1,"106":2,"156":1}}],["extract",{"2":{"5":2,"34":1,"37":1,"106":2,"156":2}}],["extremal",{"2":{"69":1}}],["extrema",{"0":{"13":1},"1":{"14":1},"2":{"4":1,"13":3,"106":2,"121":1,"131":1,"156":2,"159":3}}],["ecosystem",{"2":{"4":1,"17":1,"32":1,"35":1,"65":1,"90":1,"103":1}}],["especially",{"2":{"105":1}}],["estimation",{"2":{"34":1,"37":1}}],["establishes",{"2":{"3":2,"106":2}}],["essentially",{"2":{"54":1}}],["essential",{"2":{"4":1,"66":1,"148":1}}],["highly",{"2":{"124":1}}],["highlight",{"2":{"92":1}}],["highlighting",{"2":{"79":1,"89":1}}],["high",{"2":{"51":1,"103":1}}],["higher",{"2":{"44":1,"46":1}}],["highest",{"2":{"18":1,"21":1,"24":1,"106":1,"156":1,"159":1}}],["hide",{"2":{"47":2,"106":2}}],["helps",{"2":{"103":1}}],["help",{"2":{"103":2,"104":1}}],["heuristic",{"2":{"91":1,"105":2}}],["heights",{"2":{"64":5,"106":5,"157":1}}],["here",{"2":{"46":1,"106":1,"139":1,"141":1,"144":1,"147":2,"151":2,"152":1,"153":1,"155":1,"157":1}}],["heavily",{"2":{"33":1,"36":1,"133":1}}],["heavy",{"2":{"32":1,"35":1}}],["https",{"2":{"33":1,"38":1,"106":1,"156":1}}],["hamming",{"2":{"106":4,"120":2,"121":3,"156":4}}],["hardware",{"2":{"90":1}}],["hands",{"0":{"101":1}}],["hand",{"2":{"34":1,"37":1,"104":1}}],["handled",{"2":{"21":1,"106":1}}],["handle",{"2":{"0":3,"2":4,"18":1,"39":4,"46":1,"63":2,"106":1,"159":2}}],["have",{"2":{"31":1,"33":1,"36":1,"47":1,"54":1,"76":1,"90":1,"105":1,"106":6,"119":2,"156":4,"157":1}}],["has",{"2":{"11":1,"67":1,"91":1,"106":6,"124":1,"127":1,"140":1,"143":1,"148":1,"156":2,"159":10}}],["hot",{"2":{"106":3,"127":3,"131":1,"156":3}}],["hosts",{"2":{"103":1}}],["host",{"2":{"90":1}}],["holds",{"2":{"103":1}}],["hold",{"2":{"3":4,"106":4,"121":1}}],["however",{"2":{"56":1,"60":1,"91":1}}],["how",{"0":{"84":1},"2":{"0":3,"2":4,"34":1,"37":1,"39":4,"44":1,"45":1,"46":1,"63":2,"73":1,"79":1,"95":1,"102":1,"114":1,"134":1}}],["fetch",{"2":{"159":1}}],["feasible",{"2":{"91":2,"105":1}}],["features",{"0":{"126":1},"2":{"17":1,"32":1,"35":1,"58":1,"65":1,"86":1,"123":1,"146":1}}],["feature",{"2":{"4":1,"34":1,"37":1,"148":1}}],["f2",{"2":{"159":2}}],["fraction",{"2":{"154":1}}],["framework",{"2":{"51":1,"60":1,"103":1}}],["front",{"2":{"133":1}}],["from",{"0":{"62":1,"77":1,"84":1},"2":{"19":4,"22":2,"25":3,"30":2,"31":2,"33":1,"38":1,"47":1,"54":1,"58":1,"62":1,"77":1,"91":2,"92":1,"104":1,"106":14,"121":1,"123":3,"129":1,"137":2,"146":1,"151":1,"152":1,"153":1,"154":1,"155":4,"156":2,"157":6,"159":17}}],["friendly",{"2":{"58":1}}],["free",{"2":{"31":1}}],["filter",{"2":{"131":1}}],["file",{"2":{"106":7,"124":1,"156":7}}],["filled",{"2":{"91":1}}],["fill",{"2":{"31":4,"91":1}}],["fields",{"2":{"106":1,"156":1,"157":1}}],["finishes",{"2":{"64":8,"106":8}}],["finish",{"2":{"62":2,"106":2}}],["finally",{"2":{"34":1,"37":1}}],["finer",{"2":{"34":1,"37":1}}],["finds",{"2":{"139":1}}],["finding",{"2":{"103":1,"104":1,"105":2}}],["find",{"2":{"33":1,"36":1,"105":5,"159":2}}],["first",{"0":{"91":1},"2":{"3":2,"39":1,"62":1,"64":8,"91":1,"106":15,"121":1,"131":4,"139":1,"147":4,"157":1,"159":1}}],["flatten",{"2":{"131":1}}],["flexibility",{"2":{"90":1}}],["flexible",{"2":{"28":3,"48":1,"51":1,"106":6,"137":1,"156":4}}],["float64",{"2":{"106":2,"131":1,"157":1,"159":5}}],["flows",{"2":{"31":1}}],["flow",{"2":{"31":1}}],["floor",{"2":{"28":2,"106":2,"156":2}}],["f",{"2":{"7":1,"11":2,"34":6,"37":5,"106":16,"119":6,"156":14,"157":40,"159":7}}],["full",{"0":{"106":1}}],["func",{"2":{"159":6}}],["funcs",{"2":{"106":2,"119":2,"156":2}}],["functionalities",{"2":{"60":1,"66":1}}],["functioning",{"2":{"60":1}}],["functions",{"0":{"34":1,"37":1},"2":{"4":1,"31":1,"106":8,"117":1,"124":3,"137":4,"148":1,"154":2,"156":2}}],["function",{"2":{"1":3,"3":4,"5":2,"7":2,"9":3,"11":2,"13":1,"15":2,"18":4,"19":5,"21":6,"22":4,"24":7,"25":5,"27":2,"28":3,"30":4,"31":1,"33":4,"34":7,"37":7,"38":4,"40":4,"42":1,"44":1,"47":2,"50":1,"62":3,"64":2,"91":1,"106":67,"108":2,"109":1,"111":2,"112":1,"115":2,"117":1,"119":12,"120":3,"121":4,"123":3,"124":9,"126":2,"127":3,"129":1,"131":7,"133":1,"135":10,"137":6,"139":1,"154":1,"156":31,"157":30,"159":18}}],["fundamentals",{"2":{"99":1}}],["fundamental",{"2":{"47":1,"106":1,"157":1}}],["further",{"2":{"31":1,"90":1}}],["future",{"0":{"80":1},"2":{"5":1}}],["found",{"2":{"124":1}}],["foundation",{"2":{"66":1}}],["foundational",{"2":{"4":1}}],["follwing",{"2":{"146":1}}],["follows",{"2":{"91":1,"147":1,"157":1}}],["following",{"2":{"11":1,"18":1,"40":1,"52":1,"66":1,"106":8,"119":2,"127":1,"137":1,"141":1,"144":1,"155":1,"156":6,"159":1}}],["follow",{"2":{"5":1}}],["folder",{"2":{"155":2}}],["fold",{"2":{"103":1,"155":1}}],["focuses",{"2":{"103":1,"104":2}}],["formulating",{"2":{"77":1}}],["formal",{"2":{"53":1,"159":1}}],["formatted",{"2":{"106":2,"119":1,"156":1}}],["format",{"2":{"5":1,"18":1,"31":9,"33":1,"36":1,"106":3,"127":1,"156":2}}],["form",{"2":{"50":2,"106":2}}],["forbidden",{"2":{"31":1,"106":1,"157":2}}],["forwarded",{"2":{"159":1}}],["forward",{"2":{"31":2,"91":1}}],["foreseeable",{"2":{"5":1}}],["for",{"0":{"88":1,"124":1,"127":1},"1":{"89":1,"90":1,"91":1},"2":{"0":2,"2":1,"3":4,"5":1,"7":3,"9":1,"15":1,"18":3,"19":3,"21":2,"22":3,"24":2,"25":3,"27":2,"28":2,"30":2,"31":12,"33":1,"34":2,"36":1,"37":2,"39":1,"44":1,"45":1,"46":2,"48":1,"51":3,"55":1,"56":1,"59":1,"60":1,"64":6,"65":1,"66":5,"69":2,"70":1,"80":1,"87":1,"89":1,"90":3,"91":2,"94":1,"103":5,"104":1,"105":3,"106":54,"115":9,"116":8,"117":2,"118":1,"119":4,"120":2,"121":8,"123":21,"124":4,"126":1,"127":2,"129":1,"131":2,"135":5,"136":12,"137":5,"138":1,"139":1,"146":3,"147":5,"148":2,"149":1,"151":2,"152":1,"154":5,"155":5,"156":13,"157":14,"159":18}}],["faster",{"2":{"159":1}}],["fails",{"2":{"52":1}}],["facilities",{"2":{"31":6}}],["facilitates",{"2":{"106":1,"137":1}}],["facilitate",{"2":{"4":1,"32":1,"35":1}}],["fake",{"2":{"30":1,"106":1,"123":1}}],["fakeautomaton",{"2":{"7":2,"19":2,"22":1,"25":1,"30":5,"106":5,"123":4}}],["fallback",{"2":{"18":1,"19":2,"21":1,"22":2,"24":1,"25":2,"106":4,"156":1}}],["false",{"2":{"0":4,"1":3,"2":9,"3":10,"7":1,"9":1,"11":1,"19":2,"22":2,"25":2,"30":1,"39":4,"40":4,"42":1,"46":1,"50":1,"56":1,"64":2,"71":1,"106":31,"117":1,"123":1,"131":3,"156":5,"157":4,"159":2}}],["fa",{"2":{"7":1,"19":4,"22":2,"25":2,"30":3,"106":3,"123":3}}],["swap",{"2":{"159":2}}],["switch",{"2":{"106":1,"120":1,"156":1}}],["src",{"2":{"157":2}}],["sltns",{"2":{"121":2}}],["smaller",{"2":{"105":1}}],["small",{"2":{"105":1}}],["script",{"2":{"155":1}}],["scatterlines",{"2":{"147":1,"155":1}}],["scalarfunction",{"2":{"157":3}}],["scalars",{"2":{"106":1,"115":1}}],["scalar",{"2":{"5":2,"33":2,"36":2,"106":5,"108":1,"157":1}}],["science",{"2":{"89":1}}],["scenario",{"2":{"77":1}}],["scheduling",{"0":{"64":1},"2":{"64":6,"104":1,"106":6}}],["syntaxes",{"2":{"51":1,"65":1}}],["syntax",{"2":{"34":1,"37":1,"90":1,"91":1,"157":1,"159":1}}],["systems",{"2":{"104":2}}],["system",{"2":{"31":1}}],["symb",{"2":{"106":2}}],["symbols",{"2":{"9":2,"106":11,"119":4,"124":1,"147":2,"156":6}}],["symbol",{"2":{"5":4,"9":3,"28":1,"33":4,"34":2,"37":2,"38":4,"106":34,"124":1,"127":1,"131":1,"137":5,"147":1,"148":1,"156":15,"159":3}}],["symmetry",{"2":{"106":1,"156":1}}],["symmetries",{"2":{"106":4,"156":4}}],["symcon",{"2":{"9":1,"106":1,"156":1}}],["square",{"2":{"28":1,"31":3,"106":1,"156":1}}],["sqrt",{"2":{"28":1,"106":1,"156":1}}],["successfully",{"2":{"76":1}}],["such",{"2":{"5":2,"31":2,"32":1,"33":2,"36":2,"44":3,"46":2,"47":1,"51":1,"57":1,"62":1,"71":1,"83":1,"103":1,"104":2,"106":5,"124":1,"137":1,"157":1,"159":4}}],["subs",{"2":{"159":3}}],["subsolvers",{"2":{"159":4}}],["subsolver",{"2":{"159":6}}],["subsets",{"2":{"91":2}}],["subset",{"2":{"54":1,"157":1}}],["sub",{"2":{"121":1,"159":1}}],["subtract",{"2":{"106":1,"137":1}}],["subtraction",{"2":{"106":1,"137":1}}],["subtype",{"2":{"31":1}}],["subgrid",{"2":{"91":1}}],["subgrids",{"2":{"91":1}}],["support",{"2":{"106":1,"157":1}}],["supported",{"2":{"106":4,"157":2}}],["supports=nothing",{"2":{"106":1}}],["supports",{"2":{"57":1,"106":7,"157":13}}],["supply",{"2":{"104":1}}],["supplies",{"2":{"31":1,"103":1}}],["supertype",{"2":{"21":1,"24":1,"66":1,"106":2,"156":2}}],["super",{"2":{"18":1,"66":1,"106":1,"156":1}}],["sudoku",{"2":{"31":17,"91":4,"159":1}}],["sudokuinstances",{"2":{"31":1}}],["sudokuinstance",{"2":{"31":19}}],["summary",{"2":{"105":1}}],["summing",{"0":{"40":1}}],["sum",{"2":{"22":1,"25":1,"28":2,"31":1,"39":8,"40":8,"53":1,"64":2,"106":21,"108":2,"111":3,"126":3,"156":5,"157":3}}],["stop",{"2":{"159":5}}],["storing",{"2":{"103":1,"155":1}}],["storage",{"2":{"69":1}}],["stored",{"2":{"151":1,"152":1}}],["stores",{"2":{"24":2,"106":2,"155":2,"156":1}}],["store",{"2":{"21":3,"30":8,"32":1,"35":1,"106":15,"119":1,"124":2,"156":1,"159":3}}],["stuff",{"2":{"131":2}}],["studio",{"2":{"90":1}}],["studies",{"0":{"76":1},"2":{"76":1}}],["stipulates",{"2":{"106":1,"157":2}}],["still",{"2":{"34":1,"37":1}}],["step",{"2":{"87":2,"101":2,"106":2,"159":3}}],["stamp",{"2":{"159":4}}],["status",{"2":{"159":4}}],["static",{"2":{"159":1}}],["statistical",{"2":{"104":1}}],["states",{"2":{"62":4,"106":4}}],["statement",{"2":{"53":1}}],["state",{"2":{"31":3,"55":1,"159":36}}],["stands",{"2":{"65":1}}],["standards",{"2":{"51":1,"58":1}}],["standard",{"2":{"17":1,"31":3,"33":1,"36":1,"43":1,"65":1,"103":1}}],["started",{"0":{"87":1,"88":1},"1":{"89":1,"90":1,"91":1},"2":{"87":1}}],["starts",{"2":{"64":8,"105":1,"106":9,"159":2}}],["start",{"2":{"31":1,"50":2,"62":2,"91":1,"106":4,"147":1}}],["starting",{"2":{"31":2,"106":1,"159":1}}],["start=",{"2":{"31":1}}],["stdout",{"2":{"31":1}}],["str",{"2":{"159":1}}],["straight",{"2":{"91":1}}],["straightforward",{"2":{"44":1,"157":1}}],["strategies",{"0":{"74":1},"2":{"74":1}}],["streamline",{"2":{"59":1}}],["streamlining",{"0":{"0":1,"2":1,"39":1,"41":1,"49":1,"61":1,"63":1},"1":{"1":1,"3":1,"40":1,"42":1,"50":1,"62":1,"64":1}}],["strongly",{"2":{"52":1}}],["string",{"2":{"19":4,"22":4,"25":4,"31":1,"106":8,"119":1,"124":1,"147":1,"156":1,"157":1,"159":1}}],["strictly",{"2":{"1":8,"106":13,"108":1,"156":3}}],["struct",{"2":{"18":1,"31":3,"106":1,"159":4}}],["structure",{"0":{"124":1},"2":{"7":3,"18":2,"30":1,"31":1,"66":1,"70":1,"105":1,"106":7,"121":1,"124":4,"156":5,"159":5}}],["structures",{"2":{"4":1}}],["silent",{"2":{"157":4,"159":1}}],["sig",{"2":{"106":17,"135":8}}],["signature",{"2":{"106":2,"119":2,"156":2}}],["significance",{"2":{"82":1}}],["single",{"2":{"91":1,"106":3,"108":1,"111":2}}],["since",{"2":{"44":1,"46":1,"67":1,"159":1}}],["sink",{"2":{"31":3}}],["simulated",{"2":{"98":1}}],["simplified",{"2":{"106":3}}],["simplify",{"2":{"73":1}}],["simple",{"2":{"33":1,"38":1,"91":2,"106":1,"156":1}}],["simply",{"2":{"19":2,"22":1,"25":1,"30":1,"34":1,"37":1,"68":1,"91":1,"106":2,"123":1,"147":1}}],["similar",{"2":{"18":1,"39":1,"66":1,"106":1,"156":1}}],["situations",{"2":{"13":1}}],["sizes",{"2":{"28":1,"106":1,"156":1}}],["size",{"2":{"5":1,"18":5,"21":8,"24":8,"28":1,"31":3,"33":1,"36":1,"50":3,"66":1,"106":31,"119":1,"121":7,"124":2,"131":2,"156":15,"159":4}}],["split",{"2":{"121":1}}],["specialize",{"2":{"159":10}}],["specialized",{"2":{"106":2,"115":1,"135":1,"159":10}}],["specializing",{"2":{"159":1}}],["specifying",{"2":{"28":3,"65":1,"106":5,"156":3,"157":5}}],["specify",{"2":{"17":1}}],["specific",{"0":{"47":1},"2":{"42":4,"52":2,"54":1,"55":1,"56":1,"106":6,"121":2,"137":1,"142":1,"145":1,"157":2}}],["specifically",{"2":{"19":2,"22":1,"25":1,"30":1,"47":1,"106":2,"123":1,"157":1}}],["specification",{"2":{"5":1}}],["specifications",{"2":{"5":2,"33":1,"38":1,"106":1,"156":1}}],["specified",{"2":{"19":2,"22":1,"25":1,"28":1,"30":1,"31":2,"106":3,"123":1,"137":1,"156":1,"157":2}}],["specifies",{"2":{"3":6,"40":1,"44":1,"48":1,"53":1,"106":8,"137":1}}],["space",{"2":{"28":2,"104":1,"106":9,"156":7,"157":3,"159":1}}],["spaces",{"2":{"11":1,"67":1}}],["span",{"2":{"21":1,"24":1,"106":1}}],["s2",{"2":{"9":1,"106":1,"156":1}}],["s1",{"2":{"9":1,"106":1,"156":1}}],["s",{"2":{"5":3,"7":6,"18":2,"21":1,"24":1,"31":5,"34":4,"37":4,"66":2,"91":1,"106":18,"115":4,"116":4,"117":1,"119":1,"120":1,"123":10,"124":1,"135":2,"136":6,"139":1,"150":1,"152":1,"156":14,"159":109}}],["sat",{"2":{"159":3}}],["satisfaction",{"0":{"56":1},"2":{"52":1,"59":1,"103":1,"106":2,"157":1,"159":3}}],["satisfying",{"2":{"159":2}}],["satisfy",{"2":{"40":3,"44":1,"48":1,"53":1,"103":1,"104":1,"105":1,"106":3,"157":2}}],["satisfies",{"2":{"40":6,"56":1,"62":1,"105":1,"106":8,"156":1,"157":4}}],["satisfied",{"2":{"3":4,"34":1,"37":1,"42":1,"50":1,"56":2,"62":1,"64":2,"104":1,"106":10,"156":1,"157":1,"159":1}}],["save",{"2":{"155":2}}],["say",{"2":{"106":1,"127":1,"156":1}}],["samples=d",{"2":{"152":1}}],["samples",{"2":{"142":2,"145":1,"149":1,"152":1,"154":5,"155":1}}],["samplings",{"2":{"28":5,"106":5,"156":5}}],["sampling",{"0":{"11":1},"1":{"12":1},"2":{"4":1,"11":2}}],["same",{"2":{"21":1,"24":1,"31":2,"33":1,"38":1,"47":1,"106":4,"156":2,"157":1}}],["shifted",{"2":{"131":3}}],["shrink",{"2":{"106":2}}],["share",{"2":{"80":1,"94":1}}],["shared",{"2":{"4":1,"60":1}}],["show",{"2":{"106":4,"119":1,"124":1,"156":1}}],["showcase",{"2":{"76":1}}],["shortcut",{"2":{"34":1,"37":1,"106":1,"156":1}}],["should",{"2":{"3":6,"17":1,"44":1,"46":1,"47":1,"106":11,"119":2,"156":2,"157":4,"159":3}}],["select",{"2":{"147":1,"159":4}}],["selection",{"2":{"106":1,"137":1}}],["selected",{"2":{"106":8,"109":1,"112":1,"117":1,"121":2,"124":6,"156":4,"159":1}}],["seaperl",{"2":{"103":1}}],["searching",{"2":{"106":1,"156":1}}],["search",{"0":{"74":1,"105":1,"132":1},"2":{"11":1,"28":9,"74":1,"98":1,"104":1,"105":3,"106":20,"124":1,"156":20,"157":1,"159":1}}],["series",{"2":{"91":1,"159":1}}],["serves",{"2":{"4":1}}],["sequence",{"2":{"50":6,"62":4,"106":10,"157":3}}],["seen",{"2":{"53":1}}],["see",{"2":{"45":1,"71":2,"159":1}}],["separates",{"2":{"106":1,"119":1}}],["separator",{"2":{"31":1}}],["sep",{"2":{"31":2,"106":2,"119":2}}],["segment",{"2":{"31":3}}],["several",{"2":{"13":1,"60":1,"90":1,"103":1,"124":1}}],["sec",{"2":{"159":1}}],["section",{"2":{"5":1,"45":1,"140":1,"143":1}}],["seconds=d",{"2":{"152":1}}],["seconds",{"2":{"142":2,"145":1,"149":1,"152":1,"155":1,"159":1}}],["second",{"2":{"3":2,"64":8,"106":10}}],["setter",{"2":{"91":1}}],["setting",{"0":{"90":1},"2":{"159":1}}],["settings",{"2":{"28":4,"106":4,"156":4,"159":1}}],["setup",{"2":{"90":1}}],["setdomain",{"0":{"68":1},"2":{"18":1,"21":1,"24":3,"25":2,"68":1,"69":1,"106":5,"156":5}}],["set",{"2":{"3":4,"7":1,"9":2,"19":2,"22":1,"24":3,"25":1,"30":1,"31":4,"40":3,"42":2,"48":2,"53":1,"55":1,"56":1,"68":1,"71":1,"104":1,"106":31,"117":1,"119":1,"121":11,"123":1,"127":2,"137":1,"156":11,"157":68,"159":22}}],["sets",{"2":{"3":2,"28":1,"57":1,"69":1,"70":1,"106":3,"121":3,"156":1}}],["sound",{"2":{"70":1}}],["source",{"2":{"1":3,"3":4,"5":3,"7":7,"9":3,"11":1,"13":1,"15":1,"18":10,"19":15,"21":12,"22":15,"24":14,"25":16,"27":2,"28":3,"30":17,"31":21,"33":5,"34":3,"36":1,"37":3,"38":4,"40":4,"42":1,"47":1,"50":1,"62":2,"64":2,"66":1,"106":187,"108":2,"109":1,"111":2,"112":1,"115":1,"117":1,"119":6,"120":3,"121":28,"123":7,"124":11,"126":2,"127":3,"129":2,"135":9,"137":2,"139":4,"156":74,"157":74,"159":144}}],["soon",{"2":{"69":1,"157":1}}],["so",{"2":{"31":1,"91":1,"104":1,"106":2}}],["sols",{"2":{"106":1,"121":4,"156":1}}],["solving",{"2":{"51":1,"74":1,"77":1,"82":1,"90":1,"92":1,"104":4,"159":4}}],["solve",{"2":{"31":1,"91":1,"103":2,"104":1,"159":3}}],["solverversion",{"2":{"157":1}}],["solvername",{"2":{"157":1}}],["solvers",{"0":{"158":1},"2":{"90":3,"91":4,"103":10,"105":3,"124":1,"158":1,"159":2}}],["solver",{"2":{"31":6,"91":2,"103":1,"105":2,"121":1,"157":11,"159":29}}],["solutions",{"2":{"4":1,"28":7,"103":1,"104":2,"105":4,"106":11,"120":1,"121":8,"156":11,"159":9}}],["solution",{"2":{"0":2,"2":1,"31":2,"46":1,"91":3,"104":1,"105":4,"106":3,"120":1,"156":1,"157":3,"159":4}}],["something",{"2":{"106":1}}],["some",{"2":{"9":1,"11":1,"70":1,"91":1,"103":1,"106":1,"107":1,"110":1,"113":1,"121":1,"123":1,"133":1,"140":1,"143":1,"147":1,"156":1,"157":1}}],["t2",{"2":{"157":4}}],["t1",{"2":{"157":3}}],["tbw",{"2":{"121":4,"159":2}}],["typically",{"2":{"104":1}}],["typeof",{"2":{"157":1}}],["typemax",{"2":{"131":1,"159":1}}],["type",{"2":{"7":4,"18":6,"21":2,"24":5,"27":1,"28":2,"30":9,"31":7,"66":5,"105":2,"106":35,"121":7,"124":1,"129":2,"137":1,"156":15,"157":55,"159":17}}],["types",{"2":{"4":1,"43":1,"48":1,"57":1,"66":1,"97":1,"106":2,"137":2,"159":8}}],["tutorial",{"0":{"155":1}}],["tutorials",{"0":{"100":1,"101":1},"1":{"101":1,"102":1},"2":{"101":1}}],["tuples",{"2":{"48":2,"106":6,"157":4}}],["tuple",{"2":{"3":7,"18":5,"21":5,"24":5,"28":1,"31":2,"64":1,"106":18,"147":1,"156":6,"157":9}}],["tips",{"2":{"94":1}}],["timelimitsec",{"2":{"157":1}}],["timestamps",{"2":{"159":1}}],["times",{"2":{"39":1,"40":3,"106":3,"154":3,"155":2}}],["time",{"2":{"31":1,"64":8,"105":1,"106":10,"124":2,"137":1,"142":2,"154":1,"157":1,"159":27}}],["temporary",{"2":{"159":1}}],["templates",{"2":{"59":1}}],["tests",{"2":{"147":1}}],["tested",{"0":{"152":1},"2":{"147":1,"151":1}}],["test",{"2":{"121":2,"131":6,"146":1,"147":2}}],["testing",{"0":{"153":1},"2":{"106":1,"121":1,"146":1,"149":1,"152":1,"153":1,"155":2}}],["text",{"2":{"107":1,"110":1,"113":1,"133":1}}],["teach",{"2":{"95":1}}],["techniques",{"0":{"72":1,"84":1},"1":{"73":1,"74":1},"2":{"104":2,"105":2}}],["terminology",{"0":{"52":1,"83":1},"1":{"53":1,"54":1,"55":1,"56":1},"2":{"52":1}}],["tendency",{"2":{"31":1}}],["tag",{"2":{"147":1}}],["tags",{"2":{"147":2,"155":1}}],["tackle",{"2":{"123":1}}],["tabu",{"2":{"98":1,"159":46}}],["table",{"0":{"154":1},"2":{"33":4,"38":4,"106":4,"131":1,"153":2,"154":4,"156":4}}],["task",{"2":{"64":16,"106":16}}],["tasks",{"2":{"64":18,"106":18,"157":1,"159":1}}],["taken",{"2":{"155":1}}],["takes",{"2":{"42":2,"106":4,"157":1}}],["take",{"2":{"33":1,"38":1,"91":1,"105":1,"106":1,"147":1,"156":1}}],["targeted",{"2":{"28":1,"90":1,"106":2,"156":2,"159":3}}],["target",{"2":{"5":1,"33":1,"36":1,"106":1}}],["tr",{"2":{"106":58,"119":3,"135":29,"136":6}}],["track",{"2":{"142":1,"145":1,"149":1}}],["train",{"2":{"106":3,"121":2,"129":3,"131":5,"156":2}}],["training",{"2":{"106":1,"121":7,"156":1}}],["transpose",{"2":{"131":3}}],["transportation",{"2":{"104":1}}],["transported",{"2":{"31":1}}],["transform",{"2":{"106":1,"127":1,"156":1}}],["transforms",{"2":{"106":4,"137":4}}],["transformations",{"0":{"133":1,"134":1},"1":{"134":1,"135":2,"136":2,"137":2},"2":{"106":16,"117":1,"134":1,"137":15,"156":3}}],["transformation",{"2":{"106":12,"133":3,"137":8,"156":4}}],["tries",{"2":{"105":1}}],["try",{"2":{"52":1,"90":1,"105":1,"131":1}}],["true",{"2":{"0":4,"1":3,"2":5,"3":6,"7":3,"9":1,"11":1,"19":2,"22":2,"25":2,"30":1,"39":10,"40":4,"42":1,"46":1,"50":1,"56":1,"63":1,"64":2,"71":1,"106":28,"121":1,"123":1,"124":1,"145":1,"149":1,"155":1,"156":4,"157":6,"159":3}}],["t",{"2":{"7":2,"18":8,"21":11,"24":14,"30":5,"31":10,"62":2,"106":29,"147":1,"156":14,"157":25,"159":7}}],["two",{"2":{"3":2,"7":1,"18":1,"21":3,"24":3,"31":1,"43":1,"47":1,"48":1,"53":1,"64":4,"103":1,"106":11,"156":3,"157":1}}],["tolerance",{"2":{"142":4}}],["towards",{"2":{"106":1,"156":1}}],["too",{"2":{"105":1}}],["tools",{"0":{"51":1},"1":{"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1},"2":{"32":1,"35":1}}],["topics",{"2":{"101":1}}],["total",{"2":{"22":1,"25":1,"106":1}}],["to",{"0":{"19":1,"22":1,"25":1,"51":1,"77":1,"92":1,"125":1,"152":1},"1":{"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"126":1},"2":{"0":3,"1":9,"2":4,"3":12,"4":2,"5":2,"7":1,"9":1,"11":1,"13":1,"15":1,"17":3,"18":4,"19":6,"21":3,"22":4,"24":1,"25":4,"28":6,"30":18,"31":16,"32":1,"33":7,"34":9,"35":1,"36":3,"37":9,"38":4,"39":4,"40":13,"42":2,"44":1,"45":6,"46":2,"48":1,"50":3,"52":3,"54":2,"55":1,"56":2,"58":1,"59":1,"60":3,"62":4,"63":2,"64":2,"65":2,"66":1,"69":2,"79":1,"90":4,"91":6,"92":1,"95":1,"102":1,"103":3,"104":5,"105":9,"106":191,"107":1,"110":1,"111":2,"113":1,"119":6,"120":1,"121":12,"123":4,"124":3,"125":1,"126":1,"127":1,"129":1,"131":1,"133":2,"135":16,"137":7,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":3,"147":10,"148":3,"149":4,"150":2,"151":3,"152":2,"153":3,"154":5,"155":3,"156":49,"157":36,"159":49}}],["todo",{"2":{"0":3,"2":4,"39":4,"45":1,"46":1,"63":2,"90":1,"91":4,"106":1,"159":1}}],["th",{"2":{"106":1,"124":1}}],["throw",{"2":{"131":1}}],["through",{"2":{"17":1,"34":2,"37":2,"44":3,"46":2,"57":1,"65":1,"77":1,"90":3,"106":3,"108":1,"111":2,"121":2}}],["threads",{"2":{"142":1,"145":1,"147":2,"149":1,"159":12}}],["threshold",{"2":{"106":1,"137":1}}],["three",{"2":{"67":1}}],["than",{"2":{"44":1,"56":1,"59":1,"106":11,"135":5,"137":1,"157":1}}],["that",{"2":{"0":2,"1":7,"2":1,"3":14,"4":1,"5":2,"18":2,"19":2,"21":1,"22":2,"24":3,"25":2,"31":2,"33":2,"34":1,"36":1,"37":1,"38":1,"40":11,"42":4,"44":4,"45":2,"46":2,"47":2,"48":4,"50":2,"53":3,"62":5,"64":12,"65":1,"66":1,"90":1,"91":6,"92":1,"103":3,"104":4,"105":5,"106":101,"109":1,"112":1,"117":2,"119":2,"121":3,"124":3,"126":1,"137":3,"146":1,"148":1,"154":1,"156":16,"157":33,"159":10}}],["those",{"2":{"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"124":1}}],["thus",{"2":{"31":1}}],["third",{"2":{"3":2,"106":2}}],["this",{"2":{"0":2,"2":1,"3":2,"5":1,"17":1,"31":1,"34":3,"37":3,"45":1,"46":1,"47":1,"51":1,"52":1,"53":1,"56":1,"59":1,"62":2,"64":2,"65":1,"70":1,"91":2,"106":16,"123":1,"124":2,"137":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"147":2,"148":1,"149":2,"150":2,"151":2,"152":1,"155":2,"156":1,"157":8,"159":3}}],["theory",{"0":{"77":1}}],["them",{"2":{"47":1,"103":1,"106":1,"157":1,"159":1}}],["then",{"2":{"45":1,"54":1,"106":2,"159":2}}],["their",{"0":{"73":1},"2":{"33":1,"36":1,"53":1,"55":1,"57":1,"65":2,"71":1,"74":1,"90":1,"91":1,"106":1,"137":1,"142":1,"145":1,"146":1,"149":1}}],["they",{"2":{"31":1,"44":3,"48":3,"73":1,"79":1,"103":1,"104":1,"105":1}}],["there",{"2":{"31":3,"62":1,"106":2,"148":1,"154":1,"157":1}}],["these",{"2":{"5":1,"44":1,"48":2,"66":1,"105":1,"106":1,"154":1}}],["the",{"0":{"66":1,"79":1,"149":1,"154":1},"2":{"0":2,"1":10,"2":1,"3":25,"4":3,"5":17,"7":2,"9":3,"11":2,"13":5,"15":2,"17":2,"18":8,"19":4,"21":8,"22":8,"24":6,"25":9,"28":18,"30":5,"31":50,"32":5,"33":35,"34":17,"35":5,"36":20,"37":17,"38":15,"39":1,"40":41,"42":3,"43":1,"44":6,"45":9,"46":8,"47":6,"48":4,"50":16,"51":1,"52":3,"53":2,"54":5,"55":2,"56":7,"58":1,"59":2,"60":2,"62":17,"64":33,"65":4,"66":8,"67":1,"77":1,"79":1,"80":1,"86":1,"89":1,"90":9,"91":13,"92":3,"95":1,"99":1,"102":1,"103":4,"104":3,"105":3,"106":479,"107":1,"108":1,"109":3,"110":1,"112":3,"113":1,"114":2,"115":1,"117":4,"119":4,"120":2,"121":17,"123":7,"124":19,"126":1,"127":1,"133":5,"134":2,"135":21,"137":12,"139":5,"141":3,"144":3,"146":2,"147":19,"148":3,"149":2,"150":2,"151":6,"152":5,"153":5,"154":3,"155":10,"156":144,"157":155,"159":120}}],["001",{"2":{"131":1}}],["00514",{"2":{"33":1,"38":1,"106":1,"156":1}}],["0≤z",{"2":{"2":2}}],["0≤x",{"2":{"0":1}}],["0≤y",{"2":{"0":1}}],["0",{"2":{"0":1,"1":14,"2":1,"3":1,"18":1,"19":2,"21":1,"22":1,"24":1,"25":1,"31":54,"34":1,"37":1,"39":12,"40":8,"46":2,"50":1,"55":1,"62":22,"68":3,"69":6,"91":2,"106":73,"131":1,"139":8,"155":11,"156":3,"157":2,"159":9}}],["yes",{"2":{"159":1}}],["yet",{"2":{"18":1,"21":1,"31":1,"106":2}}],["you",{"2":{"103":1,"141":1,"144":1}}],["your",{"0":{"90":1,"91":1}}],["y=1",{"2":{"106":1}}],["y=5",{"2":{"56":1}}],["y=2",{"2":{"55":1,"56":1}}],["y",{"2":{"0":4,"2":4,"39":6,"44":2,"46":5,"48":1,"53":1,"55":1,"63":4,"103":1,"121":4,"131":7,"159":2}}],["≤6",{"2":{"63":1}}],["≤",{"2":{"19":4,"22":4,"25":4,"39":2,"63":3,"64":1,"69":2,"91":2,"106":5}}],["≤12",{"2":{"63":1}}],["≤10",{"2":{"39":3}}],["≤1",{"2":{"2":1}}],["≤5",{"2":{"0":2,"2":6,"39":5,"63":4}}],["≤2",{"2":{"0":1}}],["≤4",{"2":{"0":2,"2":1,"39":4}}],["42",{"2":{"18":1,"21":1,"24":1,"40":2,"68":3,"71":3,"106":3,"156":1}}],["4",{"2":{"0":7,"1":12,"2":23,"3":15,"18":1,"21":1,"24":1,"31":3,"39":32,"40":14,"42":4,"45":2,"46":3,"47":3,"48":3,"50":4,"63":19,"64":18,"68":3,"69":3,"106":82,"139":1,"155":1,"156":1,"157":1,"159":1}}],[">",{"2":{"0":3,"2":4,"39":5,"46":2,"50":1,"63":2,"106":1,"131":8,"157":2}}],["x``or",{"2":{"121":1}}],["x̅",{"2":{"121":4}}],["xto",{"2":{"106":1,"120":1,"156":1}}],["xn",{"2":{"91":1}}],["x4",{"2":{"68":1}}],["x3",{"2":{"62":1,"68":1,"106":1}}],["x3c",{"2":{"0":2,"1":4,"7":3,"18":6,"19":9,"21":11,"22":8,"24":12,"25":8,"30":12,"31":3,"39":4,"40":2,"46":2,"62":1,"63":2,"64":1,"106":48,"121":1,"123":3,"131":2,"156":18,"157":70,"159":91}}],["x=x1",{"2":{"91":1}}],["x=6",{"2":{"56":1}}],["x=3",{"2":{"55":1,"56":1}}],["x2",{"2":{"54":1,"62":1,"68":1,"69":1,"106":1,"159":2}}],["x26",{"2":{"47":4,"106":4}}],["x1+x2≤10",{"2":{"54":1}}],["x1",{"2":{"54":1,"62":1,"68":1,"69":1,"106":1,"159":2}}],["x+y≤10",{"2":{"53":1,"54":1,"56":1}}],["xcsp³",{"2":{"43":1}}],["xcsp3",{"2":{"5":3,"7":1,"33":6,"36":4,"38":2,"58":1,"106":3,"156":1}}],["xcsp",{"2":{"0":3,"1":3,"2":4,"3":4,"33":3,"36":2,"38":1,"39":4,"40":4,"42":1,"45":1,"46":1,"47":1,"50":1,"51":1,"62":2,"63":2,"64":2,"106":21,"156":1}}],["x",{"2":{"0":12,"1":23,"2":16,"3":8,"11":2,"13":2,"19":10,"22":10,"25":10,"31":4,"33":1,"34":4,"37":4,"38":1,"39":22,"40":28,"42":2,"44":2,"45":8,"46":7,"47":6,"48":1,"50":2,"53":1,"55":1,"62":6,"63":8,"64":8,"91":6,"103":2,"106":298,"108":3,"111":4,"115":1,"119":6,"120":8,"121":33,"127":8,"131":42,"135":60,"141":1,"144":1,"155":4,"156":33,"157":50,"159":68}}],["=>",{"2":{"62":15,"106":15,"131":1,"141":3,"142":10,"144":3,"145":6,"147":2,"149":6,"155":7}}],["=usual",{"2":{"33":1,"38":1,"106":1,"156":1}}],["=0",{"2":{"31":1}}],["==",{"2":{"2":9,"3":4,"19":1,"39":9,"40":2,"50":1,"106":9,"127":1,"131":2,"156":1,"157":3}}],["=",{"2":{"0":12,"1":3,"2":34,"3":12,"5":1,"15":2,"18":5,"19":4,"21":5,"22":4,"24":5,"25":4,"28":5,"31":11,"33":2,"34":2,"36":1,"37":2,"38":1,"39":83,"40":16,"42":1,"45":5,"46":6,"47":2,"50":5,"62":16,"63":32,"64":17,"68":10,"69":6,"71":3,"91":1,"103":1,"106":124,"111":2,"117":1,"119":1,"121":12,"126":1,"127":3,"131":34,"137":5,"147":8,"150":1,"151":1,"152":1,"153":1,"154":9,"155":7,"156":34,"157":19,"159":48}}],["ci",{"2":{"146":1,"157":3}}],["circuit",{"2":{"50":12,"106":12}}],["cn",{"2":{"91":1}}],["c=c1",{"2":{"91":1}}],["c=usual",{"2":{"33":2,"38":2,"106":2,"156":2}}],["clear",{"2":{"105":1}}],["classic",{"2":{"91":2}}],["closed",{"2":{"39":1,"40":9,"71":1,"106":9,"155":1}}],["creating",{"2":{"147":1}}],["creation",{"2":{"106":1,"137":1}}],["created",{"2":{"157":1,"159":1}}],["creates",{"2":{"106":1,"155":1}}],["create",{"2":{"28":1,"31":3,"106":3,"156":2,"157":3}}],["crucial",{"2":{"60":1}}],["csps",{"2":{"59":1,"103":1}}],["cc",{"2":{"40":2,"106":2}}],["c2",{"2":{"39":1,"155":2}}],["c1",{"2":{"39":1}}],["cplex",{"2":{"103":1}}],["cp",{"0":{"84":1,"88":1,"91":1},"1":{"89":1,"90":1,"91":1},"2":{"32":1,"35":1,"51":1,"57":1,"74":1,"76":1,"82":1,"90":1,"91":2,"92":1,"94":1,"102":1,"103":9,"104":4}}],["capacited",{"2":{"159":1}}],["capacity",{"2":{"159":1}}],["capacities",{"2":{"31":1}}],["cairomakie",{"2":{"155":1}}],["call",{"2":{"155":1}}],["calls",{"2":{"106":2}}],["called",{"2":{"44":1,"48":1,"91":3,"106":1,"159":2}}],["cast",{"2":{"91":1,"106":1}}],["case",{"0":{"76":1},"2":{"141":1,"144":1,"147":1,"150":1,"153":1,"154":1}}],["catch",{"2":{"131":1}}],["categorized",{"2":{"43":1}}],["catalog",{"2":{"32":1,"35":1,"59":1}}],["cardinalityclosed",{"2":{"39":1}}],["cardinalityopen",{"2":{"39":1}}],["cardinality",{"2":{"39":9,"40":20,"106":20}}],["care",{"2":{"33":1,"38":1,"106":1,"156":1}}],["cannot",{"2":{"71":1}}],["can",{"2":{"17":1,"18":1,"33":2,"36":2,"40":3,"53":1,"62":1,"65":1,"66":1,"79":1,"90":1,"91":3,"92":1,"105":1,"106":10,"124":5,"127":1,"137":1,"141":1,"144":1,"147":3,"148":1,"149":1,"154":1,"156":3,"157":2,"159":1}}],["current",{"2":{"106":2,"124":1,"156":1,"159":1}}],["currently",{"2":{"19":2,"22":1,"25":1,"30":1,"106":1,"123":1,"157":1}}],["cumulative",{"2":{"63":9,"64":9,"106":9,"157":3}}],["customize",{"2":{"149":1}}],["custom",{"2":{"57":1,"147":4,"150":1,"154":1,"155":1}}],["cut",{"2":{"31":1,"159":1}}],["certain",{"2":{"3":4,"64":2,"106":6,"157":2}}],["chuffed",{"2":{"103":1}}],["choose",{"2":{"159":1}}],["choice",{"2":{"90":1}}],["chosen",{"2":{"33":1,"36":1}}],["chair",{"2":{"154":6,"155":2}}],["chairmark",{"2":{"144":1,"147":1,"149":1,"150":1,"151":1,"152":1,"153":1,"155":3}}],["chairmarks",{"0":{"143":1},"1":{"144":1,"145":1},"2":{"143":1,"144":1,"148":1,"149":1,"150":2,"151":1,"152":1,"153":1,"154":2,"155":5}}],["chains",{"2":{"104":1}}],["challenge",{"2":{"123":1}}],["challenged",{"2":{"71":1}}],["chapter",{"2":{"65":1,"92":1}}],["characteristics",{"2":{"58":1}}],["change",{"2":{"31":2}}],["changes",{"2":{"21":1,"24":1,"31":1,"105":1,"106":2,"156":1}}],["channel",{"2":{"2":12,"3":9,"106":9}}],["chemical",{"2":{"31":3}}],["checked",{"2":{"157":1}}],["checkout",{"2":{"147":1}}],["checkres",{"2":{"147":1,"155":2}}],["checking",{"2":{"66":1}}],["checks",{"2":{"47":1,"62":1,"106":6,"157":1}}],["check",{"2":{"1":3,"3":8,"19":1,"22":1,"25":1,"40":7,"42":2,"45":1,"50":1,"62":2,"64":1,"91":1,"106":27,"115":4,"116":4,"117":1,"119":1,"120":1,"123":10,"124":2,"127":1,"135":2,"136":6,"141":1,"144":1,"146":2,"147":1,"149":1,"152":3,"153":1,"155":1,"156":1,"157":4,"159":10}}],["cosntriction",{"2":{"159":1}}],["cost",{"2":{"159":19}}],["costs",{"2":{"104":1,"159":20}}],["copied",{"2":{"157":7}}],["copy",{"2":{"157":19}}],["cops",{"2":{"103":1}}],["covering",{"2":{"101":1}}],["cover",{"2":{"99":1}}],["covers",{"2":{"4":1}}],["code",{"0":{"151":1,"152":1,"153":1},"2":{"51":1,"90":1,"106":5,"141":2,"144":2,"147":2,"151":3,"152":2,"153":1,"155":1,"156":3}}],["coded",{"2":{"34":1,"37":1}}],["co",{"2":{"40":2,"106":11,"115":5,"116":4}}],["coefficients",{"2":{"40":1,"106":1}}],["coeffs",{"2":{"39":1,"40":2,"106":2}}],["could",{"2":{"44":1,"48":1,"55":1}}],["counting",{"0":{"40":1},"2":{"106":1,"137":1}}],["count",{"2":{"39":9,"40":6,"106":95,"108":3,"135":40,"136":4,"137":21,"157":4}}],["counter",{"2":{"15":2,"106":2,"156":2,"159":1}}],["couple",{"2":{"33":1,"38":1}}],["columns",{"2":{"91":1}}],["column",{"2":{"91":1}}],["collect",{"2":{"131":1,"155":4}}],["collection",{"0":{"59":1},"2":{"15":1,"19":2,"21":1,"22":1,"25":1,"28":3,"30":1,"33":1,"34":1,"36":1,"37":1,"44":1,"45":1,"46":1,"59":1,"91":4,"103":1,"106":9,"120":1,"121":3,"123":1,"156":6,"157":1,"159":5}}],["collections",{"2":{"13":2,"106":1,"156":1}}],["collaborate",{"2":{"79":1}}],["col",{"2":{"31":1}}],["coordinates",{"2":{"31":1}}],["come",{"2":{"157":1}}],["commonly",{"2":{"147":1}}],["common",{"2":{"103":1}}],["commons",{"0":{"18":1},"1":{"19":1,"20":1}}],["command",{"2":{"90":1}}],["community",{"0":{"78":1,"79":1},"1":{"79":1,"80":1},"2":{"79":1}}],["communities",{"2":{"52":1}}],["combinatorial",{"2":{"51":1,"82":1,"104":1,"124":1}}],["compile",{"2":{"106":1,"137":1}}],["comprehensive",{"2":{"106":2,"157":1}}],["computational",{"2":{"89":1}}],["computes",{"2":{"159":1}}],["computed",{"2":{"106":17,"135":8}}],["compute",{"2":{"13":2,"21":2,"24":1,"31":1,"106":7,"120":1,"121":1,"127":1,"156":4,"157":1,"159":17}}],["compliance",{"2":{"62":2,"106":2,"157":1}}],["complexity",{"2":{"101":1}}],["complex",{"2":{"48":1,"59":1,"73":1,"104":2,"105":1}}],["completely",{"2":{"106":1,"156":1}}],["completed",{"2":{"91":1}}],["complete",{"2":{"28":4,"106":8,"156":7}}],["compatibility",{"2":{"58":1}}],["compare",{"2":{"1":1,"106":2,"157":2}}],["comparisons",{"0":{"114":1},"1":{"115":1,"116":1,"117":1},"2":{"106":2,"117":1,"137":2}}],["comparison",{"0":{"1":1,"113":1},"1":{"114":1,"115":1,"116":1,"117":1},"2":{"1":1,"5":1,"33":1,"36":1,"40":1,"106":10,"113":1,"114":1,"115":1,"117":2,"137":1,"156":5}}],["components",{"2":{"59":1,"60":1,"106":2,"119":2,"156":2}}],["compositions",{"2":{"106":1}}],["compositionalneworks",{"2":{"119":1}}],["compositionalnetworks",{"0":{"118":1},"1":{"119":1,"120":1},"2":{"32":1,"34":1,"37":1,"106":77,"108":2,"109":1,"111":2,"112":1,"115":1,"117":1,"118":1,"119":6,"120":3,"121":3,"124":10,"135":9,"137":2,"156":26}}],["compositional",{"2":{"106":1,"124":1,"156":1}}],["composition",{"2":{"106":24,"119":1,"156":21}}],["compose",{"2":{"91":1,"106":12,"124":1,"156":8}}],["composed",{"2":{"28":1,"106":3,"156":3}}],["compounds",{"2":{"31":1}}],["core",{"2":{"4":1,"5":3,"7":1,"33":7,"36":5,"38":2,"43":1,"58":2,"67":1,"106":3,"156":1}}],["correspond",{"2":{"33":1,"36":1}}],["corresponding",{"2":{"31":1,"106":1,"137":1}}],["corresponds",{"2":{"3":2,"106":2}}],["correspondence",{"2":{"3":2,"106":2}}],["config",{"2":{"147":3,"149":1,"151":1,"152":1,"153":1}}],["configuring",{"2":{"157":1}}],["configurable",{"2":{"146":1}}],["configuration",{"0":{"55":1,"56":1},"2":{"31":2,"52":2,"55":2,"56":4,"106":8,"121":4,"151":1,"152":1,"155":1,"156":2,"157":6,"159":3}}],["configurations",{"2":{"11":1,"28":1,"106":6,"121":1,"156":2,"157":4,"159":1}}],["configure",{"2":{"28":2,"106":2,"156":2}}],["conflict",{"2":{"106":1,"157":1}}],["conflicted",{"2":{"106":3,"157":1}}],["conflicts",{"2":{"106":8,"157":4}}],["conflicts=nothing",{"2":{"106":1}}],["conduct",{"2":{"102":1}}],["conditions",{"2":{"104":1,"106":1,"137":1,"159":1}}],["condition",{"2":{"2":1,"3":13,"39":1,"40":15,"53":1,"64":3,"106":31,"157":6}}],["concerned",{"2":{"104":2}}],["concentrations",{"2":{"31":2}}],["concepts",{"0":{"34":1,"37":1,"83":1},"2":{"83":1,"98":1}}],["concept",{"2":{"0":7,"1":10,"2":15,"3":8,"28":4,"33":1,"34":9,"37":9,"38":1,"39":26,"40":15,"42":2,"45":1,"46":2,"47":3,"50":2,"62":4,"63":9,"64":6,"106":96,"156":21,"157":2}}],["converting",{"0":{"154":1}}],["converted",{"2":{"153":1,"157":4}}],["convert",{"2":{"18":1,"27":3,"106":7,"119":2,"124":1,"154":1,"156":1,"157":2}}],["containing",{"2":{"157":1,"159":1}}],["container",{"2":{"106":1,"124":1,"157":1}}],["contains",{"2":{"33":1,"38":1,"91":1,"106":4,"124":1,"156":2}}],["content",{"2":{"92":1}}],["context",{"2":{"18":1,"66":1,"106":1,"124":2,"156":1}}],["contrast",{"2":{"84":1,"105":1}}],["contribute",{"2":{"79":1}}],["contribution",{"0":{"78":1},"1":{"79":1,"80":1}}],["contributions",{"2":{"59":1}}],["contributing",{"2":{"60":1}}],["contiguous",{"2":{"106":12,"135":2,"137":4}}],["contiuous",{"2":{"21":1,"24":1,"106":1,"156":1}}],["continuousdomain",{"2":{"21":2,"106":2,"156":1}}],["continuous",{"0":{"21":1,"71":1},"1":{"22":1,"23":1},"2":{"17":1,"18":2,"21":2,"24":1,"31":1,"57":1,"65":1,"66":1,"71":1,"106":3,"156":3}}],["connecting",{"2":{"9":1,"106":1,"156":1}}],["connection",{"0":{"3":1}}],["connector",{"2":{"9":1,"106":1,"156":1}}],["cons=dictionary",{"2":{"159":1}}],["cons",{"2":{"159":31}}],["consecutive",{"2":{"69":1}}],["consistent",{"2":{"52":1,"106":1}}],["consisempty",{"2":{"9":1,"106":1,"156":1}}],["consider",{"2":{"53":1}}],["considered",{"2":{"40":2,"106":2,"159":1}}],["considers",{"2":{"7":1}}],["consin",{"2":{"9":1,"106":1,"156":1}}],["constriction",{"2":{"159":4}}],["constrains",{"2":{"159":1}}],["constrained",{"2":{"157":2,"159":2}}],["constraintprogrammingextensions",{"2":{"103":1}}],["constraintlearning",{"0":{"121":1},"2":{"32":1,"121":27,"139":1}}],["constraintmodels",{"0":{"31":1},"2":{"31":14,"59":1,"103":1}}],["constraintdomains",{"0":{"17":1},"1":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1},"2":{"17":1,"18":6,"21":8,"24":10,"28":3,"30":11,"57":1,"65":1,"66":2,"68":1,"69":1,"71":1,"103":1,"106":35,"123":1,"156":19}}],["constraintcommons",{"0":{"4":1},"1":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1},"2":{"4":1,"5":3,"7":6,"9":3,"11":1,"13":1,"15":1,"30":2,"33":1,"36":1,"60":1,"106":18,"123":1,"156":12,"157":2}}],["constraint",{"0":{"0":1,"2":1,"39":1,"41":1,"45":1,"49":1,"51":1,"53":1,"54":1,"56":1,"61":1,"63":1,"72":1,"81":1,"82":1,"104":1,"105":1,"132":1},"1":{"1":1,"3":1,"40":1,"42":1,"50":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"62":1,"64":1,"73":1,"74":1,"82":1,"83":1,"84":1},"2":{"0":7,"1":7,"2":9,"3":24,"4":1,"5":9,"11":1,"17":1,"19":3,"22":3,"25":3,"28":1,"32":1,"33":11,"34":12,"35":1,"36":3,"37":12,"38":8,"39":12,"40":20,"42":7,"44":5,"45":5,"46":6,"47":4,"48":3,"50":7,"51":2,"52":5,"53":3,"54":5,"56":6,"58":1,"59":1,"62":6,"63":6,"64":20,"66":1,"67":1,"68":4,"69":2,"91":7,"92":1,"103":5,"104":1,"105":5,"106":155,"121":4,"124":1,"126":1,"137":3,"156":38,"157":66,"159":33}}],["constraintsolver",{"2":{"103":1}}],["constraints",{"0":{"0":1,"1":1,"2":1,"3":1,"32":1,"33":1,"35":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"48":1,"49":1,"50":1,"58":1,"61":1,"62":1,"63":1,"64":1,"73":1,"92":1,"122":1},"1":{"1":1,"3":1,"33":1,"34":1,"36":1,"37":1,"38":1,"40":1,"42":1,"44":1,"45":2,"46":2,"47":2,"48":1,"50":1,"62":1,"64":1,"123":1},"2":{"0":9,"1":3,"2":12,"3":4,"4":1,"5":9,"7":3,"17":2,"32":3,"33":34,"34":4,"35":4,"36":8,"37":4,"38":26,"39":12,"40":4,"42":1,"43":2,"44":3,"45":3,"46":4,"47":3,"48":2,"50":1,"51":2,"58":3,"60":1,"62":2,"63":6,"64":2,"65":2,"71":1,"73":1,"83":1,"90":1,"91":2,"103":4,"104":3,"105":2,"106":75,"121":1,"122":1,"123":1,"129":1,"156":40,"157":1,"159":23}}],["constructor",{"2":{"31":1,"70":1,"121":3,"159":1}}],["constructing",{"2":{"31":1,"59":1}}],["construct",{"2":{"18":3,"21":3,"24":3,"30":1,"31":3,"106":6,"156":5,"159":3}}],["constant",{"2":{"5":1,"33":2,"36":1,"38":1,"106":3,"156":2}}],["cblstodo",{"2":{"91":4}}],["cbls",{"0":{"157":1},"2":{"0":6,"2":11,"39":8,"46":2,"63":4,"68":8,"69":4,"90":2,"91":3,"103":3,"105":3,"121":1,"157":49,"159":1}}],["c",{"2":{"0":9,"1":14,"2":12,"3":15,"19":1,"22":1,"25":1,"33":4,"34":8,"37":8,"38":4,"39":11,"40":19,"42":2,"46":3,"47":6,"50":4,"62":10,"63":6,"64":11,"106":116,"155":2,"156":24,"159":31}}],["3j+1",{"2":{"91":1}}],["3i+1",{"2":{"91":1}}],["324",{"2":{"71":1}}],["3+2=5",{"2":{"56":1}}],["39",{"0":{"58":1},"2":{"18":1,"19":1,"22":1,"25":1,"66":2,"90":1,"91":1,"106":6,"115":4,"116":4,"117":1,"119":1,"120":1,"123":11,"124":1,"135":2,"136":6,"139":1,"147":1,"152":1,"156":1,"159":4}}],["3",{"2":{"0":10,"1":17,"2":21,"3":15,"18":2,"21":2,"24":2,"31":6,"34":1,"37":1,"39":47,"40":33,"42":4,"45":2,"46":4,"47":7,"48":3,"50":6,"63":27,"64":26,"68":9,"69":3,"71":3,"91":6,"106":125,"139":1,"155":1,"156":3,"157":1,"159":1}}],["9×9",{"2":{"31":4}}],["9",{"2":{"0":2,"18":1,"21":1,"24":1,"31":4,"39":1,"91":7,"106":1,"156":1}}],["28",{"2":{"159":1}}],["225",{"2":{"106":1}}],["200",{"2":{"106":2,"121":1,"156":2}}],["2009",{"2":{"33":1,"38":1,"106":1,"156":1}}],["2",{"2":{"0":10,"1":15,"2":26,"3":16,"18":2,"21":2,"24":2,"31":5,"34":1,"37":1,"39":68,"40":40,"42":4,"45":2,"46":3,"47":7,"48":3,"50":3,"62":10,"63":33,"64":28,"68":6,"71":4,"91":2,"106":146,"139":1,"155":8,"156":3,"157":3,"159":1}}],["14",{"2":{"68":3}}],["15",{"2":{"39":1,"141":1,"144":1}}],["123",{"2":{"18":1,"21":1,"24":1,"68":3,"106":1,"156":1}}],["12",{"2":{"18":1,"21":1,"24":1,"63":1,"64":1,"68":3,"106":2,"156":1}}],["10000",{"2":{"159":1}}],["1000",{"2":{"155":4}}],["100",{"2":{"106":2,"155":1,"156":2,"159":1}}],["101",{"0":{"81":1},"1":{"82":1,"83":1,"84":1}}],["10^6",{"2":{"28":2,"106":2,"156":2}}],["10",{"2":{"2":2,"39":22,"40":27,"46":2,"53":1,"55":1,"56":2,"63":2,"103":1,"106":29,"141":1,"144":1,"155":1,"156":2,"159":2}}],["1≤z",{"2":{"39":2,"63":2}}],["1≤y",{"2":{"0":1,"2":2,"39":3,"63":2}}],["1≤x",{"2":{"0":2,"2":4,"39":7,"63":2}}],["1",{"2":{"0":30,"1":19,"2":44,"3":17,"15":2,"18":2,"21":2,"24":2,"31":3,"34":2,"37":2,"39":122,"40":34,"42":4,"45":2,"46":4,"47":5,"48":3,"50":4,"62":15,"63":61,"64":41,"68":3,"69":9,"71":1,"91":5,"106":174,"126":1,"127":1,"131":4,"139":8,"142":1,"145":2,"149":2,"154":4,"155":3,"156":6,"157":4,"159":4}}],["df",{"2":{"121":2,"131":24}}],["ds",{"2":{"121":2}}],["datatype",{"2":{"159":1}}],["dataframe",{"2":{"121":1,"131":2}}],["data",{"2":{"106":2,"137":2,"159":1}}],["due",{"2":{"90":1}}],["during",{"2":{"11":1,"106":1,"124":2}}],["d1",{"2":{"68":1,"69":1,"71":1}}],["done",{"2":{"153":1}}],["domath",{"2":{"141":1,"144":1}}],["domain",{"0":{"57":1},"2":{"18":19,"19":1,"21":12,"22":1,"24":15,"25":1,"28":2,"30":9,"31":1,"40":1,"57":1,"66":7,"68":4,"69":3,"71":3,"91":1,"103":1,"106":47,"121":3,"123":1,"127":4,"156":34,"159":20}}],["domains",{"0":{"17":1,"65":1,"67":1,"70":1,"71":1},"1":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"66":1,"67":1,"68":2,"69":2,"70":2,"71":1},"2":{"17":2,"18":4,"19":3,"21":9,"22":2,"24":7,"25":2,"27":2,"28":10,"30":1,"31":1,"55":2,"57":2,"65":3,"66":1,"67":1,"69":1,"70":1,"71":2,"83":1,"106":34,"121":2,"123":3,"131":11,"156":27,"159":3}}],["dom",{"2":{"106":8,"121":2,"131":4,"156":4}}],["download",{"2":{"90":1}}],["do",{"2":{"64":4,"106":6,"137":1,"156":1}}],["doesn",{"2":{"106":3,"147":1}}],["does",{"2":{"64":2,"106":9,"157":4}}],["documenter",{"2":{"115":4,"116":4,"117":1,"119":1,"120":1,"123":10,"124":1,"135":2,"136":6}}],["documentation",{"0":{"47":1},"2":{"31":1,"51":1,"90":1,"118":1,"121":1,"138":1,"140":1,"143":1,"147":1,"157":1,"159":1}}],["docstring",{"2":{"115":8,"116":8,"117":2,"119":2,"120":2,"123":20,"124":2,"135":4,"136":12,"157":23,"159":29}}],["doc",{"2":{"52":1}}],["d₂",{"2":{"21":2,"24":2,"106":2,"156":2}}],["d₁",{"2":{"21":2,"24":2,"106":2,"156":2}}],["draw",{"2":{"19":2,"22":1,"25":1,"30":1,"106":1,"123":1,"159":5}}],["d5",{"2":{"18":1,"21":1,"24":1,"106":1,"156":1}}],["d4",{"2":{"18":1,"21":1,"24":1,"68":1,"106":1,"156":1}}],["d3",{"2":{"18":1,"21":1,"24":1,"68":1,"71":1,"106":1,"156":1}}],["d2",{"2":{"18":1,"21":1,"24":1,"68":1,"69":1,"71":1,"106":1,"156":1}}],["dynamic",{"2":{"18":1,"21":1,"31":1,"66":1,"69":1,"106":3,"137":1,"156":1,"159":11}}],["d",{"2":{"15":1,"18":14,"19":29,"21":7,"22":23,"24":9,"25":26,"27":1,"30":12,"62":4,"66":7,"106":54,"121":2,"123":11,"131":2,"152":2,"153":2,"155":3,"156":22,"159":9}}],["dir",{"2":{"141":1,"144":1,"155":4}}],["directions",{"0":{"80":1},"2":{"106":1,"137":1}}],["directed",{"2":{"62":1,"106":1,"157":1}}],["direct",{"2":{"60":1}}],["directly",{"2":{"44":1,"46":1,"106":1,"157":1}}],["diff",{"2":{"106":4,"115":1,"116":1}}],["differs",{"0":{"84":1}}],["difference",{"2":{"13":2,"18":1,"21":1,"24":1,"33":1,"36":1,"106":12,"156":2}}],["different",{"2":{"0":5,"1":8,"5":1,"31":1,"33":4,"34":1,"36":2,"37":1,"38":2,"44":1,"45":6,"46":3,"47":6,"52":1,"60":1,"90":1,"91":1,"104":1,"106":29,"137":3,"146":1,"155":1,"156":4,"157":1,"159":1}}],["digits",{"2":{"91":2}}],["dive",{"0":{"96":1},"1":{"97":1,"98":1,"99":1},"2":{"73":1}}],["dispatch",{"2":{"106":1,"121":1,"137":1,"159":2}}],["displays",{"2":{"31":1}}],["display",{"2":{"31":13}}],["discuss",{"2":{"74":1,"89":1,"102":1}}],["discreteset",{"2":{"68":8,"157":6}}],["discretedomain",{"2":{"18":1,"19":3,"21":1,"22":3,"24":4,"25":3,"30":1,"106":7,"123":1,"131":1,"156":3}}],["discrete",{"0":{"24":1,"67":1},"1":{"25":1,"26":1,"68":1,"69":1,"70":1},"2":{"17":1,"18":1,"21":1,"24":4,"57":1,"65":1,"66":1,"67":2,"69":1,"106":5,"121":1,"156":5,"157":5,"159":1}}],["distributed",{"2":{"159":1}}],["distdifferent",{"2":{"46":2,"157":1}}],["dist",{"2":{"44":1,"45":6,"46":3,"47":5,"106":5,"159":1}}],["distinct",{"2":{"40":2,"91":2,"106":2,"157":1}}],["distances",{"2":{"31":4,"45":2,"47":1,"106":1,"157":1}}],["distance",{"2":{"18":2,"21":1,"24":1,"31":1,"47":3,"66":1,"106":8,"120":1,"156":5,"157":3,"159":1}}],["diagram",{"2":{"7":1,"62":4,"106":5,"156":1,"157":1}}],["diagrams",{"2":{"7":2,"106":1}}],["dictionaryview",{"2":{"159":1}}],["dictionary",{"2":{"5":1,"15":1,"31":3,"33":5,"38":5,"106":18,"137":2,"146":1,"147":1,"149":2,"151":1,"152":1,"155":1,"156":8,"159":6}}],["dictionaries",{"0":{"15":1},"1":{"16":1},"2":{"4":1,"15":1}}],["dict",{"2":{"5":3,"33":5,"38":5,"62":4,"106":12,"141":1,"144":1,"147":1,"149":2,"151":3,"152":3,"153":3,"155":1,"156":8}}],["dict=usual",{"2":{"5":1,"106":1,"156":1}}],["dimparameterdomain",{"2":{"30":1,"106":1,"123":1}}],["dimensions",{"2":{"30":1,"106":1}}],["dimension",{"2":{"5":1,"33":1,"36":1,"106":1,"157":5,"159":1}}],["dim=1",{"2":{"3":2,"106":2}}],["dim=2",{"2":{"2":2,"3":2,"106":2}}],["dim",{"2":{"2":1,"5":1,"33":1,"36":1,"63":1,"64":2,"106":3,"131":3,"157":7,"159":4}}],["deepcopy",{"2":{"159":1}}],["deeper",{"2":{"73":1}}],["debugging",{"2":{"159":1}}],["debinarize",{"2":{"106":1,"127":1,"156":1}}],["deprecated",{"2":{"157":1}}],["dependencies",{"2":{"155":1}}],["depend",{"2":{"106":1,"137":1}}],["depending",{"2":{"90":1,"147":1}}],["depends",{"2":{"18":1,"66":1,"106":1,"156":1,"159":1}}],["devops",{"2":{"147":2,"155":1}}],["develop",{"2":{"147":1}}],["developing",{"2":{"51":1}}],["developers",{"2":{"4":1}}],["development",{"2":{"4":1,"147":1}}],["denotes",{"2":{"106":2}}],["derived",{"2":{"106":1,"157":1}}],["delta",{"2":{"159":6}}],["delegates",{"2":{"106":1,"137":1}}],["delete",{"2":{"18":1,"25":3,"66":1,"106":5,"156":4,"159":13}}],["delineation",{"2":{"106":2,"157":1}}],["details",{"2":{"115":4,"116":4,"117":1,"119":1,"120":1,"123":10,"124":1,"135":2,"136":6}}],["detailed",{"2":{"65":1}}],["determine",{"2":{"106":2,"156":1}}],["determined",{"2":{"28":1,"106":1,"156":1,"159":1}}],["determining",{"2":{"66":1}}],["deterministic",{"2":{"7":1,"106":1,"156":1}}],["dedicated",{"2":{"45":1}}],["decrement",{"2":{"159":1}}],["decrease",{"2":{"159":2}}],["decreasing",{"2":{"1":8,"106":8}}],["decay",{"2":{"159":3}}],["declare",{"2":{"106":1,"157":1}}],["decisions",{"2":{"104":1}}],["decision",{"2":{"7":3,"62":1,"106":3,"156":1,"157":1}}],["descent",{"0":{"131":1},"2":{"121":1}}],["descriptions",{"2":{"33":4,"38":4,"106":4,"156":4}}],["description",{"2":{"33":1,"38":1,"45":1,"106":3,"156":2,"157":12,"159":10}}],["described",{"2":{"33":1,"36":1}}],["describes",{"2":{"31":1}}],["describe",{"2":{"5":1,"33":4,"36":2,"38":2,"106":3,"107":1,"110":1,"113":1,"131":1,"133":1,"156":2,"159":3}}],["design",{"2":{"32":1,"35":1}}],["designed",{"2":{"4":1,"32":1,"35":1,"44":1,"46":1,"146":1}}],["defines",{"2":{"21":1,"24":1,"46":1,"106":2,"124":1,"156":1,"157":1}}],["defined",{"0":{"57":1,"62":1},"2":{"18":1,"24":1,"33":1,"38":1,"40":1,"44":3,"47":1,"48":3,"57":1,"65":1,"69":1,"91":2,"106":9,"115":1,"121":2,"135":1,"142":1,"145":1,"147":1,"156":2,"157":4,"159":1}}],["define",{"2":{"17":1,"33":1,"38":1,"44":1,"45":2,"48":1,"65":1,"82":1,"91":1,"106":6,"156":2,"157":1}}],["defining",{"0":{"17":1,"45":1,"65":1},"1":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1},"2":{"33":1,"38":1,"44":1,"46":1,"66":1,"106":1,"156":1,"157":2}}],["definition",{"0":{"0":1,"2":1,"39":1,"41":1,"49":1,"61":1,"63":1},"1":{"1":1,"3":1,"40":1,"42":1,"50":1,"62":1,"64":1},"2":{"32":1,"35":1,"53":1,"54":1,"55":1,"56":1,"106":1}}],["default",{"0":{"149":1},"2":{"5":3,"19":1,"28":5,"31":9,"33":3,"34":1,"37":1,"38":3,"40":1,"70":1,"106":21,"121":4,"127":1,"129":1,"142":9,"145":1,"147":3,"149":2,"156":14,"159":2}}],["defaults",{"2":{"1":1,"5":1,"15":1,"106":8,"121":2,"156":2}}],["after",{"2":{"153":1}}],["affects",{"2":{"114":1,"134":1}}],["affect",{"2":{"106":1,"156":1}}],["authors",{"2":{"146":1}}],["auto",{"2":{"131":1}}],["automated",{"2":{"106":1}}],["automatically",{"2":{"28":1,"106":1}}],["automata",{"2":{"7":2,"106":1}}],["automaton",{"2":{"5":1,"7":5,"30":4,"33":1,"36":1,"62":7,"106":16,"123":2,"156":3,"157":2}}],["among",{"2":{"121":1,"159":1}}],["amount",{"2":{"31":1}}],["aggragation",{"2":{"107":1}}],["aggregate",{"2":{"106":1,"108":1}}],["aggregations",{"0":{"108":1},"2":{"106":1,"109":1,"156":1}}],["aggregation",{"0":{"107":1},"1":{"108":1,"109":1},"2":{"106":4,"109":1,"156":4}}],["ag",{"2":{"106":2,"108":2}}],["against",{"2":{"42":1,"106":2,"137":1}}],["again",{"2":{"31":1}}],["avoid",{"2":{"106":2,"156":1,"157":2,"159":1}}],["available",{"2":{"31":2,"33":1,"38":1,"44":1,"46":1,"90":2,"103":1,"106":2,"137":1,"156":1,"159":1}}],["a2",{"2":{"39":2}}],["a1",{"2":{"39":2}}],["achieve",{"2":{"146":1}}],["accurate",{"2":{"131":2}}],["according",{"2":{"106":1,"137":1,"155":1,"157":1}}],["access",{"2":{"18":1,"106":5,"124":1,"156":4,"159":20}}],["acceptable",{"2":{"106":2,"157":1}}],["accepted",{"2":{"62":2,"106":4,"156":2,"157":1}}],["accepts",{"2":{"7":3,"30":1,"31":4,"106":3,"123":1,"156":1}}],["accept",{"2":{"7":6,"30":3,"106":7,"123":3,"156":1}}],["across",{"2":{"60":1,"155":1}}],["action",{"2":{"106":2,"156":2}}],["actual",{"2":{"54":1,"106":1,"155":1,"156":1}}],["acts",{"2":{"32":1,"35":1}}],["appropriate",{"2":{"106":1,"137":1,"152":1,"154":1}}],["approach",{"2":{"91":1,"104":2}}],["appear",{"2":{"40":3,"106":3}}],["applies",{"2":{"106":1,"119":1,"157":1}}],["applied",{"2":{"34":1,"37":1,"54":1,"76":1,"91":1,"106":3,"137":1,"156":2,"157":1,"159":2}}],["applications",{"0":{"76":1}}],["application",{"2":{"32":1,"35":1,"52":1,"54":1,"106":1}}],["applying",{"0":{"75":1},"1":{"76":1,"77":1}}],["apply",{"2":{"34":4,"37":4,"106":7,"137":2,"156":5}}],["apicbls",{"2":{"68":1,"69":1,"71":1}}],["apis",{"0":{"46":1}}],["api",{"0":{"45":1,"58":1,"106":1,"139":1,"156":1},"2":{"33":2,"36":2,"44":1,"46":1,"51":1,"139":1}}],["apixcspjumpmoi",{"2":{"0":3,"2":4,"39":4,"46":1,"63":2}}],["advantages",{"2":{"89":1}}],["advanced",{"0":{"72":1},"1":{"73":1,"74":1},"2":{"4":1}}],["adjusted",{"2":{"28":1,"106":1}}],["adds",{"2":{"106":4}}],["added",{"2":{"45":1,"46":1,"157":1}}],["adding",{"2":{"33":2,"38":2,"106":2,"156":2}}],["additional",{"2":{"28":1,"106":1,"156":1}}],["additionally",{"2":{"18":1,"66":1,"106":1,"156":1}}],["add",{"2":{"18":1,"24":2,"44":1,"45":1,"66":1,"68":8,"69":4,"90":1,"91":4,"106":4,"156":3,"157":9,"159":20}}],["aka",{"2":{"17":1}}],["absolute",{"2":{"106":2}}],["abs",{"2":{"33":1,"38":1,"45":2,"46":2,"106":5,"115":1,"116":1,"156":1}}],["abstractstring",{"2":{"159":2}}],["abstractstring=",{"2":{"9":1,"106":1,"156":1}}],["abstractstate",{"2":{"159":1}}],["abstractsolver",{"2":{"159":70}}],["abstractscalarset",{"2":{"157":2}}],["abstractscalarfunction",{"2":{"157":1}}],["abstractoptimizer",{"2":{"106":2,"121":2,"129":2,"131":1,"156":1,"157":1}}],["abstractmatrix",{"2":{"31":4}}],["abstractmultivalueddecisiondiagram",{"2":{"7":3,"106":3,"156":1,"157":1}}],["abstractrange",{"2":{"18":1,"21":1,"24":2,"106":2,"156":2}}],["abstractdomain",{"0":{"66":1},"2":{"18":5,"19":6,"21":4,"22":5,"24":4,"25":5,"27":1,"30":10,"66":5,"106":25,"123":2,"156":10,"159":6}}],["abstractdictionary",{"2":{"15":1,"106":1,"156":1}}],["abstractdict",{"2":{"15":1,"106":1,"156":1}}],["abstractautomaton`",{"2":{"62":1,"106":1}}],["abstractautomaton",{"2":{"7":3,"30":1,"62":2,"106":6,"156":1,"157":2}}],["abstract",{"2":{"4":1,"7":2,"18":1,"21":1,"24":1,"66":2,"106":6,"121":2,"129":1,"156":3,"159":2}}],["abstractvectorset",{"2":{"157":22}}],["abstractvector",{"2":{"3":4,"42":2,"50":1,"64":5,"106":31,"119":1,"135":9,"159":1}}],["about",{"0":{"122":1},"1":{"123":1},"2":{"17":1,"32":1,"35":1,"65":1,"103":1,"122":1,"157":1,"158":1,"159":1}}],["attribution",{"2":{"159":1}}],["attributed",{"2":{"159":6}}],["attribute",{"2":{"159":2}}],["attached",{"2":{"159":1}}],["atmost",{"2":{"39":1,"157":2}}],["atleast",{"2":{"39":1,"157":2}}],["atoms",{"2":{"31":1}}],["at",{"2":{"7":1,"31":1,"33":1,"38":1,"39":12,"40":8,"64":2,"66":1,"71":1,"90":1,"106":15,"121":2,"124":2,"127":1,"156":3,"157":3,"159":1}}],["alternative",{"2":{"124":1}}],["although",{"2":{"90":1}}],["algorithm",{"2":{"105":2,"106":4,"121":3,"156":4}}],["algorithms",{"2":{"98":1,"105":1}}],["already",{"2":{"91":1,"106":3,"115":1,"121":1,"135":1,"159":1}}],["also",{"2":{"32":1,"35":1,"40":3,"55":1,"65":1,"91":1,"106":5,"117":1,"137":1,"154":1,"156":2}}],["along",{"2":{"5":1,"33":1,"36":1,"51":1,"90":1,"106":1}}],["allocs",{"2":{"154":4,"155":1}}],["allocations",{"2":{"106":17,"135":8,"155":1}}],["allocation",{"2":{"104":1}}],["allowing",{"2":{"106":3,"137":1,"157":1}}],["allows",{"2":{"69":1}}],["allow",{"2":{"48":1}}],["allequal",{"2":{"0":1,"157":2}}],["alldifferent",{"2":{"0":2,"91":5,"157":2}}],["all",{"2":{"0":10,"1":24,"5":1,"13":1,"21":1,"31":1,"33":4,"34":1,"36":1,"37":1,"38":3,"40":1,"48":1,"51":1,"66":1,"90":1,"91":2,"103":1,"105":1,"106":45,"117":1,"119":1,"137":1,"139":2,"141":1,"144":1,"156":10,"157":6,"159":4}}],["aspect",{"2":{"65":1}}],["aspects",{"0":{"60":1}}],["assert",{"2":{"106":1,"124":1}}],["associated",{"2":{"31":1,"91":1,"124":1,"150":1}}],["assigned",{"2":{"55":1}}],["assign",{"2":{"31":1,"106":1,"156":1,"159":1}}],["assignments",{"2":{"56":1,"106":1,"156":1}}],["assignment",{"2":{"31":1,"52":1,"55":1,"106":1,"156":1}}],["as",{"2":{"4":1,"5":2,"7":1,"11":1,"21":1,"24":3,"31":3,"32":2,"33":6,"35":1,"36":3,"38":3,"40":3,"44":3,"46":2,"47":1,"51":1,"53":1,"55":1,"57":1,"62":2,"65":1,"68":1,"69":5,"70":2,"71":2,"83":1,"90":1,"91":1,"103":1,"104":2,"106":29,"115":1,"119":2,"121":1,"124":1,"135":1,"137":1,"139":1,"142":1,"145":1,"147":5,"148":1,"156":8,"157":4,"159":6}}],["anonymous",{"2":{"106":1,"119":1}}],["another",{"2":{"3":2,"34":1,"37":1,"103":1,"106":2}}],["angles",{"2":{"104":1}}],["annealing",{"2":{"98":1}}],["analyze",{"2":{"95":1,"104":1}}],["analyzing",{"0":{"93":1},"1":{"94":1,"95":1}}],["analysis",{"0":{"95":1,"102":1},"2":{"102":1,"104":1}}],["any",{"0":{"124":1},"2":{"9":1,"18":2,"19":1,"22":1,"25":1,"31":1,"47":1,"64":6,"66":1,"106":19,"129":1,"147":1,"156":8,"157":4,"159":1}}],["an",{"0":{"45":1},"2":{"1":3,"4":1,"5":3,"7":2,"9":1,"18":2,"21":6,"22":1,"24":3,"25":1,"28":5,"31":3,"33":3,"36":3,"40":1,"45":1,"46":1,"47":1,"51":1,"55":1,"62":3,"66":2,"77":1,"91":1,"92":2,"105":3,"106":64,"119":3,"121":7,"124":5,"129":1,"133":1,"137":1,"146":1,"147":1,"148":1,"154":1,"155":1,"156":23,"157":12,"159":11}}],["and",{"0":{"0":1,"2":1,"17":1,"33":1,"34":1,"37":1,"39":1,"40":1,"41":1,"49":1,"61":1,"63":1,"64":1,"65":1,"73":1,"74":1,"76":1,"78":1,"83":1,"87":1,"88":1,"93":1,"95":1,"100":1},"1":{"1":1,"3":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"40":1,"42":1,"50":1,"62":1,"64":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"79":1,"80":1,"89":1,"90":1,"91":1,"94":1,"95":1,"101":1,"102":1},"2":{"3":2,"4":4,"5":1,"7":1,"9":1,"11":1,"13":1,"17":2,"18":2,"21":2,"24":1,"28":1,"30":2,"31":13,"32":3,"33":1,"34":4,"35":3,"37":4,"38":1,"39":2,"40":1,"43":1,"44":1,"47":3,"48":1,"50":2,"51":3,"52":1,"53":2,"54":1,"55":2,"56":3,"57":1,"58":2,"59":2,"60":2,"62":1,"65":5,"66":3,"69":1,"73":1,"74":1,"76":1,"77":1,"79":1,"80":1,"82":1,"83":1,"84":1,"86":1,"87":1,"89":2,"90":2,"91":4,"92":2,"94":2,"95":1,"98":1,"99":1,"101":1,"102":1,"103":3,"104":8,"105":3,"106":65,"114":1,"119":1,"121":10,"123":2,"124":3,"126":1,"127":1,"134":1,"135":5,"137":3,"139":1,"140":1,"143":1,"147":1,"149":1,"155":2,"156":23,"157":10,"159":11}}],["arrange",{"2":{"139":3}}],["arrangement",{"2":{"121":1}}],["array",{"2":{"39":1}}],["ar",{"2":{"106":2,"111":2}}],["arxiv",{"2":{"33":1,"38":1,"106":1,"156":1}}],["arbitrary",{"0":{"70":1},"2":{"24":1,"70":1,"106":2,"151":1}}],["arbitrarydomain",{"2":{"24":1,"106":1}}],["argmax",{"2":{"159":3}}],["argument",{"2":{"31":4,"33":1,"36":1,"106":7,"157":1}}],["arguments",{"2":{"1":3,"3":4,"5":1,"18":1,"21":1,"28":2,"31":1,"33":4,"34":3,"36":1,"37":3,"38":3,"40":4,"42":1,"47":1,"50":1,"62":2,"64":2,"106":44,"156":16,"157":27,"159":8}}],["args",{"2":{"18":4,"28":1,"34":4,"37":4,"66":3,"106":13,"121":3,"129":1,"156":10}}],["arithmetic",{"0":{"110":1,"111":1},"1":{"111":1,"112":1},"2":{"5":1,"33":1,"36":1,"106":6,"110":1,"112":2,"156":5}}],["areas",{"2":{"80":1}}],["are",{"2":{"1":10,"4":1,"5":1,"11":1,"17":1,"21":1,"24":1,"31":5,"33":3,"34":2,"36":3,"37":2,"43":1,"44":4,"45":2,"47":2,"48":4,"57":1,"59":1,"60":1,"64":2,"65":1,"66":1,"69":1,"70":1,"91":1,"103":2,"104":2,"106":42,"109":1,"112":1,"117":1,"124":2,"135":8,"137":1,"142":1,"145":1,"147":1,"148":1,"151":1,"152":1,"154":2,"156":5,"157":8,"159":2}}],["a",{"0":{"56":1,"58":1,"59":1,"124":1,"154":1},"2":{"0":2,"1":3,"2":1,"3":22,"4":1,"5":4,"7":11,"15":2,"18":9,"19":19,"21":8,"22":17,"24":8,"25":17,"28":9,"30":15,"31":26,"32":1,"33":10,"34":5,"35":2,"36":4,"37":5,"38":6,"40":13,"42":8,"44":10,"45":2,"46":4,"47":5,"48":4,"50":8,"51":1,"52":5,"53":6,"54":5,"55":4,"56":3,"58":2,"59":1,"62":29,"64":8,"66":4,"68":2,"69":2,"70":2,"77":1,"90":2,"91":12,"103":7,"104":4,"105":7,"106":284,"108":2,"111":2,"119":8,"120":2,"121":23,"123":5,"124":16,"126":2,"127":7,"129":1,"133":1,"137":10,"139":3,"140":1,"143":1,"146":3,"147":8,"148":2,"149":1,"153":1,"154":1,"155":1,"156":79,"157":48,"159":51}}],["jacop",{"2":{"103":1}}],["j+1",{"2":{"91":1}}],["j",{"2":{"91":1}}],["joinpath",{"2":{"155":3}}],["join",{"2":{"79":1}}],["joining",{"0":{"79":1}}],["just",{"2":{"151":1}}],["jumpcbls",{"2":{"68":1,"69":1,"71":1}}],["jump",{"2":{"0":9,"2":11,"17":1,"31":17,"39":12,"44":1,"46":3,"51":1,"63":6,"65":1,"68":2,"69":2,"90":3,"91":2,"103":1,"157":10,"159":1}}],["juliajump",{"2":{"157":3}}],["juliajulia>",{"2":{"139":1,"141":1,"144":1}}],["julia>",{"2":{"141":1,"144":1}}],["juliapost",{"2":{"159":1}}],["juliaperfchecker",{"2":{"150":1,"151":1,"153":1}}],["juliapredicate",{"2":{"157":1}}],["juliapredict",{"2":{"121":1}}],["juliapreliminaries",{"2":{"121":1}}],["juliaparameter",{"2":{"121":1}}],["juliaparams",{"2":{"106":1,"156":1}}],["juliapairvarsparameterdomain",{"2":{"30":1,"106":1}}],["juliaqubogradientoptimizer",{"2":{"121":1}}],["juliaqubo",{"2":{"106":2,"121":1,"126":2,"156":1}}],["juliaqap",{"2":{"31":1}}],["juliaweights",{"2":{"106":3,"156":3}}],["juliatrain",{"2":{"106":1,"121":2,"129":1,"156":1}}],["juliatransformation",{"2":{"106":1,"137":1,"156":1}}],["juliatr",{"2":{"106":19,"135":9}}],["juliato",{"2":{"18":1,"106":1,"156":1}}],["juliaremote",{"2":{"159":2}}],["juliaregularization",{"2":{"106":1,"156":1}}],["juliareduce",{"2":{"106":1,"119":1}}],["juliarangedomain",{"2":{"24":1,"106":1,"156":1}}],["juliahamming",{"2":{"106":1,"120":1,"156":1}}],["juliafunction",{"2":{"149":1,"152":1,"154":1}}],["juliafunctions",{"2":{"106":1,"124":1}}],["juliafor",{"2":{"91":2}}],["juliafake",{"2":{"30":1,"106":1}}],["juliafakeautomaton",{"2":{"30":1,"106":1}}],["juliaup",{"2":{"90":1}}],["juliausual",{"2":{"33":1,"38":1,"106":3,"156":2}}],["juliausing",{"2":{"0":9,"2":12,"39":12,"46":2,"63":6,"68":3,"69":1,"71":1,"90":2,"155":1}}],["juliano",{"2":{"121":1}}],["julianbits",{"2":{"106":2,"124":1,"156":1}}],["julian",{"2":{"31":1}}],["juliagolomb",{"2":{"31":1}}],["juliageneralstate",{"2":{"159":1}}],["juliagenerate",{"2":{"30":1,"106":5,"121":1,"123":1,"124":2,"156":1}}],["juliaget",{"2":{"18":1,"106":1,"156":1,"159":12}}],["juliavalue",{"2":{"91":1}}],["juliavalsparameterdomain",{"2":{"30":1,"106":1}}],["juliavalparameterdomain",{"2":{"30":1,"106":1}}],["juliavariable",{"2":{"159":3}}],["juliavar",{"2":{"19":1,"22":1,"25":1,"159":1}}],["juliao",{"2":{"159":1}}],["juliaobjective",{"2":{"159":4}}],["juliaoptions",{"2":{"159":1}}],["juliaoptimizer",{"2":{"157":2}}],["juliaoptimize",{"2":{"91":1,"121":1}}],["juliaopparameterdomain",{"2":{"30":1,"106":1}}],["juliaoversample",{"2":{"11":1,"106":1,"156":1}}],["julialoss",{"2":{"121":1}}],["julialeadsolver",{"2":{"159":1}}],["julialearn",{"2":{"106":1,"156":1}}],["julialength",{"2":{"22":1,"25":1,"106":1,"124":1,"159":5}}],["julialazy",{"2":{"106":2,"119":2,"156":2}}],["julialayers",{"2":{"106":1}}],["julialayer",{"2":{"106":1,"124":1}}],["julialanguageparameterdomain",{"2":{"30":1,"106":1}}],["juliais",{"2":{"106":2,"124":1,"127":1,"156":1,"159":2}}],["juliaicnlocalsearchoptimizer",{"2":{"121":1}}],["juliaicngeneticoptimizer",{"2":{"121":1}}],["juliaicnconfig",{"2":{"121":1}}],["juliaicn",{"2":{"106":1,"121":1,"156":1}}],["juliaidparameterdomain",{"2":{"30":1,"106":1}}],["juliaintention",{"2":{"157":1}}],["juliaintersect",{"2":{"21":2,"24":1,"106":2,"156":1}}],["juliaintervals",{"2":{"21":1,"106":1}}],["juliaincsert",{"2":{"15":1,"106":1,"156":1}}],["juliabinarize",{"2":{"106":1,"127":1,"156":1}}],["juliaboolparameterdomain",{"2":{"30":1,"106":1}}],["juliabase",{"2":{"19":13,"21":1,"22":12,"24":1,"25":13,"27":2,"30":4,"31":4,"106":17,"123":4,"156":1,"157":5}}],["juliastop",{"2":{"159":1}}],["juliastatus",{"2":{"159":1}}],["juliastruct",{"2":{"106":1,"121":1,"131":1,"156":1}}],["juliaspecialize",{"2":{"159":2}}],["juliasolve",{"2":{"159":2}}],["juliasolution",{"2":{"159":1}}],["juliascalarfunction",{"2":{"157":1}}],["juliasub",{"2":{"121":1}}],["juliasudoku",{"2":{"31":1}}],["juliasudokuinstance",{"2":{"31":2}}],["juliashow",{"2":{"106":2,"124":1,"156":1}}],["juliashrink",{"2":{"106":1}}],["juliaselected",{"2":{"106":1,"124":1}}],["juliasetdomain",{"2":{"24":1,"106":1,"156":1}}],["juliasymbols",{"2":{"106":1,"156":1}}],["juliasymbol",{"2":{"106":1,"124":1}}],["juliasymmetries",{"2":{"106":1,"156":1}}],["juliasymcon",{"2":{"9":1,"106":1,"156":1}}],["juliamodel",{"2":{"159":1}}],["juliamoi",{"2":{"157":17}}],["juliamoisupports",{"2":{"157":1}}],["juliamoisum",{"2":{"157":1}}],["juliamoiregular",{"2":{"157":1}}],["juliamoiordered",{"2":{"157":1}}],["juliamoinooverlap",{"2":{"157":1}}],["juliamoinvalues",{"2":{"157":1}}],["juliamoimultivalueddecisiondiagram",{"2":{"157":1}}],["juliamoiminimum",{"2":{"157":1}}],["juliamoimaximum",{"2":{"157":1}}],["juliamoiintention",{"2":{"157":1}}],["juliamoiinstantiation",{"2":{"157":1}}],["juliamoiextension",{"2":{"157":1}}],["juliamoierror",{"2":{"157":1}}],["juliamoielement",{"2":{"157":1}}],["juliamoidistdifferent",{"2":{"157":1}}],["juliamoicumulative",{"2":{"157":1}}],["juliamoiconflicts",{"2":{"157":1}}],["juliamoiallequal",{"2":{"157":1}}],["juliamoialldifferent",{"2":{"157":1}}],["juliamts",{"2":{"159":1}}],["juliamutually",{"2":{"121":1}}],["juliamutable",{"2":{"31":1}}],["juliaminkowski",{"2":{"106":1,"120":1,"156":1}}],["juliamincut",{"2":{"31":1}}],["juliamax",{"2":{"159":1}}],["juliamainsolver",{"2":{"159":1}}],["juliamap",{"2":{"106":1,"119":1}}],["juliamanhattan",{"2":{"106":1,"120":1,"156":1}}],["juliamake",{"2":{"106":2,"121":3,"137":1}}],["juliamagic",{"2":{"31":1}}],["juliam",{"2":{"91":1}}],["juliamerge",{"2":{"21":1,"24":1,"106":1,"156":1}}],["juliamdd",{"2":{"7":1,"106":1,"156":1}}],["juliax",{"2":{"19":1,"22":1,"25":1,"159":1}}],["juliaxcsp",{"2":{"1":3,"3":4,"40":4,"42":1,"47":1,"50":1,"62":2,"64":2,"106":19}}],["juliad",{"2":{"159":1}}],["juliadraw",{"2":{"159":1}}],["juliadelete",{"2":{"159":2}}],["juliadebinarize",{"2":{"106":1,"127":1,"156":1}}],["juliadescribe",{"2":{"33":2,"38":2,"106":2,"156":2,"159":1}}],["juliadist",{"2":{"159":1}}],["juliadiscreteset",{"2":{"157":1}}],["juliadiscretedomain",{"2":{"24":1,"106":1,"156":1}}],["juliadisplay",{"2":{"31":1}}],["juliadimparameterdomain",{"2":{"30":1,"106":1}}],["juliad1",{"2":{"18":1,"21":1,"24":1,"106":1,"156":1}}],["juliadomain",{"2":{"18":6,"21":6,"24":6,"106":6,"121":1,"156":6,"159":1}}],["juliaempty",{"2":{"159":2}}],["juliaemptydomain",{"2":{"18":1,"106":1}}],["juliae",{"2":{"106":1}}],["juliaerror",{"2":{"34":1,"37":1,"106":1,"156":1,"157":1}}],["juliaexclu",{"2":{"106":1,"124":1}}],["juliaexplore",{"2":{"28":1,"106":2,"156":2}}],["juliaexploresettings",{"2":{"28":1,"106":1,"156":1}}],["juliaextract",{"2":{"5":3,"106":3,"156":3}}],["juliaδ",{"2":{"13":1,"106":1,"121":1,"156":1}}],["juliaas",{"2":{"106":2,"119":2}}],["juliaaggregation",{"2":{"106":1,"109":1,"156":1}}],["juliaag",{"2":{"106":2,"108":2}}],["juliaarithmetic",{"2":{"106":1,"112":1,"156":1}}],["juliaar",{"2":{"106":2,"111":2}}],["juliaargs",{"2":{"106":1,"156":1}}],["juliaarbitrarydomain",{"2":{"24":1,"106":1}}],["juliaadd",{"2":{"24":1,"106":1,"156":1,"159":2}}],["juliaat",{"2":{"7":1,"106":1}}],["juliaaccept",{"2":{"7":1,"30":1,"106":1,"123":1,"156":1}}],["juliaautomaton",{"2":{"7":1,"106":1,"156":1}}],["juliaabstractsolver",{"2":{"159":1}}],["juliaabstractoptimizer",{"2":{"106":1,"129":1}}],["juliaabstractdomain",{"2":{"18":1,"66":1,"106":1,"156":1}}],["juliaabstractautomaton",{"2":{"7":1,"106":1}}],["juliaabstractmultivalueddecisiondiagram",{"2":{"7":1,"106":1}}],["juliacompose",{"2":{"106":2,"156":2}}],["juliacompositionalnetworks",{"2":{"121":2}}],["juliacomposition",{"2":{"106":3,"156":3}}],["juliacomparison",{"2":{"106":1,"117":1,"156":1}}],["juliacode",{"2":{"106":1,"156":1}}],["juliaco",{"2":{"106":9,"115":1}}],["juliacontinuousdomain",{"2":{"21":1,"106":1,"156":1}}],["juliaconsisempty",{"2":{"9":1,"106":1,"156":1}}],["juliaconsin",{"2":{"9":1,"106":1,"156":1}}],["juliaconstriction",{"2":{"159":1}}],["juliaconstraint",{"0":{"79":1,"85":1},"1":{"86":1},"2":{"80":1,"86":1,"92":1,"106":1,"156":1,"159":3}}],["juliaconstraints",{"0":{"103":1},"1":{"104":1,"105":1},"2":{"33":4,"38":4,"103":6,"106":4,"156":4}}],["juliaconstraintcommons",{"2":{"7":1,"30":1,"106":1,"123":1}}],["juliaconst",{"2":{"5":2,"33":2,"36":2,"45":1,"106":2,"121":2}}],["juliaconcept",{"2":{"1":7,"3":4,"34":3,"37":3,"40":9,"42":1,"47":1,"50":1,"62":2,"64":4,"106":37,"156":3}}],["juliachemical",{"2":{"31":1}}],["juliac",{"2":{"1":3,"3":4,"40":4,"42":1,"50":1,"62":2,"64":2,"106":18}}],["julia",{"0":{"0":1,"2":1,"32":1,"35":1,"39":1,"41":1,"49":1,"61":1,"63":1,"88":1,"89":1,"90":1,"91":1,"92":1},"1":{"1":1,"3":1,"33":1,"34":1,"36":1,"37":1,"38":1,"40":1,"42":1,"50":1,"62":1,"64":1,"89":1,"90":1,"91":1},"2":{"0":3,"2":4,"4":2,"7":2,"17":1,"24":1,"28":1,"31":5,"33":3,"35":1,"36":2,"38":1,"39":4,"46":2,"51":3,"58":1,"60":1,"63":2,"65":1,"69":3,"71":3,"89":1,"90":7,"91":5,"103":8,"106":13,"115":1,"121":1,"135":1,"137":1,"142":1,"145":1,"147":3,"148":1,"156":5,"157":17,"159":83}}],["jc",{"0":{"45":1},"2":{"0":3,"2":4,"33":1,"36":1,"39":4,"44":1,"46":2,"51":1,"63":2,"68":1,"69":1,"71":1}}],["jl",{"0":{"0":1,"2":1,"4":1,"17":1,"31":1,"39":1,"41":1,"49":1,"61":1,"63":1,"118":1,"121":1,"125":1,"138":1,"146":1,"157":1,"159":1},"1":{"1":1,"3":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"40":1,"42":1,"50":1,"62":1,"64":1,"119":1,"120":1,"126":1,"147":1},"2":{"4":1,"17":1,"31":1,"32":1,"33":1,"34":2,"35":1,"37":2,"38":1,"44":1,"45":1,"46":1,"57":1,"58":1,"59":1,"60":1,"65":1,"66":1,"90":3,"103":8,"106":1,"118":1,"121":1,"124":1,"125":1,"138":1,"139":1,"140":2,"143":2,"146":2,"147":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":4,"156":1,"157":2,"159":2}}]],"serializationVersion":2}';export{i as default}; diff --git a/previews/PR53/assets/chunks/VPLocalSearchBox.BuP8eyVn.js b/previews/PR53/assets/chunks/VPLocalSearchBox.CkmE8alw.js similarity index 99% rename from previews/PR53/assets/chunks/VPLocalSearchBox.BuP8eyVn.js rename to previews/PR53/assets/chunks/VPLocalSearchBox.CkmE8alw.js index 5bd629e..91ffcbf 100644 --- a/previews/PR53/assets/chunks/VPLocalSearchBox.BuP8eyVn.js +++ b/previews/PR53/assets/chunks/VPLocalSearchBox.CkmE8alw.js @@ -1,4 +1,4 @@ -var kt=Object.defineProperty;var Ft=(a,e,t)=>e in a?kt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ce=(a,e,t)=>Ft(a,typeof e!="symbol"?e+"":e,t);import{X as Ot,s as ne,v as Ve,al as Rt,am as Ct,d as Mt,G as be,an as et,h as ye,ao as At,ap as Lt,x as Dt,aq as zt,y as Me,R as de,Q as we,ar as Pt,as as jt,Y as Vt,U as $t,a1 as Bt,o as Q,b as Wt,j as x,a2 as Kt,k as D,at as Jt,au as Ut,av as qt,c as Z,n as tt,e as _e,E as st,F as nt,a as he,t as fe,aw as Gt,p as Qt,l as Ht,ax as it,ay as Yt,ab as Zt,ah as Xt,az as es,_ as ts}from"./framework.B__MqT43.js";import{u as ss,c as ns}from"./theme.D04yKJoq.js";const is={root:()=>Ot(()=>import("./@localSearchIndexroot.W7AntqT5.js"),[])};/*! +var kt=Object.defineProperty;var Ft=(a,e,t)=>e in a?kt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ce=(a,e,t)=>Ft(a,typeof e!="symbol"?e+"":e,t);import{X as Ot,s as ne,v as Ve,al as Rt,am as Ct,d as Mt,G as be,an as et,h as ye,ao as At,ap as Lt,x as Dt,aq as zt,y as Me,R as de,Q as we,ar as Pt,as as jt,Y as Vt,U as $t,a1 as Bt,o as Q,b as Wt,j as x,a2 as Kt,k as D,at as Jt,au as Ut,av as qt,c as Z,n as tt,e as _e,E as st,F as nt,a as he,t as fe,aw as Gt,p as Qt,l as Ht,ax as it,ay as Yt,ab as Zt,ah as Xt,az as es,_ as ts}from"./framework.B__MqT43.js";import{u as ss,c as ns}from"./theme.Dx443mF7.js";const is={root:()=>Ot(()=>import("./@localSearchIndexroot.BAdut2hj.js"),[])};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var vt=["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])"],Ie=vt.join(","),mt=typeof Element>"u",re=mt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ne=!mt&&Element.prototype.getRootNode?function(a){var e;return a==null||(e=a.getRootNode)===null||e===void 0?void 0:e.call(a)}:function(a){return a==null?void 0:a.ownerDocument},ke=function a(e,t){var s;t===void 0&&(t=!0);var n=e==null||(s=e.getAttribute)===null||s===void 0?void 0:s.call(e,"inert"),r=n===""||n==="true",i=r||t&&e&&a(e.parentNode);return i},rs=function(e){var t,s=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return s===""||s==="true"},gt=function(e,t,s){if(ke(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ie));return t&&re.call(e,Ie)&&n.unshift(e),n=n.filter(s),n},bt=function a(e,t,s){for(var n=[],r=Array.from(e);r.length;){var i=r.shift();if(!ke(i,!1))if(i.tagName==="SLOT"){var o=i.assignedElements(),c=o.length?o:i.children,l=a(c,!0,s);s.flatten?n.push.apply(n,l):n.push({scopeParent:i,candidates:l})}else{var h=re.call(i,Ie);h&&s.filter(i)&&(t||!e.includes(i))&&n.push(i);var f=i.shadowRoot||typeof s.getShadowRoot=="function"&&s.getShadowRoot(i),v=!ke(f,!1)&&(!s.shadowRootFilter||s.shadowRootFilter(i));if(f&&v){var b=a(f===!0?i.children:f.children,!0,s);s.flatten?n.push.apply(n,b):n.push({scopeParent:i,candidates:b})}else r.unshift.apply(r,i.children)}}return n},yt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},ie=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||rs(e))&&!yt(e)?0:e.tabIndex},as=function(e,t){var s=ie(e);return s<0&&t&&!yt(e)?0:s},os=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},wt=function(e){return e.tagName==="INPUT"},cs=function(e){return wt(e)&&e.type==="hidden"},ls=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(s){return s.tagName==="SUMMARY"});return t},us=function(e,t){for(var s=0;ssummary:first-of-type"),i=r?e.parentElement:e;if(re.call(i,"details:not([open]) *"))return!0;if(!s||s==="full"||s==="legacy-full"){if(typeof n=="function"){for(var o=e;e;){var c=e.parentElement,l=Ne(e);if(c&&!c.shadowRoot&&n(c)===!0)return rt(e);e.assignedSlot?e=e.assignedSlot:!c&&l!==e.ownerDocument?e=l.host:e=c}e=o}if(ps(e))return!e.getClientRects().length;if(s!=="legacy-full")return!0}else if(s==="non-zero-area")return rt(e);return!1},ms=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var s=0;s=0)},bs=function a(e){var t=[],s=[];return e.forEach(function(n,r){var i=!!n.scopeParent,o=i?n.scopeParent:n,c=as(o,i),l=i?a(n.candidates):o;c===0?i?t.push.apply(t,l):t.push(o):s.push({documentOrder:r,tabIndex:c,item:n,isScope:i,content:l})}),s.sort(os).reduce(function(n,r){return r.isScope?n.push.apply(n,r.content):n.push(r.content),n},[]).concat(t)},ys=function(e,t){t=t||{};var s;return t.getShadowRoot?s=bt([e],t.includeContainer,{filter:$e.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:gs}):s=gt(e,t.includeContainer,$e.bind(null,t)),bs(s)},ws=function(e,t){t=t||{};var s;return t.getShadowRoot?s=bt([e],t.includeContainer,{filter:Fe.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):s=gt(e,t.includeContainer,Fe.bind(null,t)),s},ae=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return re.call(e,Ie)===!1?!1:$e(t,e)},_s=vt.concat("iframe").join(","),Ae=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return re.call(e,_s)===!1?!1:Fe(t,e)};/*! diff --git a/previews/PR53/assets/chunks/theme.D04yKJoq.js b/previews/PR53/assets/chunks/theme.Dx443mF7.js similarity index 99% rename from previews/PR53/assets/chunks/theme.D04yKJoq.js rename to previews/PR53/assets/chunks/theme.Dx443mF7.js index 1413ec0..38bb6e0 100644 --- a/previews/PR53/assets/chunks/theme.D04yKJoq.js +++ b/previews/PR53/assets/chunks/theme.Dx443mF7.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.BuP8eyVn.js","assets/chunks/framework.B__MqT43.js"])))=>i.map(i=>d[i]); -import{d as _,o as a,c as u,r as c,n as N,a as j,t as I,b as $,w as f,e as h,T as pe,_ as g,u as Je,i as Ye,f as Xe,g as fe,h as y,j as p,k as r,p as B,l as H,m as q,q as le,s as T,v as O,x as ee,y as R,z as he,A as _e,B as Qe,C as Ze,D as W,F as M,E,G as Te,H as te,I as k,J as D,K as we,L as ne,M as K,N as Y,O as xe,P as Ie,Q as ce,R as Ne,S as Me,U as oe,V as et,W as tt,X as nt,Y as Ae,Z as me,$ as ot,a0 as st,a1 as at,a2 as rt,a3 as Ce,a4 as it,a5 as lt,a6 as ct}from"./framework.B__MqT43.js";const ut=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(n){return(e,t)=>(a(),u("span",{class:N(["VPBadge",e.type])},[c(e.$slots,"default",{},()=>[j(I(e.text),1)])],2))}}),dt={key:0,class:"VPBackdrop"},vt=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(n){return(e,t)=>(a(),$(pe,{name:"fade"},{default:f(()=>[e.show?(a(),u("div",dt)):h("",!0)]),_:1}))}}),pt=g(vt,[["__scopeId","data-v-b06cdb19"]]),V=Je;function ft(n,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(n,e):(n(),(s=!0)&&setTimeout(()=>s=!1,e))}}function ue(n){return/^\//.test(n)?n:`/${n}`}function be(n){const{pathname:e,search:t,hash:s,protocol:o}=new URL(n,"http://a.com");if(Ye(n)||n.startsWith("#")||!o.startsWith("http")||!Xe(e))return n;const{site:i}=V(),l=e.endsWith("/")||e.endsWith(".html")?n:n.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${s}`);return fe(l)}function Q({correspondingLink:n=!1}={}){const{site:e,localeIndex:t,page:s,theme:o,hash:i}=V(),l=y(()=>{var v,m;return{label:(v=e.value.locales[t.value])==null?void 0:v.label,link:((m=e.value.locales[t.value])==null?void 0:m.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([v,m])=>l.value.label===m.label?[]:{text:m.label,link:ht(m.link||(v==="root"?"/":`/${v}/`),o.value.i18nRouting!==!1&&n,s.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:l}}function ht(n,e,t,s){return e?n.replace(/\/$/,"")+ue(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):n}const _t=n=>(B("data-v-951cab6c"),n=n(),H(),n),mt={class:"NotFound"},bt={class:"code"},kt={class:"title"},$t=_t(()=>p("div",{class:"divider"},null,-1)),gt={class:"quote"},yt={class:"action"},Pt=["href","aria-label"],St=_({__name:"NotFound",setup(n){const{theme:e}=V(),{currentLang:t}=Q();return(s,o)=>{var i,l,d,v,m;return a(),u("div",mt,[p("p",bt,I(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),p("h1",kt,I(((l=r(e).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),$t,p("blockquote",gt,I(((d=r(e).notFound)==null?void 0:d.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),p("div",yt,[p("a",{class:"link",href:r(fe)(r(t).link),"aria-label":((v=r(e).notFound)==null?void 0:v.linkLabel)??"go to home"},I(((m=r(e).notFound)==null?void 0:m.linkText)??"Take me home"),9,Pt)])])}}}),Vt=g(St,[["__scopeId","data-v-951cab6c"]]);function Be(n,e){if(Array.isArray(n))return Z(n);if(n==null)return[];e=ue(e);const t=Object.keys(n).sort((o,i)=>i.split("/").length-o.split("/").length).find(o=>e.startsWith(ue(o))),s=t?n[t]:[];return Array.isArray(s)?Z(s):Z(s.items,s.base)}function Lt(n){const e=[];let t=0;for(const s in n){const o=n[s];if(o.items){t=e.push(o);continue}e[t]||e.push({items:[]}),e[t].items.push(o)}return e}function Tt(n){const e=[];function t(s){for(const o of s)o.text&&o.link&&e.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&t(o.items)}return t(n),e}function de(n,e){return Array.isArray(e)?e.some(t=>de(n,t)):q(n,e.link)?!0:e.items?de(n,e.items):!1}function Z(n,e){return[...n].map(t=>{const s={...t},o=s.base||e;return o&&s.link&&(s.link=o+s.link),s.items&&(s.items=Z(s.items,o)),s})}function U(){const{frontmatter:n,page:e,theme:t}=V(),s=le("(min-width: 960px)"),o=T(!1),i=y(()=>{const C=t.value.sidebar,w=e.value.relativePath;return C?Be(C,w):[]}),l=T(i.value);O(i,(C,w)=>{JSON.stringify(C)!==JSON.stringify(w)&&(l.value=i.value)});const d=y(()=>n.value.sidebar!==!1&&l.value.length>0&&n.value.layout!=="home"),v=y(()=>m?n.value.aside==null?t.value.aside==="left":n.value.aside==="left":!1),m=y(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:t.value.aside!==!1),L=y(()=>d.value&&s.value),b=y(()=>d.value?Lt(l.value):[]);function P(){o.value=!0}function S(){o.value=!1}function A(){o.value?S():P()}return{isOpen:o,sidebar:l,sidebarGroups:b,hasSidebar:d,hasAside:m,leftAside:v,isSidebarEnabled:L,open:P,close:S,toggle:A}}function wt(n,e){let t;ee(()=>{t=n.value?document.activeElement:void 0}),R(()=>{window.addEventListener("keyup",s)}),he(()=>{window.removeEventListener("keyup",s)});function s(o){o.key==="Escape"&&n.value&&(e(),t==null||t.focus())}}function It(n){const{page:e,hash:t}=V(),s=T(!1),o=y(()=>n.value.collapsed!=null),i=y(()=>!!n.value.link),l=T(!1),d=()=>{l.value=q(e.value.relativePath,n.value.link)};O([e,n,t],d),R(d);const v=y(()=>l.value?!0:n.value.items?de(e.value.relativePath,n.value.items):!1),m=y(()=>!!(n.value.items&&n.value.items.length));ee(()=>{s.value=!!(o.value&&n.value.collapsed)}),_e(()=>{(l.value||v.value)&&(s.value=!1)});function L(){o.value&&(s.value=!s.value)}return{collapsed:s,collapsible:o,isLink:i,isActiveLink:l,hasActiveLink:v,hasChildren:m,toggle:L}}function Nt(){const{hasSidebar:n}=U(),e=le("(min-width: 960px)"),t=le("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:n.value?t.value:e.value)}}const ve=[];function He(n){return typeof n.outline=="object"&&!Array.isArray(n.outline)&&n.outline.label||n.outlineTitle||"On this page"}function ke(n){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:Mt(t),link:"#"+t.id,level:s}});return At(e,n)}function Mt(n){let e="";for(const t of n.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function At(n,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;n=n.filter(l=>l.level>=s&&l.level<=o),ve.length=0;for(const{element:l,link:d}of n)ve.push({element:l,link:d});const i=[];e:for(let l=0;l=0;v--){const m=n[v];if(m.level{requestAnimationFrame(i),window.addEventListener("scroll",s)}),Qe(()=>{l(location.hash)}),he(()=>{window.removeEventListener("scroll",s)});function i(){if(!t.value)return;const d=window.scrollY,v=window.innerHeight,m=document.body.offsetHeight,L=Math.abs(d+v-m)<1,b=ve.map(({element:S,link:A})=>({link:A,top:Bt(S)})).filter(({top:S})=>!Number.isNaN(S)).sort((S,A)=>S.top-A.top);if(!b.length){l(null);return}if(d<1){l(null);return}if(L){l(b[b.length-1].link);return}let P=null;for(const{link:S,top:A}of b){if(A>d+Ze()+4)break;P=S}l(P)}function l(d){o&&o.classList.remove("active"),d==null?o=null:o=n.value.querySelector(`a[href="${decodeURIComponent(d)}"]`);const v=o;v?(v.classList.add("active"),e.value.style.top=v.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Bt(n){let e=0;for(;n!==document.body;){if(n===null)return NaN;e+=n.offsetTop,n=n.offsetParent}return e}const Ht=["href","title"],Et=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(n){function e({target:t}){const s=t.href.split("#")[1],o=document.getElementById(decodeURIComponent(s));o==null||o.focus({preventScroll:!0})}return(t,s)=>{const o=W("VPDocOutlineItem",!0);return a(),u("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),u(M,null,E(t.headers,({children:i,link:l,title:d})=>(a(),u("li",null,[p("a",{class:"outline-link",href:l,onClick:e,title:d},I(d),9,Ht),i!=null&&i.length?(a(),$(o,{key:0,headers:i},null,8,["headers"])):h("",!0)]))),256))],2)}}}),Ee=g(Et,[["__scopeId","data-v-3f927ebe"]]),Dt={class:"content"},Ft={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Ot=_({__name:"VPDocAsideOutline",setup(n){const{frontmatter:e,theme:t}=V(),s=Te([]);te(()=>{s.value=ke(e.value.outline??t.value.outline)});const o=T(),i=T();return Ct(o,i),(l,d)=>(a(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:o},[p("div",Dt,[p("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),p("div",Ft,I(r(He)(r(t))),1),k(Ee,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),jt=g(Ot,[["__scopeId","data-v-b38bf2ff"]]),Ut={class:"VPDocAsideCarbonAds"},Gt=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(n){const e=()=>null;return(t,s)=>(a(),u("div",Ut,[k(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),zt=n=>(B("data-v-6d7b3c46"),n=n(),H(),n),Kt={class:"VPDocAside"},Rt=zt(()=>p("div",{class:"spacer"},null,-1)),qt=_({__name:"VPDocAside",setup(n){const{theme:e}=V();return(t,s)=>(a(),u("div",Kt,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),k(jt),c(t.$slots,"aside-outline-after",{},void 0,!0),Rt,c(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),$(Gt,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):h("",!0),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Wt=g(qt,[["__scopeId","data-v-6d7b3c46"]]);function Jt(){const{theme:n,page:e}=V();return y(()=>{const{text:t="Edit this page",pattern:s=""}=n.value.editLink||{};let o;return typeof s=="function"?o=s(e.value):o=s.replace(/:path/g,e.value.filePath),{url:o,text:t}})}function Yt(){const{page:n,theme:e,frontmatter:t}=V();return y(()=>{var m,L,b,P,S,A,C,w;const s=Be(e.value.sidebar,n.value.relativePath),o=Tt(s),i=Xt(o,G=>G.link.replace(/[?#].*$/,"")),l=i.findIndex(G=>q(n.value.relativePath,G.link)),d=((m=e.value.docFooter)==null?void 0:m.prev)===!1&&!t.value.prev||t.value.prev===!1,v=((L=e.value.docFooter)==null?void 0:L.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((b=i[l-1])==null?void 0:b.docFooterText)??((P=i[l-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((S=i[l-1])==null?void 0:S.link)},next:v?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=i[l+1])==null?void 0:A.docFooterText)??((C=i[l+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((w=i[l+1])==null?void 0:w.link)}}})}function Xt(n,e){const t=new Set;return n.filter(s=>{const o=e(s);return t.has(o)?!1:t.add(o)})}const F=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(n){const e=n,t=y(()=>e.tag??(e.href?"a":"span")),s=y(()=>e.href&&we.test(e.href)||e.target==="_blank");return(o,i)=>(a(),$(D(t.value),{class:N(["VPLink",{link:o.href,"vp-external-link-icon":s.value,"no-icon":o.noIcon}]),href:o.href?r(be)(o.href):void 0,target:o.target??(s.value?"_blank":void 0),rel:o.rel??(s.value?"noreferrer":void 0)},{default:f(()=>[c(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Qt={class:"VPLastUpdated"},Zt=["datetime"],xt=_({__name:"VPDocFooterLastUpdated",setup(n){const{theme:e,page:t,lang:s}=V(),o=y(()=>new Date(t.value.lastUpdated)),i=y(()=>o.value.toISOString()),l=T("");return R(()=>{ee(()=>{var d,v,m;l.value=new Intl.DateTimeFormat((v=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&v.forceLocale?s.value:void 0,((m=e.value.lastUpdated)==null?void 0:m.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(o.value)})}),(d,v)=>{var m;return a(),u("p",Qt,[j(I(((m=r(e).lastUpdated)==null?void 0:m.text)||r(e).lastUpdatedText||"Last updated")+": ",1),p("time",{datetime:i.value},I(l.value),9,Zt)])}}}),en=g(xt,[["__scopeId","data-v-475f71b8"]]),De=n=>(B("data-v-4f9813fa"),n=n(),H(),n),tn={key:0,class:"VPDocFooter"},nn={key:0,class:"edit-info"},on={key:0,class:"edit-link"},sn=De(()=>p("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),an={key:1,class:"last-updated"},rn={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},ln=De(()=>p("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),cn={class:"pager"},un=["innerHTML"],dn=["innerHTML"],vn={class:"pager"},pn=["innerHTML"],fn=["innerHTML"],hn=_({__name:"VPDocFooter",setup(n){const{theme:e,page:t,frontmatter:s}=V(),o=Jt(),i=Yt(),l=y(()=>e.value.editLink&&s.value.editLink!==!1),d=y(()=>t.value.lastUpdated),v=y(()=>l.value||d.value||i.value.prev||i.value.next);return(m,L)=>{var b,P,S,A;return v.value?(a(),u("footer",tn,[c(m.$slots,"doc-footer-before",{},void 0,!0),l.value||d.value?(a(),u("div",nn,[l.value?(a(),u("div",on,[k(F,{class:"edit-link-button",href:r(o).url,"no-icon":!0},{default:f(()=>[sn,j(" "+I(r(o).text),1)]),_:1},8,["href"])])):h("",!0),d.value?(a(),u("div",an,[k(en)])):h("",!0)])):h("",!0),(b=r(i).prev)!=null&&b.link||(P=r(i).next)!=null&&P.link?(a(),u("nav",rn,[ln,p("div",cn,[(S=r(i).prev)!=null&&S.link?(a(),$(F,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:f(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,un),p("span",{class:"title",innerHTML:r(i).prev.text},null,8,dn)]}),_:1},8,["href"])):h("",!0)]),p("div",vn,[(A=r(i).next)!=null&&A.link?(a(),$(F,{key:0,class:"pager-link next",href:r(i).next.link},{default:f(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,pn),p("span",{class:"title",innerHTML:r(i).next.text},null,8,fn)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),_n=g(hn,[["__scopeId","data-v-4f9813fa"]]),mn=n=>(B("data-v-83890dd9"),n=n(),H(),n),bn={class:"container"},kn=mn(()=>p("div",{class:"aside-curtain"},null,-1)),$n={class:"aside-container"},gn={class:"aside-content"},yn={class:"content"},Pn={class:"content-container"},Sn={class:"main"},Vn=_({__name:"VPDoc",setup(n){const{theme:e}=V(),t=ne(),{hasSidebar:s,hasAside:o,leftAside:i}=U(),l=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,v)=>{const m=W("Content");return a(),u("div",{class:N(["VPDoc",{"has-sidebar":r(s),"has-aside":r(o)}])},[c(d.$slots,"doc-top",{},void 0,!0),p("div",bn,[r(o)?(a(),u("div",{key:0,class:N(["aside",{"left-aside":r(i)}])},[kn,p("div",$n,[p("div",gn,[k(Wt,null,{"aside-top":f(()=>[c(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),p("div",yn,[p("div",Pn,[c(d.$slots,"doc-before",{},void 0,!0),p("main",Sn,[k(m,{class:N(["vp-doc",[l.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),k(_n,null,{"doc-footer-before":f(()=>[c(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(d.$slots,"doc-after",{},void 0,!0)])])]),c(d.$slots,"doc-bottom",{},void 0,!0)],2)}}}),Ln=g(Vn,[["__scopeId","data-v-83890dd9"]]),Tn=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(n){const e=n,t=y(()=>e.href&&we.test(e.href)),s=y(()=>e.tag||e.href?"a":"button");return(o,i)=>(a(),$(D(s.value),{class:N(["VPButton",[o.size,o.theme]]),href:o.href?r(be)(o.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[j(I(o.text),1)]),_:1},8,["class","href","target","rel"]))}}),wn=g(Tn,[["__scopeId","data-v-14206e74"]]),In=["src","alt"],Nn=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(n){return(e,t)=>{const s=W("VPImage",!0);return e.image?(a(),u(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),u("img",K({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(fe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,In)):(a(),u(M,{key:1},[k(s,K({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),k(s,K({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):h("",!0)}}}),x=g(Nn,[["__scopeId","data-v-35a7d0b8"]]),Mn=n=>(B("data-v-955009fc"),n=n(),H(),n),An={class:"container"},Cn={class:"main"},Bn={key:0,class:"name"},Hn=["innerHTML"],En=["innerHTML"],Dn=["innerHTML"],Fn={key:0,class:"actions"},On={key:0,class:"image"},jn={class:"image-container"},Un=Mn(()=>p("div",{class:"image-bg"},null,-1)),Gn=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(n){const e=Y("hero-image-slot-exists");return(t,s)=>(a(),u("div",{class:N(["VPHero",{"has-image":t.image||r(e)}])},[p("div",An,[p("div",Cn,[c(t.$slots,"home-hero-info-before",{},void 0,!0),c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),u("h1",Bn,[p("span",{innerHTML:t.name,class:"clip"},null,8,Hn)])):h("",!0),t.text?(a(),u("p",{key:1,innerHTML:t.text,class:"text"},null,8,En)):h("",!0),t.tagline?(a(),u("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Dn)):h("",!0)],!0),c(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),u("div",Fn,[(a(!0),u(M,null,E(t.actions,o=>(a(),u("div",{key:o.link,class:"action"},[k(wn,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link,target:o.target,rel:o.rel},null,8,["theme","text","href","target","rel"])]))),128))])):h("",!0),c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),u("div",On,[p("div",jn,[Un,c(t.$slots,"home-hero-image",{},()=>[t.image?(a(),$(x,{key:0,class:"image-src",image:t.image},null,8,["image"])):h("",!0)],!0)])])):h("",!0)])],2))}}),zn=g(Gn,[["__scopeId","data-v-955009fc"]]),Kn=_({__name:"VPHomeHero",setup(n){const{frontmatter:e}=V();return(t,s)=>r(e).hero?(a(),$(zn,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):h("",!0)}}),Rn=n=>(B("data-v-f5e9645b"),n=n(),H(),n),qn={class:"box"},Wn={key:0,class:"icon"},Jn=["innerHTML"],Yn=["innerHTML"],Xn=["innerHTML"],Qn={key:4,class:"link-text"},Zn={class:"link-text-value"},xn=Rn(()=>p("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),eo=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(n){return(e,t)=>(a(),$(F,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[p("article",qn,[typeof e.icon=="object"&&e.icon.wrap?(a(),u("div",Wn,[k(x,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),$(x,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),u("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Jn)):h("",!0),p("h2",{class:"title",innerHTML:e.title},null,8,Yn),e.details?(a(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,Xn)):h("",!0),e.linkText?(a(),u("div",Qn,[p("p",Zn,[j(I(e.linkText)+" ",1),xn])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),to=g(eo,[["__scopeId","data-v-f5e9645b"]]),no={key:0,class:"VPFeatures"},oo={class:"container"},so={class:"items"},ao=_({__name:"VPFeatures",props:{features:{}},setup(n){const e=n,t=y(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,o)=>s.features?(a(),u("div",no,[p("div",oo,[p("div",so,[(a(!0),u(M,null,E(s.features,i=>(a(),u("div",{key:i.title,class:N(["item",[t.value]])},[k(to,{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))])])])):h("",!0)}}),ro=g(ao,[["__scopeId","data-v-d0a190d7"]]),io=_({__name:"VPHomeFeatures",setup(n){const{frontmatter:e}=V();return(t,s)=>r(e).features?(a(),$(ro,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):h("",!0)}}),lo=_({__name:"VPHomeContent",setup(n){const{width:e}=xe({initialWidth:0,includeScrollbar:!1});return(t,s)=>(a(),u("div",{class:"vp-doc container",style:Ie(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[c(t.$slots,"default",{},void 0,!0)],4))}}),co=g(lo,[["__scopeId","data-v-7a48a447"]]),uo={class:"VPHome"},vo=_({__name:"VPHome",setup(n){const{frontmatter:e}=V();return(t,s)=>{const o=W("Content");return a(),u("div",uo,[c(t.$slots,"home-hero-before",{},void 0,!0),k(Kn,null,{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(t.$slots,"home-hero-after",{},void 0,!0),c(t.$slots,"home-features-before",{},void 0,!0),k(io),c(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),$(co,{key:0},{default:f(()=>[k(o)]),_:1})):(a(),$(o,{key:1}))])}}}),po=g(vo,[["__scopeId","data-v-cbb6ec48"]]),fo={},ho={class:"VPPage"};function _o(n,e){const t=W("Content");return a(),u("div",ho,[c(n.$slots,"page-top"),k(t),c(n.$slots,"page-bottom")])}const mo=g(fo,[["render",_o]]),bo=_({__name:"VPContent",setup(n){const{page:e,frontmatter:t}=V(),{hasSidebar:s}=U();return(o,i)=>(a(),u("div",{class:N(["VPContent",{"has-sidebar":r(s),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?c(o.$slots,"not-found",{key:0},()=>[k(Vt)],!0):r(t).layout==="page"?(a(),$(mo,{key:1},{"page-top":f(()=>[c(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),$(po,{key:2},{"home-hero-before":f(()=>[c(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),$(D(r(t).layout),{key:3})):(a(),$(Ln,{key:4},{"doc-top":f(()=>[c(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[c(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[c(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[c(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[c(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),ko=g(bo,[["__scopeId","data-v-91765379"]]),$o={class:"container"},go=["innerHTML"],yo=["innerHTML"],Po=_({__name:"VPFooter",setup(n){const{theme:e,frontmatter:t}=V(),{hasSidebar:s}=U();return(o,i)=>r(e).footer&&r(t).footer!==!1?(a(),u("footer",{key:0,class:N(["VPFooter",{"has-sidebar":r(s)}])},[p("div",$o,[r(e).footer.message?(a(),u("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,go)):h("",!0),r(e).footer.copyright?(a(),u("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,yo)):h("",!0)])],2)):h("",!0)}}),So=g(Po,[["__scopeId","data-v-c970a860"]]);function Vo(){const{theme:n,frontmatter:e}=V(),t=Te([]),s=y(()=>t.value.length>0);return te(()=>{t.value=ke(e.value.outline??n.value.outline)}),{headers:t,hasLocalNav:s}}const Lo=n=>(B("data-v-bc9dc845"),n=n(),H(),n),To={class:"menu-text"},wo=Lo(()=>p("span",{class:"vpi-chevron-right icon"},null,-1)),Io={class:"header"},No={class:"outline"},Mo=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(n){const e=n,{theme:t}=V(),s=T(!1),o=T(0),i=T(),l=T();function d(b){var P;(P=i.value)!=null&&P.contains(b.target)||(s.value=!1)}O(s,b=>{if(b){document.addEventListener("click",d);return}document.removeEventListener("click",d)}),ce("Escape",()=>{s.value=!1}),te(()=>{s.value=!1});function v(){s.value=!s.value,o.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function m(b){b.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),Ne(()=>{s.value=!1}))}function L(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,P)=>(a(),u("div",{class:"VPLocalNavOutlineDropdown",style:Ie({"--vp-vh":o.value+"px"}),ref_key:"main",ref:i},[b.headers.length>0?(a(),u("button",{key:0,onClick:v,class:N({open:s.value})},[p("span",To,I(r(He)(r(t))),1),wo],2)):(a(),u("button",{key:1,onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)),k(pe,{name:"flyout"},{default:f(()=>[s.value?(a(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:m},[p("div",Io,[p("a",{class:"top-link",href:"#",onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)]),p("div",No,[k(Ee,{headers:b.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),Ao=g(Mo,[["__scopeId","data-v-bc9dc845"]]),Co=n=>(B("data-v-070ab83d"),n=n(),H(),n),Bo={class:"container"},Ho=["aria-expanded"],Eo=Co(()=>p("span",{class:"vpi-align-left menu-icon"},null,-1)),Do={class:"menu-text"},Fo=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(n){const{theme:e,frontmatter:t}=V(),{hasSidebar:s}=U(),{headers:o}=Vo(),{y:i}=Me(),l=T(0);R(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),te(()=>{o.value=ke(t.value.outline??e.value.outline)});const d=y(()=>o.value.length===0),v=y(()=>d.value&&!s.value),m=y(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:d.value,fixed:v.value}));return(L,b)=>r(t).layout!=="home"&&(!v.value||r(i)>=l.value)?(a(),u("div",{key:0,class:N(m.value)},[p("div",Bo,[r(s)?(a(),u("button",{key:0,class:"menu","aria-expanded":L.open,"aria-controls":"VPSidebarNav",onClick:b[0]||(b[0]=P=>L.$emit("open-menu"))},[Eo,p("span",Do,I(r(e).sidebarMenuLabel||"Menu"),1)],8,Ho)):h("",!0),k(Ao,{headers:r(o),navHeight:l.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),Oo=g(Fo,[["__scopeId","data-v-070ab83d"]]);function jo(){const n=T(!1);function e(){n.value=!0,window.addEventListener("resize",o)}function t(){n.value=!1,window.removeEventListener("resize",o)}function s(){n.value?t():e()}function o(){window.outerWidth>=768&&t()}const i=ne();return O(()=>i.path,t),{isScreenOpen:n,openScreen:e,closeScreen:t,toggleScreen:s}}const Uo={},Go={class:"VPSwitch",type:"button",role:"switch"},zo={class:"check"},Ko={key:0,class:"icon"};function Ro(n,e){return a(),u("button",Go,[p("span",zo,[n.$slots.default?(a(),u("span",Ko,[c(n.$slots,"default",{},void 0,!0)])):h("",!0)])])}const qo=g(Uo,[["render",Ro],["__scopeId","data-v-4a1c76db"]]),Fe=n=>(B("data-v-e40a8bb6"),n=n(),H(),n),Wo=Fe(()=>p("span",{class:"vpi-sun sun"},null,-1)),Jo=Fe(()=>p("span",{class:"vpi-moon moon"},null,-1)),Yo=_({__name:"VPSwitchAppearance",setup(n){const{isDark:e,theme:t}=V(),s=Y("toggle-appearance",()=>{e.value=!e.value}),o=T("");return _e(()=>{o.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(i,l)=>(a(),$(qo,{title:o.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(s)},{default:f(()=>[Wo,Jo]),_:1},8,["title","aria-checked","onClick"]))}}),$e=g(Yo,[["__scopeId","data-v-e40a8bb6"]]),Xo={key:0,class:"VPNavBarAppearance"},Qo=_({__name:"VPNavBarAppearance",setup(n){const{site:e}=V();return(t,s)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Xo,[k($e)])):h("",!0)}}),Zo=g(Qo,[["__scopeId","data-v-af096f4a"]]),ge=T();let Oe=!1,ie=0;function xo(n){const e=T(!1);if(oe){!Oe&&es(),ie++;const t=O(ge,s=>{var o,i,l;s===n.el.value||(o=n.el.value)!=null&&o.contains(s)?(e.value=!0,(i=n.onFocus)==null||i.call(n)):(e.value=!1,(l=n.onBlur)==null||l.call(n))});he(()=>{t(),ie--,ie||ts()})}return et(e)}function es(){document.addEventListener("focusin",je),Oe=!0,ge.value=document.activeElement}function ts(){document.removeEventListener("focusin",je)}function je(){ge.value=document.activeElement}const ns={class:"VPMenuLink"},os=_({__name:"VPMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,s)=>(a(),u("div",ns,[k(F,{class:N({active:r(q)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:f(()=>[j(I(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),se=g(os,[["__scopeId","data-v-8b74d055"]]),ss={class:"VPMenuGroup"},as={key:0,class:"title"},rs=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),u("div",ss,[e.text?(a(),u("p",as,I(e.text),1)):h("",!0),(a(!0),u(M,null,E(e.items,s=>(a(),u(M,null,["link"in s?(a(),$(se,{key:0,item:s},null,8,["item"])):h("",!0)],64))),256))]))}}),is=g(rs,[["__scopeId","data-v-48c802d0"]]),ls={class:"VPMenu"},cs={key:0,class:"items"},us=_({__name:"VPMenu",props:{items:{}},setup(n){return(e,t)=>(a(),u("div",ls,[e.items?(a(),u("div",cs,[(a(!0),u(M,null,E(e.items,s=>(a(),u(M,{key:JSON.stringify(s)},["link"in s?(a(),$(se,{key:0,item:s},null,8,["item"])):"component"in s?(a(),$(D(s.component),K({key:1,ref_for:!0},s.props),null,16)):(a(),$(is,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):h("",!0),c(e.$slots,"default",{},void 0,!0)]))}}),ds=g(us,[["__scopeId","data-v-7dd3104a"]]),vs=n=>(B("data-v-e5380155"),n=n(),H(),n),ps=["aria-expanded","aria-label"],fs={key:0,class:"text"},hs=["innerHTML"],_s=vs(()=>p("span",{class:"vpi-chevron-down text-icon"},null,-1)),ms={key:1,class:"vpi-more-horizontal icon"},bs={class:"menu"},ks=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(n){const e=T(!1),t=T();xo({el:t,onBlur:s});function s(){e.value=!1}return(o,i)=>(a(),u("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=l=>e.value=!0),onMouseleave:i[2]||(i[2]=l=>e.value=!1)},[p("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":o.label,onClick:i[0]||(i[0]=l=>e.value=!e.value)},[o.button||o.icon?(a(),u("span",fs,[o.icon?(a(),u("span",{key:0,class:N([o.icon,"option-icon"])},null,2)):h("",!0),o.button?(a(),u("span",{key:1,innerHTML:o.button},null,8,hs)):h("",!0),_s])):(a(),u("span",ms))],8,ps),p("div",bs,[k(ds,{items:o.items},{default:f(()=>[c(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ye=g(ks,[["__scopeId","data-v-e5380155"]]),$s=["href","aria-label","innerHTML"],gs=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(n){const e=n,t=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(s,o)=>(a(),u("a",{class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,$s))}}),ys=g(gs,[["__scopeId","data-v-717b8b75"]]),Ps={class:"VPSocialLinks"},Ss=_({__name:"VPSocialLinks",props:{links:{}},setup(n){return(e,t)=>(a(),u("div",Ps,[(a(!0),u(M,null,E(e.links,({link:s,icon:o,ariaLabel:i})=>(a(),$(ys,{key:s,icon:o,link:s,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),Pe=g(Ss,[["__scopeId","data-v-ee7a9424"]]),Vs={key:0,class:"group translations"},Ls={class:"trans-title"},Ts={key:1,class:"group"},ws={class:"item appearance"},Is={class:"label"},Ns={class:"appearance-action"},Ms={key:2,class:"group"},As={class:"item social-links"},Cs=_({__name:"VPNavBarExtra",setup(n){const{site:e,theme:t}=V(),{localeLinks:s,currentLang:o}=Q({correspondingLink:!0}),i=y(()=>s.value.length&&o.value.label||e.value.appearance||t.value.socialLinks);return(l,d)=>i.value?(a(),$(ye,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[r(s).length&&r(o).label?(a(),u("div",Vs,[p("p",Ls,I(r(o).label),1),(a(!0),u(M,null,E(r(s),v=>(a(),$(se,{key:v.link,item:v},null,8,["item"]))),128))])):h("",!0),r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Ts,[p("div",ws,[p("p",Is,I(r(t).darkModeSwitchLabel||"Appearance"),1),p("div",Ns,[k($e)])])])):h("",!0),r(t).socialLinks?(a(),u("div",Ms,[p("div",As,[k(Pe,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),Bs=g(Cs,[["__scopeId","data-v-925effce"]]),Hs=n=>(B("data-v-5dea55bf"),n=n(),H(),n),Es=["aria-expanded"],Ds=Hs(()=>p("span",{class:"container"},[p("span",{class:"top"}),p("span",{class:"middle"}),p("span",{class:"bottom"})],-1)),Fs=[Ds],Os=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(n){return(e,t)=>(a(),u("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},Fs,10,Es))}}),js=g(Os,[["__scopeId","data-v-5dea55bf"]]),Us=["innerHTML"],Gs=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,s)=>(a(),$(F,{class:N({VPNavBarMenuLink:!0,active:r(q)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:f(()=>[p("span",{innerHTML:t.item.text},null,8,Us)]),_:1},8,["class","href","noIcon","target","rel"]))}}),zs=g(Gs,[["__scopeId","data-v-ed5ac1f6"]]),Ks=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(n){const e=n,{page:t}=V(),s=i=>"component"in i?!1:"link"in i?q(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(s),o=y(()=>s(e.item));return(i,l)=>(a(),$(ye,{class:N({VPNavBarMenuGroup:!0,active:r(q)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||o.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),Rs=n=>(B("data-v-e6d46098"),n=n(),H(),n),qs={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Ws=Rs(()=>p("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),Js=_({__name:"VPNavBarMenu",setup(n){const{theme:e}=V();return(t,s)=>r(e).nav?(a(),u("nav",qs,[Ws,(a(!0),u(M,null,E(r(e).nav,o=>(a(),u(M,{key:JSON.stringify(o)},["link"in o?(a(),$(zs,{key:0,item:o},null,8,["item"])):"component"in o?(a(),$(D(o.component),K({key:1,ref_for:!0},o.props),null,16)):(a(),$(Ks,{key:2,item:o},null,8,["item"]))],64))),128))])):h("",!0)}}),Ys=g(Js,[["__scopeId","data-v-e6d46098"]]);function Xs(n){const{localeIndex:e,theme:t}=V();function s(o){var A,C,w;const i=o.split("."),l=(A=t.value.search)==null?void 0:A.options,d=l&&typeof l=="object",v=d&&((w=(C=l.locales)==null?void 0:C[e.value])==null?void 0:w.translations)||null,m=d&&l.translations||null;let L=v,b=m,P=n;const S=i.pop();for(const G of i){let z=null;const J=P==null?void 0:P[G];J&&(z=P=J);const ae=b==null?void 0:b[G];ae&&(z=b=ae);const re=L==null?void 0:L[G];re&&(z=L=re),J||(P=z),ae||(b=z),re||(L=z)}return(L==null?void 0:L[S])??(b==null?void 0:b[S])??(P==null?void 0:P[S])??""}return s}const Qs=["aria-label"],Zs={class:"DocSearch-Button-Container"},xs=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),ea={class:"DocSearch-Button-Placeholder"},ta=p("span",{class:"DocSearch-Button-Keys"},[p("kbd",{class:"DocSearch-Button-Key"}),p("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Se=_({__name:"VPNavBarSearchButton",setup(n){const t=Xs({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,o)=>(a(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[p("span",Zs,[xs,p("span",ea,I(r(t)("button.buttonText")),1)]),ta],8,Qs))}}),na={class:"VPNavBarSearch"},oa={id:"local-search"},sa={key:1,id:"docsearch"},aa=_({__name:"VPNavBarSearch",setup(n){const e=tt(()=>nt(()=>import("./VPLocalSearchBox.BuP8eyVn.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:s}=V(),o=T(!1),i=T(!1);R(()=>{});function l(){o.value||(o.value=!0,setTimeout(d,16))}function d(){const b=new Event("keydown");b.key="k",b.metaKey=!0,window.dispatchEvent(b),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||d()},16)}function v(b){const P=b.target,S=P.tagName;return P.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const m=T(!1);ce("k",b=>{(b.ctrlKey||b.metaKey)&&(b.preventDefault(),m.value=!0)}),ce("/",b=>{v(b)||(b.preventDefault(),m.value=!0)});const L="local";return(b,P)=>{var S;return a(),u("div",na,[r(L)==="local"?(a(),u(M,{key:0},[m.value?(a(),$(r(e),{key:0,onClose:P[0]||(P[0]=A=>m.value=!1)})):h("",!0),p("div",oa,[k(Se,{onClick:P[1]||(P[1]=A=>m.value=!0)})])],64)):r(L)==="algolia"?(a(),u(M,{key:1},[o.value?(a(),$(r(t),{key:0,algolia:((S=r(s).search)==null?void 0:S.options)??r(s).algolia,onVnodeBeforeMount:P[2]||(P[2]=A=>i.value=!0)},null,8,["algolia"])):h("",!0),i.value?h("",!0):(a(),u("div",sa,[k(Se,{onClick:l})]))],64)):h("",!0)])}}}),ra=_({__name:"VPNavBarSocialLinks",setup(n){const{theme:e}=V();return(t,s)=>r(e).socialLinks?(a(),$(Pe,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),ia=g(ra,[["__scopeId","data-v-164c457f"]]),la=["href","rel","target"],ca={key:1},ua={key:2},da=_({__name:"VPNavBarTitle",setup(n){const{site:e,theme:t}=V(),{hasSidebar:s}=U(),{currentLang:o}=Q(),i=y(()=>{var v;return typeof t.value.logoLink=="string"?t.value.logoLink:(v=t.value.logoLink)==null?void 0:v.link}),l=y(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.rel}),d=y(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.target});return(v,m)=>(a(),u("div",{class:N(["VPNavBarTitle",{"has-sidebar":r(s)}])},[p("a",{class:"title",href:i.value??r(be)(r(o).link),rel:l.value,target:d.value},[c(v.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),$(x,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):h("",!0),r(t).siteTitle?(a(),u("span",ca,I(r(t).siteTitle),1)):r(t).siteTitle===void 0?(a(),u("span",ua,I(r(e).title),1)):h("",!0),c(v.$slots,"nav-bar-title-after",{},void 0,!0)],8,la)],2))}}),va=g(da,[["__scopeId","data-v-28a961f9"]]),pa={class:"items"},fa={class:"title"},ha=_({__name:"VPNavBarTranslations",setup(n){const{theme:e}=V(),{localeLinks:t,currentLang:s}=Q({correspondingLink:!0});return(o,i)=>r(t).length&&r(s).label?(a(),$(ye,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:f(()=>[p("div",pa,[p("p",fa,I(r(s).label),1),(a(!0),u(M,null,E(r(t),l=>(a(),$(se,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),_a=g(ha,[["__scopeId","data-v-c80d9ad0"]]),ma=n=>(B("data-v-822684d1"),n=n(),H(),n),ba={class:"wrapper"},ka={class:"container"},$a={class:"title"},ga={class:"content"},ya={class:"content-body"},Pa=ma(()=>p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1)),Sa=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(n){const e=n,{y:t}=Me(),{hasSidebar:s}=U(),{frontmatter:o}=V(),i=T({});return _e(()=>{i.value={"has-sidebar":s.value,home:o.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(l,d)=>(a(),u("div",{class:N(["VPNavBar",i.value])},[p("div",ba,[p("div",ka,[p("div",$a,[k(va,null,{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",ga,[p("div",ya,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),k(aa,{class:"search"}),k(Ys,{class:"menu"}),k(_a,{class:"translations"}),k(Zo,{class:"appearance"}),k(ia,{class:"social-links"}),k(Bs,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),k(js,{class:"hamburger",active:l.isScreenOpen,onClick:d[0]||(d[0]=v=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),Pa],2))}}),Va=g(Sa,[["__scopeId","data-v-822684d1"]]),La={key:0,class:"VPNavScreenAppearance"},Ta={class:"text"},wa=_({__name:"VPNavScreenAppearance",setup(n){const{site:e,theme:t}=V();return(s,o)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",La,[p("p",Ta,I(r(t).darkModeSwitchLabel||"Appearance"),1),k($e)])):h("",!0)}}),Ia=g(wa,[["__scopeId","data-v-ffb44008"]]),Na=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(n){const e=Y("close-screen");return(t,s)=>(a(),$(F,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),Ma=g(Na,[["__scopeId","data-v-27d04aeb"]]),Aa=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(n){const e=Y("close-screen");return(t,s)=>(a(),$(F,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:f(()=>[j(I(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ue=g(Aa,[["__scopeId","data-v-7179dbb7"]]),Ca={class:"VPNavScreenMenuGroupSection"},Ba={key:0,class:"title"},Ha=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),u("div",Ca,[e.text?(a(),u("p",Ba,I(e.text),1)):h("",!0),(a(!0),u(M,null,E(e.items,s=>(a(),$(Ue,{key:s.text,item:s},null,8,["item"]))),128))]))}}),Ea=g(Ha,[["__scopeId","data-v-4b8941ac"]]),Da=n=>(B("data-v-875057a5"),n=n(),H(),n),Fa=["aria-controls","aria-expanded"],Oa=["innerHTML"],ja=Da(()=>p("span",{class:"vpi-plus button-icon"},null,-1)),Ua=["id"],Ga={key:0,class:"item"},za={key:1,class:"item"},Ka={key:2,class:"group"},Ra=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(n){const e=n,t=T(!1),s=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function o(){t.value=!t.value}return(i,l)=>(a(),u("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[p("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:o},[p("span",{class:"button-text",innerHTML:i.text},null,8,Oa),ja],8,Fa),p("div",{id:s.value,class:"items"},[(a(!0),u(M,null,E(i.items,d=>(a(),u(M,{key:JSON.stringify(d)},["link"in d?(a(),u("div",Ga,[k(Ue,{item:d},null,8,["item"])])):"component"in d?(a(),u("div",za,[(a(),$(D(d.component),K({ref_for:!0},d.props,{"screen-menu":""}),null,16))])):(a(),u("div",Ka,[k(Ea,{text:d.text,items:d.items},null,8,["text","items"])]))],64))),128))],8,Ua)],2))}}),qa=g(Ra,[["__scopeId","data-v-875057a5"]]),Wa={key:0,class:"VPNavScreenMenu"},Ja=_({__name:"VPNavScreenMenu",setup(n){const{theme:e}=V();return(t,s)=>r(e).nav?(a(),u("nav",Wa,[(a(!0),u(M,null,E(r(e).nav,o=>(a(),u(M,{key:JSON.stringify(o)},["link"in o?(a(),$(Ma,{key:0,item:o},null,8,["item"])):"component"in o?(a(),$(D(o.component),K({key:1,ref_for:!0},o.props,{"screen-menu":""}),null,16)):(a(),$(qa,{key:2,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):h("",!0)}}),Ya=_({__name:"VPNavScreenSocialLinks",setup(n){const{theme:e}=V();return(t,s)=>r(e).socialLinks?(a(),$(Pe,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),Ge=n=>(B("data-v-362991c2"),n=n(),H(),n),Xa=Ge(()=>p("span",{class:"vpi-languages icon lang"},null,-1)),Qa=Ge(()=>p("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Za={class:"list"},xa=_({__name:"VPNavScreenTranslations",setup(n){const{localeLinks:e,currentLang:t}=Q({correspondingLink:!0}),s=T(!1);function o(){s.value=!s.value}return(i,l)=>r(e).length&&r(t).label?(a(),u("div",{key:0,class:N(["VPNavScreenTranslations",{open:s.value}])},[p("button",{class:"title",onClick:o},[Xa,j(" "+I(r(t).label)+" ",1),Qa]),p("ul",Za,[(a(!0),u(M,null,E(r(e),d=>(a(),u("li",{key:d.link,class:"item"},[k(F,{class:"link",href:d.link},{default:f(()=>[j(I(d.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),er=g(xa,[["__scopeId","data-v-362991c2"]]),tr={class:"container"},nr=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(n){const e=T(null),t=Ae(oe?document.body:null);return(s,o)=>(a(),$(pe,{name:"fade",onEnter:o[0]||(o[0]=i=>t.value=!0),onAfterLeave:o[1]||(o[1]=i=>t.value=!1)},{default:f(()=>[s.open?(a(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[p("div",tr,[c(s.$slots,"nav-screen-content-before",{},void 0,!0),k(Ja,{class:"menu"}),k(er,{class:"translations"}),k(Ia,{class:"appearance"}),k(Ya,{class:"social-links"}),c(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),or=g(nr,[["__scopeId","data-v-833aabba"]]),sr={key:0,class:"VPNav"},ar=_({__name:"VPNav",setup(n){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=jo(),{frontmatter:o}=V(),i=y(()=>o.value.navbar!==!1);return me("close-screen",t),ee(()=>{oe&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(l,d)=>i.value?(a(),u("header",sr,[k(Va,{"is-screen-open":r(e),onToggleScreen:r(s)},{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),k(or,{open:r(e)},{"nav-screen-content-before":f(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):h("",!0)}}),rr=g(ar,[["__scopeId","data-v-f1e365da"]]),ze=n=>(B("data-v-196b2e5f"),n=n(),H(),n),ir=["role","tabindex"],lr=ze(()=>p("div",{class:"indicator"},null,-1)),cr=ze(()=>p("span",{class:"vpi-chevron-right caret-icon"},null,-1)),ur=[cr],dr={key:1,class:"items"},vr=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(n){const e=n,{collapsed:t,collapsible:s,isLink:o,isActiveLink:i,hasActiveLink:l,hasChildren:d,toggle:v}=It(y(()=>e.item)),m=y(()=>d.value?"section":"div"),L=y(()=>o.value?"a":"div"),b=y(()=>d.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=y(()=>o.value?void 0:"button"),S=y(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":o.value},{"is-active":i.value},{"has-active":l.value}]);function A(w){"key"in w&&w.key!=="Enter"||!e.item.link&&v()}function C(){e.item.link&&v()}return(w,G)=>{const z=W("VPSidebarItem",!0);return a(),$(D(m.value),{class:N(["VPSidebarItem",S.value])},{default:f(()=>[w.item.text?(a(),u("div",K({key:0,class:"item",role:P.value},st(w.item.items?{click:A,keydown:A}:{},!0),{tabindex:w.item.items&&0}),[lr,w.item.link?(a(),$(F,{key:0,tag:L.value,class:"link",href:w.item.link,rel:w.item.rel,target:w.item.target},{default:f(()=>[(a(),$(D(b.value),{class:"text",innerHTML:w.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),$(D(b.value),{key:1,class:"text",innerHTML:w.item.text},null,8,["innerHTML"])),w.item.collapsed!=null&&w.item.items&&w.item.items.length?(a(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:ot(C,["enter"]),tabindex:"0"},ur,32)):h("",!0)],16,ir)):h("",!0),w.item.items&&w.item.items.length?(a(),u("div",dr,[w.depth<5?(a(!0),u(M,{key:0},E(w.item.items,J=>(a(),$(z,{key:J.text,item:J,depth:w.depth+1},null,8,["item","depth"]))),128)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),pr=g(vr,[["__scopeId","data-v-196b2e5f"]]),fr=_({__name:"VPSidebarGroup",props:{items:{}},setup(n){const e=T(!0);let t=null;return R(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),at(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,o)=>(a(!0),u(M,null,E(s.items,i=>(a(),u("div",{key:i.text,class:N(["group",{"no-transition":e.value}])},[k(pr,{item:i,depth:0},null,8,["item"])],2))),128))}}),hr=g(fr,[["__scopeId","data-v-9e426adc"]]),Ke=n=>(B("data-v-18756405"),n=n(),H(),n),_r=Ke(()=>p("div",{class:"curtain"},null,-1)),mr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},br=Ke(()=>p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),kr=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(n){const{sidebarGroups:e,hasSidebar:t}=U(),s=n,o=T(null),i=Ae(oe?document.body:null);O([s,o],()=>{var d;s.open?(i.value=!0,(d=o.value)==null||d.focus()):i.value=!1},{immediate:!0,flush:"post"});const l=T(0);return O(e,()=>{l.value+=1},{deep:!0}),(d,v)=>r(t)?(a(),u("aside",{key:0,class:N(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:o,onClick:v[0]||(v[0]=rt(()=>{},["stop"]))},[_r,p("nav",mr,[br,c(d.$slots,"sidebar-nav-before",{},void 0,!0),(a(),$(hr,{items:r(e),key:l.value},null,8,["items"])),c(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),$r=g(kr,[["__scopeId","data-v-18756405"]]),gr=_({__name:"VPSkipLink",setup(n){const e=ne(),t=T();O(()=>e.path,()=>t.value.focus());function s({target:o}){const i=document.getElementById(decodeURIComponent(o.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(o,i)=>(a(),u(M,null,[p("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),yr=g(gr,[["__scopeId","data-v-c3508ec8"]]),Pr=_({__name:"Layout",setup(n){const{isOpen:e,open:t,close:s}=U(),o=ne();O(()=>o.path,s),wt(e,s);const{frontmatter:i}=V(),l=Ce(),d=y(()=>!!l["home-hero-image"]);return me("hero-image-slot-exists",d),(v,m)=>{const L=W("Content");return r(i).layout!==!1?(a(),u("div",{key:0,class:N(["Layout",r(i).pageClass])},[c(v.$slots,"layout-top",{},void 0,!0),k(yr),k(pt,{class:"backdrop",show:r(e),onClick:r(s)},null,8,["show","onClick"]),k(rr,null,{"nav-bar-title-before":f(()=>[c(v.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(v.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(v.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(v.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[c(v.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(v.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),k(Oo,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),k($r,{open:r(e)},{"sidebar-nav-before":f(()=>[c(v.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[c(v.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),k(ko,null,{"page-top":f(()=>[c(v.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(v.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[c(v.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[c(v.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(v.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(v.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(v.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(v.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(v.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(v.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(v.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(v.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[c(v.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(v.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(v.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[c(v.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(v.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[c(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),k(So),c(v.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),$(L,{key:1}))}}}),Sr=g(Pr,[["__scopeId","data-v-a9a9e638"]]),Ve={Layout:Sr,enhanceApp:({app:n})=>{n.component("Badge",ut)}},Vr=n=>{if(typeof document>"u")return{stabilizeScrollPosition:o=>async(...i)=>o(...i)};const e=document.documentElement;return{stabilizeScrollPosition:s=>async(...o)=>{const i=s(...o),l=n.value;if(!l)return i;const d=l.offsetTop-e.scrollTop;return await Ne(),e.scrollTop=l.offsetTop-d,i}}},Re="vitepress:tabSharedState",X=typeof localStorage<"u"?localStorage:null,qe="vitepress:tabsSharedState",Lr=()=>{const n=X==null?void 0:X.getItem(qe);if(n)try{return JSON.parse(n)}catch{}return{}},Tr=n=>{X&&X.setItem(qe,JSON.stringify(n))},wr=n=>{const e=it({});O(()=>e.content,(t,s)=>{t&&s&&Tr(t)},{deep:!0}),n.provide(Re,e)},Ir=(n,e)=>{const t=Y(Re);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");R(()=>{t.content||(t.content=Lr())});const s=T(),o=y({get(){var v;const l=e.value,d=n.value;if(l){const m=(v=t.content)==null?void 0:v[l];if(m&&d.includes(m))return m}else{const m=s.value;if(m)return m}return d[0]},set(l){const d=e.value;d?t.content&&(t.content[d]=l):s.value=l}});return{selected:o,select:l=>{o.value=l}}};let Le=0;const Nr=()=>(Le++,""+Le);function Mr(){const n=Ce();return y(()=>{var s;const t=(s=n.default)==null?void 0:s.call(n);return t?t.filter(o=>typeof o.type=="object"&&"__name"in o.type&&o.type.__name==="PluginTabsTab"&&o.props).map(o=>{var i;return(i=o.props)==null?void 0:i.label}):[]})}const We="vitepress:tabSingleState",Ar=n=>{me(We,n)},Cr=()=>{const n=Y(We);if(!n)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return n},Br={class:"plugin-tabs"},Hr=["id","aria-selected","aria-controls","tabindex","onClick"],Er=_({__name:"PluginTabs",props:{sharedStateKey:{}},setup(n){const e=n,t=Mr(),{selected:s,select:o}=Ir(t,lt(e,"sharedStateKey")),i=T(),{stabilizeScrollPosition:l}=Vr(i),d=l(o),v=T([]),m=b=>{var A;const P=t.value.indexOf(s.value);let S;b.key==="ArrowLeft"?S=P>=1?P-1:t.value.length-1:b.key==="ArrowRight"&&(S=P(a(),u("div",Br,[p("div",{ref_key:"tablist",ref:i,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:m},[(a(!0),u(M,null,E(r(t),S=>(a(),u("button",{id:`tab-${S}-${r(L)}`,ref_for:!0,ref_key:"buttonRefs",ref:v,key:S,role:"tab",class:"plugin-tabs--tab","aria-selected":S===r(s),"aria-controls":`panel-${S}-${r(L)}`,tabindex:S===r(s)?0:-1,onClick:()=>r(d)(S)},I(S),9,Hr))),128))],544),c(b.$slots,"default")]))}}),Dr=["id","aria-labelledby"],Fr=_({__name:"PluginTabsTab",props:{label:{}},setup(n){const{uid:e,selected:t}=Cr();return(s,o)=>r(t)===s.label?(a(),u("div",{key:0,id:`panel-${s.label}-${r(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${s.label}-${r(e)}`},[c(s.$slots,"default",{},void 0,!0)],8,Dr)):h("",!0)}}),Or=g(Fr,[["__scopeId","data-v-9b0d03d2"]]),jr=n=>{wr(n),n.component("PluginTabs",Er),n.component("PluginTabsTab",Or)},Gr={extends:Ve,Layout(){return ct(Ve.Layout,null,{})},enhanceApp({app:n,router:e,siteData:t}){jr(n)}};export{Gr as R,Xs as c,V as u}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.CkmE8alw.js","assets/chunks/framework.B__MqT43.js"])))=>i.map(i=>d[i]); +import{d as _,o as a,c as u,r as c,n as N,a as j,t as I,b as $,w as f,e as h,T as pe,_ as g,u as Je,i as Ye,f as Xe,g as fe,h as y,j as p,k as r,p as B,l as H,m as q,q as le,s as T,v as O,x as ee,y as R,z as he,A as _e,B as Qe,C as Ze,D as W,F as M,E,G as Te,H as te,I as k,J as D,K as we,L as ne,M as K,N as Y,O as xe,P as Ie,Q as ce,R as Ne,S as Me,U as oe,V as et,W as tt,X as nt,Y as Ae,Z as me,$ as ot,a0 as st,a1 as at,a2 as rt,a3 as Ce,a4 as it,a5 as lt,a6 as ct}from"./framework.B__MqT43.js";const ut=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(n){return(e,t)=>(a(),u("span",{class:N(["VPBadge",e.type])},[c(e.$slots,"default",{},()=>[j(I(e.text),1)])],2))}}),dt={key:0,class:"VPBackdrop"},vt=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(n){return(e,t)=>(a(),$(pe,{name:"fade"},{default:f(()=>[e.show?(a(),u("div",dt)):h("",!0)]),_:1}))}}),pt=g(vt,[["__scopeId","data-v-b06cdb19"]]),V=Je;function ft(n,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(n,e):(n(),(s=!0)&&setTimeout(()=>s=!1,e))}}function ue(n){return/^\//.test(n)?n:`/${n}`}function be(n){const{pathname:e,search:t,hash:s,protocol:o}=new URL(n,"http://a.com");if(Ye(n)||n.startsWith("#")||!o.startsWith("http")||!Xe(e))return n;const{site:i}=V(),l=e.endsWith("/")||e.endsWith(".html")?n:n.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${s}`);return fe(l)}function Q({correspondingLink:n=!1}={}){const{site:e,localeIndex:t,page:s,theme:o,hash:i}=V(),l=y(()=>{var v,m;return{label:(v=e.value.locales[t.value])==null?void 0:v.label,link:((m=e.value.locales[t.value])==null?void 0:m.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([v,m])=>l.value.label===m.label?[]:{text:m.label,link:ht(m.link||(v==="root"?"/":`/${v}/`),o.value.i18nRouting!==!1&&n,s.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:l}}function ht(n,e,t,s){return e?n.replace(/\/$/,"")+ue(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):n}const _t=n=>(B("data-v-951cab6c"),n=n(),H(),n),mt={class:"NotFound"},bt={class:"code"},kt={class:"title"},$t=_t(()=>p("div",{class:"divider"},null,-1)),gt={class:"quote"},yt={class:"action"},Pt=["href","aria-label"],St=_({__name:"NotFound",setup(n){const{theme:e}=V(),{currentLang:t}=Q();return(s,o)=>{var i,l,d,v,m;return a(),u("div",mt,[p("p",bt,I(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),p("h1",kt,I(((l=r(e).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),$t,p("blockquote",gt,I(((d=r(e).notFound)==null?void 0:d.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),p("div",yt,[p("a",{class:"link",href:r(fe)(r(t).link),"aria-label":((v=r(e).notFound)==null?void 0:v.linkLabel)??"go to home"},I(((m=r(e).notFound)==null?void 0:m.linkText)??"Take me home"),9,Pt)])])}}}),Vt=g(St,[["__scopeId","data-v-951cab6c"]]);function Be(n,e){if(Array.isArray(n))return Z(n);if(n==null)return[];e=ue(e);const t=Object.keys(n).sort((o,i)=>i.split("/").length-o.split("/").length).find(o=>e.startsWith(ue(o))),s=t?n[t]:[];return Array.isArray(s)?Z(s):Z(s.items,s.base)}function Lt(n){const e=[];let t=0;for(const s in n){const o=n[s];if(o.items){t=e.push(o);continue}e[t]||e.push({items:[]}),e[t].items.push(o)}return e}function Tt(n){const e=[];function t(s){for(const o of s)o.text&&o.link&&e.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&t(o.items)}return t(n),e}function de(n,e){return Array.isArray(e)?e.some(t=>de(n,t)):q(n,e.link)?!0:e.items?de(n,e.items):!1}function Z(n,e){return[...n].map(t=>{const s={...t},o=s.base||e;return o&&s.link&&(s.link=o+s.link),s.items&&(s.items=Z(s.items,o)),s})}function U(){const{frontmatter:n,page:e,theme:t}=V(),s=le("(min-width: 960px)"),o=T(!1),i=y(()=>{const C=t.value.sidebar,w=e.value.relativePath;return C?Be(C,w):[]}),l=T(i.value);O(i,(C,w)=>{JSON.stringify(C)!==JSON.stringify(w)&&(l.value=i.value)});const d=y(()=>n.value.sidebar!==!1&&l.value.length>0&&n.value.layout!=="home"),v=y(()=>m?n.value.aside==null?t.value.aside==="left":n.value.aside==="left":!1),m=y(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:t.value.aside!==!1),L=y(()=>d.value&&s.value),b=y(()=>d.value?Lt(l.value):[]);function P(){o.value=!0}function S(){o.value=!1}function A(){o.value?S():P()}return{isOpen:o,sidebar:l,sidebarGroups:b,hasSidebar:d,hasAside:m,leftAside:v,isSidebarEnabled:L,open:P,close:S,toggle:A}}function wt(n,e){let t;ee(()=>{t=n.value?document.activeElement:void 0}),R(()=>{window.addEventListener("keyup",s)}),he(()=>{window.removeEventListener("keyup",s)});function s(o){o.key==="Escape"&&n.value&&(e(),t==null||t.focus())}}function It(n){const{page:e,hash:t}=V(),s=T(!1),o=y(()=>n.value.collapsed!=null),i=y(()=>!!n.value.link),l=T(!1),d=()=>{l.value=q(e.value.relativePath,n.value.link)};O([e,n,t],d),R(d);const v=y(()=>l.value?!0:n.value.items?de(e.value.relativePath,n.value.items):!1),m=y(()=>!!(n.value.items&&n.value.items.length));ee(()=>{s.value=!!(o.value&&n.value.collapsed)}),_e(()=>{(l.value||v.value)&&(s.value=!1)});function L(){o.value&&(s.value=!s.value)}return{collapsed:s,collapsible:o,isLink:i,isActiveLink:l,hasActiveLink:v,hasChildren:m,toggle:L}}function Nt(){const{hasSidebar:n}=U(),e=le("(min-width: 960px)"),t=le("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:n.value?t.value:e.value)}}const ve=[];function He(n){return typeof n.outline=="object"&&!Array.isArray(n.outline)&&n.outline.label||n.outlineTitle||"On this page"}function ke(n){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:Mt(t),link:"#"+t.id,level:s}});return At(e,n)}function Mt(n){let e="";for(const t of n.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function At(n,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;n=n.filter(l=>l.level>=s&&l.level<=o),ve.length=0;for(const{element:l,link:d}of n)ve.push({element:l,link:d});const i=[];e:for(let l=0;l=0;v--){const m=n[v];if(m.level{requestAnimationFrame(i),window.addEventListener("scroll",s)}),Qe(()=>{l(location.hash)}),he(()=>{window.removeEventListener("scroll",s)});function i(){if(!t.value)return;const d=window.scrollY,v=window.innerHeight,m=document.body.offsetHeight,L=Math.abs(d+v-m)<1,b=ve.map(({element:S,link:A})=>({link:A,top:Bt(S)})).filter(({top:S})=>!Number.isNaN(S)).sort((S,A)=>S.top-A.top);if(!b.length){l(null);return}if(d<1){l(null);return}if(L){l(b[b.length-1].link);return}let P=null;for(const{link:S,top:A}of b){if(A>d+Ze()+4)break;P=S}l(P)}function l(d){o&&o.classList.remove("active"),d==null?o=null:o=n.value.querySelector(`a[href="${decodeURIComponent(d)}"]`);const v=o;v?(v.classList.add("active"),e.value.style.top=v.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Bt(n){let e=0;for(;n!==document.body;){if(n===null)return NaN;e+=n.offsetTop,n=n.offsetParent}return e}const Ht=["href","title"],Et=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(n){function e({target:t}){const s=t.href.split("#")[1],o=document.getElementById(decodeURIComponent(s));o==null||o.focus({preventScroll:!0})}return(t,s)=>{const o=W("VPDocOutlineItem",!0);return a(),u("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),u(M,null,E(t.headers,({children:i,link:l,title:d})=>(a(),u("li",null,[p("a",{class:"outline-link",href:l,onClick:e,title:d},I(d),9,Ht),i!=null&&i.length?(a(),$(o,{key:0,headers:i},null,8,["headers"])):h("",!0)]))),256))],2)}}}),Ee=g(Et,[["__scopeId","data-v-3f927ebe"]]),Dt={class:"content"},Ft={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Ot=_({__name:"VPDocAsideOutline",setup(n){const{frontmatter:e,theme:t}=V(),s=Te([]);te(()=>{s.value=ke(e.value.outline??t.value.outline)});const o=T(),i=T();return Ct(o,i),(l,d)=>(a(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:o},[p("div",Dt,[p("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),p("div",Ft,I(r(He)(r(t))),1),k(Ee,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),jt=g(Ot,[["__scopeId","data-v-b38bf2ff"]]),Ut={class:"VPDocAsideCarbonAds"},Gt=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(n){const e=()=>null;return(t,s)=>(a(),u("div",Ut,[k(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),zt=n=>(B("data-v-6d7b3c46"),n=n(),H(),n),Kt={class:"VPDocAside"},Rt=zt(()=>p("div",{class:"spacer"},null,-1)),qt=_({__name:"VPDocAside",setup(n){const{theme:e}=V();return(t,s)=>(a(),u("div",Kt,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),k(jt),c(t.$slots,"aside-outline-after",{},void 0,!0),Rt,c(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),$(Gt,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):h("",!0),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Wt=g(qt,[["__scopeId","data-v-6d7b3c46"]]);function Jt(){const{theme:n,page:e}=V();return y(()=>{const{text:t="Edit this page",pattern:s=""}=n.value.editLink||{};let o;return typeof s=="function"?o=s(e.value):o=s.replace(/:path/g,e.value.filePath),{url:o,text:t}})}function Yt(){const{page:n,theme:e,frontmatter:t}=V();return y(()=>{var m,L,b,P,S,A,C,w;const s=Be(e.value.sidebar,n.value.relativePath),o=Tt(s),i=Xt(o,G=>G.link.replace(/[?#].*$/,"")),l=i.findIndex(G=>q(n.value.relativePath,G.link)),d=((m=e.value.docFooter)==null?void 0:m.prev)===!1&&!t.value.prev||t.value.prev===!1,v=((L=e.value.docFooter)==null?void 0:L.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((b=i[l-1])==null?void 0:b.docFooterText)??((P=i[l-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((S=i[l-1])==null?void 0:S.link)},next:v?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=i[l+1])==null?void 0:A.docFooterText)??((C=i[l+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((w=i[l+1])==null?void 0:w.link)}}})}function Xt(n,e){const t=new Set;return n.filter(s=>{const o=e(s);return t.has(o)?!1:t.add(o)})}const F=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(n){const e=n,t=y(()=>e.tag??(e.href?"a":"span")),s=y(()=>e.href&&we.test(e.href)||e.target==="_blank");return(o,i)=>(a(),$(D(t.value),{class:N(["VPLink",{link:o.href,"vp-external-link-icon":s.value,"no-icon":o.noIcon}]),href:o.href?r(be)(o.href):void 0,target:o.target??(s.value?"_blank":void 0),rel:o.rel??(s.value?"noreferrer":void 0)},{default:f(()=>[c(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Qt={class:"VPLastUpdated"},Zt=["datetime"],xt=_({__name:"VPDocFooterLastUpdated",setup(n){const{theme:e,page:t,lang:s}=V(),o=y(()=>new Date(t.value.lastUpdated)),i=y(()=>o.value.toISOString()),l=T("");return R(()=>{ee(()=>{var d,v,m;l.value=new Intl.DateTimeFormat((v=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&v.forceLocale?s.value:void 0,((m=e.value.lastUpdated)==null?void 0:m.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(o.value)})}),(d,v)=>{var m;return a(),u("p",Qt,[j(I(((m=r(e).lastUpdated)==null?void 0:m.text)||r(e).lastUpdatedText||"Last updated")+": ",1),p("time",{datetime:i.value},I(l.value),9,Zt)])}}}),en=g(xt,[["__scopeId","data-v-475f71b8"]]),De=n=>(B("data-v-4f9813fa"),n=n(),H(),n),tn={key:0,class:"VPDocFooter"},nn={key:0,class:"edit-info"},on={key:0,class:"edit-link"},sn=De(()=>p("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),an={key:1,class:"last-updated"},rn={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},ln=De(()=>p("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),cn={class:"pager"},un=["innerHTML"],dn=["innerHTML"],vn={class:"pager"},pn=["innerHTML"],fn=["innerHTML"],hn=_({__name:"VPDocFooter",setup(n){const{theme:e,page:t,frontmatter:s}=V(),o=Jt(),i=Yt(),l=y(()=>e.value.editLink&&s.value.editLink!==!1),d=y(()=>t.value.lastUpdated),v=y(()=>l.value||d.value||i.value.prev||i.value.next);return(m,L)=>{var b,P,S,A;return v.value?(a(),u("footer",tn,[c(m.$slots,"doc-footer-before",{},void 0,!0),l.value||d.value?(a(),u("div",nn,[l.value?(a(),u("div",on,[k(F,{class:"edit-link-button",href:r(o).url,"no-icon":!0},{default:f(()=>[sn,j(" "+I(r(o).text),1)]),_:1},8,["href"])])):h("",!0),d.value?(a(),u("div",an,[k(en)])):h("",!0)])):h("",!0),(b=r(i).prev)!=null&&b.link||(P=r(i).next)!=null&&P.link?(a(),u("nav",rn,[ln,p("div",cn,[(S=r(i).prev)!=null&&S.link?(a(),$(F,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:f(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,un),p("span",{class:"title",innerHTML:r(i).prev.text},null,8,dn)]}),_:1},8,["href"])):h("",!0)]),p("div",vn,[(A=r(i).next)!=null&&A.link?(a(),$(F,{key:0,class:"pager-link next",href:r(i).next.link},{default:f(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,pn),p("span",{class:"title",innerHTML:r(i).next.text},null,8,fn)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),_n=g(hn,[["__scopeId","data-v-4f9813fa"]]),mn=n=>(B("data-v-83890dd9"),n=n(),H(),n),bn={class:"container"},kn=mn(()=>p("div",{class:"aside-curtain"},null,-1)),$n={class:"aside-container"},gn={class:"aside-content"},yn={class:"content"},Pn={class:"content-container"},Sn={class:"main"},Vn=_({__name:"VPDoc",setup(n){const{theme:e}=V(),t=ne(),{hasSidebar:s,hasAside:o,leftAside:i}=U(),l=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,v)=>{const m=W("Content");return a(),u("div",{class:N(["VPDoc",{"has-sidebar":r(s),"has-aside":r(o)}])},[c(d.$slots,"doc-top",{},void 0,!0),p("div",bn,[r(o)?(a(),u("div",{key:0,class:N(["aside",{"left-aside":r(i)}])},[kn,p("div",$n,[p("div",gn,[k(Wt,null,{"aside-top":f(()=>[c(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),p("div",yn,[p("div",Pn,[c(d.$slots,"doc-before",{},void 0,!0),p("main",Sn,[k(m,{class:N(["vp-doc",[l.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),k(_n,null,{"doc-footer-before":f(()=>[c(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(d.$slots,"doc-after",{},void 0,!0)])])]),c(d.$slots,"doc-bottom",{},void 0,!0)],2)}}}),Ln=g(Vn,[["__scopeId","data-v-83890dd9"]]),Tn=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(n){const e=n,t=y(()=>e.href&&we.test(e.href)),s=y(()=>e.tag||e.href?"a":"button");return(o,i)=>(a(),$(D(s.value),{class:N(["VPButton",[o.size,o.theme]]),href:o.href?r(be)(o.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[j(I(o.text),1)]),_:1},8,["class","href","target","rel"]))}}),wn=g(Tn,[["__scopeId","data-v-14206e74"]]),In=["src","alt"],Nn=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(n){return(e,t)=>{const s=W("VPImage",!0);return e.image?(a(),u(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),u("img",K({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(fe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,In)):(a(),u(M,{key:1},[k(s,K({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),k(s,K({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):h("",!0)}}}),x=g(Nn,[["__scopeId","data-v-35a7d0b8"]]),Mn=n=>(B("data-v-955009fc"),n=n(),H(),n),An={class:"container"},Cn={class:"main"},Bn={key:0,class:"name"},Hn=["innerHTML"],En=["innerHTML"],Dn=["innerHTML"],Fn={key:0,class:"actions"},On={key:0,class:"image"},jn={class:"image-container"},Un=Mn(()=>p("div",{class:"image-bg"},null,-1)),Gn=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(n){const e=Y("hero-image-slot-exists");return(t,s)=>(a(),u("div",{class:N(["VPHero",{"has-image":t.image||r(e)}])},[p("div",An,[p("div",Cn,[c(t.$slots,"home-hero-info-before",{},void 0,!0),c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),u("h1",Bn,[p("span",{innerHTML:t.name,class:"clip"},null,8,Hn)])):h("",!0),t.text?(a(),u("p",{key:1,innerHTML:t.text,class:"text"},null,8,En)):h("",!0),t.tagline?(a(),u("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Dn)):h("",!0)],!0),c(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),u("div",Fn,[(a(!0),u(M,null,E(t.actions,o=>(a(),u("div",{key:o.link,class:"action"},[k(wn,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link,target:o.target,rel:o.rel},null,8,["theme","text","href","target","rel"])]))),128))])):h("",!0),c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),u("div",On,[p("div",jn,[Un,c(t.$slots,"home-hero-image",{},()=>[t.image?(a(),$(x,{key:0,class:"image-src",image:t.image},null,8,["image"])):h("",!0)],!0)])])):h("",!0)])],2))}}),zn=g(Gn,[["__scopeId","data-v-955009fc"]]),Kn=_({__name:"VPHomeHero",setup(n){const{frontmatter:e}=V();return(t,s)=>r(e).hero?(a(),$(zn,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):h("",!0)}}),Rn=n=>(B("data-v-f5e9645b"),n=n(),H(),n),qn={class:"box"},Wn={key:0,class:"icon"},Jn=["innerHTML"],Yn=["innerHTML"],Xn=["innerHTML"],Qn={key:4,class:"link-text"},Zn={class:"link-text-value"},xn=Rn(()=>p("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),eo=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(n){return(e,t)=>(a(),$(F,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[p("article",qn,[typeof e.icon=="object"&&e.icon.wrap?(a(),u("div",Wn,[k(x,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),$(x,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),u("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Jn)):h("",!0),p("h2",{class:"title",innerHTML:e.title},null,8,Yn),e.details?(a(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,Xn)):h("",!0),e.linkText?(a(),u("div",Qn,[p("p",Zn,[j(I(e.linkText)+" ",1),xn])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),to=g(eo,[["__scopeId","data-v-f5e9645b"]]),no={key:0,class:"VPFeatures"},oo={class:"container"},so={class:"items"},ao=_({__name:"VPFeatures",props:{features:{}},setup(n){const e=n,t=y(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,o)=>s.features?(a(),u("div",no,[p("div",oo,[p("div",so,[(a(!0),u(M,null,E(s.features,i=>(a(),u("div",{key:i.title,class:N(["item",[t.value]])},[k(to,{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))])])])):h("",!0)}}),ro=g(ao,[["__scopeId","data-v-d0a190d7"]]),io=_({__name:"VPHomeFeatures",setup(n){const{frontmatter:e}=V();return(t,s)=>r(e).features?(a(),$(ro,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):h("",!0)}}),lo=_({__name:"VPHomeContent",setup(n){const{width:e}=xe({initialWidth:0,includeScrollbar:!1});return(t,s)=>(a(),u("div",{class:"vp-doc container",style:Ie(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[c(t.$slots,"default",{},void 0,!0)],4))}}),co=g(lo,[["__scopeId","data-v-7a48a447"]]),uo={class:"VPHome"},vo=_({__name:"VPHome",setup(n){const{frontmatter:e}=V();return(t,s)=>{const o=W("Content");return a(),u("div",uo,[c(t.$slots,"home-hero-before",{},void 0,!0),k(Kn,null,{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(t.$slots,"home-hero-after",{},void 0,!0),c(t.$slots,"home-features-before",{},void 0,!0),k(io),c(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),$(co,{key:0},{default:f(()=>[k(o)]),_:1})):(a(),$(o,{key:1}))])}}}),po=g(vo,[["__scopeId","data-v-cbb6ec48"]]),fo={},ho={class:"VPPage"};function _o(n,e){const t=W("Content");return a(),u("div",ho,[c(n.$slots,"page-top"),k(t),c(n.$slots,"page-bottom")])}const mo=g(fo,[["render",_o]]),bo=_({__name:"VPContent",setup(n){const{page:e,frontmatter:t}=V(),{hasSidebar:s}=U();return(o,i)=>(a(),u("div",{class:N(["VPContent",{"has-sidebar":r(s),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?c(o.$slots,"not-found",{key:0},()=>[k(Vt)],!0):r(t).layout==="page"?(a(),$(mo,{key:1},{"page-top":f(()=>[c(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),$(po,{key:2},{"home-hero-before":f(()=>[c(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),$(D(r(t).layout),{key:3})):(a(),$(Ln,{key:4},{"doc-top":f(()=>[c(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[c(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[c(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[c(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[c(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),ko=g(bo,[["__scopeId","data-v-91765379"]]),$o={class:"container"},go=["innerHTML"],yo=["innerHTML"],Po=_({__name:"VPFooter",setup(n){const{theme:e,frontmatter:t}=V(),{hasSidebar:s}=U();return(o,i)=>r(e).footer&&r(t).footer!==!1?(a(),u("footer",{key:0,class:N(["VPFooter",{"has-sidebar":r(s)}])},[p("div",$o,[r(e).footer.message?(a(),u("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,go)):h("",!0),r(e).footer.copyright?(a(),u("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,yo)):h("",!0)])],2)):h("",!0)}}),So=g(Po,[["__scopeId","data-v-c970a860"]]);function Vo(){const{theme:n,frontmatter:e}=V(),t=Te([]),s=y(()=>t.value.length>0);return te(()=>{t.value=ke(e.value.outline??n.value.outline)}),{headers:t,hasLocalNav:s}}const Lo=n=>(B("data-v-bc9dc845"),n=n(),H(),n),To={class:"menu-text"},wo=Lo(()=>p("span",{class:"vpi-chevron-right icon"},null,-1)),Io={class:"header"},No={class:"outline"},Mo=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(n){const e=n,{theme:t}=V(),s=T(!1),o=T(0),i=T(),l=T();function d(b){var P;(P=i.value)!=null&&P.contains(b.target)||(s.value=!1)}O(s,b=>{if(b){document.addEventListener("click",d);return}document.removeEventListener("click",d)}),ce("Escape",()=>{s.value=!1}),te(()=>{s.value=!1});function v(){s.value=!s.value,o.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function m(b){b.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),Ne(()=>{s.value=!1}))}function L(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,P)=>(a(),u("div",{class:"VPLocalNavOutlineDropdown",style:Ie({"--vp-vh":o.value+"px"}),ref_key:"main",ref:i},[b.headers.length>0?(a(),u("button",{key:0,onClick:v,class:N({open:s.value})},[p("span",To,I(r(He)(r(t))),1),wo],2)):(a(),u("button",{key:1,onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)),k(pe,{name:"flyout"},{default:f(()=>[s.value?(a(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:m},[p("div",Io,[p("a",{class:"top-link",href:"#",onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)]),p("div",No,[k(Ee,{headers:b.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),Ao=g(Mo,[["__scopeId","data-v-bc9dc845"]]),Co=n=>(B("data-v-070ab83d"),n=n(),H(),n),Bo={class:"container"},Ho=["aria-expanded"],Eo=Co(()=>p("span",{class:"vpi-align-left menu-icon"},null,-1)),Do={class:"menu-text"},Fo=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(n){const{theme:e,frontmatter:t}=V(),{hasSidebar:s}=U(),{headers:o}=Vo(),{y:i}=Me(),l=T(0);R(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),te(()=>{o.value=ke(t.value.outline??e.value.outline)});const d=y(()=>o.value.length===0),v=y(()=>d.value&&!s.value),m=y(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:d.value,fixed:v.value}));return(L,b)=>r(t).layout!=="home"&&(!v.value||r(i)>=l.value)?(a(),u("div",{key:0,class:N(m.value)},[p("div",Bo,[r(s)?(a(),u("button",{key:0,class:"menu","aria-expanded":L.open,"aria-controls":"VPSidebarNav",onClick:b[0]||(b[0]=P=>L.$emit("open-menu"))},[Eo,p("span",Do,I(r(e).sidebarMenuLabel||"Menu"),1)],8,Ho)):h("",!0),k(Ao,{headers:r(o),navHeight:l.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),Oo=g(Fo,[["__scopeId","data-v-070ab83d"]]);function jo(){const n=T(!1);function e(){n.value=!0,window.addEventListener("resize",o)}function t(){n.value=!1,window.removeEventListener("resize",o)}function s(){n.value?t():e()}function o(){window.outerWidth>=768&&t()}const i=ne();return O(()=>i.path,t),{isScreenOpen:n,openScreen:e,closeScreen:t,toggleScreen:s}}const Uo={},Go={class:"VPSwitch",type:"button",role:"switch"},zo={class:"check"},Ko={key:0,class:"icon"};function Ro(n,e){return a(),u("button",Go,[p("span",zo,[n.$slots.default?(a(),u("span",Ko,[c(n.$slots,"default",{},void 0,!0)])):h("",!0)])])}const qo=g(Uo,[["render",Ro],["__scopeId","data-v-4a1c76db"]]),Fe=n=>(B("data-v-e40a8bb6"),n=n(),H(),n),Wo=Fe(()=>p("span",{class:"vpi-sun sun"},null,-1)),Jo=Fe(()=>p("span",{class:"vpi-moon moon"},null,-1)),Yo=_({__name:"VPSwitchAppearance",setup(n){const{isDark:e,theme:t}=V(),s=Y("toggle-appearance",()=>{e.value=!e.value}),o=T("");return _e(()=>{o.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(i,l)=>(a(),$(qo,{title:o.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(s)},{default:f(()=>[Wo,Jo]),_:1},8,["title","aria-checked","onClick"]))}}),$e=g(Yo,[["__scopeId","data-v-e40a8bb6"]]),Xo={key:0,class:"VPNavBarAppearance"},Qo=_({__name:"VPNavBarAppearance",setup(n){const{site:e}=V();return(t,s)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Xo,[k($e)])):h("",!0)}}),Zo=g(Qo,[["__scopeId","data-v-af096f4a"]]),ge=T();let Oe=!1,ie=0;function xo(n){const e=T(!1);if(oe){!Oe&&es(),ie++;const t=O(ge,s=>{var o,i,l;s===n.el.value||(o=n.el.value)!=null&&o.contains(s)?(e.value=!0,(i=n.onFocus)==null||i.call(n)):(e.value=!1,(l=n.onBlur)==null||l.call(n))});he(()=>{t(),ie--,ie||ts()})}return et(e)}function es(){document.addEventListener("focusin",je),Oe=!0,ge.value=document.activeElement}function ts(){document.removeEventListener("focusin",je)}function je(){ge.value=document.activeElement}const ns={class:"VPMenuLink"},os=_({__name:"VPMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,s)=>(a(),u("div",ns,[k(F,{class:N({active:r(q)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:f(()=>[j(I(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),se=g(os,[["__scopeId","data-v-8b74d055"]]),ss={class:"VPMenuGroup"},as={key:0,class:"title"},rs=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),u("div",ss,[e.text?(a(),u("p",as,I(e.text),1)):h("",!0),(a(!0),u(M,null,E(e.items,s=>(a(),u(M,null,["link"in s?(a(),$(se,{key:0,item:s},null,8,["item"])):h("",!0)],64))),256))]))}}),is=g(rs,[["__scopeId","data-v-48c802d0"]]),ls={class:"VPMenu"},cs={key:0,class:"items"},us=_({__name:"VPMenu",props:{items:{}},setup(n){return(e,t)=>(a(),u("div",ls,[e.items?(a(),u("div",cs,[(a(!0),u(M,null,E(e.items,s=>(a(),u(M,{key:JSON.stringify(s)},["link"in s?(a(),$(se,{key:0,item:s},null,8,["item"])):"component"in s?(a(),$(D(s.component),K({key:1,ref_for:!0},s.props),null,16)):(a(),$(is,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):h("",!0),c(e.$slots,"default",{},void 0,!0)]))}}),ds=g(us,[["__scopeId","data-v-7dd3104a"]]),vs=n=>(B("data-v-e5380155"),n=n(),H(),n),ps=["aria-expanded","aria-label"],fs={key:0,class:"text"},hs=["innerHTML"],_s=vs(()=>p("span",{class:"vpi-chevron-down text-icon"},null,-1)),ms={key:1,class:"vpi-more-horizontal icon"},bs={class:"menu"},ks=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(n){const e=T(!1),t=T();xo({el:t,onBlur:s});function s(){e.value=!1}return(o,i)=>(a(),u("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=l=>e.value=!0),onMouseleave:i[2]||(i[2]=l=>e.value=!1)},[p("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":o.label,onClick:i[0]||(i[0]=l=>e.value=!e.value)},[o.button||o.icon?(a(),u("span",fs,[o.icon?(a(),u("span",{key:0,class:N([o.icon,"option-icon"])},null,2)):h("",!0),o.button?(a(),u("span",{key:1,innerHTML:o.button},null,8,hs)):h("",!0),_s])):(a(),u("span",ms))],8,ps),p("div",bs,[k(ds,{items:o.items},{default:f(()=>[c(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ye=g(ks,[["__scopeId","data-v-e5380155"]]),$s=["href","aria-label","innerHTML"],gs=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(n){const e=n,t=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(s,o)=>(a(),u("a",{class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,$s))}}),ys=g(gs,[["__scopeId","data-v-717b8b75"]]),Ps={class:"VPSocialLinks"},Ss=_({__name:"VPSocialLinks",props:{links:{}},setup(n){return(e,t)=>(a(),u("div",Ps,[(a(!0),u(M,null,E(e.links,({link:s,icon:o,ariaLabel:i})=>(a(),$(ys,{key:s,icon:o,link:s,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),Pe=g(Ss,[["__scopeId","data-v-ee7a9424"]]),Vs={key:0,class:"group translations"},Ls={class:"trans-title"},Ts={key:1,class:"group"},ws={class:"item appearance"},Is={class:"label"},Ns={class:"appearance-action"},Ms={key:2,class:"group"},As={class:"item social-links"},Cs=_({__name:"VPNavBarExtra",setup(n){const{site:e,theme:t}=V(),{localeLinks:s,currentLang:o}=Q({correspondingLink:!0}),i=y(()=>s.value.length&&o.value.label||e.value.appearance||t.value.socialLinks);return(l,d)=>i.value?(a(),$(ye,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[r(s).length&&r(o).label?(a(),u("div",Vs,[p("p",Ls,I(r(o).label),1),(a(!0),u(M,null,E(r(s),v=>(a(),$(se,{key:v.link,item:v},null,8,["item"]))),128))])):h("",!0),r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Ts,[p("div",ws,[p("p",Is,I(r(t).darkModeSwitchLabel||"Appearance"),1),p("div",Ns,[k($e)])])])):h("",!0),r(t).socialLinks?(a(),u("div",Ms,[p("div",As,[k(Pe,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),Bs=g(Cs,[["__scopeId","data-v-925effce"]]),Hs=n=>(B("data-v-5dea55bf"),n=n(),H(),n),Es=["aria-expanded"],Ds=Hs(()=>p("span",{class:"container"},[p("span",{class:"top"}),p("span",{class:"middle"}),p("span",{class:"bottom"})],-1)),Fs=[Ds],Os=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(n){return(e,t)=>(a(),u("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},Fs,10,Es))}}),js=g(Os,[["__scopeId","data-v-5dea55bf"]]),Us=["innerHTML"],Gs=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,s)=>(a(),$(F,{class:N({VPNavBarMenuLink:!0,active:r(q)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:f(()=>[p("span",{innerHTML:t.item.text},null,8,Us)]),_:1},8,["class","href","noIcon","target","rel"]))}}),zs=g(Gs,[["__scopeId","data-v-ed5ac1f6"]]),Ks=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(n){const e=n,{page:t}=V(),s=i=>"component"in i?!1:"link"in i?q(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(s),o=y(()=>s(e.item));return(i,l)=>(a(),$(ye,{class:N({VPNavBarMenuGroup:!0,active:r(q)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||o.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),Rs=n=>(B("data-v-e6d46098"),n=n(),H(),n),qs={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Ws=Rs(()=>p("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),Js=_({__name:"VPNavBarMenu",setup(n){const{theme:e}=V();return(t,s)=>r(e).nav?(a(),u("nav",qs,[Ws,(a(!0),u(M,null,E(r(e).nav,o=>(a(),u(M,{key:JSON.stringify(o)},["link"in o?(a(),$(zs,{key:0,item:o},null,8,["item"])):"component"in o?(a(),$(D(o.component),K({key:1,ref_for:!0},o.props),null,16)):(a(),$(Ks,{key:2,item:o},null,8,["item"]))],64))),128))])):h("",!0)}}),Ys=g(Js,[["__scopeId","data-v-e6d46098"]]);function Xs(n){const{localeIndex:e,theme:t}=V();function s(o){var A,C,w;const i=o.split("."),l=(A=t.value.search)==null?void 0:A.options,d=l&&typeof l=="object",v=d&&((w=(C=l.locales)==null?void 0:C[e.value])==null?void 0:w.translations)||null,m=d&&l.translations||null;let L=v,b=m,P=n;const S=i.pop();for(const G of i){let z=null;const J=P==null?void 0:P[G];J&&(z=P=J);const ae=b==null?void 0:b[G];ae&&(z=b=ae);const re=L==null?void 0:L[G];re&&(z=L=re),J||(P=z),ae||(b=z),re||(L=z)}return(L==null?void 0:L[S])??(b==null?void 0:b[S])??(P==null?void 0:P[S])??""}return s}const Qs=["aria-label"],Zs={class:"DocSearch-Button-Container"},xs=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),ea={class:"DocSearch-Button-Placeholder"},ta=p("span",{class:"DocSearch-Button-Keys"},[p("kbd",{class:"DocSearch-Button-Key"}),p("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Se=_({__name:"VPNavBarSearchButton",setup(n){const t=Xs({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,o)=>(a(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[p("span",Zs,[xs,p("span",ea,I(r(t)("button.buttonText")),1)]),ta],8,Qs))}}),na={class:"VPNavBarSearch"},oa={id:"local-search"},sa={key:1,id:"docsearch"},aa=_({__name:"VPNavBarSearch",setup(n){const e=tt(()=>nt(()=>import("./VPLocalSearchBox.CkmE8alw.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:s}=V(),o=T(!1),i=T(!1);R(()=>{});function l(){o.value||(o.value=!0,setTimeout(d,16))}function d(){const b=new Event("keydown");b.key="k",b.metaKey=!0,window.dispatchEvent(b),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||d()},16)}function v(b){const P=b.target,S=P.tagName;return P.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const m=T(!1);ce("k",b=>{(b.ctrlKey||b.metaKey)&&(b.preventDefault(),m.value=!0)}),ce("/",b=>{v(b)||(b.preventDefault(),m.value=!0)});const L="local";return(b,P)=>{var S;return a(),u("div",na,[r(L)==="local"?(a(),u(M,{key:0},[m.value?(a(),$(r(e),{key:0,onClose:P[0]||(P[0]=A=>m.value=!1)})):h("",!0),p("div",oa,[k(Se,{onClick:P[1]||(P[1]=A=>m.value=!0)})])],64)):r(L)==="algolia"?(a(),u(M,{key:1},[o.value?(a(),$(r(t),{key:0,algolia:((S=r(s).search)==null?void 0:S.options)??r(s).algolia,onVnodeBeforeMount:P[2]||(P[2]=A=>i.value=!0)},null,8,["algolia"])):h("",!0),i.value?h("",!0):(a(),u("div",sa,[k(Se,{onClick:l})]))],64)):h("",!0)])}}}),ra=_({__name:"VPNavBarSocialLinks",setup(n){const{theme:e}=V();return(t,s)=>r(e).socialLinks?(a(),$(Pe,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),ia=g(ra,[["__scopeId","data-v-164c457f"]]),la=["href","rel","target"],ca={key:1},ua={key:2},da=_({__name:"VPNavBarTitle",setup(n){const{site:e,theme:t}=V(),{hasSidebar:s}=U(),{currentLang:o}=Q(),i=y(()=>{var v;return typeof t.value.logoLink=="string"?t.value.logoLink:(v=t.value.logoLink)==null?void 0:v.link}),l=y(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.rel}),d=y(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.target});return(v,m)=>(a(),u("div",{class:N(["VPNavBarTitle",{"has-sidebar":r(s)}])},[p("a",{class:"title",href:i.value??r(be)(r(o).link),rel:l.value,target:d.value},[c(v.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),$(x,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):h("",!0),r(t).siteTitle?(a(),u("span",ca,I(r(t).siteTitle),1)):r(t).siteTitle===void 0?(a(),u("span",ua,I(r(e).title),1)):h("",!0),c(v.$slots,"nav-bar-title-after",{},void 0,!0)],8,la)],2))}}),va=g(da,[["__scopeId","data-v-28a961f9"]]),pa={class:"items"},fa={class:"title"},ha=_({__name:"VPNavBarTranslations",setup(n){const{theme:e}=V(),{localeLinks:t,currentLang:s}=Q({correspondingLink:!0});return(o,i)=>r(t).length&&r(s).label?(a(),$(ye,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:f(()=>[p("div",pa,[p("p",fa,I(r(s).label),1),(a(!0),u(M,null,E(r(t),l=>(a(),$(se,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),_a=g(ha,[["__scopeId","data-v-c80d9ad0"]]),ma=n=>(B("data-v-822684d1"),n=n(),H(),n),ba={class:"wrapper"},ka={class:"container"},$a={class:"title"},ga={class:"content"},ya={class:"content-body"},Pa=ma(()=>p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1)),Sa=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(n){const e=n,{y:t}=Me(),{hasSidebar:s}=U(),{frontmatter:o}=V(),i=T({});return _e(()=>{i.value={"has-sidebar":s.value,home:o.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(l,d)=>(a(),u("div",{class:N(["VPNavBar",i.value])},[p("div",ba,[p("div",ka,[p("div",$a,[k(va,null,{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",ga,[p("div",ya,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),k(aa,{class:"search"}),k(Ys,{class:"menu"}),k(_a,{class:"translations"}),k(Zo,{class:"appearance"}),k(ia,{class:"social-links"}),k(Bs,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),k(js,{class:"hamburger",active:l.isScreenOpen,onClick:d[0]||(d[0]=v=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),Pa],2))}}),Va=g(Sa,[["__scopeId","data-v-822684d1"]]),La={key:0,class:"VPNavScreenAppearance"},Ta={class:"text"},wa=_({__name:"VPNavScreenAppearance",setup(n){const{site:e,theme:t}=V();return(s,o)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",La,[p("p",Ta,I(r(t).darkModeSwitchLabel||"Appearance"),1),k($e)])):h("",!0)}}),Ia=g(wa,[["__scopeId","data-v-ffb44008"]]),Na=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(n){const e=Y("close-screen");return(t,s)=>(a(),$(F,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),Ma=g(Na,[["__scopeId","data-v-27d04aeb"]]),Aa=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(n){const e=Y("close-screen");return(t,s)=>(a(),$(F,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:f(()=>[j(I(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ue=g(Aa,[["__scopeId","data-v-7179dbb7"]]),Ca={class:"VPNavScreenMenuGroupSection"},Ba={key:0,class:"title"},Ha=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),u("div",Ca,[e.text?(a(),u("p",Ba,I(e.text),1)):h("",!0),(a(!0),u(M,null,E(e.items,s=>(a(),$(Ue,{key:s.text,item:s},null,8,["item"]))),128))]))}}),Ea=g(Ha,[["__scopeId","data-v-4b8941ac"]]),Da=n=>(B("data-v-875057a5"),n=n(),H(),n),Fa=["aria-controls","aria-expanded"],Oa=["innerHTML"],ja=Da(()=>p("span",{class:"vpi-plus button-icon"},null,-1)),Ua=["id"],Ga={key:0,class:"item"},za={key:1,class:"item"},Ka={key:2,class:"group"},Ra=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(n){const e=n,t=T(!1),s=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function o(){t.value=!t.value}return(i,l)=>(a(),u("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[p("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:o},[p("span",{class:"button-text",innerHTML:i.text},null,8,Oa),ja],8,Fa),p("div",{id:s.value,class:"items"},[(a(!0),u(M,null,E(i.items,d=>(a(),u(M,{key:JSON.stringify(d)},["link"in d?(a(),u("div",Ga,[k(Ue,{item:d},null,8,["item"])])):"component"in d?(a(),u("div",za,[(a(),$(D(d.component),K({ref_for:!0},d.props,{"screen-menu":""}),null,16))])):(a(),u("div",Ka,[k(Ea,{text:d.text,items:d.items},null,8,["text","items"])]))],64))),128))],8,Ua)],2))}}),qa=g(Ra,[["__scopeId","data-v-875057a5"]]),Wa={key:0,class:"VPNavScreenMenu"},Ja=_({__name:"VPNavScreenMenu",setup(n){const{theme:e}=V();return(t,s)=>r(e).nav?(a(),u("nav",Wa,[(a(!0),u(M,null,E(r(e).nav,o=>(a(),u(M,{key:JSON.stringify(o)},["link"in o?(a(),$(Ma,{key:0,item:o},null,8,["item"])):"component"in o?(a(),$(D(o.component),K({key:1,ref_for:!0},o.props,{"screen-menu":""}),null,16)):(a(),$(qa,{key:2,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):h("",!0)}}),Ya=_({__name:"VPNavScreenSocialLinks",setup(n){const{theme:e}=V();return(t,s)=>r(e).socialLinks?(a(),$(Pe,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),Ge=n=>(B("data-v-362991c2"),n=n(),H(),n),Xa=Ge(()=>p("span",{class:"vpi-languages icon lang"},null,-1)),Qa=Ge(()=>p("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Za={class:"list"},xa=_({__name:"VPNavScreenTranslations",setup(n){const{localeLinks:e,currentLang:t}=Q({correspondingLink:!0}),s=T(!1);function o(){s.value=!s.value}return(i,l)=>r(e).length&&r(t).label?(a(),u("div",{key:0,class:N(["VPNavScreenTranslations",{open:s.value}])},[p("button",{class:"title",onClick:o},[Xa,j(" "+I(r(t).label)+" ",1),Qa]),p("ul",Za,[(a(!0),u(M,null,E(r(e),d=>(a(),u("li",{key:d.link,class:"item"},[k(F,{class:"link",href:d.link},{default:f(()=>[j(I(d.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),er=g(xa,[["__scopeId","data-v-362991c2"]]),tr={class:"container"},nr=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(n){const e=T(null),t=Ae(oe?document.body:null);return(s,o)=>(a(),$(pe,{name:"fade",onEnter:o[0]||(o[0]=i=>t.value=!0),onAfterLeave:o[1]||(o[1]=i=>t.value=!1)},{default:f(()=>[s.open?(a(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[p("div",tr,[c(s.$slots,"nav-screen-content-before",{},void 0,!0),k(Ja,{class:"menu"}),k(er,{class:"translations"}),k(Ia,{class:"appearance"}),k(Ya,{class:"social-links"}),c(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),or=g(nr,[["__scopeId","data-v-833aabba"]]),sr={key:0,class:"VPNav"},ar=_({__name:"VPNav",setup(n){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=jo(),{frontmatter:o}=V(),i=y(()=>o.value.navbar!==!1);return me("close-screen",t),ee(()=>{oe&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(l,d)=>i.value?(a(),u("header",sr,[k(Va,{"is-screen-open":r(e),onToggleScreen:r(s)},{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),k(or,{open:r(e)},{"nav-screen-content-before":f(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):h("",!0)}}),rr=g(ar,[["__scopeId","data-v-f1e365da"]]),ze=n=>(B("data-v-196b2e5f"),n=n(),H(),n),ir=["role","tabindex"],lr=ze(()=>p("div",{class:"indicator"},null,-1)),cr=ze(()=>p("span",{class:"vpi-chevron-right caret-icon"},null,-1)),ur=[cr],dr={key:1,class:"items"},vr=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(n){const e=n,{collapsed:t,collapsible:s,isLink:o,isActiveLink:i,hasActiveLink:l,hasChildren:d,toggle:v}=It(y(()=>e.item)),m=y(()=>d.value?"section":"div"),L=y(()=>o.value?"a":"div"),b=y(()=>d.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=y(()=>o.value?void 0:"button"),S=y(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":o.value},{"is-active":i.value},{"has-active":l.value}]);function A(w){"key"in w&&w.key!=="Enter"||!e.item.link&&v()}function C(){e.item.link&&v()}return(w,G)=>{const z=W("VPSidebarItem",!0);return a(),$(D(m.value),{class:N(["VPSidebarItem",S.value])},{default:f(()=>[w.item.text?(a(),u("div",K({key:0,class:"item",role:P.value},st(w.item.items?{click:A,keydown:A}:{},!0),{tabindex:w.item.items&&0}),[lr,w.item.link?(a(),$(F,{key:0,tag:L.value,class:"link",href:w.item.link,rel:w.item.rel,target:w.item.target},{default:f(()=>[(a(),$(D(b.value),{class:"text",innerHTML:w.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),$(D(b.value),{key:1,class:"text",innerHTML:w.item.text},null,8,["innerHTML"])),w.item.collapsed!=null&&w.item.items&&w.item.items.length?(a(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:ot(C,["enter"]),tabindex:"0"},ur,32)):h("",!0)],16,ir)):h("",!0),w.item.items&&w.item.items.length?(a(),u("div",dr,[w.depth<5?(a(!0),u(M,{key:0},E(w.item.items,J=>(a(),$(z,{key:J.text,item:J,depth:w.depth+1},null,8,["item","depth"]))),128)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),pr=g(vr,[["__scopeId","data-v-196b2e5f"]]),fr=_({__name:"VPSidebarGroup",props:{items:{}},setup(n){const e=T(!0);let t=null;return R(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),at(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,o)=>(a(!0),u(M,null,E(s.items,i=>(a(),u("div",{key:i.text,class:N(["group",{"no-transition":e.value}])},[k(pr,{item:i,depth:0},null,8,["item"])],2))),128))}}),hr=g(fr,[["__scopeId","data-v-9e426adc"]]),Ke=n=>(B("data-v-18756405"),n=n(),H(),n),_r=Ke(()=>p("div",{class:"curtain"},null,-1)),mr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},br=Ke(()=>p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),kr=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(n){const{sidebarGroups:e,hasSidebar:t}=U(),s=n,o=T(null),i=Ae(oe?document.body:null);O([s,o],()=>{var d;s.open?(i.value=!0,(d=o.value)==null||d.focus()):i.value=!1},{immediate:!0,flush:"post"});const l=T(0);return O(e,()=>{l.value+=1},{deep:!0}),(d,v)=>r(t)?(a(),u("aside",{key:0,class:N(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:o,onClick:v[0]||(v[0]=rt(()=>{},["stop"]))},[_r,p("nav",mr,[br,c(d.$slots,"sidebar-nav-before",{},void 0,!0),(a(),$(hr,{items:r(e),key:l.value},null,8,["items"])),c(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),$r=g(kr,[["__scopeId","data-v-18756405"]]),gr=_({__name:"VPSkipLink",setup(n){const e=ne(),t=T();O(()=>e.path,()=>t.value.focus());function s({target:o}){const i=document.getElementById(decodeURIComponent(o.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(o,i)=>(a(),u(M,null,[p("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),yr=g(gr,[["__scopeId","data-v-c3508ec8"]]),Pr=_({__name:"Layout",setup(n){const{isOpen:e,open:t,close:s}=U(),o=ne();O(()=>o.path,s),wt(e,s);const{frontmatter:i}=V(),l=Ce(),d=y(()=>!!l["home-hero-image"]);return me("hero-image-slot-exists",d),(v,m)=>{const L=W("Content");return r(i).layout!==!1?(a(),u("div",{key:0,class:N(["Layout",r(i).pageClass])},[c(v.$slots,"layout-top",{},void 0,!0),k(yr),k(pt,{class:"backdrop",show:r(e),onClick:r(s)},null,8,["show","onClick"]),k(rr,null,{"nav-bar-title-before":f(()=>[c(v.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(v.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(v.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(v.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[c(v.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(v.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),k(Oo,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),k($r,{open:r(e)},{"sidebar-nav-before":f(()=>[c(v.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[c(v.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),k(ko,null,{"page-top":f(()=>[c(v.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(v.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[c(v.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[c(v.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(v.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(v.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(v.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(v.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(v.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(v.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(v.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(v.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[c(v.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(v.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(v.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[c(v.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(v.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[c(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),k(So),c(v.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),$(L,{key:1}))}}}),Sr=g(Pr,[["__scopeId","data-v-a9a9e638"]]),Ve={Layout:Sr,enhanceApp:({app:n})=>{n.component("Badge",ut)}},Vr=n=>{if(typeof document>"u")return{stabilizeScrollPosition:o=>async(...i)=>o(...i)};const e=document.documentElement;return{stabilizeScrollPosition:s=>async(...o)=>{const i=s(...o),l=n.value;if(!l)return i;const d=l.offsetTop-e.scrollTop;return await Ne(),e.scrollTop=l.offsetTop-d,i}}},Re="vitepress:tabSharedState",X=typeof localStorage<"u"?localStorage:null,qe="vitepress:tabsSharedState",Lr=()=>{const n=X==null?void 0:X.getItem(qe);if(n)try{return JSON.parse(n)}catch{}return{}},Tr=n=>{X&&X.setItem(qe,JSON.stringify(n))},wr=n=>{const e=it({});O(()=>e.content,(t,s)=>{t&&s&&Tr(t)},{deep:!0}),n.provide(Re,e)},Ir=(n,e)=>{const t=Y(Re);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");R(()=>{t.content||(t.content=Lr())});const s=T(),o=y({get(){var v;const l=e.value,d=n.value;if(l){const m=(v=t.content)==null?void 0:v[l];if(m&&d.includes(m))return m}else{const m=s.value;if(m)return m}return d[0]},set(l){const d=e.value;d?t.content&&(t.content[d]=l):s.value=l}});return{selected:o,select:l=>{o.value=l}}};let Le=0;const Nr=()=>(Le++,""+Le);function Mr(){const n=Ce();return y(()=>{var s;const t=(s=n.default)==null?void 0:s.call(n);return t?t.filter(o=>typeof o.type=="object"&&"__name"in o.type&&o.type.__name==="PluginTabsTab"&&o.props).map(o=>{var i;return(i=o.props)==null?void 0:i.label}):[]})}const We="vitepress:tabSingleState",Ar=n=>{me(We,n)},Cr=()=>{const n=Y(We);if(!n)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return n},Br={class:"plugin-tabs"},Hr=["id","aria-selected","aria-controls","tabindex","onClick"],Er=_({__name:"PluginTabs",props:{sharedStateKey:{}},setup(n){const e=n,t=Mr(),{selected:s,select:o}=Ir(t,lt(e,"sharedStateKey")),i=T(),{stabilizeScrollPosition:l}=Vr(i),d=l(o),v=T([]),m=b=>{var A;const P=t.value.indexOf(s.value);let S;b.key==="ArrowLeft"?S=P>=1?P-1:t.value.length-1:b.key==="ArrowRight"&&(S=P(a(),u("div",Br,[p("div",{ref_key:"tablist",ref:i,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:m},[(a(!0),u(M,null,E(r(t),S=>(a(),u("button",{id:`tab-${S}-${r(L)}`,ref_for:!0,ref_key:"buttonRefs",ref:v,key:S,role:"tab",class:"plugin-tabs--tab","aria-selected":S===r(s),"aria-controls":`panel-${S}-${r(L)}`,tabindex:S===r(s)?0:-1,onClick:()=>r(d)(S)},I(S),9,Hr))),128))],544),c(b.$slots,"default")]))}}),Dr=["id","aria-labelledby"],Fr=_({__name:"PluginTabsTab",props:{label:{}},setup(n){const{uid:e,selected:t}=Cr();return(s,o)=>r(t)===s.label?(a(),u("div",{key:0,id:`panel-${s.label}-${r(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${s.label}-${r(e)}`},[c(s.$slots,"default",{},void 0,!0)],8,Dr)):h("",!0)}}),Or=g(Fr,[["__scopeId","data-v-9b0d03d2"]]),jr=n=>{wr(n),n.component("PluginTabs",Er),n.component("PluginTabsTab",Or)},Gr={extends:Ve,Layout(){return ct(Ve.Layout,null,{})},enhanceApp({app:n,router:e,siteData:t}){jr(n)}};export{Gr as R,Xs as c,V as u}; diff --git a/previews/PR53/assets/constraints_comparison_constraints.md._xAR0god.js b/previews/PR53/assets/constraints_comparison_constraints.md.BzzoUfWs.js similarity index 98% rename from previews/PR53/assets/constraints_comparison_constraints.md._xAR0god.js rename to previews/PR53/assets/constraints_comparison_constraints.md.BzzoUfWs.js index 820bb58..6dad81f 100644 --- a/previews/PR53/assets/constraints_comparison_constraints.md._xAR0god.js +++ b/previews/PR53/assets/constraints_comparison_constraints.md.BzzoUfWs.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B__MqT43.js";const o=JSON.parse('{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","description":"","frontmatter":{},"headers":[],"relativePath":"constraints/comparison_constraints.md","filePath":"constraints/comparison_constraints.md","lastUpdated":null}'),h={name:"constraints/comparison_constraints.md"},t=n(`

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

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

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

julia
using Constraints
 
 concept(:all_different, [1,1,1,2]) # false
 concept(:all_different, [1,9,3,2]) # true
julia
using Constraints
@@ -17,7 +17,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B__MqT43.js";const o
 JuMP.optimize!(model)
 @info "All Different" value.(X) value.(Y)
 
-# Note that this example gives a solution for the all_different constraint.
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
+# Note that this example gives a solution for the all_different constraint.
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
 
 concept(:all_equal, [1,1,1,2]) #false
 concept(:all_equal, [1,1,1,1]) #true
julia
using Constraints
@@ -35,7 +35,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B__MqT43.js";const o
 JuMP.optimize!(model)
 @info "All Equal" value.(X)
 
-# Note that this example gives a solution for the all_equal constraint.
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
+# Note that this example gives a solution for the all_equal constraint.
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
 
 @info concept(:ordered, [1, 2, 3, 4, 4]; op=≤)
 @info concept(:ordered, [1, 2, 3, 3, 5]; op=<)
@@ -79,4 +79,4 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B__MqT43.js";const o
 c([1, 2, 3, 4, 4]; op=≤)
 c([1, 2, 3, 4, 5]; op=<)
 !c([1, 2, 3, 4, 3]; op=≤)
-!c([1, 2, 3, 4, 3]; op=<)

source


`,11),l=[t];function k(p,e,E,r,d,g){return a(),i("div",null,l)}const F=s(h,[["render",k]]);export{o as __pageData,F as default}; +!c([1, 2, 3, 4, 3]; op=<)

source


`,11),l=[t];function k(p,e,E,r,d,g){return a(),i("div",null,l)}const o=s(h,[["render",k]]);export{F as __pageData,o as default}; diff --git a/previews/PR53/assets/constraints_comparison_constraints.md._xAR0god.lean.js b/previews/PR53/assets/constraints_comparison_constraints.md.BzzoUfWs.lean.js similarity index 71% rename from previews/PR53/assets/constraints_comparison_constraints.md._xAR0god.lean.js rename to previews/PR53/assets/constraints_comparison_constraints.md.BzzoUfWs.lean.js index 60f7785..7926a12 100644 --- a/previews/PR53/assets/constraints_comparison_constraints.md._xAR0god.lean.js +++ b/previews/PR53/assets/constraints_comparison_constraints.md.BzzoUfWs.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B__MqT43.js";const o=JSON.parse('{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","description":"","frontmatter":{},"headers":[],"relativePath":"constraints/comparison_constraints.md","filePath":"constraints/comparison_constraints.md","lastUpdated":null}'),h={name:"constraints/comparison_constraints.md"},t=n("",11),l=[t];function k(p,e,E,r,d,g){return a(),i("div",null,l)}const F=s(h,[["render",k]]);export{o as __pageData,F as default}; +import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B__MqT43.js";const F=JSON.parse('{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","description":"","frontmatter":{},"headers":[],"relativePath":"constraints/comparison_constraints.md","filePath":"constraints/comparison_constraints.md","lastUpdated":null}'),h={name:"constraints/comparison_constraints.md"},t=n("",11),l=[t];function k(p,e,E,r,d,g){return a(),i("div",null,l)}const o=s(h,[["render",k]]);export{F as __pageData,o as default}; diff --git a/previews/PR53/assets/constraints_connection_constraints.md.DEFHJFPq.js b/previews/PR53/assets/constraints_connection_constraints.md.B5jEZYFf.js similarity index 98% rename from previews/PR53/assets/constraints_connection_constraints.md.DEFHJFPq.js rename to previews/PR53/assets/constraints_connection_constraints.md.B5jEZYFf.js index f87d329..7363ac7 100644 --- a/previews/PR53/assets/constraints_connection_constraints.md.DEFHJFPq.js +++ b/previews/PR53/assets/constraints_connection_constraints.md.B5jEZYFf.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B__MqT43.js";const F=JSON.parse('{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","description":"","frontmatter":{},"headers":[],"relativePath":"constraints/connection_constraints.md","filePath":"constraints/connection_constraints.md","lastUpdated":null}'),h={name:"constraints/connection_constraints.md"},k=n(`

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

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

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

julia
using Constraints
 
 concept(:maximum, [1,1,1,2], val = 2, op = ==) # true
 concept(:maximum, [1,2,4,4], val = 2, op = ==) # false
julia
using Constraints
@@ -15,7 +15,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B__MqT43.js";const F
 @variable(model, 1X[1:5]5, Int)
 @constraint(model, X in Maximum(; op = ==, val = 5))
 optimize!(model)
-@info "Maximum" value.(X)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
+@info "Maximum" value.(X)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
 
 concept(:minimum, [1,1,1,2], val = 1, op = ==) # true
 concept(:minimum, [1,2,4,4], val = 2, op = ==) # false
julia
using Constraints
@@ -34,7 +34,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B__MqT43.js";const F
 JuMP.optimize!(model)
 @info "Minimum" value.(X)
 
-# Note that this example gives a solution for the minimum constraint.
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
+# Note that this example gives a solution for the minimum constraint.
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
 
 @info concept(:element, [1, 2, 3, 4, 5]; id=1, val=1)
 @info concept(:element, [1, 2, 3, 4, 5]; id=1, val=2)
@@ -58,7 +58,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B__MqT43.js";const F
 @constraint(model, Y in Element(; id = 1, val = 1))
 @constraint(model, Z in Element(; id = 2, val = 2))
 JuMP.optimize!(model)
-@info "Element" value.(X) value.(Y) value.(Z)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
+@info "Element" value.(X) value.(Y) value.(Z)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
 
 @info concept(:channel, [2, 1, 4, 3])
 @info concept(:channel, [1, 2, 3, 4])
diff --git a/previews/PR53/assets/constraints_connection_constraints.md.DEFHJFPq.lean.js b/previews/PR53/assets/constraints_connection_constraints.md.B5jEZYFf.lean.js
similarity index 100%
rename from previews/PR53/assets/constraints_connection_constraints.md.DEFHJFPq.lean.js
rename to previews/PR53/assets/constraints_connection_constraints.md.B5jEZYFf.lean.js
diff --git a/previews/PR53/assets/constraints_counting_summing_constraints.md.BtqJIwAJ.js b/previews/PR53/assets/constraints_counting_summing_constraints.md.BrFsDYjC.js
similarity index 98%
rename from previews/PR53/assets/constraints_counting_summing_constraints.md.BtqJIwAJ.js
rename to previews/PR53/assets/constraints_counting_summing_constraints.md.BrFsDYjC.js
index 4a3c65c..4330b3b 100644
--- a/previews/PR53/assets/constraints_counting_summing_constraints.md.BtqJIwAJ.js
+++ b/previews/PR53/assets/constraints_counting_summing_constraints.md.BrFsDYjC.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as h}from"./chunks/framework.B__MqT43.js";const F=JSON.parse('{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","description":"","frontmatter":{},"headers":[],"relativePath":"constraints/counting_summing_constraints.md","filePath":"constraints/counting_summing_constraints.md","lastUpdated":null}'),k={name:"constraints/counting_summing_constraints.md"},n=h(`

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

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

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

julia
using Constraints
 
 @info concept(:sum, [1, 2, 3, 4, 5]; op = ==, val=15)
 @info concept(:sum, [1, 2, 3, 4, 5]; op = ==, val=2)
@@ -20,7 +20,7 @@ import{_ as s,c as i,o as a,a7 as h}from"./chunks/framework.B__MqT43.js";const F
 @constraint(model, X in Sum(; op = ==, val = 15))
 @constraint(model, Y in Sum(; op = <=, val = 10))
 JuMP.optimize!(model)
-@info "Sum" value.(X) value.(Y)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
+@info "Sum" value.(X) value.(Y)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
 
 concept(:count, [1,1,1,2], vals = [1, 1, 1, 2], op = ==, val = 4) # true
 concept(:count, [1,1,1,2], vals = [1, 1, 1, 2], op = ==, val = 5) # false
@@ -54,7 +54,7 @@ import{_ as s,c as i,o as a,a7 as h}from"./chunks/framework.B__MqT43.js";const F
 @constraint(model, X_at_most in AtMost(vals = [1, 2], val = 1))
 @constraint(model, X_exactly in Exactly(vals = [1, 2], val = 2))
 JuMP.optimize!(model)
-@info "Count" value.(X) value.(X_at_least) value.(X_at_most) value.(X_exactly)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
+@info "Count" value.(X) value.(X_at_least) value.(X_at_most) value.(X_exactly)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
 
 @info concept(:nvalues, [1, 2, 3, 4, 5]; op = ==, val = 5)
 @info concept(:nvalues, [1, 2, 3, 4, 5]; op = ==, val = 2)
@@ -78,7 +78,7 @@ import{_ as s,c as i,o as a,a7 as h}from"./chunks/framework.B__MqT43.js";const F
 @constraint(model, Y in NValues(; op = ==, val = 2))
 @constraint(model, Z in NValues(; op = <=, val = 5, vals = [1, 2]))
 JuMP.optimize!(model)
-@info "NValues" value.(X) value.(Y) value.(Z)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
+@info "NValues" value.(X) value.(Y) value.(Z)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
 
 # [v1, v2, v3], [v1, a1, a2; v2, b1, b2; v3, c1, c2] means v1 occurs between a1 and a2 times in the first array, similar for v2 and v3.
 
@@ -143,4 +143,4 @@ import{_ as s,c as i,o as a,a7 as h}from"./chunks/framework.B__MqT43.js";const F
 cc([8, 5, 10, 10]; vals=[2 0 1; 5 1 3; 10 2 3])
 
 co = concept(:cardinality_open)
-co([8, 5, 10, 10]; vals=[2 0 1; 5 1 3; 10 2 3])

source


`,14),t=[n];function l(p,e,E,d,r,g){return a(),i("div",null,t)}const C=s(k,[["render",l]]);export{F as __pageData,C as default}; +co([8, 5, 10, 10]; vals=[2 0 1; 5 1 3; 10 2 3])

source


`,14),l=[n];function t(p,e,E,d,r,g){return a(),i("div",null,l)}const C=s(k,[["render",t]]);export{F as __pageData,C as default}; diff --git a/previews/PR53/assets/constraints_counting_summing_constraints.md.BtqJIwAJ.lean.js b/previews/PR53/assets/constraints_counting_summing_constraints.md.BrFsDYjC.lean.js similarity index 69% rename from previews/PR53/assets/constraints_counting_summing_constraints.md.BtqJIwAJ.lean.js rename to previews/PR53/assets/constraints_counting_summing_constraints.md.BrFsDYjC.lean.js index 639d5c4..7d4283e 100644 --- a/previews/PR53/assets/constraints_counting_summing_constraints.md.BtqJIwAJ.lean.js +++ b/previews/PR53/assets/constraints_counting_summing_constraints.md.BrFsDYjC.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a7 as h}from"./chunks/framework.B__MqT43.js";const F=JSON.parse('{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","description":"","frontmatter":{},"headers":[],"relativePath":"constraints/counting_summing_constraints.md","filePath":"constraints/counting_summing_constraints.md","lastUpdated":null}'),k={name:"constraints/counting_summing_constraints.md"},n=h("",14),t=[n];function l(p,e,E,d,r,g){return a(),i("div",null,t)}const C=s(k,[["render",l]]);export{F as __pageData,C as default}; +import{_ as s,c as i,o as a,a7 as h}from"./chunks/framework.B__MqT43.js";const F=JSON.parse('{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","description":"","frontmatter":{},"headers":[],"relativePath":"constraints/counting_summing_constraints.md","filePath":"constraints/counting_summing_constraints.md","lastUpdated":null}'),k={name:"constraints/counting_summing_constraints.md"},n=h("",14),l=[n];function t(p,e,E,d,r,g){return a(),i("div",null,l)}const C=s(k,[["render",t]]);export{F as __pageData,C as default}; diff --git a/previews/PR53/assets/constraints_generic_constraints.md.BMouGtoq.js b/previews/PR53/assets/constraints_generic_constraints.md.BMouGtoq.js new file mode 100644 index 0000000..192c38d --- /dev/null +++ b/previews/PR53/assets/constraints_generic_constraints.md.BMouGtoq.js @@ -0,0 +1,90 @@ +import{_ as e,c as a,j as s,a as i,a7 as n,o as t}from"./chunks/framework.B__MqT43.js";const vs=JSON.parse('{"title":"Generic Constraints","description":"","frontmatter":{},"headers":[],"relativePath":"constraints/generic_constraints.md","filePath":"constraints/generic_constraints.md","lastUpdated":null}'),l={name:"constraints/generic_constraints.md"},h=n('

Generic Constraints

In the XCSP³-core standard, generic constraints are categorized into two main types: intention and extension constraints.

Intention Constraints

',3),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.294ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 572 453","aria-hidden":"true"},r=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D465",d:"M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z",style:{"stroke-width":"3"}})])])],-1),d=[r],o=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x")])],-1),g={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},T={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.109ex",height:"1.464ex",role:"img",focusable:"false",viewBox:"0 -442 490 647","aria-hidden":"true"},E=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D466",d:"M21 287Q21 301 36 335T84 406T158 442Q199 442 224 419T250 355Q248 336 247 334Q247 331 231 288T198 191T182 105Q182 62 196 45T238 27Q261 27 281 38T312 61T339 94Q339 95 344 114T358 173T377 247Q415 397 419 404Q432 431 462 431Q475 431 483 424T494 412T496 403Q496 390 447 193T391 -23Q363 -106 294 -155T156 -205Q111 -205 77 -183T43 -117Q43 -95 50 -80T69 -58T89 -48T106 -45Q150 -45 150 -87Q150 -107 138 -122T115 -142T102 -147L99 -148Q101 -153 118 -160T152 -167H160Q177 -167 186 -165Q219 -156 247 -127T290 -65T313 -9T321 21L315 17Q309 13 296 6T270 -6Q250 -11 231 -11Q185 -11 150 11T104 82Q103 89 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),c=[E],Q=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y")])],-1),y={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},m={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.42ex",height:"1.686ex",role:"img",focusable:"false",viewBox:"0 -540 2395.6 745","aria-hidden":"true"},C=n('',1),u=[C],F=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"<"),s("mi",null,"y")])],-1),x=n('

Note that the intention constraint is not directly available through the JC-API in Constraints.jl. It is designed as such since defining a constraint through a predicate is the natural way.

We provide a straightforward example through the :dist_different constraint on how to define and add such a constraint in the USUAL_CONSTRAINTS collection.

Higher level modeling languages such as JuMP should provide a Intention interface.

Defining an intention constraint in JC-API

',4),w=s("code",null,"dist_different",-1),_=s("em",null,"Constraints.jl",-1),f=s("code",null,"dist_different",-1),b={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},v={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.294ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 572 453","aria-hidden":"true"},H=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D465",d:"M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z",style:{"stroke-width":"3"}})])])],-1),D=[H],B=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x")])],-1),A={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},V={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.797ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 11402.4 1000","aria-hidden":"true"},M=n('',1),L=[M],j=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"x"),s("mo",{stretchy:"false"},"["),s("mn",null,"1"),s("mo",{stretchy:"false"},"]"),s("mo",null,"−"),s("mi",null,"x"),s("mo",{stretchy:"false"},"["),s("mn",null,"2"),s("mo",{stretchy:"false"},"]"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"≠"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"x"),s("mo",{stretchy:"false"},"["),s("mn",null,"3"),s("mo",{stretchy:"false"},"]"),s("mo",null,"−"),s("mi",null,"x"),s("mo",{stretchy:"false"},"["),s("mn",null,"4"),s("mo",{stretchy:"false"},"]"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])],-1),S=n(`

The constraint is then added to the usual constraints collection.

julia
const description_dist_different = """
+Ensures that the distances between marks on the ruler are unique.
+"""
+
+# Define the predicate
+predicate_dist_different(x) = abs(x[1] - x[2])  abs(x[3] - x[4])
+
+# Add it to usual constraints
+@usual concept_dist_different(x) = xcsp_intention(
+    list = x,
+    predicate = predicate_dist_different
+)

Please check the section dedicated to the Golomb Ruler problem to see a use for this constraint. <!– TODO: Golomb Ruler –>

APIs

Note that the intention constraint is not directly available through the JC-API in Constraints.jl. It is designed as such since defining a constraint through a predicate is the natural way.

We provide here a usage example for the :dist_different constraint, previously added to the USUAL_CONSTRAINTS collection.

Higher level modeling language such as JuMP should provide an Intention interface.

julia
using Constraints
+
+concept(:dist_different, x)
+concept(:dist_different)(x)
julia
# Defines the DistDifferent constraint
+using Constraints
+
+c = x -> xcsp_intention(
+    list = x,
+    predicate = y -> abs(y[1] - y[2])  abs(y[3] - y[4])
+)
+
+c([1, 2, 3, 3]) # true
+c([1, 2, 3, 4]) # false
julia
using CBLS, JuMP
+
+model = Model(CBLS.Optimizer)
+
+# Using build-in DistDifferent
+@variable(model, 0 <= X[1:4] <= 10, Int)
+@constraint(model, X in DistDifferent())
+
+# Alternatively
+@variable(model, 0 <= Y[1:4] <= 10, Int)
+@constraint(model, Y in Intention(y -> abs(y[1] - y[2])  abs(y[3] - y[4])))
+
+optimize!(model)
+
+@info value.(X)
+@info value.(Y)
julia
using CBLS
+import MathOptInterface as MOI
+
+optimizer = CBLS.Optimizer()
+
+x = MOI.add_variables(optimizer, 4)
+for xi in x
+    # Missing RangeDomain currently in CBLS
+    MOI.add_constraint(optimizer, xi, CBLS.DiscreteSet(collect[1:10]))
+end
+MOI.add_constraint(optimizer, x, CBLS.Intention(y -> abs(y[1] - y[2])  abs(y[3] - y[4])))
+
+MOI.optimize!(optimizer)

Extension Constraints

`,9),Z={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},I={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.928ex",height:"1.545ex",role:"img",focusable:"false",viewBox:"0 -683 852 683","aria-hidden":"true"},P=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D44B",d:"M42 0H40Q26 0 26 11Q26 15 29 27Q33 41 36 43T55 46Q141 49 190 98Q200 108 306 224T411 342Q302 620 297 625Q288 636 234 637H206Q200 643 200 645T202 664Q206 677 212 683H226Q260 681 347 681Q380 681 408 681T453 682T473 682Q490 682 490 671Q490 670 488 658Q484 643 481 640T465 637Q434 634 411 620L488 426L541 485Q646 598 646 610Q646 628 622 635Q617 635 609 637Q594 637 594 648Q594 650 596 664Q600 677 606 683H618Q619 683 643 683T697 681T738 680Q828 680 837 683H845Q852 676 852 672Q850 647 840 637H824Q790 636 763 628T722 611T698 593L687 584Q687 585 592 480L505 384Q505 383 536 304T601 142T638 56Q648 47 699 46Q734 46 734 37Q734 35 732 23Q728 7 725 4T711 1Q708 1 678 1T589 2Q528 2 496 2T461 1Q444 1 444 10Q444 11 446 25Q448 35 450 39T455 44T464 46T480 47T506 54Q523 62 523 64Q522 64 476 181L429 299Q241 95 236 84Q232 76 232 72Q232 53 261 47Q262 47 267 47T273 46Q276 46 277 46T280 45T283 42T284 35Q284 26 282 19Q279 6 276 4T261 1Q258 1 243 1T201 2T142 2Q64 2 42 0Z",style:{"stroke-width":"3"}})])])],-1),z=[P],O=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"X")])],-1),J={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},R={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.131ex",height:"1.507ex",role:"img",focusable:"false",viewBox:"0 -666 500 666","aria-hidden":"true"},G=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mn"},[s("path",{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z",style:{"stroke-width":"3"}})])])],-1),q=[G],N=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mn",null,"1")])],-1),U={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},X={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.131ex",height:"1.507ex",role:"img",focusable:"false",viewBox:"0 -666 500 666","aria-hidden":"true"},Y=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mn"},[s("path",{"data-c":"32",d:"M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z",style:{"stroke-width":"3"}})])])],-1),W=[Y],$=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mn",null,"2")])],-1),K={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ss={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.545ex",role:"img",focusable:"false",viewBox:"0 -683 763 683","aria-hidden":"true"},is=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D44C",d:"M66 637Q54 637 49 637T39 638T32 641T30 647T33 664T42 682Q44 683 56 683Q104 680 165 680Q288 680 306 683H316Q322 677 322 674T320 656Q316 643 310 637H298Q242 637 242 624Q242 619 292 477T343 333L346 336Q350 340 358 349T379 373T411 410T454 461Q546 568 561 587T577 618Q577 634 545 637Q528 637 528 647Q528 649 530 661Q533 676 535 679T549 683Q551 683 578 682T657 680Q684 680 713 681T746 682Q763 682 763 673Q763 669 760 657T755 643Q753 637 734 637Q662 632 617 587Q608 578 477 424L348 273L322 169Q295 62 295 57Q295 46 363 46Q379 46 384 45T390 35Q390 33 388 23Q384 6 382 4T366 1Q361 1 324 1T232 2Q170 2 138 2T102 1Q84 1 84 9Q84 14 87 24Q88 27 89 30T90 35T91 39T93 42T96 44T101 45T107 45T116 46T129 46Q168 47 180 50T198 63Q201 68 227 171L252 274L129 623Q128 624 127 625T125 627T122 629T118 631T113 633T105 634T96 635T83 636T66 637Z",style:{"stroke-width":"3"}})])])],-1),as=[is],ts=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"Y")])],-1),ns={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},es={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.05ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.131ex",height:"1.554ex",role:"img",focusable:"false",viewBox:"0 -665 500 687","aria-hidden":"true"},ls=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mn"},[s("path",{"data-c":"33",d:"M127 463Q100 463 85 480T69 524Q69 579 117 622T233 665Q268 665 277 664Q351 652 390 611T430 522Q430 470 396 421T302 350L299 348Q299 347 308 345T337 336T375 315Q457 262 457 175Q457 96 395 37T238 -22Q158 -22 100 21T42 130Q42 158 60 175T105 193Q133 193 151 175T169 130Q169 119 166 110T159 94T148 82T136 74T126 70T118 67L114 66Q165 21 238 21Q293 21 321 74Q338 107 338 175V195Q338 290 274 322Q259 328 213 329L171 330L168 332Q166 335 166 348Q166 366 174 366Q202 366 232 371Q266 376 294 413T322 525V533Q322 590 287 612Q265 626 240 626Q208 626 181 615T143 592T132 580H135Q138 579 143 578T153 573T165 566T175 555T183 540T186 520Q186 498 172 481T127 463Z",style:{"stroke-width":"3"}})])])],-1),hs=[ls],ps=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mn",null,"3")])],-1),ks={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},rs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.131ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -677 500 677","aria-hidden":"true"},ds=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mn"},[s("path",{"data-c":"34",d:"M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z",style:{"stroke-width":"3"}})])])],-1),os=[ds],gs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mn",null,"4")])],-1),Ts={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},Es={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"23.762ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 10502.7 1000","aria-hidden":"true"},cs=n('',1),Qs=[cs],ys=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{stretchy:"false"},"("),s("mn",null,"1"),s("mo",null,","),s("mn",null,"3"),s("mo",{stretchy:"false"},")"),s("mo",null,","),s("mo",{stretchy:"false"},"("),s("mn",null,"1"),s("mo",null,","),s("mn",null,"4"),s("mo",{stretchy:"false"},")"),s("mo",null,","),s("mo",{stretchy:"false"},"("),s("mn",null,"2"),s("mo",null,","),s("mn",null,"3"),s("mo",{stretchy:"false"},")"),s("mo",null,","),s("mo",{stretchy:"false"},"("),s("mn",null,"2"),s("mo",null,","),s("mn",null,"4"),s("mo",{stretchy:"false"},")")]),s("mo",null,".")])],-1),ms=n(`

These two types of constraints provide a flexible way to define complex relationships between variables in constraint programming.

julia
using Constraints
+
+concept(:dist_different, x)
+concept(:dist_different)(x)
julia
# Defines the DistDifferent constraint
+using Constraints
+
+c = x -> xcsp_intention(
+    list = x,
+    predicate = y -> abs(y[1] - y[2])  abs(y[3] - y[4])
+)
+
+c([1, 2, 3, 3]) # true
+c([1, 2, 3, 4]) # false
julia
using CBLS, JuMP
+
+model = Model(CBLS.Optimizer)
+
+# Using build-in DistDifferent
+@variable(model, 0 <= X[1:4] <= 10, Int)
+@constraint(model, X in DistDifferent())
+
+# Alternatively
+@variable(model, 0 <= Y[1:4] <= 10, Int)
+@constraint(model, Y in Intention(y -> abs(y[1] - y[2])  abs(y[3] - y[4])))
+
+optimize!(model)
+
+@info value.(X)
+@info value.(Y)
julia
using CBLS
+import MathOptInterface as MOI
+
+optimizer = CBLS.Optimizer()
+
+x = MOI.add_variables(optimizer, 4)
+for xi in x
+    # Missing RangeDomain currently in CBLS
+    MOI.add_constraint(optimizer, xi, CBLS.DiscreteSet(collect[1:10]))
+end
+MOI.add_constraint(optimizer, x, CBLS.Intention(y -> abs(y[1] - y[2])  abs(y[3] - y[4])))
+
+MOI.optimize!(optimizer)
`,2);function Cs(us,Fs,xs,ws,_s,fs){return t(),a("div",null,[h,s("p",null,[i("These are constraints that are defined by a logical expression or a function. They are called intentional because they are defined by the property they satisfy. For example, a constraint that specifies that a variable "),s("mjx-container",p,[(t(),a("svg",k,d)),o]),i(" must be less than a variable "),s("mjx-container",g,[(t(),a("svg",T,c)),Q]),i(" could be defined intentionally as "),s("mjx-container",y,[(t(),a("svg",m,u)),F]),i(".")]),x,s("p",null,[i("We use the "),w,i(" constraint to illustrate how to define an intention constraint in "),_,i(". The "),f,i(" constraint ensures that the distances between marks "),s("mjx-container",b,[(t(),a("svg",v,D)),B]),i(" on a ruler are unique.")]),s("mjx-container",A,[(t(),a("svg",V,L)),j]),S,s("p",null,[i("These are constraints that are defined by explicitly listing all the tuples of values that satisfy the constraint. They are called extensional because they are defined by the set of values they allow. For example, a binary constraint that specifies that a variable "),s("mjx-container",Z,[(t(),a("svg",I,z)),O]),i(" must be either "),s("mjx-container",J,[(t(),a("svg",R,q)),N]),i(" or "),s("mjx-container",U,[(t(),a("svg",X,W)),$]),i(" and a variable "),s("mjx-container",K,[(t(),a("svg",ss,as)),ts]),i(" must be either "),s("mjx-container",ns,[(t(),a("svg",es,hs)),ps]),i(" or "),s("mjx-container",ks,[(t(),a("svg",rs,os)),gs]),i(" could be defined extensionally by the set of tuples "),s("mjx-container",Ts,[(t(),a("svg",Es,Qs)),ys])]),ms])}const Hs=e(l,[["render",Cs]]);export{vs as __pageData,Hs as default}; diff --git a/previews/PR53/assets/constraints_generic_constraints.md.BMouGtoq.lean.js b/previews/PR53/assets/constraints_generic_constraints.md.BMouGtoq.lean.js new file mode 100644 index 0000000..18c31eb --- /dev/null +++ b/previews/PR53/assets/constraints_generic_constraints.md.BMouGtoq.lean.js @@ -0,0 +1 @@ +import{_ as e,c as a,j as s,a as i,a7 as n,o as t}from"./chunks/framework.B__MqT43.js";const vs=JSON.parse('{"title":"Generic Constraints","description":"","frontmatter":{},"headers":[],"relativePath":"constraints/generic_constraints.md","filePath":"constraints/generic_constraints.md","lastUpdated":null}'),l={name:"constraints/generic_constraints.md"},h=n("",3),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.294ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 572 453","aria-hidden":"true"},r=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D465",d:"M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z",style:{"stroke-width":"3"}})])])],-1),d=[r],o=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x")])],-1),g={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},T={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.109ex",height:"1.464ex",role:"img",focusable:"false",viewBox:"0 -442 490 647","aria-hidden":"true"},E=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D466",d:"M21 287Q21 301 36 335T84 406T158 442Q199 442 224 419T250 355Q248 336 247 334Q247 331 231 288T198 191T182 105Q182 62 196 45T238 27Q261 27 281 38T312 61T339 94Q339 95 344 114T358 173T377 247Q415 397 419 404Q432 431 462 431Q475 431 483 424T494 412T496 403Q496 390 447 193T391 -23Q363 -106 294 -155T156 -205Q111 -205 77 -183T43 -117Q43 -95 50 -80T69 -58T89 -48T106 -45Q150 -45 150 -87Q150 -107 138 -122T115 -142T102 -147L99 -148Q101 -153 118 -160T152 -167H160Q177 -167 186 -165Q219 -156 247 -127T290 -65T313 -9T321 21L315 17Q309 13 296 6T270 -6Q250 -11 231 -11Q185 -11 150 11T104 82Q103 89 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),c=[E],Q=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y")])],-1),y={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},m={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.42ex",height:"1.686ex",role:"img",focusable:"false",viewBox:"0 -540 2395.6 745","aria-hidden":"true"},C=n("",1),u=[C],F=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"<"),s("mi",null,"y")])],-1),x=n("",4),w=s("code",null,"dist_different",-1),_=s("em",null,"Constraints.jl",-1),f=s("code",null,"dist_different",-1),b={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},v={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.294ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 572 453","aria-hidden":"true"},H=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D465",d:"M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z",style:{"stroke-width":"3"}})])])],-1),D=[H],B=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x")])],-1),A={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},V={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.797ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 11402.4 1000","aria-hidden":"true"},M=n("",1),L=[M],j=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"x"),s("mo",{stretchy:"false"},"["),s("mn",null,"1"),s("mo",{stretchy:"false"},"]"),s("mo",null,"−"),s("mi",null,"x"),s("mo",{stretchy:"false"},"["),s("mn",null,"2"),s("mo",{stretchy:"false"},"]"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"≠"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"x"),s("mo",{stretchy:"false"},"["),s("mn",null,"3"),s("mo",{stretchy:"false"},"]"),s("mo",null,"−"),s("mi",null,"x"),s("mo",{stretchy:"false"},"["),s("mn",null,"4"),s("mo",{stretchy:"false"},"]"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])],-1),S=n("",9),Z={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},I={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.928ex",height:"1.545ex",role:"img",focusable:"false",viewBox:"0 -683 852 683","aria-hidden":"true"},P=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D44B",d:"M42 0H40Q26 0 26 11Q26 15 29 27Q33 41 36 43T55 46Q141 49 190 98Q200 108 306 224T411 342Q302 620 297 625Q288 636 234 637H206Q200 643 200 645T202 664Q206 677 212 683H226Q260 681 347 681Q380 681 408 681T453 682T473 682Q490 682 490 671Q490 670 488 658Q484 643 481 640T465 637Q434 634 411 620L488 426L541 485Q646 598 646 610Q646 628 622 635Q617 635 609 637Q594 637 594 648Q594 650 596 664Q600 677 606 683H618Q619 683 643 683T697 681T738 680Q828 680 837 683H845Q852 676 852 672Q850 647 840 637H824Q790 636 763 628T722 611T698 593L687 584Q687 585 592 480L505 384Q505 383 536 304T601 142T638 56Q648 47 699 46Q734 46 734 37Q734 35 732 23Q728 7 725 4T711 1Q708 1 678 1T589 2Q528 2 496 2T461 1Q444 1 444 10Q444 11 446 25Q448 35 450 39T455 44T464 46T480 47T506 54Q523 62 523 64Q522 64 476 181L429 299Q241 95 236 84Q232 76 232 72Q232 53 261 47Q262 47 267 47T273 46Q276 46 277 46T280 45T283 42T284 35Q284 26 282 19Q279 6 276 4T261 1Q258 1 243 1T201 2T142 2Q64 2 42 0Z",style:{"stroke-width":"3"}})])])],-1),z=[P],O=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"X")])],-1),J={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},R={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.131ex",height:"1.507ex",role:"img",focusable:"false",viewBox:"0 -666 500 666","aria-hidden":"true"},G=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mn"},[s("path",{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z",style:{"stroke-width":"3"}})])])],-1),q=[G],N=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mn",null,"1")])],-1),U={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},X={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.131ex",height:"1.507ex",role:"img",focusable:"false",viewBox:"0 -666 500 666","aria-hidden":"true"},Y=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mn"},[s("path",{"data-c":"32",d:"M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z",style:{"stroke-width":"3"}})])])],-1),W=[Y],$=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mn",null,"2")])],-1),K={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ss={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.545ex",role:"img",focusable:"false",viewBox:"0 -683 763 683","aria-hidden":"true"},is=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D44C",d:"M66 637Q54 637 49 637T39 638T32 641T30 647T33 664T42 682Q44 683 56 683Q104 680 165 680Q288 680 306 683H316Q322 677 322 674T320 656Q316 643 310 637H298Q242 637 242 624Q242 619 292 477T343 333L346 336Q350 340 358 349T379 373T411 410T454 461Q546 568 561 587T577 618Q577 634 545 637Q528 637 528 647Q528 649 530 661Q533 676 535 679T549 683Q551 683 578 682T657 680Q684 680 713 681T746 682Q763 682 763 673Q763 669 760 657T755 643Q753 637 734 637Q662 632 617 587Q608 578 477 424L348 273L322 169Q295 62 295 57Q295 46 363 46Q379 46 384 45T390 35Q390 33 388 23Q384 6 382 4T366 1Q361 1 324 1T232 2Q170 2 138 2T102 1Q84 1 84 9Q84 14 87 24Q88 27 89 30T90 35T91 39T93 42T96 44T101 45T107 45T116 46T129 46Q168 47 180 50T198 63Q201 68 227 171L252 274L129 623Q128 624 127 625T125 627T122 629T118 631T113 633T105 634T96 635T83 636T66 637Z",style:{"stroke-width":"3"}})])])],-1),as=[is],ts=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"Y")])],-1),ns={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},es={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.05ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.131ex",height:"1.554ex",role:"img",focusable:"false",viewBox:"0 -665 500 687","aria-hidden":"true"},ls=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mn"},[s("path",{"data-c":"33",d:"M127 463Q100 463 85 480T69 524Q69 579 117 622T233 665Q268 665 277 664Q351 652 390 611T430 522Q430 470 396 421T302 350L299 348Q299 347 308 345T337 336T375 315Q457 262 457 175Q457 96 395 37T238 -22Q158 -22 100 21T42 130Q42 158 60 175T105 193Q133 193 151 175T169 130Q169 119 166 110T159 94T148 82T136 74T126 70T118 67L114 66Q165 21 238 21Q293 21 321 74Q338 107 338 175V195Q338 290 274 322Q259 328 213 329L171 330L168 332Q166 335 166 348Q166 366 174 366Q202 366 232 371Q266 376 294 413T322 525V533Q322 590 287 612Q265 626 240 626Q208 626 181 615T143 592T132 580H135Q138 579 143 578T153 573T165 566T175 555T183 540T186 520Q186 498 172 481T127 463Z",style:{"stroke-width":"3"}})])])],-1),hs=[ls],ps=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mn",null,"3")])],-1),ks={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},rs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.131ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -677 500 677","aria-hidden":"true"},ds=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mn"},[s("path",{"data-c":"34",d:"M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z",style:{"stroke-width":"3"}})])])],-1),os=[ds],gs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mn",null,"4")])],-1),Ts={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},Es={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"23.762ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 10502.7 1000","aria-hidden":"true"},cs=n("",1),Qs=[cs],ys=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{stretchy:"false"},"("),s("mn",null,"1"),s("mo",null,","),s("mn",null,"3"),s("mo",{stretchy:"false"},")"),s("mo",null,","),s("mo",{stretchy:"false"},"("),s("mn",null,"1"),s("mo",null,","),s("mn",null,"4"),s("mo",{stretchy:"false"},")"),s("mo",null,","),s("mo",{stretchy:"false"},"("),s("mn",null,"2"),s("mo",null,","),s("mn",null,"3"),s("mo",{stretchy:"false"},")"),s("mo",null,","),s("mo",{stretchy:"false"},"("),s("mn",null,"2"),s("mo",null,","),s("mn",null,"4"),s("mo",{stretchy:"false"},")")]),s("mo",null,".")])],-1),ms=n("",2);function Cs(us,Fs,xs,ws,_s,fs){return t(),a("div",null,[h,s("p",null,[i("These are constraints that are defined by a logical expression or a function. They are called intentional because they are defined by the property they satisfy. For example, a constraint that specifies that a variable "),s("mjx-container",p,[(t(),a("svg",k,d)),o]),i(" must be less than a variable "),s("mjx-container",g,[(t(),a("svg",T,c)),Q]),i(" could be defined intentionally as "),s("mjx-container",y,[(t(),a("svg",m,u)),F]),i(".")]),x,s("p",null,[i("We use the "),w,i(" constraint to illustrate how to define an intention constraint in "),_,i(". The "),f,i(" constraint ensures that the distances between marks "),s("mjx-container",b,[(t(),a("svg",v,D)),B]),i(" on a ruler are unique.")]),s("mjx-container",A,[(t(),a("svg",V,L)),j]),S,s("p",null,[i("These are constraints that are defined by explicitly listing all the tuples of values that satisfy the constraint. They are called extensional because they are defined by the set of values they allow. For example, a binary constraint that specifies that a variable "),s("mjx-container",Z,[(t(),a("svg",I,z)),O]),i(" must be either "),s("mjx-container",J,[(t(),a("svg",R,q)),N]),i(" or "),s("mjx-container",U,[(t(),a("svg",X,W)),$]),i(" and a variable "),s("mjx-container",K,[(t(),a("svg",ss,as)),ts]),i(" must be either "),s("mjx-container",ns,[(t(),a("svg",es,hs)),ps]),i(" or "),s("mjx-container",ks,[(t(),a("svg",rs,os)),gs]),i(" could be defined extensionally by the set of tuples "),s("mjx-container",Ts,[(t(),a("svg",Es,Qs)),ys])]),ms])}const Hs=e(l,[["render",Cs]]);export{vs as __pageData,Hs as default}; diff --git a/previews/PR53/assets/constraints_generic_constraints.md.CtmFhNuA.js b/previews/PR53/assets/constraints_generic_constraints.md.CtmFhNuA.js deleted file mode 100644 index d1efe95..0000000 --- a/previews/PR53/assets/constraints_generic_constraints.md.CtmFhNuA.js +++ /dev/null @@ -1,50 +0,0 @@ -import{_ as e,c as a,j as s,a as i,a7 as n,o as t}from"./chunks/framework.B__MqT43.js";const O=JSON.parse('{"title":"Generic Constraints","description":"","frontmatter":{},"headers":[],"relativePath":"constraints/generic_constraints.md","filePath":"constraints/generic_constraints.md","lastUpdated":null}'),l={name:"constraints/generic_constraints.md"},h=n('

Generic Constraints

In the XCSP³-core standard, generic constraints are categorized into two main types: intention and extension constraints.

Intention Constraints

',3),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.294ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 572 453","aria-hidden":"true"},r=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D465",d:"M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z",style:{"stroke-width":"3"}})])])],-1),d=[r],o=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x")])],-1),c={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.109ex",height:"1.464ex",role:"img",focusable:"false",viewBox:"0 -442 490 647","aria-hidden":"true"},g=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D466",d:"M21 287Q21 301 36 335T84 406T158 442Q199 442 224 419T250 355Q248 336 247 334Q247 331 231 288T198 191T182 105Q182 62 196 45T238 27Q261 27 281 38T312 61T339 94Q339 95 344 114T358 173T377 247Q415 397 419 404Q432 431 462 431Q475 431 483 424T494 412T496 403Q496 390 447 193T391 -23Q363 -106 294 -155T156 -205Q111 -205 77 -183T43 -117Q43 -95 50 -80T69 -58T89 -48T106 -45Q150 -45 150 -87Q150 -107 138 -122T115 -142T102 -147L99 -148Q101 -153 118 -160T152 -167H160Q177 -167 186 -165Q219 -156 247 -127T290 -65T313 -9T321 21L315 17Q309 13 296 6T270 -6Q250 -11 231 -11Q185 -11 150 11T104 82Q103 89 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),y=[g],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y")])],-1),u={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},Q={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.42ex",height:"1.686ex",role:"img",focusable:"false",viewBox:"0 -540 2395.6 745","aria-hidden":"true"},m=n('',1),T=[m],F=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"<"),s("mi",null,"y")])],-1),x=n('

Note that the intention constraint is not directly available through the JC-API in Constraints.jl. It is designed as such since defining a constraint through a predicate is the natural way.

We provide a straightforward example through the :dist_different constraint on how to define and add such a constraint in the USUAL_CONSTRAINTS collection.

Higher level modeling languages such as JuMP should provide a Intention interface.

Defining an intention constraint in JC-API

',4),b=s("code",null,"dist_different",-1),f=s("em",null,"Constraints.jl",-1),v=s("code",null,"dist_different",-1),_={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},B={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.294ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 572 453","aria-hidden":"true"},w=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D465",d:"M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z",style:{"stroke-width":"3"}})])])],-1),H=[w],A=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x")])],-1),D={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},V={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.797ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 11402.4 1000","aria-hidden":"true"},M=n('',1),j=[M],L=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"x"),s("mo",{stretchy:"false"},"["),s("mn",null,"1"),s("mo",{stretchy:"false"},"]"),s("mo",null,"−"),s("mi",null,"x"),s("mo",{stretchy:"false"},"["),s("mn",null,"2"),s("mo",{stretchy:"false"},"]"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"≠"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"x"),s("mo",{stretchy:"false"},"["),s("mn",null,"3"),s("mo",{stretchy:"false"},"]"),s("mo",null,"−"),s("mi",null,"x"),s("mo",{stretchy:"false"},"["),s("mn",null,"4"),s("mo",{stretchy:"false"},"]"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])],-1),I=n(`

The constraint is then added to the usual constraints collection.

julia
const description_dist_different = """
-Ensures that the distances between marks on the ruler are unique.
-"""
-
-# Define the predicate
-predicate_dist_different(x) = abs(x[1] - x[2])  abs(x[3] - x[4])
-
-# Add it to usual constraints
-@usual concept_dist_different(x) = xcsp_intension(
-    list = x,
-    predicate = predicate_dist_different
-)

Please check the section dedicated to the Golomb Ruler problem to see a use for this constraint. <!– TODO: Golomb Ruler –>

APIs

Note that the intension constraint is not directly available through the JC-API in Constraints.jl. It is designed as such since defining a constraint through a predicate is the natural way.

We provide here a usage example for the :dist_different constraint, previously added to the USUAL_CONSTRAINTS collection.

Higher level modeling language such as JuMP should provide an Intension interface.

julia
using Constraints
-
-concept(:dist_different, x)
-concept(:dist_different)(x)
julia
# Defines the DistDifferent constraint
-using Constraints
-
-c = x -> xcsp_intension(
-    list = x,
-    predicate = y -> abs(y[1] - y[2])  abs(y[3] - y[4])
-)
-
-c([1, 2, 3, 3]) # true
-c([1, 2, 3, 4]) # false
julia
using CBLS, JuMP
-
-model = Model(CBLS.Optimizer)
-@variable(model, 0 <= X[1:4] <= 10, Int)
-@constraint(model, X in DistDifferent())
-optimize!(model)
-
-@info value.(X)
-
-# Note that this example gives a solution for the constraint within the interval 0:10
julia
# TODO: How to handle intention in JuMP/MOI

Specific documentation

# 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.
julia
concept(:dist_different, x)
-concept(:dist_different)(x)

Examples

@example
2 + 2
@example
2 + 2
@example
using Constraints # hide
-c = concept(:dist_different)
-c([1, 2, 3, 3]) && !c([1, 2, 3, 4])
@example
using Constraints # hide
-c = concept(:dist_different)
-c([1, 2, 3, 3]) && !c([1, 2, 3, 4])

source


Extension Constraints

These are constraints that are defined by explicitly listing all the tuples of values that satisfy the constraint. They are called extensional because they are defined by the set of values they allow. For example, a binary constraint that specifies that a variable X must be either 1 or 2 and a variable Y must be either 3 or 4 could be defined extensionally by the set of tuples {(1,3), (1,4), (2,3), (2,4)}.

These two types of constraints provide a flexible way to define complex relationships between variables in constraint programming.

XCSP in Constraints.jl {#XCSP-in-Constraints.jl}

# 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.
julia
concept(:extension, x; pair_vars)
-concept(:extension)(x; pair_vars)
  • :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.
julia
concept(:supports, x; pair_vars)
-concept(:supports)(x; pair_vars)
  • :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.
julia
concept(:conflicts, x; pair_vars)
-concept(:conflicts)(x; pair_vars)

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]])
-
-c = concept(:supports)
-c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 3, 4, 5]])
-
-c = concept(:conflicts)
-c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 1, 4, 5], [1, 2, 3, 5, 5]])

source


`,17);function P(S,Z,q,G,J,R){return t(),a("div",null,[h,s("p",null,[i("These are constraints that are defined by a logical expression or a function. They are called intentional because they are defined by the property they satisfy. For example, a constraint that specifies that a variable "),s("mjx-container",p,[(t(),a("svg",k,d)),o]),i(" must be less than a variable "),s("mjx-container",c,[(t(),a("svg",E,y)),C]),i(" could be defined intentionally as "),s("mjx-container",u,[(t(),a("svg",Q,T)),F]),i(".")]),x,s("p",null,[i("We use the "),b,i(" constraint to illustrate how to define an intention constraint in "),f,i(". The "),v,i(" constraint ensures that the distances between marks "),s("mjx-container",_,[(t(),a("svg",B,H)),A]),i(" on a ruler are unique.")]),s("mjx-container",D,[(t(),a("svg",V,j)),L]),I])}const X=e(l,[["render",P]]);export{O as __pageData,X as default}; diff --git a/previews/PR53/assets/constraints_generic_constraints.md.CtmFhNuA.lean.js b/previews/PR53/assets/constraints_generic_constraints.md.CtmFhNuA.lean.js deleted file mode 100644 index 99137c1..0000000 --- a/previews/PR53/assets/constraints_generic_constraints.md.CtmFhNuA.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as a,j as s,a as i,a7 as n,o as t}from"./chunks/framework.B__MqT43.js";const O=JSON.parse('{"title":"Generic Constraints","description":"","frontmatter":{},"headers":[],"relativePath":"constraints/generic_constraints.md","filePath":"constraints/generic_constraints.md","lastUpdated":null}'),l={name:"constraints/generic_constraints.md"},h=n("",3),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.294ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 572 453","aria-hidden":"true"},r=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D465",d:"M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z",style:{"stroke-width":"3"}})])])],-1),d=[r],o=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x")])],-1),c={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.109ex",height:"1.464ex",role:"img",focusable:"false",viewBox:"0 -442 490 647","aria-hidden":"true"},g=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D466",d:"M21 287Q21 301 36 335T84 406T158 442Q199 442 224 419T250 355Q248 336 247 334Q247 331 231 288T198 191T182 105Q182 62 196 45T238 27Q261 27 281 38T312 61T339 94Q339 95 344 114T358 173T377 247Q415 397 419 404Q432 431 462 431Q475 431 483 424T494 412T496 403Q496 390 447 193T391 -23Q363 -106 294 -155T156 -205Q111 -205 77 -183T43 -117Q43 -95 50 -80T69 -58T89 -48T106 -45Q150 -45 150 -87Q150 -107 138 -122T115 -142T102 -147L99 -148Q101 -153 118 -160T152 -167H160Q177 -167 186 -165Q219 -156 247 -127T290 -65T313 -9T321 21L315 17Q309 13 296 6T270 -6Q250 -11 231 -11Q185 -11 150 11T104 82Q103 89 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),y=[g],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"y")])],-1),u={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},Q={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.42ex",height:"1.686ex",role:"img",focusable:"false",viewBox:"0 -540 2395.6 745","aria-hidden":"true"},m=n("",1),T=[m],F=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x"),s("mo",null,"<"),s("mi",null,"y")])],-1),x=n("",4),b=s("code",null,"dist_different",-1),f=s("em",null,"Constraints.jl",-1),v=s("code",null,"dist_different",-1),_={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},B={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.294ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 572 453","aria-hidden":"true"},w=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D465",d:"M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z",style:{"stroke-width":"3"}})])])],-1),H=[w],A=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x")])],-1),D={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},V={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.797ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 11402.4 1000","aria-hidden":"true"},M=n("",1),j=[M],L=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"x"),s("mo",{stretchy:"false"},"["),s("mn",null,"1"),s("mo",{stretchy:"false"},"]"),s("mo",null,"−"),s("mi",null,"x"),s("mo",{stretchy:"false"},"["),s("mn",null,"2"),s("mo",{stretchy:"false"},"]"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mo",null,"≠"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|"),s("mi",null,"x"),s("mo",{stretchy:"false"},"["),s("mn",null,"3"),s("mo",{stretchy:"false"},"]"),s("mo",null,"−"),s("mi",null,"x"),s("mo",{stretchy:"false"},"["),s("mn",null,"4"),s("mo",{stretchy:"false"},"]"),s("mo",{"data-mjx-texclass":"ORD",stretchy:"false"},"|")])],-1),I=n("",17);function P(S,Z,q,G,J,R){return t(),a("div",null,[h,s("p",null,[i("These are constraints that are defined by a logical expression or a function. They are called intentional because they are defined by the property they satisfy. For example, a constraint that specifies that a variable "),s("mjx-container",p,[(t(),a("svg",k,d)),o]),i(" must be less than a variable "),s("mjx-container",c,[(t(),a("svg",E,y)),C]),i(" could be defined intentionally as "),s("mjx-container",u,[(t(),a("svg",Q,T)),F]),i(".")]),x,s("p",null,[i("We use the "),b,i(" constraint to illustrate how to define an intention constraint in "),f,i(". The "),v,i(" constraint ensures that the distances between marks "),s("mjx-container",_,[(t(),a("svg",B,H)),A]),i(" on a ruler are unique.")]),s("mjx-container",D,[(t(),a("svg",V,j)),L]),I])}const X=e(l,[["render",P]]);export{O as __pageData,X as default}; diff --git a/previews/PR53/assets/constraints_packing_scheduling_constraints.md.xDi-PHIu.js b/previews/PR53/assets/constraints_packing_scheduling_constraints.md.6H7cStQm.js similarity index 98% rename from previews/PR53/assets/constraints_packing_scheduling_constraints.md.xDi-PHIu.js rename to previews/PR53/assets/constraints_packing_scheduling_constraints.md.6H7cStQm.js index d1241e1..102ae68 100644 --- a/previews/PR53/assets/constraints_packing_scheduling_constraints.md.xDi-PHIu.js +++ b/previews/PR53/assets/constraints_packing_scheduling_constraints.md.6H7cStQm.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,a7 as h}from"./chunks/framework.B__MqT43.js";const F=JSON.parse('{"title":"Constraints.jl: Streamlining Constraint Definition and Integration in Julia","description":"","frontmatter":{},"headers":[],"relativePath":"constraints/packing_scheduling_constraints.md","filePath":"constraints/packing_scheduling_constraints.md","lastUpdated":null}'),k={name:"constraints/packing_scheduling_constraints.md"},n=h(`

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

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

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

julia
using Constraints
 
 @info concept(:cumulative, [1, 2, 3, 4, 5]; val = 1)
 @info concept(:cumulative, [1, 2, 2, 4, 5]; val = 1)
@@ -25,7 +25,7 @@ import{_ as s,c as i,o as a,a7 as h}from"./chunks/framework.B__MqT43.js";const F
 @constraint(model,
     Z in Cumulative(; pair_vars = [3 2 5 4 2; 1 2 1 1 3], op = <, val = 5))
 JuMP.optimize!(model)
-@info "Cumulative" value.(X) value.(Y) value.(Z)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
+@info "Cumulative" value.(X) value.(Y) value.(Z)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
 
 @info concept(:no_overlap, [1, 2, 3, 4, 5])
 @info concept(:no_overlap, [1, 2, 3, 4, 1])
diff --git a/previews/PR53/assets/constraints_packing_scheduling_constraints.md.xDi-PHIu.lean.js b/previews/PR53/assets/constraints_packing_scheduling_constraints.md.6H7cStQm.lean.js
similarity index 100%
rename from previews/PR53/assets/constraints_packing_scheduling_constraints.md.xDi-PHIu.lean.js
rename to previews/PR53/assets/constraints_packing_scheduling_constraints.md.6H7cStQm.lean.js
diff --git a/previews/PR53/assets/constraints_variables_and_domains.md.BX9WpOqJ.js b/previews/PR53/assets/constraints_variables_and_domains.md.hAN5u75S.js
similarity index 95%
rename from previews/PR53/assets/constraints_variables_and_domains.md.BX9WpOqJ.js
rename to previews/PR53/assets/constraints_variables_and_domains.md.hAN5u75S.js
index f838b37..69f471d 100644
--- a/previews/PR53/assets/constraints_variables_and_domains.md.BX9WpOqJ.js
+++ b/previews/PR53/assets/constraints_variables_and_domains.md.hAN5u75S.js
@@ -1,4 +1,4 @@
-import{_ as e,c as a,j as s,a as i,a7 as t,o as n}from"./chunks/framework.B__MqT43.js";const f=JSON.parse('{"title":"Defining Variables and Exploring Domains","description":"","frontmatter":{},"headers":[],"relativePath":"constraints/variables_and_domains.md","filePath":"constraints/variables_and_domains.md","lastUpdated":null}'),l={name:"constraints/variables_and_domains.md"},h=t('

Defining Variables and Exploring Domains

ConstraintDomains.jl stands as the standard way to define variables and explore domains within the Julia Constraints ecosystem. This package provides the infrastructure necessary for specifying both discrete and continuous domains. Explorations features are mainly related to the learning about constraints aspect and will be detailed in that chapter.

Variables and their domains can also be defined through MOI and JuMP syntaxes in their respective models.

Implementing the AbstractDomain Interface

',4),p=s("em",null,"ConstraintDomains.jl",-1),k=s("code",null,"AbstractDomain",-1),d=s("code",null,"AbstractDomain",-1),r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.09ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.509ex",height:"1.312ex",role:"img",focusable:"false",viewBox:"0 -540 667 580","aria-hidden":"true"},E=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mo"},[s("path",{"data-c":"2208",d:"M84 250Q84 372 166 450T360 539Q361 539 377 539T419 540T469 540H568Q583 532 583 520Q583 511 570 501L466 500Q355 499 329 494Q280 482 242 458T183 409T147 354T129 306T124 272V270H568Q583 262 583 250T568 230H124V228Q124 207 134 177T167 112T231 48T328 7Q355 1 466 0H570Q583 -10 583 -20Q583 -32 568 -40H471Q464 -40 446 -40T417 -41Q262 -41 172 45Q84 127 84 250Z",style:{"stroke-width":"3"}})])])],-1),g=[E],c=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",null,"∈")])],-1),y=s("code",null,"rand",-1),m=s("code",null,"length",-1),C=t(`
# ConstraintDomains.AbstractDomainType.
julia
AbstractDomain

An abstract super type for any domain type. A domain type D <: AbstractDomain must implement the following methods to properly interface AbstractDomain.

  • Base.∈(val, ::D)

  • Base.rand(::D)

  • Base.length(::D) that is the number of elements in a discrete domain, and the distance between bounds or similar for a continuous domain

Additionally, if the domain is used in a dynamic context, it can extend

  • add!(::D, args)

  • delete!(::D, args)

where args depends on D's structure

source


Discrete Domains

Optimization in discrete spaces has been the core of Constraint Programming since its inception. We provide three kinds of discrete domains.

SetDomain

A SetDomain is simply a Set of unordered numerical values.

julia
using ConstraintDomains
+import{_ as e,c as a,j as s,a as i,a7 as t,o as n}from"./chunks/framework.B__MqT43.js";const _=JSON.parse('{"title":"Defining Variables and Exploring Domains","description":"","frontmatter":{},"headers":[],"relativePath":"constraints/variables_and_domains.md","filePath":"constraints/variables_and_domains.md","lastUpdated":null}'),l={name:"constraints/variables_and_domains.md"},h=t('

Defining Variables and Exploring Domains

ConstraintDomains.jl stands as the standard way to define variables and explore domains within the Julia Constraints ecosystem. This package provides the infrastructure necessary for specifying both discrete and continuous domains. Explorations features are mainly related to the learning about constraints aspect and will be detailed in that chapter.

Variables and their domains can also be defined through MOI and JuMP syntaxes in their respective models.

Implementing the AbstractDomain Interface

',4),p=s("em",null,"ConstraintDomains.jl",-1),k=s("code",null,"AbstractDomain",-1),r=s("code",null,"AbstractDomain",-1),d={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.09ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.509ex",height:"1.312ex",role:"img",focusable:"false",viewBox:"0 -540 667 580","aria-hidden":"true"},E=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mo"},[s("path",{"data-c":"2208",d:"M84 250Q84 372 166 450T360 539Q361 539 377 539T419 540T469 540H568Q583 532 583 520Q583 511 570 501L466 500Q355 499 329 494Q280 482 242 458T183 409T147 354T129 306T124 272V270H568Q583 262 583 250T568 230H124V228Q124 207 134 177T167 112T231 48T328 7Q355 1 466 0H570Q583 -10 583 -20Q583 -32 568 -40H471Q464 -40 446 -40T417 -41Q262 -41 172 45Q84 127 84 250Z",style:{"stroke-width":"3"}})])])],-1),g=[E],c=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",null,"∈")])],-1),y=s("code",null,"rand",-1),m=s("code",null,"length",-1),C=t(`
# ConstraintDomains.AbstractDomainType.
julia
AbstractDomain

An abstract super type for any domain type. A domain type D <: AbstractDomain must implement the following methods to properly interface AbstractDomain.

  • Base.∈(val, ::D)

  • Base.rand(::D)

  • Base.length(::D) that is the number of elements in a discrete domain, and the distance between bounds or similar for a continuous domain

Additionally, if the domain is used in a dynamic context, it can extend

  • add!(::D, args)

  • delete!(::D, args)

where args depends on D's structure

source


Discrete Domains

Optimization in discrete spaces has been the core of Constraint Programming since its inception. We provide three kinds of discrete domains.

SetDomain

A SetDomain is simply a Set of unordered numerical values.

julia
using ConstraintDomains
 
 d1 = domain([53.69, 89.2, 0.12])
 d2 = domain([2//3, 89//123])
@@ -25,7 +25,7 @@ import{_ as e,c as a,j as s,a as i,a7 as t,o as n}from"./chunks/framework.B__MqT
 MOI.add_constraint(optimizer, v3, CBLS.DiscreteSet(4.3))
 
 v4 = MOI.add_variable(optimizer)
-MOI.add_constraint(optimizer, v4, CBLS.DiscreteSet([1, 42, 3.14]))

RangeDomain

A range domain allows for minimal storage and more efficient operation on discrete sets defined as Range in Julia. It is not recommended for dynamic domains (it will be replaced with SetDomain as soon as a non-extremal element is removed).

julia
using ConstraintDomains
+MOI.add_constraint(optimizer, v4, CBLS.DiscreteSet([1, 42, 3.14]))

RangeDomain

A range domain allows for minimal storage and more efficient operation on discrete sets defined as Range in Julia. It is not recommended for dynamic domains (it will be replaced with SetDomain as soon as a non-extremal element is removed).

julia
using ConstraintDomains
 
 d1 = domain(1:5)
 d2 = domain(0.4:0.1:1.3)
julia
## To be implemented
@@ -45,8 +45,8 @@ import{_ as e,c as a,j as s,a as i,a7 as t,o as n}from"./chunks/framework.B__MqT
 
 # v2 = MOI.add_variable(optimizer)
 
-# MOI.add_constraint(optimizer, v1, MOI.RangeSet(0.4:0.1:1.3))

Arbitrary Domains

As odd as it may sound, we provide a constructor for sets of elements making up arbitrary, possibly non-numerical, domains.

Until some practical examples are implemented, this structure will mainly be a placeholder with default behavior.

Continuous Domains

Numerous problems cannot be challenged without expressing at least part of their domains as continuous variables. In Julia Constraints we provide such domains as (set of) intervals.

julia
using ConstraintDomains, Intervals
+# MOI.add_constraint(optimizer, v1, MOI.RangeSet(0.4:0.1:1.3))

Arbitrary Domains

As odd as it may sound, we provide a constructor for sets of elements making up arbitrary, possibly non-numerical, domains.

Until some practical examples are implemented, this structure will mainly be a placeholder with default behavior.

Continuous Domains

Numerous problems cannot be challenged without expressing at least part of their domains as continuous variables. In Julia Constraints we provide such domains as (set of) intervals.

julia
using ConstraintDomains, Intervals
 
 d1 = domain(Interval{Open,Closed}(3.2, true), (42, false))
 d2 = domain(3.2..42)
-d3 = domain([3.2..42, 63.2..324.1])
julia
## see MOI.Interval
julia
## see MOI.Interval
`,16);function F(u,b,D,v,A,B){return n(),a("div",null,[h,s("p",null,[i("At the foundation of "),p,i(" is the "),k,i(" type, an abstract supertype for all domain types. Implementations of "),d,i(" must provide methods for checking membership ("),s("mjx-container",r,[(n(),a("svg",o,g)),c]),i("), generating random elements ("),y,i("), and determining the domain's size or range ("),m,i("). These functionalities are essential for defining the behavior and properties of variable domains within constraint models.")]),C])}const x=e(l,[["render",F]]);export{f as __pageData,x as default}; +d3 = domain([3.2..42, 63.2..324.1])
julia
## see MOI.Interval
julia
## see MOI.Interval
`,16);function F(u,b,D,v,A,B){return n(),a("div",null,[h,s("p",null,[i("At the foundation of "),p,i(" is the "),k,i(" type, an abstract supertype for all domain types. Implementations of "),r,i(" must provide methods for checking membership ("),s("mjx-container",d,[(n(),a("svg",o,g)),c]),i("), generating random elements ("),y,i("), and determining the domain's size or range ("),m,i("). These functionalities are essential for defining the behavior and properties of variable domains within constraint models.")]),C])}const x=e(l,[["render",F]]);export{_ as __pageData,x as default}; diff --git a/previews/PR53/assets/constraints_variables_and_domains.md.BX9WpOqJ.lean.js b/previews/PR53/assets/constraints_variables_and_domains.md.hAN5u75S.lean.js similarity index 87% rename from previews/PR53/assets/constraints_variables_and_domains.md.BX9WpOqJ.lean.js rename to previews/PR53/assets/constraints_variables_and_domains.md.hAN5u75S.lean.js index c3a7d0b..c1b6969 100644 --- a/previews/PR53/assets/constraints_variables_and_domains.md.BX9WpOqJ.lean.js +++ b/previews/PR53/assets/constraints_variables_and_domains.md.hAN5u75S.lean.js @@ -1 +1 @@ -import{_ as e,c as a,j as s,a as i,a7 as t,o as n}from"./chunks/framework.B__MqT43.js";const f=JSON.parse('{"title":"Defining Variables and Exploring Domains","description":"","frontmatter":{},"headers":[],"relativePath":"constraints/variables_and_domains.md","filePath":"constraints/variables_and_domains.md","lastUpdated":null}'),l={name:"constraints/variables_and_domains.md"},h=t("",4),p=s("em",null,"ConstraintDomains.jl",-1),k=s("code",null,"AbstractDomain",-1),d=s("code",null,"AbstractDomain",-1),r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.09ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.509ex",height:"1.312ex",role:"img",focusable:"false",viewBox:"0 -540 667 580","aria-hidden":"true"},E=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mo"},[s("path",{"data-c":"2208",d:"M84 250Q84 372 166 450T360 539Q361 539 377 539T419 540T469 540H568Q583 532 583 520Q583 511 570 501L466 500Q355 499 329 494Q280 482 242 458T183 409T147 354T129 306T124 272V270H568Q583 262 583 250T568 230H124V228Q124 207 134 177T167 112T231 48T328 7Q355 1 466 0H570Q583 -10 583 -20Q583 -32 568 -40H471Q464 -40 446 -40T417 -41Q262 -41 172 45Q84 127 84 250Z",style:{"stroke-width":"3"}})])])],-1),g=[E],c=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",null,"∈")])],-1),y=s("code",null,"rand",-1),m=s("code",null,"length",-1),C=t("",16);function F(u,b,D,v,A,B){return n(),a("div",null,[h,s("p",null,[i("At the foundation of "),p,i(" is the "),k,i(" type, an abstract supertype for all domain types. Implementations of "),d,i(" must provide methods for checking membership ("),s("mjx-container",r,[(n(),a("svg",o,g)),c]),i("), generating random elements ("),y,i("), and determining the domain's size or range ("),m,i("). These functionalities are essential for defining the behavior and properties of variable domains within constraint models.")]),C])}const x=e(l,[["render",F]]);export{f as __pageData,x as default}; +import{_ as e,c as a,j as s,a as i,a7 as t,o as n}from"./chunks/framework.B__MqT43.js";const _=JSON.parse('{"title":"Defining Variables and Exploring Domains","description":"","frontmatter":{},"headers":[],"relativePath":"constraints/variables_and_domains.md","filePath":"constraints/variables_and_domains.md","lastUpdated":null}'),l={name:"constraints/variables_and_domains.md"},h=t("",4),p=s("em",null,"ConstraintDomains.jl",-1),k=s("code",null,"AbstractDomain",-1),r=s("code",null,"AbstractDomain",-1),d={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.09ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.509ex",height:"1.312ex",role:"img",focusable:"false",viewBox:"0 -540 667 580","aria-hidden":"true"},E=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mo"},[s("path",{"data-c":"2208",d:"M84 250Q84 372 166 450T360 539Q361 539 377 539T419 540T469 540H568Q583 532 583 520Q583 511 570 501L466 500Q355 499 329 494Q280 482 242 458T183 409T147 354T129 306T124 272V270H568Q583 262 583 250T568 230H124V228Q124 207 134 177T167 112T231 48T328 7Q355 1 466 0H570Q583 -10 583 -20Q583 -32 568 -40H471Q464 -40 446 -40T417 -41Q262 -41 172 45Q84 127 84 250Z",style:{"stroke-width":"3"}})])])],-1),g=[E],c=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",null,"∈")])],-1),y=s("code",null,"rand",-1),m=s("code",null,"length",-1),C=t("",16);function F(u,b,D,v,A,B){return n(),a("div",null,[h,s("p",null,[i("At the foundation of "),p,i(" is the "),k,i(" type, an abstract supertype for all domain types. Implementations of "),r,i(" must provide methods for checking membership ("),s("mjx-container",d,[(n(),a("svg",o,g)),c]),i("), generating random elements ("),y,i("), and determining the domain's size or range ("),m,i("). These functionalities are essential for defining the behavior and properties of variable domains within constraint models.")]),C])}const x=e(l,[["render",F]]);export{_ as __pageData,x as default}; diff --git a/previews/PR53/assets/cp_getting_started.md.Bp6ZBR6j.js b/previews/PR53/assets/cp_getting_started.md.CtxbRJ9l.js similarity index 94% rename from previews/PR53/assets/cp_getting_started.md.Bp6ZBR6j.js rename to previews/PR53/assets/cp_getting_started.md.CtxbRJ9l.js index 12408b4..a9e7ac2 100644 --- a/previews/PR53/assets/cp_getting_started.md.Bp6ZBR6j.js +++ b/previews/PR53/assets/cp_getting_started.md.CtxbRJ9l.js @@ -1,9 +1,9 @@ -import{_ as l,c as t,j as i,a as s,a7 as a,o as e}from"./chunks/framework.B__MqT43.js";const H=JSON.parse('{"title":"Getting Started with Julia for CP and Optimization","description":"","frontmatter":{},"headers":[],"relativePath":"cp/getting_started.md","filePath":"cp/getting_started.md","lastUpdated":null}'),n={name:"cp/getting_started.md"},h=a('

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

We encourage users to install Julia through juliaup, a version manager for the Julia language. Please look at the official Julia language download page for further information. Once installed, Julia can be used through various editors (Visual Studio Code), notebooks (Pluto.jl), or command-line (REPL).

Although a part of the CP solvers available within the Julia ecosystem have their own interface, we encourage users to use the JuMP modeling language if possible.

Julia Constraints host several solvers(' interfaces). Due to its flexibility in modeling and solving, we will use LocalSearchSolvers.jl through its JuMP interface CBLS.jl as the basic example. Note that depending on the targeted instances, available hardware, and expectations, it is not necessarily the best choice.

All along the documentation, we will try to provide syntax examples for different setup.

julia
using LocalSearchSolvers
julia
using JuMP, CBLS
julia
# TODO: Add other solvers

Your First Julia CP Model

We will start with a classic puzzle game and some of its not that simple variants: the Sudoku.

(From Wikipedia) In classic Sudoku, the objective is to fill a 9 × 9 grid with digits so that each column, each row, and each of the nine 3 × 3 subgrids that compose the grid (also called "boxes", "blocks", or "regions") contains all of the digits from 1 to 9. The puzzle setter provides a partially completed grid, which for a well-posed puzzle has a single solution.

Constraint Programming follows the model-and-solve approach. We first need to model our Sudoku problem.

julia
m = JuMP.Model(CBLS.Optimizer)
julia
# TODO: Add other solvers

But what are the basis of CP models? It is quite simple:

',15),o={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},p={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.439ex"},xmlns:"http://www.w3.org/2000/svg",width:"15.867ex",height:"1.984ex",role:"img",focusable:"false",viewBox:"0 -683 7013.4 877","aria-hidden":"true"},d=a('',1),r=[d],k=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"X"),i("mo",null,"="),i("msub",null,[i("mi",null,"X"),i("mn",null,"1")]),i("mo",null,","),i("mo",null,"⋯"),i("mo",null,","),i("msub",null,[i("mi",null,"X"),i("mi",null,"n")])])],-1),c=a('
julia
@variable(m, 1 X[1:9, 1:9]  9, Int)
julia
# TODO: Add other solvers
',1),Q={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.439ex"},xmlns:"http://www.w3.org/2000/svg",width:"15.148ex",height:"2.034ex",role:"img",focusable:"false",viewBox:"0 -705 6695.4 899","aria-hidden":"true"},T=a('',1),u=[T],m=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"C"),i("mo",null,"="),i("msub",null,[i("mi",null,"C"),i("mn",null,"1")]),i("mo",null,","),i("mo",null,"⋯"),i("mo",null,","),i("msub",null,[i("mi",null,"C"),i("mi",null,"n")])])],-1),v={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},y={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.928ex",height:"1.545ex",role:"img",focusable:"false",viewBox:"0 -683 852 683","aria-hidden":"true"},b=i("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[i("g",{"data-mml-node":"math"},[i("g",{"data-mml-node":"mi"},[i("path",{"data-c":"1D44B",d:"M42 0H40Q26 0 26 11Q26 15 29 27Q33 41 36 43T55 46Q141 49 190 98Q200 108 306 224T411 342Q302 620 297 625Q288 636 234 637H206Q200 643 200 645T202 664Q206 677 212 683H226Q260 681 347 681Q380 681 408 681T453 682T473 682Q490 682 490 671Q490 670 488 658Q484 643 481 640T465 637Q434 634 411 620L488 426L541 485Q646 598 646 610Q646 628 622 635Q617 635 609 637Q594 637 594 648Q594 650 596 664Q600 677 606 683H618Q619 683 643 683T697 681T738 680Q828 680 837 683H845Q852 676 852 672Q850 647 840 637H824Q790 636 763 628T722 611T698 593L687 584Q687 585 592 480L505 384Q505 383 536 304T601 142T638 56Q648 47 699 46Q734 46 734 37Q734 35 732 23Q728 7 725 4T711 1Q708 1 678 1T589 2Q528 2 496 2T461 1Q444 1 444 10Q444 11 446 25Q448 35 450 39T455 44T464 46T480 47T506 54Q523 62 523 64Q522 64 476 181L429 299Q241 95 236 84Q232 76 232 72Q232 53 261 47Q262 47 267 47T273 46Q276 46 277 46T280 45T283 42T284 35Q284 26 282 19Q279 6 276 4T261 1Q258 1 243 1T201 2T142 2Q64 2 42 0Z",style:{"stroke-width":"3"}})])])],-1),E=[b],C=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"X")])],-1),f=a(`

When modeling problems as CP, one might define and use their own predicates. However, a large collection of already defined constraints exists. One, if not the most, iconic global constraint is called AllDifferent. It ensures that all variables take distinct values.

Sudoku puzzles can be defined using only this one constraint applied to different subsets of variables.

julia
for i in 1:9
+import{_ as l,c as t,j as i,a as s,a7 as a,o as e}from"./chunks/framework.B__MqT43.js";const H=JSON.parse('{"title":"Getting Started with Julia for CP and Optimization","description":"","frontmatter":{},"headers":[],"relativePath":"cp/getting_started.md","filePath":"cp/getting_started.md","lastUpdated":null}'),n={name:"cp/getting_started.md"},h=a('

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

We encourage users to install Julia through juliaup, a version manager for the Julia language. Please look at the official Julia language download page for further information. Once installed, Julia can be used through various editors (Visual Studio Code), notebooks (Pluto.jl), or command-line (REPL).

Although a part of the CP solvers available within the Julia ecosystem have their own interface, we encourage users to use the JuMP modeling language if possible.

Julia Constraints host several solvers(' interfaces). Due to its flexibility in modeling and solving, we will use LocalSearchSolvers.jl through its JuMP interface CBLS.jl as the basic example. Note that depending on the targeted instances, available hardware, and expectations, it is not necessarily the best choice.

All along the documentation, we will try to provide syntax examples for different setup.

julia
using LocalSearchSolvers
julia
using JuMP, CBLS
julia
# TODO: Add other solvers

Your First Julia CP Model

We will start with a classic puzzle game and some of its not that simple variants: the Sudoku.

(From Wikipedia) In classic Sudoku, the objective is to fill a 9 × 9 grid with digits so that each column, each row, and each of the nine 3 × 3 subgrids that compose the grid (also called "boxes", "blocks", or "regions") contains all of the digits from 1 to 9. The puzzle setter provides a partially completed grid, which for a well-posed puzzle has a single solution.

Constraint Programming follows the model-and-solve approach. We first need to model our Sudoku problem.

julia
m = JuMP.Model(CBLS.Optimizer)
julia
# TODO: Add other solvers

But what are the basis of CP models? It is quite simple:

',15),o={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},p={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.439ex"},xmlns:"http://www.w3.org/2000/svg",width:"15.867ex",height:"1.984ex",role:"img",focusable:"false",viewBox:"0 -683 7013.4 877","aria-hidden":"true"},d=a('',1),r=[d],k=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"X"),i("mo",null,"="),i("msub",null,[i("mi",null,"X"),i("mn",null,"1")]),i("mo",null,","),i("mo",null,"⋯"),i("mo",null,","),i("msub",null,[i("mi",null,"X"),i("mi",null,"n")])])],-1),c=a('
julia
@variable(m, 1 X[1:9, 1:9]  9, Int)
julia
# TODO: Add other solvers
',1),Q={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.439ex"},xmlns:"http://www.w3.org/2000/svg",width:"15.148ex",height:"2.034ex",role:"img",focusable:"false",viewBox:"0 -705 6695.4 899","aria-hidden":"true"},T=a('',1),u=[T],m=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"C"),i("mo",null,"="),i("msub",null,[i("mi",null,"C"),i("mn",null,"1")]),i("mo",null,","),i("mo",null,"⋯"),i("mo",null,","),i("msub",null,[i("mi",null,"C"),i("mi",null,"n")])])],-1),v={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},b={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.928ex",height:"1.545ex",role:"img",focusable:"false",viewBox:"0 -683 852 683","aria-hidden":"true"},y=i("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[i("g",{"data-mml-node":"math"},[i("g",{"data-mml-node":"mi"},[i("path",{"data-c":"1D44B",d:"M42 0H40Q26 0 26 11Q26 15 29 27Q33 41 36 43T55 46Q141 49 190 98Q200 108 306 224T411 342Q302 620 297 625Q288 636 234 637H206Q200 643 200 645T202 664Q206 677 212 683H226Q260 681 347 681Q380 681 408 681T453 682T473 682Q490 682 490 671Q490 670 488 658Q484 643 481 640T465 637Q434 634 411 620L488 426L541 485Q646 598 646 610Q646 628 622 635Q617 635 609 637Q594 637 594 648Q594 650 596 664Q600 677 606 683H618Q619 683 643 683T697 681T738 680Q828 680 837 683H845Q852 676 852 672Q850 647 840 637H824Q790 636 763 628T722 611T698 593L687 584Q687 585 592 480L505 384Q505 383 536 304T601 142T638 56Q648 47 699 46Q734 46 734 37Q734 35 732 23Q728 7 725 4T711 1Q708 1 678 1T589 2Q528 2 496 2T461 1Q444 1 444 10Q444 11 446 25Q448 35 450 39T455 44T464 46T480 47T506 54Q523 62 523 64Q522 64 476 181L429 299Q241 95 236 84Q232 76 232 72Q232 53 261 47Q262 47 267 47T273 46Q276 46 277 46T280 45T283 42T284 35Q284 26 282 19Q279 6 276 4T261 1Q258 1 243 1T201 2T142 2Q64 2 42 0Z",style:{"stroke-width":"3"}})])])],-1),E=[y],C=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"X")])],-1),f=a(`

When modeling problems as CP, one might define and use their own predicates. However, a large collection of already defined constraints exists. One, if not the most, iconic global constraint is called AllDifferent. It ensures that all variables take distinct values.

Sudoku puzzles can be defined using only this one constraint applied to different subsets of variables.

julia
for i in 1:9
         @constraint(m, X[i,:] in AllDifferent()) # rows
         @constraint(m, X[:,i] in AllDifferent()) # columns
-end
julia
# TODO: Add other solvers

The last series of AllDifferent constraint is less straight forward. We need to ensure that each 3 × 3 subgrid (block) is filled with distinct values.

julia
for i in 0:2, j in 0:2 # blocks
+end
julia
# TODO: Add other solvers

The last series of AllDifferent constraint is less straight forward. We need to ensure that each 3 × 3 subgrid (block) is filled with distinct values.

julia
for i in 0:2, j in 0:2 # blocks
     @constraint(
         m,
         vec(X[(3i+1):(3(i+1)), (3j+1):(3(j+1))]) in AllDifferent(),
     )
-end
julia
# TODO: Add other solvers

We can now simply run our solver to look for a feasible solution.

julia
optimize!(m)

Note that this is heuristic solver, we might not get a feasible solution! Let's check it out. The value function print the value of a JuMP variable. We can cast it over a collection with the value. syntax.

julia
value.(X)
`,9);function _(F,w,x,D,A,L){return e(),t("div",null,[h,i("ol",null,[i("li",null,[s("A collection "),i("mjx-container",o,[(e(),t("svg",p,r)),k]),s(" of variables with each an associated domain.")])]),c,i("ol",null,[i("li",null,[s("A collection of predicates (called constraints) "),i("mjx-container",Q,[(e(),t("svg",g,u)),m]),s(" over (subsets of) "),i("mjx-container",v,[(e(),t("svg",y,E)),C]),s(".")])]),f])}const B=l(n,[["render",_]]);export{H as __pageData,B as default}; +end
julia
# TODO: Add other solvers

We can now simply run our solver to look for a feasible solution.

julia
optimize!(m)

Note that this is heuristic solver, we might not get a feasible solution! Let's check it out. The value function print the value of a JuMP variable. We can cast it over a collection with the value. syntax.

julia
value.(X)
`,9);function w(_,F,x,D,A,L){return e(),t("div",null,[h,i("ol",null,[i("li",null,[s("A collection "),i("mjx-container",o,[(e(),t("svg",p,r)),k]),s(" of variables with each an associated domain.")])]),c,i("ol",null,[i("li",null,[s("A collection of predicates (called constraints) "),i("mjx-container",Q,[(e(),t("svg",g,u)),m]),s(" over (subsets of) "),i("mjx-container",v,[(e(),t("svg",b,E)),C]),s(".")])]),f])}const S=l(n,[["render",w]]);export{H as __pageData,S as default}; diff --git a/previews/PR53/assets/cp_getting_started.md.Bp6ZBR6j.lean.js b/previews/PR53/assets/cp_getting_started.md.CtxbRJ9l.lean.js similarity index 91% rename from previews/PR53/assets/cp_getting_started.md.Bp6ZBR6j.lean.js rename to previews/PR53/assets/cp_getting_started.md.CtxbRJ9l.lean.js index 1ff98ec..88f35de 100644 --- a/previews/PR53/assets/cp_getting_started.md.Bp6ZBR6j.lean.js +++ b/previews/PR53/assets/cp_getting_started.md.CtxbRJ9l.lean.js @@ -1 +1 @@ -import{_ as l,c as t,j as i,a as s,a7 as a,o as e}from"./chunks/framework.B__MqT43.js";const H=JSON.parse('{"title":"Getting Started with Julia for CP and Optimization","description":"","frontmatter":{},"headers":[],"relativePath":"cp/getting_started.md","filePath":"cp/getting_started.md","lastUpdated":null}'),n={name:"cp/getting_started.md"},h=a("",15),o={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},p={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.439ex"},xmlns:"http://www.w3.org/2000/svg",width:"15.867ex",height:"1.984ex",role:"img",focusable:"false",viewBox:"0 -683 7013.4 877","aria-hidden":"true"},d=a("",1),r=[d],k=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"X"),i("mo",null,"="),i("msub",null,[i("mi",null,"X"),i("mn",null,"1")]),i("mo",null,","),i("mo",null,"⋯"),i("mo",null,","),i("msub",null,[i("mi",null,"X"),i("mi",null,"n")])])],-1),c=a("",1),Q={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.439ex"},xmlns:"http://www.w3.org/2000/svg",width:"15.148ex",height:"2.034ex",role:"img",focusable:"false",viewBox:"0 -705 6695.4 899","aria-hidden":"true"},T=a("",1),u=[T],m=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"C"),i("mo",null,"="),i("msub",null,[i("mi",null,"C"),i("mn",null,"1")]),i("mo",null,","),i("mo",null,"⋯"),i("mo",null,","),i("msub",null,[i("mi",null,"C"),i("mi",null,"n")])])],-1),v={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},y={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.928ex",height:"1.545ex",role:"img",focusable:"false",viewBox:"0 -683 852 683","aria-hidden":"true"},b=i("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[i("g",{"data-mml-node":"math"},[i("g",{"data-mml-node":"mi"},[i("path",{"data-c":"1D44B",d:"M42 0H40Q26 0 26 11Q26 15 29 27Q33 41 36 43T55 46Q141 49 190 98Q200 108 306 224T411 342Q302 620 297 625Q288 636 234 637H206Q200 643 200 645T202 664Q206 677 212 683H226Q260 681 347 681Q380 681 408 681T453 682T473 682Q490 682 490 671Q490 670 488 658Q484 643 481 640T465 637Q434 634 411 620L488 426L541 485Q646 598 646 610Q646 628 622 635Q617 635 609 637Q594 637 594 648Q594 650 596 664Q600 677 606 683H618Q619 683 643 683T697 681T738 680Q828 680 837 683H845Q852 676 852 672Q850 647 840 637H824Q790 636 763 628T722 611T698 593L687 584Q687 585 592 480L505 384Q505 383 536 304T601 142T638 56Q648 47 699 46Q734 46 734 37Q734 35 732 23Q728 7 725 4T711 1Q708 1 678 1T589 2Q528 2 496 2T461 1Q444 1 444 10Q444 11 446 25Q448 35 450 39T455 44T464 46T480 47T506 54Q523 62 523 64Q522 64 476 181L429 299Q241 95 236 84Q232 76 232 72Q232 53 261 47Q262 47 267 47T273 46Q276 46 277 46T280 45T283 42T284 35Q284 26 282 19Q279 6 276 4T261 1Q258 1 243 1T201 2T142 2Q64 2 42 0Z",style:{"stroke-width":"3"}})])])],-1),E=[b],C=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"X")])],-1),f=a("",9);function _(F,w,x,D,A,L){return e(),t("div",null,[h,i("ol",null,[i("li",null,[s("A collection "),i("mjx-container",o,[(e(),t("svg",p,r)),k]),s(" of variables with each an associated domain.")])]),c,i("ol",null,[i("li",null,[s("A collection of predicates (called constraints) "),i("mjx-container",Q,[(e(),t("svg",g,u)),m]),s(" over (subsets of) "),i("mjx-container",v,[(e(),t("svg",y,E)),C]),s(".")])]),f])}const B=l(n,[["render",_]]);export{H as __pageData,B as default}; +import{_ as l,c as t,j as i,a as s,a7 as a,o as e}from"./chunks/framework.B__MqT43.js";const H=JSON.parse('{"title":"Getting Started with Julia for CP and Optimization","description":"","frontmatter":{},"headers":[],"relativePath":"cp/getting_started.md","filePath":"cp/getting_started.md","lastUpdated":null}'),n={name:"cp/getting_started.md"},h=a("",15),o={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},p={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.439ex"},xmlns:"http://www.w3.org/2000/svg",width:"15.867ex",height:"1.984ex",role:"img",focusable:"false",viewBox:"0 -683 7013.4 877","aria-hidden":"true"},d=a("",1),r=[d],k=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"X"),i("mo",null,"="),i("msub",null,[i("mi",null,"X"),i("mn",null,"1")]),i("mo",null,","),i("mo",null,"⋯"),i("mo",null,","),i("msub",null,[i("mi",null,"X"),i("mi",null,"n")])])],-1),c=a("",1),Q={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.439ex"},xmlns:"http://www.w3.org/2000/svg",width:"15.148ex",height:"2.034ex",role:"img",focusable:"false",viewBox:"0 -705 6695.4 899","aria-hidden":"true"},T=a("",1),u=[T],m=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"C"),i("mo",null,"="),i("msub",null,[i("mi",null,"C"),i("mn",null,"1")]),i("mo",null,","),i("mo",null,"⋯"),i("mo",null,","),i("msub",null,[i("mi",null,"C"),i("mi",null,"n")])])],-1),v={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},b={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.928ex",height:"1.545ex",role:"img",focusable:"false",viewBox:"0 -683 852 683","aria-hidden":"true"},y=i("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[i("g",{"data-mml-node":"math"},[i("g",{"data-mml-node":"mi"},[i("path",{"data-c":"1D44B",d:"M42 0H40Q26 0 26 11Q26 15 29 27Q33 41 36 43T55 46Q141 49 190 98Q200 108 306 224T411 342Q302 620 297 625Q288 636 234 637H206Q200 643 200 645T202 664Q206 677 212 683H226Q260 681 347 681Q380 681 408 681T453 682T473 682Q490 682 490 671Q490 670 488 658Q484 643 481 640T465 637Q434 634 411 620L488 426L541 485Q646 598 646 610Q646 628 622 635Q617 635 609 637Q594 637 594 648Q594 650 596 664Q600 677 606 683H618Q619 683 643 683T697 681T738 680Q828 680 837 683H845Q852 676 852 672Q850 647 840 637H824Q790 636 763 628T722 611T698 593L687 584Q687 585 592 480L505 384Q505 383 536 304T601 142T638 56Q648 47 699 46Q734 46 734 37Q734 35 732 23Q728 7 725 4T711 1Q708 1 678 1T589 2Q528 2 496 2T461 1Q444 1 444 10Q444 11 446 25Q448 35 450 39T455 44T464 46T480 47T506 54Q523 62 523 64Q522 64 476 181L429 299Q241 95 236 84Q232 76 232 72Q232 53 261 47Q262 47 267 47T273 46Q276 46 277 46T280 45T283 42T284 35Q284 26 282 19Q279 6 276 4T261 1Q258 1 243 1T201 2T142 2Q64 2 42 0Z",style:{"stroke-width":"3"}})])])],-1),E=[y],C=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"X")])],-1),f=a("",9);function w(_,F,x,D,A,L){return e(),t("div",null,[h,i("ol",null,[i("li",null,[s("A collection "),i("mjx-container",o,[(e(),t("svg",p,r)),k]),s(" of variables with each an associated domain.")])]),c,i("ol",null,[i("li",null,[s("A collection of predicates (called constraints) "),i("mjx-container",Q,[(e(),t("svg",g,u)),m]),s(" over (subsets of) "),i("mjx-container",v,[(e(),t("svg",b,E)),C]),s(".")])]),f])}const S=l(n,[["render",w]]);export{H as __pageData,S as default}; diff --git a/previews/PR53/constraints/comparison_constraints.html b/previews/PR53/constraints/comparison_constraints.html index a1249a8..1c41364 100644 --- a/previews/PR53/constraints/comparison_constraints.html +++ b/previews/PR53/constraints/comparison_constraints.html @@ -8,16 +8,16 @@ - + - - + + -
Skip to content

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

julia
using Constraints
+    
Skip to content

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

julia
using Constraints
 
 concept(:all_different, [1,1,1,2]) # false
 concept(:all_different, [1,9,3,2]) # true
julia
using Constraints
@@ -36,7 +36,7 @@
 JuMP.optimize!(model)
 @info "All Different" value.(X) value.(Y)
 
-# Note that this example gives a solution for the all_different constraint.
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
+# Note that this example gives a solution for the all_different constraint.
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
 
 concept(:all_equal, [1,1,1,2]) #false
 concept(:all_equal, [1,1,1,1]) #true
julia
using Constraints
@@ -54,7 +54,7 @@
 JuMP.optimize!(model)
 @info "All Equal" value.(X)
 
-# Note that this example gives a solution for the all_equal constraint.
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
+# Note that this example gives a solution for the all_equal constraint.
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
 
 @info concept(:ordered, [1, 2, 3, 4, 4]; op=≤)
 @info concept(:ordered, [1, 2, 3, 3, 5]; op=<)
@@ -99,7 +99,7 @@
 c([1, 2, 3, 4, 5]; op=<)
 !c([1, 2, 3, 4, 3]; op=≤)
 !c([1, 2, 3, 4, 3]; op=<)

source


- + \ No newline at end of file diff --git a/previews/PR53/constraints/connection_constraints.html b/previews/PR53/constraints/connection_constraints.html index b147b64..8278fb9 100644 --- a/previews/PR53/constraints/connection_constraints.html +++ b/previews/PR53/constraints/connection_constraints.html @@ -8,16 +8,16 @@ - + - - + + -
Skip to content

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

julia
using Constraints
+    
Skip to content

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

julia
using Constraints
 
 concept(:maximum, [1,1,1,2], val = 2, op = ==) # true
 concept(:maximum, [1,2,4,4], val = 2, op = ==) # false
julia
using Constraints
@@ -34,7 +34,7 @@
 @variable(model, 1X[1:5]5, Int)
 @constraint(model, X in Maximum(; op = ==, val = 5))
 optimize!(model)
-@info "Maximum" value.(X)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
+@info "Maximum" value.(X)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
 
 concept(:minimum, [1,1,1,2], val = 1, op = ==) # true
 concept(:minimum, [1,2,4,4], val = 2, op = ==) # false
julia
using Constraints
@@ -53,7 +53,7 @@
 JuMP.optimize!(model)
 @info "Minimum" value.(X)
 
-# Note that this example gives a solution for the minimum constraint.
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
+# Note that this example gives a solution for the minimum constraint.
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
 
 @info concept(:element, [1, 2, 3, 4, 5]; id=1, val=1)
 @info concept(:element, [1, 2, 3, 4, 5]; id=1, val=2)
@@ -77,7 +77,7 @@
 @constraint(model, Y in Element(; id = 1, val = 1))
 @constraint(model, Z in Element(; id = 2, val = 2))
 JuMP.optimize!(model)
-@info "Element" value.(X) value.(Y) value.(Z)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
+@info "Element" value.(X) value.(Y) value.(Z)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
 
 @info concept(:channel, [2, 1, 4, 3])
 @info concept(:channel, [1, 2, 3, 4])
@@ -126,7 +126,7 @@
 c([2, 1, 4, 3, 5, 2, 1, 4, 5, 3]; dim=2)
 c([false, false, true, false]; id=3)
 c([false, false, true, false]; id=1)

source


- + \ No newline at end of file diff --git a/previews/PR53/constraints/constraint_commons.html b/previews/PR53/constraints/constraint_commons.html index 3928580..3efe4f6 100644 --- a/previews/PR53/constraints/constraint_commons.html +++ b/previews/PR53/constraints/constraint_commons.html @@ -8,10 +8,10 @@ - + - + @@ -27,7 +27,7 @@ :val, # one scalar value :vals, # a list of scalar values (independent of the input vector size) ]

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

julia
extract_parameters(s::Symbol, constraints_dict=USUAL_CONSTRAINTS; parameters=ConstraintCommons.USUAL_CONSTRAINT_PARAMETERS)

Return the parameters of the constraint s in constraints_dict.

Arguments

  • s::Symbol: the constraint name.

  • constraints_dict::Dict{Symbol,Constraint}: dictionary of constraints. Default is USUAL_CONSTRAINTS.

  • parameters::Vector{Symbol}: vector of parameters. Default is ConstraintCommons.USUAL_CONSTRAINT_PARAMETERS.

Example

julia
extract_parameters(:all_different)

source


Performances

Bench Evolution ParametersChair Evolution Parameters

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.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

Bench Evolution Automata
Chair Evolution Automata
Bench Evolution Diagrams
Chair Evolution Diagrams

Extensions

We extend some operations for Nothing and Symbol.

# ConstraintCommons.symconFunction.
julia
symcon(s1::Symbol, s2::Symbol, connector::AbstractString="_")

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

source


# ConstraintCommons.consinFunction.
julia
consin(::Any, ::Nothing)

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

source


# ConstraintCommons.consisemptyFunction.
julia
consisempty(::Nothing)

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

source


Performances

Bench Evolution Nothing
Chair Evolution Nothing
Bench Evolution Symbols
Chair Evolution Symbols

Sampling

During our constraint learning processes, we use sampling to efficiently make partial exploration of search spaces. The following are some examples of 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

Bench EvolutionChair Evolution

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

Bench EvolutionChair Evolution

Dictionaries

We provide the ever-useful 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

Bench EvolutionChair Evolution
- + \ No newline at end of file diff --git a/previews/PR53/constraints/constraint_domains.html b/previews/PR53/constraints/constraint_domains.html index dadb240..c5d0807 100644 --- a/previews/PR53/constraints/constraint_domains.html +++ b/previews/PR53/constraints/constraint_domains.html @@ -8,10 +8,10 @@ - + - + @@ -51,7 +51,7 @@ search = :flexible, solutions_limit = floor(Int, sqrt(max_samplings)))

Create an ExploreSettings object to configure the exploration of a search space composed of a collection of domains.

Arguments

  • domains: A collection of domains to be explored.

  • complete_search_limit: An integer specifying the maximum limit for complete search iterations. Default is 10^6.

  • max_samplings: An integer specifying the maximum number of samplings. Default is the sum of domain sizes.

  • search: A symbol indicating the type of search to perform. Default is :flexible.

  • solutions_limit: An integer specifying the limit on the number of solutions. Default is the floor of the square root of max_samplings.

Returns

  • ExploreSettings object with the specified settings.

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; settings = ExploreSettings(domains), parameters...)

Search (a part of) a search space and return a pair of vectors of configurations: (solutions, non_solutions). The exploration behavior is determined based on the settings.

Arguments

  • domains: A collection of domains to be explored.

  • concept: The concept representing the constraint to be targeted.

  • settings: An optional ExploreSettings object to configure the exploration. Default is ExploreSettings(domains).

  • parameters...: Additional parameters for the concept.

Returns

  • A tuple of sets: (solutions, non_solutions).

source


Performances

Bench Evolution ExplorationChair Evolution Exploration

Parameters

# ConstraintDomains.BoolParameterDomainType.
julia
BoolParameterDomain <: AbstractDomain

A domain to store boolean values. It is used to generate random parameters.

source


# ConstraintDomains.DimParameterDomainType.
julia
DimParameterDomain <: AbstractDomain

A domain to store dimensions. It is used to generate random parameters.

source


# ConstraintDomains.IdParameterDomainType.
julia
IdParameterDomain <: AbstractDomain

A domain to store ids. It is used to generate random parameters.

source


# 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


# ConstraintDomains.LanguageParameterDomainType.
julia
LanguageParameterDomain <: AbstractDomain

A domain to store languages. It is used to generate random parameters.

source


# ConstraintDomains.OpParameterDomainType.
julia
OpParameterDomain{T} <: AbstractDomain

A domain to store operators. It is used to generate random parameters.

source


# ConstraintDomains.PairVarsParameterDomainType.
julia
PairVarsParameterDomain{T} <: AbstractDomain

A domain to store values paired with variables. It is used to generate random parameters.

source


# ConstraintDomains.ValParameterDomainType.
julia
ValParameterDomain{T} <: AbstractDomain

A domain to store one value. It is used to generate random parameters.

source


# ConstraintDomains.ValsParameterDomainType.
julia
ValsParameterDomain{T} <: AbstractDomain

A domain to store values. It is used to generate random parameters.

source


# 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/previews/PR53/constraints/constraint_models.html b/previews/PR53/constraints/constraint_models.html index 1086abd..c0a2454 100644 --- a/previews/PR53/constraints/constraint_models.html +++ b/previews/PR53/constraints/constraint_models.html @@ -8,10 +8,10 @@ - + - + @@ -47,7 +47,7 @@ # Retrieve and display the values solution = value.(grid) display(solution, Val(:sudoku))

source


- + \ No newline at end of file diff --git a/previews/PR53/constraints/constraints.html b/previews/PR53/constraints/constraints.html index 9c90148..c4ce5b6 100644 --- a/previews/PR53/constraints/constraints.html +++ b/previews/PR53/constraints/constraints.html @@ -8,10 +8,10 @@ - + - + @@ -27,7 +27,7 @@ :val, # one scalar value :vals, # a list of scalar values (independent of the input vector size) ]

source


We provide a couple of methods to navigate the usual constraints extracted from XCSP3-Core.

# 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 defining a new function with the same name as the constraint and using the @usual macro to define it. The macro will take care of adding the new constraint to the USUAL_CONSTRAINTS dictionary.

Example

julia
@usual concept_all_different(x; vals=nothing) = xcsp_all_different(list=x, except=vals)

source


# Constraints.describeFunction.
julia
describe(constraints::Dict{Symbol,Constraint}=USUAL_CONSTRAINTS; width=150)

Return a pretty table with the description of the constraints in constraints.

Arguments

  • constraints::Dict{Symbol,Constraint}: dictionary of constraints to describe. Default is USUAL_CONSTRAINTS.

  • width::Int: width of the table.

Example

julia
describe()

source


# Constraints.constraints_parametersFunction.
julia
constraints_parameters(C=USUAL_CONSTRAINTS)

Return a pretty table with the parameters of the constraints in C.

Arguments

  • C::Dict{Symbol,Constraint}: dictionary of constraints. Default is USUAL_CONSTRAINTS.

Example

julia
constraints_parameters()

source


# Constraints.constraints_descriptionsFunction.
julia
constraints_descriptions(C=USUAL_CONSTRAINTS)

Return a pretty table with the descriptions of the constraints in C.

Arguments

  • C::Dict{Symbol,Constraint}: dictionary of constraints. Default is USUAL_CONSTRAINTS.

Example

julia
constraints_descriptions()

source


Concepts, Error Functions, and QUBO matrices

One major use of this collection of usual constraint is to extract the concept or the error function (error_f) of a given constraint.

# 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

julia
concept(s::Symbol, args...; kargs...)

Return the concept of the constraint s applied to args and kargs. This is a shortcut for concept(USUAL_CONSTRAINTS[s])(args...; kargs...).

Arguments

  • s::Symbol: the constraint name.

  • args...: the arguments to apply the concept to.

  • kargs...: the keyword arguments to apply the concept to.

Example

julia
concept(:all_different, [1, 2, 3])

source


Note that the error function is a finer estimation of how much a constraint is violated or not. By default, the error_f method simply return 0. if the constraint is satisfied or 1. otherwise.

Efficient versions of error_f are either hand-coded or generated through CompositionalNetworks.jl.

# 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


Finally, another use is to provide QUBO matrices of those usual constraints through QUBOConstraints.jl. The syntax and interface for this feature are still a work in progress.

- + \ No newline at end of file diff --git a/previews/PR53/constraints/constraints_jl.html b/previews/PR53/constraints/constraints_jl.html index 0eac939..15722f0 100644 --- a/previews/PR53/constraints/constraints_jl.html +++ b/previews/PR53/constraints/constraints_jl.html @@ -8,10 +8,10 @@ - + - + @@ -27,7 +27,7 @@ :val, # one scalar value :vals, # a list of scalar values (independent of the input vector size) ]

source


Concepts, Error Functions, and QUBO matrices

One major use of this collection of usual constraint is to extract the concept or the error function (error_f) of a given constraint.

# 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

julia
concept(s::Symbol, args...; kargs...)

Return the concept of the constraint s applied to args and kargs. This is a shortcut for concept(USUAL_CONSTRAINTS[s])(args...; kargs...).

Arguments

  • s::Symbol: the constraint name.

  • args...: the arguments to apply the concept to.

  • kargs...: the keyword arguments to apply the concept to.

Example

julia
concept(:all_different, [1, 2, 3])

source


Note that the error function is a finer estimation of how much a constraint is violated or not. By default, the error_f method simply return 0. if the constraint is satisfied or 1. otherwise.

Efficient versions of error_r are either hand-coded or generated through CompositionalNetworks.jl.

# 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


Finally, another use is to provide QUBO matrices of those usual constraints through QUBOConstraints.jl. The syntax and interface for this feature are still a work in progress.

Usual Constraints

We provide a couple of methods to navigate the usual constraints extracted from XCSP3-Core.

# 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 defining a new function with the same name as the constraint and using the @usual macro to define it. The macro will take care of adding the new constraint to the USUAL_CONSTRAINTS dictionary.

Example

julia
@usual concept_all_different(x; vals=nothing) = xcsp_all_different(list=x, except=vals)

source


# Constraints.describeFunction.
julia
describe(constraints::Dict{Symbol,Constraint}=USUAL_CONSTRAINTS; width=150)

Return a pretty table with the description of the constraints in constraints.

Arguments

  • constraints::Dict{Symbol,Constraint}: dictionary of constraints to describe. Default is USUAL_CONSTRAINTS.

  • width::Int: width of the table.

Example

julia
describe()

source


# Constraints.constraints_parametersFunction.
julia
constraints_parameters(C=USUAL_CONSTRAINTS)

Return a pretty table with the parameters of the constraints in C.

Arguments

  • C::Dict{Symbol,Constraint}: dictionary of constraints. Default is USUAL_CONSTRAINTS.

Example

julia
constraints_parameters()

source


# Constraints.constraints_descriptionsFunction.
julia
constraints_descriptions(C=USUAL_CONSTRAINTS)

Return a pretty table with the descriptions of the constraints in C.

Arguments

  • C::Dict{Symbol,Constraint}: dictionary of constraints. Default is USUAL_CONSTRAINTS.

Example

julia
constraints_descriptions()

source


- + \ No newline at end of file diff --git a/previews/PR53/constraints/counting_summing_constraints.html b/previews/PR53/constraints/counting_summing_constraints.html index ee0d07e..2d81b27 100644 --- a/previews/PR53/constraints/counting_summing_constraints.html +++ b/previews/PR53/constraints/counting_summing_constraints.html @@ -8,16 +8,16 @@ - + - - + + -
Skip to content

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

julia
using Constraints
+    
Skip to content

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

julia
using Constraints
 
 @info concept(:sum, [1, 2, 3, 4, 5]; op = ==, val=15)
 @info concept(:sum, [1, 2, 3, 4, 5]; op = ==, val=2)
@@ -39,7 +39,7 @@
 @constraint(model, X in Sum(; op = ==, val = 15))
 @constraint(model, Y in Sum(; op = <=, val = 10))
 JuMP.optimize!(model)
-@info "Sum" value.(X) value.(Y)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
+@info "Sum" value.(X) value.(Y)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
 
 concept(:count, [1,1,1,2], vals = [1, 1, 1, 2], op = ==, val = 4) # true
 concept(:count, [1,1,1,2], vals = [1, 1, 1, 2], op = ==, val = 5) # false
@@ -73,7 +73,7 @@
 @constraint(model, X_at_most in AtMost(vals = [1, 2], val = 1))
 @constraint(model, X_exactly in Exactly(vals = [1, 2], val = 2))
 JuMP.optimize!(model)
-@info "Count" value.(X) value.(X_at_least) value.(X_at_most) value.(X_exactly)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
+@info "Count" value.(X) value.(X_at_least) value.(X_at_most) value.(X_exactly)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
 
 @info concept(:nvalues, [1, 2, 3, 4, 5]; op = ==, val = 5)
 @info concept(:nvalues, [1, 2, 3, 4, 5]; op = ==, val = 2)
@@ -97,7 +97,7 @@
 @constraint(model, Y in NValues(; op = ==, val = 2))
 @constraint(model, Z in NValues(; op = <=, val = 5, vals = [1, 2]))
 JuMP.optimize!(model)
-@info "NValues" value.(X) value.(Y) value.(Z)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
+@info "NValues" value.(X) value.(Y) value.(Z)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
 
 # [v1, v2, v3], [v1, a1, a2; v2, b1, b2; v3, c1, c2] means v1 occurs between a1 and a2 times in the first array, similar for v2 and v3.
 
@@ -163,7 +163,7 @@
 
 co = concept(:cardinality_open)
 co([8, 5, 10, 10]; vals=[2 0 1; 5 1 3; 10 2 3])

source


- + \ No newline at end of file diff --git a/previews/PR53/constraints/elementary_constraints.html b/previews/PR53/constraints/elementary_constraints.html index 58af7be..6f86e35 100644 --- a/previews/PR53/constraints/elementary_constraints.html +++ b/previews/PR53/constraints/elementary_constraints.html @@ -8,10 +8,10 @@ - + - + @@ -22,7 +22,7 @@ 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, 6])

source


- + \ No newline at end of file diff --git a/previews/PR53/constraints/generic_constraints.html b/previews/PR53/constraints/generic_constraints.html index 88553a4..4ef5b63 100644 --- a/previews/PR53/constraints/generic_constraints.html +++ b/previews/PR53/constraints/generic_constraints.html @@ -8,11 +8,11 @@ - + - - + + @@ -25,16 +25,16 @@ predicate_dist_different(x) = abs(x[1] - x[2]) abs(x[3] - x[4]) # Add it to usual constraints -@usual concept_dist_different(x) = xcsp_intension( +@usual concept_dist_different(x) = xcsp_intention( list = x, predicate = predicate_dist_different -)

Please check the section dedicated to the Golomb Ruler problem to see a use for this constraint. <!– TODO: Golomb Ruler –>

APIs

Note that the intension constraint is not directly available through the JC-API in Constraints.jl. It is designed as such since defining a constraint through a predicate is the natural way.

We provide here a usage example for the :dist_different constraint, previously added to the USUAL_CONSTRAINTS collection.

Higher level modeling language such as JuMP should provide an Intension interface.

julia
using Constraints
+)

Please check the section dedicated to the Golomb Ruler problem to see a use for this constraint. <!– TODO: Golomb Ruler –>

APIs

Note that the intention constraint is not directly available through the JC-API in Constraints.jl. It is designed as such since defining a constraint through a predicate is the natural way.

We provide here a usage example for the :dist_different constraint, previously added to the USUAL_CONSTRAINTS collection.

Higher level modeling language such as JuMP should provide an Intention interface.

julia
using Constraints
 
 concept(:dist_different, x)
 concept(:dist_different)(x)
julia
# Defines the DistDifferent constraint
 using Constraints
 
-c = x -> xcsp_intension(
+c = x -> xcsp_intention(
     list = x,
     predicate = y -> abs(y[1] - y[2])  abs(y[3] - y[4])
 )
@@ -43,31 +43,71 @@
 c([1, 2, 3, 4]) # false
julia
using CBLS, JuMP
 
 model = Model(CBLS.Optimizer)
+
+# Using build-in DistDifferent
 @variable(model, 0 <= X[1:4] <= 10, Int)
 @constraint(model, X in DistDifferent())
+
+# Alternatively
+@variable(model, 0 <= Y[1:4] <= 10, Int)
+@constraint(model, Y in Intention(y -> abs(y[1] - y[2])  abs(y[3] - y[4])))
+
 optimize!(model)
 
 @info value.(X)
+@info value.(Y)
julia
using CBLS
+import MathOptInterface as MOI
+
+optimizer = CBLS.Optimizer()
+
+x = MOI.add_variables(optimizer, 4)
+for xi in x
+    # Missing RangeDomain currently in CBLS
+    MOI.add_constraint(optimizer, xi, CBLS.DiscreteSet(collect[1:10]))
+end
+MOI.add_constraint(optimizer, x, CBLS.Intention(y -> abs(y[1] - y[2])  abs(y[3] - y[4])))
+
+MOI.optimize!(optimizer)

Extension Constraints

These are constraints that are defined by explicitly listing all the tuples of values that satisfy the constraint. They are called extensional because they are defined by the set of values they allow. For example, a binary constraint that specifies that a variable X must be either 1 or 2 and a variable Y must be either 3 or 4 could be defined extensionally by the set of tuples (1,3),(1,4),(2,3),(2,4).

These two types of constraints provide a flexible way to define complex relationships between variables in constraint programming.

julia
using Constraints
+
+concept(:dist_different, x)
+concept(:dist_different)(x)
julia
# Defines the DistDifferent constraint
+using Constraints
+
+c = x -> xcsp_intention(
+    list = x,
+    predicate = y -> abs(y[1] - y[2])  abs(y[3] - y[4])
+)
+
+c([1, 2, 3, 3]) # true
+c([1, 2, 3, 4]) # false
julia
using CBLS, JuMP
+
+model = Model(CBLS.Optimizer)
+
+# Using build-in DistDifferent
+@variable(model, 0 <= X[1:4] <= 10, Int)
+@constraint(model, X in DistDifferent())
+
+# Alternatively
+@variable(model, 0 <= Y[1:4] <= 10, Int)
+@constraint(model, Y in Intention(y -> abs(y[1] - y[2])  abs(y[3] - y[4])))
+
+optimize!(model)
+
+@info value.(X)
+@info value.(Y)
julia
using CBLS
+import MathOptInterface as MOI
+
+optimizer = CBLS.Optimizer()
+
+x = MOI.add_variables(optimizer, 4)
+for xi in x
+    # Missing RangeDomain currently in CBLS
+    MOI.add_constraint(optimizer, xi, CBLS.DiscreteSet(collect[1:10]))
+end
+MOI.add_constraint(optimizer, x, CBLS.Intention(y -> abs(y[1] - y[2])  abs(y[3] - y[4])))
 
-# Note that this example gives a solution for the constraint within the interval 0:10
julia
# TODO: How to handle intention in JuMP/MOI

Specific documentation

# 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.
julia
concept(:dist_different, x)
-concept(:dist_different)(x)

Examples

@example
2 + 2
@example
2 + 2
@example
using Constraints # hide
-c = concept(:dist_different)
-c([1, 2, 3, 3]) && !c([1, 2, 3, 4])
@example
using Constraints # hide
-c = concept(:dist_different)
-c([1, 2, 3, 3]) && !c([1, 2, 3, 4])

source


Extension Constraints

These are constraints that are defined by explicitly listing all the tuples of values that satisfy the constraint. They are called extensional because they are defined by the set of values they allow. For example, a binary constraint that specifies that a variable X must be either 1 or 2 and a variable Y must be either 3 or 4 could be defined extensionally by the set of tuples {(1,3), (1,4), (2,3), (2,4)}.

These two types of constraints provide a flexible way to define complex relationships between variables in constraint programming.

XCSP in Constraints.jl {#XCSP-in-Constraints.jl}

# 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.
julia
concept(:extension, x; pair_vars)
-concept(:extension)(x; pair_vars)
  • :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.
julia
concept(:supports, x; pair_vars)
-concept(:supports)(x; pair_vars)
  • :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.
julia
concept(:conflicts, x; pair_vars)
-concept(:conflicts)(x; pair_vars)

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]])
-
-c = concept(:supports)
-c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 3, 4, 5]])
-
-c = concept(:conflicts)
-c([1, 2, 3, 4, 5]; pair_vars=[[1, 2, 1, 4, 5], [1, 2, 3, 5, 5]])

source


- +MOI.optimize!(optimizer) + \ No newline at end of file diff --git a/previews/PR53/constraints/graph_constraints.html b/previews/PR53/constraints/graph_constraints.html index 41d4d8e..9ef048e 100644 --- a/previews/PR53/constraints/graph_constraints.html +++ b/previews/PR53/constraints/graph_constraints.html @@ -8,10 +8,10 @@ - + - + @@ -24,7 +24,7 @@ c([2, 3, 4, 1]) c([2, 3, 1, 4]; op = ==, val = 3) c([4, 3, 1, 3]; op = >, val = 0)

source


- + \ No newline at end of file diff --git a/previews/PR53/constraints/intro.html b/previews/PR53/constraints/intro.html index 7d12d80..0a2f197 100644 --- a/previews/PR53/constraints/intro.html +++ b/previews/PR53/constraints/intro.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Introduction to basics constraint-based modeling tools

Constraint programming (CP) is a high-level paradigm for solving combinatorial problems, and Julia Constraints provides an efficient and flexible framework for developing constraint-based models.

All along this documentation, we will present code example base on the syntaxes of Julia Constraints internals (JC-API), of Julia for Mathematical Programming (JuMP ), of MathOptInterface (MOI), and, when relevant, of other standards such as XCSP.

Terminology

Warning

Terminology in Optimization varies strongly between different methods and communities. In this doc we try to be consistent with the following principles (in bold).

  • Constraint: A general mathematical predicate involving variables.

  • Constraint Instantiation: The application of a constraint to specific variables.

  • Configuration: A specific assignment of values to the variables.

  • Constraint Satisfaction/Violation: Whether a configuration meets or fails a constraint.

Constraint

Definition: A constraint is a formal mathematical statement that expresses a condition or a relation between a set of variables. It can be seen as a predicate that the variables must satisfy.

Example: Consider the constraint x+y10. This constraint involves two variables, x and y, and specifies that their sum must not exceed 10.

Constraint Instantiation

Definition: A constraint instantiation refers to a specific application of a generic constraint to a particular subset of variables from a problem. It is essentially the constraint applied with the actual variables of the problem.

Example: Given the generic constraint x+y10, if we have variables x1 and x2 in our problem, then the instantiated constraint would be x1+x210.

Configuration

Definition: A configuration, also known as an assignment, is a specific set of values assigned to the variables in their respective domains. It represents a possible state of the variables.

Example: For variables x and y with domains [0,10], a configuration could be x=3 and y=2.

Constraint Satisfaction or Violation by a Configuration

Definition: This refers to whether a specific configuration (set of variable assignments) satisfies or violates a given constraint instantiation. A constraint is satisfied if the configuration makes the constraint true; otherwise, it is violated (false).

Example: Given the constraint instantiation x+y10 and the configuration x=3 and y=2, the constraint is satisfied because 3+2=5, which is less than or equal to 10. However, for the configuration x=6 and y=5, the constraint is violated because 6+5=11, which exceeds 10.

Domain-defined variables

In CP, variables are defined through their domain. ConstraintDomains.jl supports various types of domains such as discrete ones (sets, range, etc.), or continuous intervals, and custom domains.

A versatile constraints' API

Constraints.jl implements a wide range of generic and core constraints, ensuring compatibility with XCSP3-core standards and providing a user-friendly interface. It includes features extracted from the learning blocks of Julia Constraints to leverage most of each constraint characteristics.

A collection of models

The ConstraintModels.jl catalog offers a collection of predefined models and templates for constructing complex constraint satisfaction problems (CSPs) and optimization models. This resource provides reusable components to streamline the modeling process.

Contributions with new models are more than welcome!

Internal Aspects

Several internal components are crucial for the efficient functioning of Julia Constraints. ConstraintCommons.jl provides shared functionalities and utilities used across different parts of the framework, contributing to its robust performance and extensibility. However, it is unlikely to be of direct use to most users.

- + \ No newline at end of file diff --git a/previews/PR53/constraints/language_constraints.html b/previews/PR53/constraints/language_constraints.html index bff78fc..fd12d3d 100644 --- a/previews/PR53/constraints/language_constraints.html +++ b/previews/PR53/constraints/language_constraints.html @@ -8,10 +8,10 @@ - + - + @@ -65,7 +65,7 @@ c([2,1,2]; language = a) c([1,0,2]; language = a) c([0,1,2]; language = a)

source


- + \ No newline at end of file diff --git a/previews/PR53/constraints/packing_scheduling_constraints.html b/previews/PR53/constraints/packing_scheduling_constraints.html index 314c9c6..75c8392 100644 --- a/previews/PR53/constraints/packing_scheduling_constraints.html +++ b/previews/PR53/constraints/packing_scheduling_constraints.html @@ -8,16 +8,16 @@ - + - - + + -
Skip to content

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

julia
using Constraints
+    
Skip to content

Constraints.jl: Streamlining Constraint Definition and Integration in Julia

julia
using Constraints
 
 @info concept(:cumulative, [1, 2, 3, 4, 5]; val = 1)
 @info concept(:cumulative, [1, 2, 2, 4, 5]; val = 1)
@@ -44,7 +44,7 @@
 @constraint(model,
     Z in Cumulative(; pair_vars = [3 2 5 4 2; 1 2 1 1 3], op = <, val = 5))
 JuMP.optimize!(model)
-@info "Cumulative" value.(X) value.(Y) value.(Z)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
+@info "Cumulative" value.(X) value.(Y) value.(Z)
julia
# TODO: How to handle intention in JuMP/MOI
julia
using Constraints
 
 @info concept(:no_overlap, [1, 2, 3, 4, 5])
 @info concept(:no_overlap, [1, 2, 3, 4, 1])
@@ -88,7 +88,7 @@
 c([1, 2, 4, 6, 3]; pair_vars = [1, 1, 3, 1, 1])
 c([1, 1, 1, 3, 5, 2, 7, 7, 5, 12, 8, 7]; pair_vars = [2, 4, 1, 4 ,2 ,3, 5, 1, 2, 3, 3, 2], dim = 3)
 c([1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4]; pair_vars = [2, 4, 1, 4 ,2 ,3, 5, 1, 2, 3, 3, 2], dim = 3)

source


- + \ No newline at end of file diff --git a/previews/PR53/constraints/variables_and_domains.html b/previews/PR53/constraints/variables_and_domains.html index ddb11db..4d63c42 100644 --- a/previews/PR53/constraints/variables_and_domains.html +++ b/previews/PR53/constraints/variables_and_domains.html @@ -8,16 +8,16 @@ - + - - + + -
Skip to content

Defining Variables and Exploring Domains

ConstraintDomains.jl stands as the standard way to define variables and explore domains within the Julia Constraints ecosystem. This package provides the infrastructure necessary for specifying both discrete and continuous domains. Explorations features are mainly related to the learning about constraints aspect and will be detailed in that chapter.

Variables and their domains can also be defined through MOI and JuMP syntaxes in their respective models.

Implementing the AbstractDomain Interface

At the foundation of ConstraintDomains.jl is the AbstractDomain type, an abstract supertype for all domain types. Implementations of AbstractDomain must provide methods for checking membership (), generating random elements (rand), and determining the domain's size or range (length). These functionalities are essential for defining the behavior and properties of variable domains within constraint models.

# ConstraintDomains.AbstractDomainType.
julia
AbstractDomain

An abstract super type for any domain type. A domain type D <: AbstractDomain must implement the following methods to properly interface AbstractDomain.

  • Base.∈(val, ::D)

  • Base.rand(::D)

  • Base.length(::D) that is the number of elements in a discrete domain, and the distance between bounds or similar for a continuous domain

Additionally, if the domain is used in a dynamic context, it can extend

  • add!(::D, args)

  • delete!(::D, args)

where args depends on D's structure

source


Discrete Domains

Optimization in discrete spaces has been the core of Constraint Programming since its inception. We provide three kinds of discrete domains.

SetDomain

A SetDomain is simply a Set of unordered numerical values.

julia
using ConstraintDomains
+    
Skip to content

Defining Variables and Exploring Domains

ConstraintDomains.jl stands as the standard way to define variables and explore domains within the Julia Constraints ecosystem. This package provides the infrastructure necessary for specifying both discrete and continuous domains. Explorations features are mainly related to the learning about constraints aspect and will be detailed in that chapter.

Variables and their domains can also be defined through MOI and JuMP syntaxes in their respective models.

Implementing the AbstractDomain Interface

At the foundation of ConstraintDomains.jl is the AbstractDomain type, an abstract supertype for all domain types. Implementations of AbstractDomain must provide methods for checking membership (), generating random elements (rand), and determining the domain's size or range (length). These functionalities are essential for defining the behavior and properties of variable domains within constraint models.

# ConstraintDomains.AbstractDomainType.
julia
AbstractDomain

An abstract super type for any domain type. A domain type D <: AbstractDomain must implement the following methods to properly interface AbstractDomain.

  • Base.∈(val, ::D)

  • Base.rand(::D)

  • Base.length(::D) that is the number of elements in a discrete domain, and the distance between bounds or similar for a continuous domain

Additionally, if the domain is used in a dynamic context, it can extend

  • add!(::D, args)

  • delete!(::D, args)

where args depends on D's structure

source


Discrete Domains

Optimization in discrete spaces has been the core of Constraint Programming since its inception. We provide three kinds of discrete domains.

SetDomain

A SetDomain is simply a Set of unordered numerical values.

julia
using ConstraintDomains
 
 d1 = domain([53.69, 89.2, 0.12])
 d2 = domain([2//3, 89//123])
@@ -44,7 +44,7 @@
 MOI.add_constraint(optimizer, v3, CBLS.DiscreteSet(4.3))
 
 v4 = MOI.add_variable(optimizer)
-MOI.add_constraint(optimizer, v4, CBLS.DiscreteSet([1, 42, 3.14]))

RangeDomain

A range domain allows for minimal storage and more efficient operation on discrete sets defined as Range in Julia. It is not recommended for dynamic domains (it will be replaced with SetDomain as soon as a non-extremal element is removed).

julia
using ConstraintDomains
+MOI.add_constraint(optimizer, v4, CBLS.DiscreteSet([1, 42, 3.14]))

RangeDomain

A range domain allows for minimal storage and more efficient operation on discrete sets defined as Range in Julia. It is not recommended for dynamic domains (it will be replaced with SetDomain as soon as a non-extremal element is removed).

julia
using ConstraintDomains
 
 d1 = domain(1:5)
 d2 = domain(0.4:0.1:1.3)
julia
## To be implemented
@@ -64,12 +64,12 @@
 
 # v2 = MOI.add_variable(optimizer)
 
-# MOI.add_constraint(optimizer, v1, MOI.RangeSet(0.4:0.1:1.3))

Arbitrary Domains

As odd as it may sound, we provide a constructor for sets of elements making up arbitrary, possibly non-numerical, domains.

Until some practical examples are implemented, this structure will mainly be a placeholder with default behavior.

Continuous Domains

Numerous problems cannot be challenged without expressing at least part of their domains as continuous variables. In Julia Constraints we provide such domains as (set of) intervals.

julia
using ConstraintDomains, Intervals
+# MOI.add_constraint(optimizer, v1, MOI.RangeSet(0.4:0.1:1.3))

Arbitrary Domains

As odd as it may sound, we provide a constructor for sets of elements making up arbitrary, possibly non-numerical, domains.

Until some practical examples are implemented, this structure will mainly be a placeholder with default behavior.

Continuous Domains

Numerous problems cannot be challenged without expressing at least part of their domains as continuous variables. In Julia Constraints we provide such domains as (set of) intervals.

julia
using ConstraintDomains, Intervals
 
 d1 = domain(Interval{Open,Closed}(3.2, true), (42, false))
 d2 = domain(3.2..42)
 d3 = domain([3.2..42, 63.2..324.1])
julia
## see MOI.Interval
julia
## see MOI.Interval
- + \ No newline at end of file diff --git a/previews/PR53/cp/advanced.html b/previews/PR53/cp/advanced.html index 394c30f..7eefea1 100644 --- a/previews/PR53/cp/advanced.html +++ b/previews/PR53/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/previews/PR53/cp/applications.html b/previews/PR53/cp/applications.html index 7baef8e..a13708e 100644 --- a/previews/PR53/cp/applications.html +++ b/previews/PR53/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/previews/PR53/cp/contribution.html b/previews/PR53/cp/contribution.html index ee6f6f2..097322c 100644 --- a/previews/PR53/cp/contribution.html +++ b/previews/PR53/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/previews/PR53/cp/cp101.html b/previews/PR53/cp/cp101.html index 89145e8..382b933 100644 --- a/previews/PR53/cp/cp101.html +++ b/previews/PR53/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/previews/PR53/cp/ecosystem.html b/previews/PR53/cp/ecosystem.html index 1826e30..056ea12 100644 --- a/previews/PR53/cp/ecosystem.html +++ b/previews/PR53/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/previews/PR53/cp/getting_started.html b/previews/PR53/cp/getting_started.html index c2278ff..7c2f286 100644 --- a/previews/PR53/cp/getting_started.html +++ b/previews/PR53/cp/getting_started.html @@ -8,25 +8,25 @@ - + - - + + -
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

We encourage users to install Julia through juliaup, a version manager for the Julia language. Please look at the official Julia language download page for further information. Once installed, Julia can be used through various editors (Visual Studio Code), notebooks (Pluto.jl), or command-line (REPL).

Although a part of the CP solvers available within the Julia ecosystem have their own interface, we encourage users to use the JuMP modeling language if possible.

Julia Constraints host several solvers(' interfaces). Due to its flexibility in modeling and solving, we will use LocalSearchSolvers.jl through its JuMP interface CBLS.jl as the basic example. Note that depending on the targeted instances, available hardware, and expectations, it is not necessarily the best choice.

All along the documentation, we will try to provide syntax examples for different setup.

julia
using LocalSearchSolvers
julia
using JuMP, CBLS
julia
# TODO: Add other solvers

Your First Julia CP Model

We will start with a classic puzzle game and some of its not that simple variants: the Sudoku.

(From Wikipedia) In classic Sudoku, the objective is to fill a 9 × 9 grid with digits so that each column, each row, and each of the nine 3 × 3 subgrids that compose the grid (also called "boxes", "blocks", or "regions") contains all of the digits from 1 to 9. The puzzle setter provides a partially completed grid, which for a well-posed puzzle has a single solution.

Constraint Programming follows the model-and-solve approach. We first need to model our Sudoku problem.

julia
m = JuMP.Model(CBLS.Optimizer)
julia
# TODO: Add other solvers

But what are the basis of CP models? It is quite simple:

  1. A collection X=X1,,Xn of variables with each an associated domain.
julia
@variable(m, 1 X[1:9, 1:9]  9, Int)
julia
# TODO: Add other solvers
  1. A collection of predicates (called constraints) C=C1,,Cn over (subsets of) X.

When modeling problems as CP, one might define and use their own predicates. However, a large collection of already defined constraints exists. One, if not the most, iconic global constraint is called AllDifferent. It ensures that all variables take distinct values.

Sudoku puzzles can be defined using only this one constraint applied to different subsets of variables.

julia
for i in 1:9
+    
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

We encourage users to install Julia through juliaup, a version manager for the Julia language. Please look at the official Julia language download page for further information. Once installed, Julia can be used through various editors (Visual Studio Code), notebooks (Pluto.jl), or command-line (REPL).

Although a part of the CP solvers available within the Julia ecosystem have their own interface, we encourage users to use the JuMP modeling language if possible.

Julia Constraints host several solvers(' interfaces). Due to its flexibility in modeling and solving, we will use LocalSearchSolvers.jl through its JuMP interface CBLS.jl as the basic example. Note that depending on the targeted instances, available hardware, and expectations, it is not necessarily the best choice.

All along the documentation, we will try to provide syntax examples for different setup.

julia
using LocalSearchSolvers
julia
using JuMP, CBLS
julia
# TODO: Add other solvers

Your First Julia CP Model

We will start with a classic puzzle game and some of its not that simple variants: the Sudoku.

(From Wikipedia) In classic Sudoku, the objective is to fill a 9 × 9 grid with digits so that each column, each row, and each of the nine 3 × 3 subgrids that compose the grid (also called "boxes", "blocks", or "regions") contains all of the digits from 1 to 9. The puzzle setter provides a partially completed grid, which for a well-posed puzzle has a single solution.

Constraint Programming follows the model-and-solve approach. We first need to model our Sudoku problem.

julia
m = JuMP.Model(CBLS.Optimizer)
julia
# TODO: Add other solvers

But what are the basis of CP models? It is quite simple:

  1. A collection X=X1,,Xn of variables with each an associated domain.
julia
@variable(m, 1 X[1:9, 1:9]  9, Int)
julia
# TODO: Add other solvers
  1. A collection of predicates (called constraints) C=C1,,Cn over (subsets of) X.

When modeling problems as CP, one might define and use their own predicates. However, a large collection of already defined constraints exists. One, if not the most, iconic global constraint is called AllDifferent. It ensures that all variables take distinct values.

Sudoku puzzles can be defined using only this one constraint applied to different subsets of variables.

julia
for i in 1:9
         @constraint(m, X[i,:] in AllDifferent()) # rows
         @constraint(m, X[:,i] in AllDifferent()) # columns
-end
julia
# TODO: Add other solvers

The last series of AllDifferent constraint is less straight forward. We need to ensure that each 3 × 3 subgrid (block) is filled with distinct values.

julia
for i in 0:2, j in 0:2 # blocks
+end
julia
# TODO: Add other solvers

The last series of AllDifferent constraint is less straight forward. We need to ensure that each 3 × 3 subgrid (block) is filled with distinct values.

julia
for i in 0:2, j in 0:2 # blocks
     @constraint(
         m,
         vec(X[(3i+1):(3(i+1)), (3j+1):(3(j+1))]) in AllDifferent(),
     )
-end
julia
# TODO: Add other solvers

We can now simply run our solver to look for a feasible solution.

julia
optimize!(m)

Note that this is heuristic solver, we might not get a feasible solution! Let's check it out. The value function print the value of a JuMP variable. We can cast it over a collection with the value. syntax.

julia
value.(X)
- +end
julia
# TODO: Add other solvers

We can now simply run our solver to look for a feasible solution.

julia
optimize!(m)

Note that this is heuristic solver, we might not get a feasible solution! Let's check it out. The value function print the value of a JuMP variable. We can cast it over a collection with the value. syntax.

julia
value.(X)
+ \ No newline at end of file diff --git a/previews/PR53/cp/intro.html b/previews/PR53/cp/intro.html index 2d3eb6f..3a49b74 100644 --- a/previews/PR53/cp/intro.html +++ b/previews/PR53/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/previews/PR53/cp/models.html b/previews/PR53/cp/models.html index cacaf2a..1168df6 100644 --- a/previews/PR53/cp/models.html +++ b/previews/PR53/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/previews/PR53/cp/opt.html b/previews/PR53/cp/opt.html index f2f98b9..c34af0d 100644 --- a/previews/PR53/cp/opt.html +++ b/previews/PR53/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/previews/PR53/cp/tuto_xp.html b/previews/PR53/cp/tuto_xp.html index 9ef6730..2c4e086 100644 --- a/previews/PR53/cp/tuto_xp.html +++ b/previews/PR53/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/previews/PR53/full_api.html b/previews/PR53/full_api.html index 74df7bf..47ff2e0 100644 --- a/previews/PR53/full_api.html +++ b/previews/PR53/full_api.html @@ -8,10 +8,10 @@ - + - + @@ -270,7 +270,7 @@ tr_val_minus_var(x, X::AbstractVector; val)

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

source


# CompositionalNetworks.tr_var_minus_valMethod.
julia
tr_var_minus_val(i, x; val)
 tr_var_minus_val(x; val)
 tr_var_minus_val(x, X::AbstractVector; val)

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

source


# CompositionalNetworks.transformation_layerFunction.
julia
transformation_layer(param = Vector{Symbol}())

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

source


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

Set the weights of an ICN with a BitVector.

source


# CompositionalNetworks.weightsMethod.
julia
weights(icn)

Access the current set of weights of an ICN.

source


# CompositionalNetworks.weights_biasMethod.
julia
weights_bias(x)

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

source


# 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/previews/PR53/hashmap.json b/previews/PR53/hashmap.json index 1c08234..bc644f2 100644 --- a/previews/PR53/hashmap.json +++ b/previews/PR53/hashmap.json @@ -1 +1 @@ -{"constraints_comparison_constraints.md":"_xAR0god","constraints_connection_constraints.md":"DEFHJFPq","constraints_constraint_commons.md":"Jf9w5IBz","constraints_constraint_domains.md":"18VSjCU9","constraints_constraint_models.md":"CrunAeM3","constraints_constraints.md":"DWM2vBTB","constraints_constraints_jl.md":"BdLeqbl5","constraints_counting_summing_constraints.md":"BtqJIwAJ","constraints_elementary_constraints.md":"DxnyLzjm","constraints_generic_constraints.md":"CtmFhNuA","constraints_graph_constraints.md":"CR1DArw6","constraints_intro.md":"mZ_BVjmf","constraints_language_constraints.md":"BUjtQKnc","constraints_packing_scheduling_constraints.md":"xDi-PHIu","constraints_variables_and_domains.md":"BX9WpOqJ","cp_advanced.md":"DbshrWLB","cp_applications.md":"BzEmtekX","cp_contribution.md":"DvP7K9sz","cp_cp101.md":"D4_luP8w","cp_ecosystem.md":"DtLmIZoC","cp_getting_started.md":"Bp6ZBR6j","cp_intro.md":"BzAy_7dt","cp_models.md":"DDGW0m0s","cp_opt.md":"CQ5Q5a1L","cp_tuto_xp.md":"B314RgEu","full_api.md":"BkPkLvWN","index-old.md":"DdiyV8hp","index.md":"DDblyEKU","learning_aggregation.md":"CDATAhnH","learning_arithmetic.md":"DmwRP2jg","learning_comparison.md":"DOlPi07g","learning_compositional_networks.md":"DZiVyN4n","learning_constraint_learning.md":"DnMq1k2p","learning_intro.md":"i5256_Vr","learning_layers.md":"DUYHEve0","learning_qubo_constraints.md":"C-jSP5hF","learning_qubo_encoding.md":"Civv8aoX","learning_qubo_learning.md":"dwDHs_At","learning_transformation.md":"BQMJx5Bn","meta_meta_strategist.md":"B_rz2YWD","perf_api.md":"SF8LKTTz","perf_benchmark_ext.md":"uftm8iDY","perf_chairmarks_ext.md":"BS45XV9r","perf_perf_checker.md":"Br3eypFF","perf_perf_interface.md":"C5fMYDZM","perf_tutorial.md":"DhWXid5p","public_api.md":"Dtk4dQBg","solvers_cbls.md":"DUlBy74r","solvers_intro.md":"BRYu-Zxp","solvers_local_search_solvers.md":"C25Onbg2"} +{"constraints_comparison_constraints.md":"BzzoUfWs","constraints_connection_constraints.md":"B5jEZYFf","constraints_constraint_commons.md":"Jf9w5IBz","constraints_constraint_domains.md":"18VSjCU9","constraints_constraint_models.md":"CrunAeM3","constraints_constraints.md":"DWM2vBTB","constraints_constraints_jl.md":"BdLeqbl5","constraints_counting_summing_constraints.md":"BrFsDYjC","constraints_elementary_constraints.md":"DxnyLzjm","constraints_generic_constraints.md":"BMouGtoq","constraints_graph_constraints.md":"CR1DArw6","constraints_intro.md":"mZ_BVjmf","constraints_language_constraints.md":"BUjtQKnc","constraints_packing_scheduling_constraints.md":"6H7cStQm","constraints_variables_and_domains.md":"hAN5u75S","cp_advanced.md":"DbshrWLB","cp_applications.md":"BzEmtekX","cp_contribution.md":"DvP7K9sz","cp_cp101.md":"D4_luP8w","cp_ecosystem.md":"DtLmIZoC","cp_getting_started.md":"CtxbRJ9l","cp_intro.md":"BzAy_7dt","cp_models.md":"DDGW0m0s","cp_opt.md":"CQ5Q5a1L","cp_tuto_xp.md":"B314RgEu","full_api.md":"BkPkLvWN","index-old.md":"DdiyV8hp","index.md":"DDblyEKU","learning_aggregation.md":"CDATAhnH","learning_arithmetic.md":"DmwRP2jg","learning_comparison.md":"DOlPi07g","learning_compositional_networks.md":"DZiVyN4n","learning_constraint_learning.md":"DnMq1k2p","learning_intro.md":"i5256_Vr","learning_layers.md":"DUYHEve0","learning_qubo_constraints.md":"C-jSP5hF","learning_qubo_encoding.md":"Civv8aoX","learning_qubo_learning.md":"dwDHs_At","learning_transformation.md":"BQMJx5Bn","meta_meta_strategist.md":"B_rz2YWD","perf_api.md":"SF8LKTTz","perf_benchmark_ext.md":"uftm8iDY","perf_chairmarks_ext.md":"BS45XV9r","perf_perf_checker.md":"Br3eypFF","perf_perf_interface.md":"C5fMYDZM","perf_tutorial.md":"DhWXid5p","public_api.md":"Dtk4dQBg","solvers_cbls.md":"DUlBy74r","solvers_intro.md":"BRYu-Zxp","solvers_local_search_solvers.md":"C25Onbg2"} diff --git a/previews/PR53/index-old.html b/previews/PR53/index-old.html index e29be1d..c526a05 100644 --- a/previews/PR53/index-old.html +++ b/previews/PR53/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/previews/PR53/index.html b/previews/PR53/index.html index 4d24d48..662868f 100644 --- a/previews/PR53/index.html +++ b/previews/PR53/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?

The Julia Constraints organization serves as a hub for resources to create, understand, and solve optimization through the lens of Constraint Programming. Our goal is to make Constraint Programming accessible and efficient for users at all levels of expertise, by providing a comprehensive suite of tools.

Most tools integrate seamlessly with JuMP, a popular Julia package for mathematical optimization.

Ecosystem overview

Core Packages

The foundation of common packages that provide essential features for constraint programming ensures that users possess the fundamental tools required for their projects.

  • ConstraintCommons.jl is designed to make constraint programming solutions in Julia interoperable. It provides shared structures, abstract types, functions, and generic methods used by both basic feature packages and learning-oriented packages.
  • ConstraintDomains.jl focuses on the definition and manipulation of variable domains, which are used to solve constraint programming problems. This package provides the infrastructure needed to specify both discrete and continuous domains, allowing a wide range of constraint programming applications.
  • Constraints.jl is a key component, specifically designed to facilitate the definition, manipulation, and application of constraints in constraint programming. This package is central to handling both standard and complex constraints, making it an indispensable tool for developers and researchers working in CP.
  • ConstraintModels.jl is a package for Julia Constraints' solvers that stores Constraint Programming models.

Learning and Translation Tools

A collection that bridges the gap between the ease of modeling and computational efficacy. These tools learn from constraints or convert natural language problems into constraint programming solutions, requiring minimal input from the user beyond the model itself.

  • CompositionalNetworks.jl provides interpretable compositional networks (ICN), a combinatorial variant of neural networks that allows the user to obtain interpretable results, unlike regular artificial neural networks.
  • QUBOConstraints.jl is a package that can (automatically) learn QUBO matrices from optimization constraints.
  • ConstraintsTranslator.jl (tentative name, WIP) is a tool for converting problems expressed in natural language into optimization models.
  • ConstraintLearning.jl is a common interface that integrates the various components outlined above.

Solvers

We offer a variety of solvers, from native Julia solvers to interfaces with JuMP for external CP solvers, to cater to various problem-solving needs.

  • LocalSearchSolvers.jl is a Julia native framework to (semi-)automatically build Constraint-based Local Search solvers. It serves as a basic for the experimental design or core and learning oriented packages in Julia Constraints.
  • CBLS.jl a MOI/JuMP interface for the above framework!
  • CPLEXCP.jl a Julia interface for CPLEX CP Optimizer.
  • Chuffed.jl a wrapper for the constraint-programming solver Chuffed to Julia.
  • JaCoP.jl a Julia interface for the JaCoP constraint-programming solver.

JuMP extras

Constraint Programming is slowly making steps into the main JuMP components. However, some extra resources are available as

Meta-solving

MetaStrategist.jl is a meta-solving package in its formative stages, which aims to harness the strengths of CP and JuMP. Its goal is to formulate tailored strategies that take into consideration the unique hardware and software resources at hand, offering a new horizon in problem-solving efficiency and adaptability. Stay tuned!

Performance related tools

We've made a tool for cross-version performance checking that ensures the high efficiency and reliability of our solutions. By facilitating clear and simple performance evaluations, PerfChecker.jl enhances both development and maintenance, contributing to the overall health and progress of Julia (Constraints)'s growing library of resources.

Contributors Page

Acknowledgments

The Julia Constraints community would not be where it is today without the collective efforts of many talented individuals and organizations. We extend our heartfelt thanks to:

  • IIJ Research Lab: The driving force behind more than half of this project!
  • JuMP-dev Community: For their extensive contributions to the development of our packages.
  • Individual Contributors: Numerous developers and researchers who have dedicated their time and skills to enhance our tools.
- + \ No newline at end of file diff --git a/previews/PR53/learning/aggregation.html b/previews/PR53/learning/aggregation.html index d1996c3..1fc9512 100644 --- a/previews/PR53/learning/aggregation.html +++ b/previews/PR53/learning/aggregation.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Aggregation Layer

Some text to describe the aggragation layer within usual ICNs.

List of aggregations

# CompositionalNetworks.ag_sumFunction.
julia
ag_sum(x)

Aggregate through + a vector into a single scalar.

source


# CompositionalNetworks.ag_count_positiveFunction.
julia
ag_count_positive(x)

Count the number of strictly positive elements of x.

source


Layer generation

# CompositionalNetworks.aggregation_layerFunction.
julia
aggregation_layer()

Generate the layer of aggregations of the ICN. The operations are mutually exclusive, that is only one will be selected.

source


- + \ No newline at end of file diff --git a/previews/PR53/learning/arithmetic.html b/previews/PR53/learning/arithmetic.html index 58e70e2..5365859 100644 --- a/previews/PR53/learning/arithmetic.html +++ b/previews/PR53/learning/arithmetic.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Arithmetic Layer

Some text to describe the arithmetic layer within usual ICNs.

List of arithmetic operations

# CompositionalNetworks.ar_sumFunction.
julia
ar_sum(x)

Reduce k = length(x) vectors through sum to a single vector.

source


# CompositionalNetworks.ar_prodFunction.
julia
ar_prod(x)

Reduce k = length(x) vectors through product to a single vector.

source


Layer generation

# CompositionalNetworks.arithmetic_layerFunction.
julia
arithmetic_layer()

Generate the layer of arithmetic operations of the ICN. The operations are mutually exclusive, that is only one will be selected.

source


- + \ No newline at end of file diff --git a/previews/PR53/learning/comparison.html b/previews/PR53/learning/comparison.html index 4cce792..1b856c8 100644 --- a/previews/PR53/learning/comparison.html +++ b/previews/PR53/learning/comparison.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Comparison Layer

Some text to describe the comparison layer within usual ICNs.

List of comparisons

List the possible parameters and how it affects the comparison.

Non-parametric

# CompositionalNetworks.co_identityFunction.
julia
co_identity(x)

Identity function. Already defined in Julia as identity, specialized for scalars in the comparison layer.

source


Missing docstring.

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

Missing docstring.

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

Missing docstring.

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

Missing docstring.

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

Param: :val

Missing docstring.

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

Missing docstring.

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

Missing docstring.

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

Missing docstring.

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

Layer generation

Missing docstring.

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

# CompositionalNetworks.comparison_layerFunction.
julia
comparison_layer(param = false)

Generate the layer of transformations functions of the ICN. Iff param value is set, also includes all the parametric comparison with that value. The operations are mutually exclusive, that is only one will be selected.

source


- + \ No newline at end of file diff --git a/previews/PR53/learning/compositional_networks.html b/previews/PR53/learning/compositional_networks.html index 5703135..08e310c 100644 --- a/previews/PR53/learning/compositional_networks.html +++ b/previews/PR53/learning/compositional_networks.html @@ -8,17 +8,17 @@ - + - +
Skip to content

CompositionalNetworks.jl

Documentation for CompositionalNetworks.jl.

Utilities

# CompositionalNetworks.map_tr!Function.
julia
map_tr!(f, x, X, param)

Return an anonymous function that applies f to all elements of x and store the result in X, with a parameter param (which is set to nothing for function with no parameter).

source


# CompositionalNetworks.lazyFunction.
julia
lazy(funcs::Function...)

Generate methods extended to a vector instead of one of its components. A function f should have the following signature: f(i::Int, x::V).

source


# CompositionalNetworks.lazy_paramFunction.
julia
lazy_param(funcs::Function...)

Generate methods extended to a vector instead of one of its components. A function f should have the following signature: f(i::Int, x::V; param).

source


# CompositionalNetworks.as_bitvectorFunction.
julia
as_bitvector(n::Int, max_n::Int = n)

Convert an Int to a BitVector of minimal size (relatively to max_n).

source


# CompositionalNetworks.as_intFunction.
julia
as_int(v::AbstractVector)

Convert a BitVector into an Int.

source


# CompositionalNetworks.reduce_symbolsFunction.
julia
reduce_symbols(symbols, sep)

Produce a formatted string that separates the symbols by sep. Used internally for show_composition.

source


Missing docstring.

Missing docstring for CompositionalNeworks.tr_in. Check Documenter's build log for details.

Metrics

# CompositionalNetworks.hammingFunction.
julia
hamming(x, X)

Compute the hamming distance of x over a collection of solutions X, i.e. the minimal number of variables to switch in xto reach a solution.

source


# CompositionalNetworks.minkowskiFunction.
julia
minkowski(x, X, p)

source


# CompositionalNetworks.manhattanFunction.
julia
manhattan(x, X)

source


Missing docstring.

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

- + \ No newline at end of file diff --git a/previews/PR53/learning/constraint_learning.html b/previews/PR53/learning/constraint_learning.html index b62b180..adec751 100644 --- a/previews/PR53/learning/constraint_learning.html +++ b/previews/PR53/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 weights 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 weights 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 weights (individuals) for the genetic algorithm weighting 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 output 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 weights of an ICN with a given set of configuration X and solutions X_sols. The best weights 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/previews/PR53/learning/intro.html b/previews/PR53/learning/intro.html index dc18372..46dd834 100644 --- a/previews/PR53/learning/intro.html +++ b/previews/PR53/learning/intro.html @@ -8,10 +8,10 @@ - + - + @@ -19,7 +19,7 @@
Skip to content

Learning about Constraints

About learning constraints related matters.

Parameters

<!– To be moved –>

One major challenge of learning the features of constraints is exploring the domains of parameters. To tackle this issue, we provide some way to generate parameters from variables' domains.

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.

Missing docstring.

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

# 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


Missing docstring.

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

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/previews/PR53/learning/layers.html b/previews/PR53/learning/layers.html index 8ff1f79..e345a82 100644 --- a/previews/PR53/learning/layers.html +++ b/previews/PR53/learning/layers.html @@ -8,10 +8,10 @@ - + - + @@ -21,7 +21,7 @@ is_viable(icn) is_viable(icn, w)

Assert if a pair of layer/icn and weights compose a viable pattern. If no weights are given with an icn, it will check the current internal value.

source


# CompositionalNetworks.generate_inclusive_operationsFunction.
julia
generate_inclusive_operations(predicate, bits)
 generate_exclusive_operation(max_op_number)

Generates the operations (weights) of a layer with inclusive/exclusive operations.

source


# CompositionalNetworks.generate_exclusive_operationFunction.
julia
generate_exclusive_operation(max_op_number)

Generates the operations (weights) of a layer with exclusive operations.

source


Missing docstring.

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

- + \ No newline at end of file diff --git a/previews/PR53/learning/qubo_constraints.html b/previews/PR53/learning/qubo_constraints.html index 9ae912e..9cc19f1 100644 --- a/previews/PR53/learning/qubo_constraints.html +++ b/previews/PR53/learning/qubo_constraints.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Introduction to QUBOConstraints.jl

Introduction to QUBOConstraints.jl.

Basic features

# 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_sumFunction.
julia
QUBO_linear_sum(n, σ)

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

source


- + \ No newline at end of file diff --git a/previews/PR53/learning/qubo_encoding.html b/previews/PR53/learning/qubo_encoding.html index eb6348e..8fa0191 100644 --- a/previews/PR53/learning/qubo_encoding.html +++ b/previews/PR53/learning/qubo_encoding.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Encoding for QUBO programs

# 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.binarizeFunction.
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.debinarizeFunction.
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


- + \ No newline at end of file diff --git a/previews/PR53/learning/qubo_learning.html b/previews/PR53/learning/qubo_learning.html index ad75238..f635f21 100644 --- a/previews/PR53/learning/qubo_learning.html +++ b/previews/PR53/learning/qubo_learning.html @@ -8,10 +8,10 @@ - + - + @@ -136,7 +136,7 @@ ) return train(X, penalty, to_domains(X, dom_stuff); optimizer, X_test) end - + \ No newline at end of file diff --git a/previews/PR53/learning/transformation.html b/previews/PR53/learning/transformation.html index 880dc37..3aabe99 100644 --- a/previews/PR53/learning/transformation.html +++ b/previews/PR53/learning/transformation.html @@ -8,10 +8,10 @@ - + - + @@ -46,7 +46,7 @@ # Apply a count equal to parameter transformation count_eq_param_result = val_transforms[:count_eq_param](data, param)

source


# CompositionalNetworks.transformation_layerFunction.
julia
transformation_layer(param = Vector{Symbol}())

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

source


- + \ No newline at end of file diff --git a/previews/PR53/meta/meta_strategist.html b/previews/PR53/meta/meta_strategist.html index 628839f..3d0b61a 100644 --- a/previews/PR53/meta/meta_strategist.html +++ b/previews/PR53/meta/meta_strategist.html @@ -8,17 +8,17 @@ - + - +
Skip to content

MetaStrategist.jl

Documentation for MetaStrategist.jl.

- + \ No newline at end of file diff --git a/previews/PR53/perf/api.html b/previews/PR53/perf/api.html index 736f580..d5d6714 100644 --- a/previews/PR53/perf/api.html +++ b/previews/PR53/perf/api.html @@ -8,10 +8,10 @@ - + - + @@ -26,7 +26,7 @@ v"0.1.1" v"0.1.3" v"0.1.2"

source


- + \ No newline at end of file diff --git a/previews/PR53/perf/benchmark_ext.html b/previews/PR53/perf/benchmark_ext.html index 824bead..144a385 100644 --- a/previews/PR53/perf/benchmark_ext.html +++ b/previews/PR53/perf/benchmark_ext.html @@ -8,10 +8,10 @@ - + - + @@ -35,7 +35,7 @@ :gcsample => BenchmarkTools.DEFAULT_PARAMETERS.gcsample :time_tolerance => BenchmarkTools.DEFAULT_PARAMETERS.time_tolerance :memory_tolerance => BenchmarkTools.DEFAULT_PARAMETERS.memory_tolerance - + \ No newline at end of file diff --git a/previews/PR53/perf/chairmarks_ext.html b/previews/PR53/perf/chairmarks_ext.html index 4b93ef5..046b5f8 100644 --- a/previews/PR53/perf/chairmarks_ext.html +++ b/previews/PR53/perf/chairmarks_ext.html @@ -8,10 +8,10 @@ - + - + @@ -31,7 +31,7 @@ :seconds => 1, :samples => nothing :gc => true - + \ No newline at end of file diff --git a/previews/PR53/perf/perf_checker.html b/previews/PR53/perf/perf_checker.html index 9f7af01..ee0b84c 100644 --- a/previews/PR53/perf/perf_checker.html +++ b/previews/PR53/perf/perf_checker.html @@ -8,10 +8,10 @@ - + - + @@ -30,7 +30,7 @@ # Visualization of the results using Makie checkres_to_scatterlines(results)

The config dictionary can take many options, depending on the backend.

Some of the commonly used options are:

  • :PATH => The path where to the default environment of julia when creating a new process.

  • :pkgs => A list of versions to test performance for. Its defined as the Tuple, (name::String, option::Symbol, versions::Vector{VersionNumber}, last_or_first::Bool) Can be given as follows:

    • name is the name of the package.

    • option is one of the 5 symbols:

      • :patches: last patch or first patch of a version

      • :breaking: last breaking or next breaking version

      • :major: previous or next major version

      • :minor: previous or next minor version

      • :custom: custom version numbers (provide any boolean value for last_or_first in this case as it doesn't matter)

    • versions: The input for the provided option

    • last_or_first: Input for the provided option

  • :tags => A list of tags (a vector of symbols) to easily tag performance tests.

  • :devops => Giving a custom input to Pkg.develop. Intended to be used to test performance of a local development branch of a pacakge with previous versions. Often can be used as simply as :devops => "MyPackageName"

  • :threads => An integer to select the number of threads to start Julia with.

Checkout the documentation of the other backends for more default options and the default values.

- + \ No newline at end of file diff --git a/previews/PR53/perf/perf_interface.html b/previews/PR53/perf/perf_interface.html index a368584..5e4ed63 100644 --- a/previews/PR53/perf/perf_interface.html +++ b/previews/PR53/perf/perf_interface.html @@ -8,10 +8,10 @@ - + - + @@ -44,7 +44,7 @@ allocs = [chair.samples[i].allocs for i in 1:l] return Table(times = times, gctimes = gctimes, bytes = bytes, allocs = allocs) end

There are also other functions that can be overloaded, mostly related to plotting but these are the basic functions to extend PerfChecker for a custom backend.

- + \ No newline at end of file diff --git a/previews/PR53/perf/tutorial.html b/previews/PR53/perf/tutorial.html index 1df9b7d..0e00a65 100644 --- a/previews/PR53/perf/tutorial.html +++ b/previews/PR53/perf/tutorial.html @@ -8,10 +8,10 @@ - + - + @@ -57,7 +57,7 @@ c2 = checkres_to_boxplots(x, Val(:chairmark); kwarg) save(joinpath(@__DIR__, "visuals", "chair_boxplots_$kwarg.png"), c2) end

d here is the configuration dictionary. x stores the results from performance testing

The code below the macro call is for plotting and storing the plots. It creates the visuals folder and stores the following plots in the folder:

Boxplots from Chairmarks for allocations:

chair_boxplots

Boxplots from Chairmarks for times:

chair_times

Evolution of different metrics across versions according to Chairmarks:

chair_evolution - + \ No newline at end of file diff --git a/previews/PR53/public_api.html b/previews/PR53/public_api.html index 3fec549..6f50532 100644 --- a/previews/PR53/public_api.html +++ b/previews/PR53/public_api.html @@ -8,10 +8,10 @@ - + - + @@ -31,7 +31,7 @@ nvars, dom_size, param=nothing, icn=ICN(nvars, dom_size, param), X, X_sols, global_iter=100, local_iter=100, metric=hamming, popSize=200 )

Create an ICN, optimize it, and return its composition.

source


# CompositionalNetworks.manhattanMethod.
julia
manhattan(x, X)

source


# CompositionalNetworks.minkowskiMethod.
julia
minkowski(x, X, p)

source


# CompositionalNetworks.nbitsMethod.
julia
nbits(icn)

Return the expected number of bits of a viable weight of an ICN.

source


# CompositionalNetworks.regularizationMethod.
julia
regularization(icn)

Return the regularization value of an ICN weights, which is proportional to the normalized number of operations selected in the icn layers.

source


# CompositionalNetworks.show_layersMethod.
julia
show_layers(icn)

Return a formatted string with each layers in the icn.

source


# CompositionalNetworks.symbolsMethod.
julia
symbols(c::Composition)

Output the composition as a layered collection of Symbols.

source


# CompositionalNetworks.transformation_layerFunction.
julia
transformation_layer(param = Vector{Symbol}())

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

source


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

Set the weights of an ICN with a BitVector.

source


# CompositionalNetworks.weightsMethod.
julia
weights(icn)

Access the current set of weights of an ICN.

source


# CompositionalNetworks.weights_biasMethod.
julia
weights_bias(x)

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

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/previews/PR53/solvers/cbls.html b/previews/PR53/solvers/cbls.html index 5f28fa5..39f1ed0 100644 --- a/previews/PR53/solvers/cbls.html +++ b/previews/PR53/solvers/cbls.html @@ -8,10 +8,10 @@ - + - + @@ -25,7 +25,7 @@ # Generic use @objective(model, ScalarFunction(f, X))

source


# CBLS.SumType.

Global constraint ensuring that the sum of the variables in x satisfies a given condition.

source


# CBLS.SupportsType.

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.

julia
@constraint(model, X in Supports(; pair_vars))

source


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

DOCSTRING

source


# Base.copyMethod.
julia
Base.copy(set::MOIIntention)

Copy an intention set.

Arguments

  • set::MOIIntention: The intention set to be copied.

Returns

  • MOIIntention: A copy of the intention set.

source


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

Copy a discrete set.

Arguments

  • set::DiscreteSet: The discrete set to be copied.

Returns

  • DiscreteSet: A copy of the discrete set.

source


# Base.copyMethod.
julia
Base.copy(op::F) where {F <: Function}

Copy a function.

Arguments

  • op::F: The function to be copied.

Returns

  • F: The copied function.

source


# Base.copyMethod.
julia
Base.copy(::Nothing)

Copy a Nothing value.

Arguments

  • ::Nothing: The Nothing value to be copied.

Returns

  • Nothing: The copied Nothing value.

source


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

Create a variable constrained by a scalar set.

Arguments

  • info::JuMP.VariableInfo: Information about the variable to be created.

  • set::T where T <: MOI.AbstractScalarSet: The set defining the constraints on the variable.

Returns

  • JuMP.VariableConstrainedOnCreation: A variable constrained by the specified set.

source


# JuMP.moi_setMethod.
julia
JuMP.moi_set(set::Intention, dim::Int) -> MOIIntention

Convert an Intention set to a MOIIntention set.

Arguments

  • set::Intention: The intention set to be converted.

  • dim::Int: The dimension of the vector set.

Returns

  • MOIIntention: The converted MOIIntention set.

source


# JuMP.moi_setMethod.
julia
JuMP.moi_set(set::Predicate, dim::Int) -> MOIIntention

Convert a Predicate set to a MOIIntention set.

Arguments

  • set::Predicate: The predicate set to be converted.

  • dim::Int: The dimension of the vector set.

Returns

  • MOIIntention: The converted MOIIntention set.

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, vars::MOI.VectorOfVariables, set::MOIIntention{F}) where {F <: Function}

Add an intention constraint to the optimizer.

Arguments

  • optimizer::Optimizer: The optimizer instance.

  • vars::MOI.VectorOfVariables: The variables for the constraint.

  • set::MOIIntention{F}: The intention set defining the constraint.

Returns

  • CI{VOV, MOIIntention{F}}: The constraint index.

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.copy_toMethod.
julia
MOI.copy_to(model::Optimizer, src::MOI.ModelLike)

Copy the source model to the optimizer.

Arguments

  • model::Optimizer: The optimizer instance.

  • src::MOI.ModelLike: The source model to be copied.

Returns

  • Nothing

source


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

Empty the optimizer.

Arguments

  • opt::Optimizer: The optimizer instance.

Returns

  • Nothing

source


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

Get the name of the solver.

Arguments

  • ::Optimizer: The optimizer instance.

Returns

  • String: The name of the solver.

source


# MathOptInterface.getMethod.
julia
Moi.get(::Optimizer, ::MOI.SolverVersion)

Get the version of the solver, here LocalSearchSolvers.jl.

source


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

Check if the model is empty.

Arguments

  • model::Optimizer: The optimizer instance.

Returns

  • Bool: True if the model is empty, false otherwise.

source


# MathOptInterface.is_validMethod.
julia
MOI.is_valid(optimizer::Optimizer, index::CI{VI, MOI.Integer})

Check if an index is valid for the optimizer.

Arguments

  • optimizer::Optimizer: The optimizer instance.

  • index::CI{VI, MOI.Integer}: The index to be checked.

Returns

  • Bool: True if the index is valid, false otherwise.

source


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

Optimize the model using the optimizer.

Arguments

  • model::Optimizer: The optimizer instance.

Returns

  • Nothing

source


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

Set the verbosity of the solver.

Arguments

  • ::Optimizer: The optimizer instance.

  • ::MOI.Silent: The silent option for the solver.

  • bool::Bool: Whether to set the solver to silent mode.

Returns

  • Nothing

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_constraintMethod.
julia
MOI.supports_constraint(::Optimizer, ::Type{VOV}, ::Type{MOIIntention{F}}) where {F <: Function}

Check if the optimizer supports a given intention constraint.

Arguments

  • ::Optimizer: The optimizer instance.

  • ::Type{VOV}: The type of the variable.

  • ::Type{MOIIntention{F}}: The type of the intention.

Returns

  • Bool: True if the optimizer supports the constraint, false otherwise.

source


# MathOptInterface.supports_incremental_interfaceMethod.
julia
MOI.supports_incremental_interface(::Optimizer)

Check if the optimizer supports incremental interface.

Arguments

  • ::Optimizer: The optimizer instance.

Returns

  • Bool: True if the optimizer supports incremental interface, false otherwise.

source


- + \ No newline at end of file diff --git a/previews/PR53/solvers/intro.html b/previews/PR53/solvers/intro.html index 9aaef1e..3f33e29 100644 --- a/previews/PR53/solvers/intro.html +++ b/previews/PR53/solvers/intro.html @@ -8,17 +8,17 @@ - + - +
Skip to content
- + \ No newline at end of file diff --git a/previews/PR53/solvers/local_search_solvers.html b/previews/PR53/solvers/local_search_solvers.html index 8dffacb..f7d2078 100644 --- a/previews/PR53/solvers/local_search_solvers.html +++ b/previews/PR53/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