From fcdaa1fab380298e07dbf28ceead1c5643a39e9d Mon Sep 17 00:00:00 2001 From: Vincent Jacques Date: Tue, 24 Oct 2023 15:24:07 +0000 Subject: [PATCH] Doc --- README.rst | 11 +- doc-sources/conceptual-overview.rst | 12 +- doc-sources/reference.rst | 2 +- doc-sources/user-guide.rst | 6 + docs/.doctrees/conceptual-overview.doctree | Bin 108495 -> 108436 bytes docs/.doctrees/environment.pickle | Bin 78842 -> 78842 bytes docs/.doctrees/index.doctree | Bin 29030 -> 29943 bytes docs/.doctrees/reference.doctree | Bin 164804 -> 164804 bytes docs/.doctrees/user-guide.doctree | Bin 114419 -> 114791 bytes docs/_sources/conceptual-overview.rst.txt | 12 +- docs/_sources/reference.rst.txt | 2 +- docs/_sources/user-guide.rst.txt | 6 + docs/conceptual-overview.html | 14 +-- docs/index.html | 11 +- docs/reference.html | 2 +- docs/searchindex.js | 2 +- docs/user-guide.html | 126 ++++++++++----------- 17 files changed, 113 insertions(+), 93 deletions(-) diff --git a/README.rst b/README.rst index 92d80bcc..a03e087b 100644 --- a/README.rst +++ b/README.rst @@ -8,11 +8,16 @@ *lincs* (Learn and Infer Non Compensatory Sortings) is a collection of `MCDA `_ algorithms, usable as a command-line utility. -@todo(Feature, later) Make it usable as a Python package. +@todo(Feature, later) Make *lincs* usable as a Python package. -@todo(Feature, later) Make it usable as a C++ library. +@todo(Feature, later) Make *lincs* usable as a C++ library. *lincs* supports Linux, macOS and Windows, with the exception that GPU-based algorithms are not available on macOS, because CUDA itself is not available there. +On these 3 OSes, *lincs* only support x86_64 CPUs. + +@todo(Feature, later) Support M1 and M2 chips on macOS. + +@todo(Feature, much later) Support ARM processors in general. *lincs* is licensed under the GNU Lesser General Public License v3.0 as indicated by the two files `COPYING `_ and `COPYING.LESSER `_. @@ -50,7 +55,7 @@ Just follow the "Get started" section below. Provide a base for developing new MCDA algorithms ------------------------------------------------- -*lincs* is designed to be easy to extend with new algorithms of even replace parts of existing algorithms. +*lincs* is designed to be easy to extend with new algorithms or even replace parts of existing algorithms. See our `contributor guide `_ for more details. diff --git a/doc-sources/conceptual-overview.rst b/doc-sources/conceptual-overview.rst index 9a02682e..121dfd68 100644 --- a/doc-sources/conceptual-overview.rst +++ b/doc-sources/conceptual-overview.rst @@ -9,7 +9,8 @@ Notation In this document, we denote the interval of integers from :math:`a` to :math:`b - 1` included by :math:`[a..b)`. Most often, :math:`a` will be zero. -This choice matches the indexing convention used in most modern programming language, so our documentation is as close as possible to our implementation. +This choice matches the indexing convention used in the Python and C++ programming languages, +so our documentation is as close as possible to our implementation. For example, :math:`[0..4) = \{0, 1, 2, 3\}`. Note that :math:`[0..n)` contains :math:`n` elements. @@ -110,13 +111,13 @@ Additionally, this set of coalitions can be different for each category. f: x \mapsto \max (\{0\} \cup \{ h \in [1..p): \{ i \in [0..n): x_i \succcurlyeq_i b^h_i \} \in \mathcal{F}^h \}) -Note that this definition extends naturally if we denote :math:`\mathcal{F}^0 = [0..n)` and :math:`b^0 = (\min(X_0), ..., \min(X_{n-1}))`. +Note that this definition extends naturally if we denote :math:`\mathcal{F}^0 = \mathcal{P}([0..n))` and :math:`b^0 = (\min(X_0), ..., \min(X_{n-1}))`. The definition of :math:`f` then simplifies to :math:`x \mapsto \max \{ h \in [0..p): \{ i \in [0..n): x_i \succcurlyeq_i b^h_i \} \in \mathcal{F}^h \}`. This definition may differ slightly from the one you're used to, but it should be formally equivalent. We use it in *lincs* because it is somewhat simple and matches the implementation quite well. -The constraints in the definition all ensure NDS models behave according to intuition: +The constraints in the definition all ensure NCS models behave according to intuition: - the ordering of profiles ensures consistency with the order on categories - the up-closed-ness-by-inclusion(!) of the sufficient coalitions matches the intuition that they are *sufficient* criteria: if a few criteria are sufficient, then more criteria are still sufficient @@ -453,7 +454,7 @@ This gives us :math:`|\mathcal{P}(\{M, P, L, H\})| = 16` equations, amongst whic - :math:`w_M + w_H \ge 1` (because :math:`\{M, H\} \in \mathcal{F}^1`) - :math:`w_P + w_H \ge 1` (because :math:`\{P, H\} \in \mathcal{F}^1`) -Summing the first two equations gives :math:`w_M + w_P + w_L + w_H \lt 2`, and summing teh last four gives :math:`w_M + w_P + w_L + w_H \ge 2`, +Summing the first two equations gives :math:`w_M + w_P + w_L + w_H \lt 2`, and summing the last four gives :math:`w_M + w_P + w_L + w_H \ge 2`, so there is no solution, and that model is not MR-Sort. By contrast, the coalitions :math:`\mathcal{F}^2` of the previous model example can be expressed using the following weights: @@ -513,10 +514,9 @@ It's not always practical to use real-world data when developing a new learning In that approach, one specifies the problem and provides a pre-known model. They then generate pseudo-random alternatives classified according to that original model, and use them as a training set to learn a new model. -Finally, they compare how close the learned model behaves to the original one to evaluate the quality of the algorithm. +Finally, they compare how close the learned model behaves to the original one to evaluate the quality of the learning algorithm. *lincs* provides ways to generate synthetic pseudo-random problems, models and training sets (noisy or clean). -The same file formats are used for synthetic and real-world data. Next diff --git a/doc-sources/reference.rst b/doc-sources/reference.rst index 62a1bd1b..c839f3d2 100644 --- a/doc-sources/reference.rst +++ b/doc-sources/reference.rst @@ -8,8 +8,8 @@ File formats ============ *lincs* uses text-based (YAML and CSV) file formats. -The same formats are used when *lincs* reads files or when it outputs to files. The same formats are used for synthetic and real-world data. +The same formats are used when *lincs* reads files or when it outputs to files. The same formats are used when *lincs* outputs to actual files or to the standard output. .. _ref-file-problem: diff --git a/doc-sources/user-guide.rst b/doc-sources/user-guide.rst index cf7ce4e9..1579e459 100644 --- a/doc-sources/user-guide.rst +++ b/doc-sources/user-guide.rst @@ -18,6 +18,8 @@ Formatting data for *lincs* "Problem" files --------------- +.. highlight:: yaml + The concept of classification problem is defined in our :ref:`conceptual overview `. To describe problems, *lincs* uses YAML files conforming to the `JSON schema `_ you'll find in our :ref:`reference documentation `. @@ -222,6 +224,8 @@ It's a CSV file with a header line and one line per alternative. Like model files, alternatives files are always associated to a problem file. +.. highlight:: text + .. START file-formats/expected-classified-alternatives.csv Here is an example corresponding to the problem above:: @@ -284,6 +288,8 @@ When you need reproducibility, you can specify the seed to use with the ``--rand In all cases, the :ref:`comments ` left by *lincs* in the generated files specify the seed that was used. +.. highlight:: shell + Generating a problem -------------------- diff --git a/docs/.doctrees/conceptual-overview.doctree b/docs/.doctrees/conceptual-overview.doctree index 38eb2eb75150c43a59eea8de4ee836904a8ea90b..91776425dc6b131c3603b68ac5ce7e98971e89b4 100644 GIT binary patch delta 2895 zcmb7`c~}%j8pe5hX1YNm9x!q!FnBT`a_l2UQ5>&iJ%Uk}BwiB+#2E>oA|4ST5Y$Z! z%JG3^f-!0|ZX${Dl-jaB`l!Us=I~foiCJBb7*P|V=xPk>!B%%0;=en8RMq!;-}>sC z>Z*SF#0k0TglsOdRD0E#Pf2)>zLma-%=2W}UVJ^zGcU*H%9(8&9TjDppF7W;>&nia zo8z`+xpLf#T<(m813FNQGMRTba|s72)inD5n8{<5FJyG3`<<#RR!?`&2zEIbR@&x! z7JiERCo z_}IRUKn(BMKi-U3niQ2OEPsufX12r&%TBs&^J7Ud7|hdRvrQPpPyXR6$b*D5#YEx5 z{V5{83&m{ehe7nyph^T%VZvPunjsYo?@keiA`{D>#&!AQ9Nt-KY=mi z7?FwRXvc^p7)qCYLusU=665%3N1=oXR6a3)XO8Y5VUidI@-<^61ygwW#QhfhiBFtT zYrzcO`f`+nS#&79CyR+jC!RdL#N_>|Sk!6p@}k3SefXnU<0RQ7$j256?{BA~G@0k8 zHbPDl?1$gj5Q}DUQgK=sIl?>A^|T>)m3pPWkJtBnI;Gx6WZp`8KoP0Af`L^7pKn{iG%|#r&l{b}*@`sgQ$r}VjQQQna zQ><+`g}Z|NJY7qB&&+n^dD2~3`Og(N4en2l%#Pf(IKhNmeNT42K2^dZZAih(V=i4BEF~Sl?N1u@uEVHBti}rStFN<94o!` zb@_U-0&DqaRe6$JCipQQef{%QVSGLdfLt!v&EMIX^}do^A((H6C%&%CF&^>KgtbQg zc{N|k^i+P&h6bRT57=mzEb9bcMzI^m@eenRf`y5&PK1e1GE^HG7Hrv!ce&q(M@`s9 zZ#3FT+MbB*JZXER1r0i=tWCsGe!OM(v7VKe1?jf zV`=`iP)hjmnh-*N+G_}ZY!@P$rwUcTtcP(YLZ(<&Ee)y@*8 z4fNw(rx6y2FqyR6d+sF&U-P{-t^H-IXe;j5iZs z$IzjNZd&mmL3s8*Xw%w3=;LKjinaO1O$qX;F52#;|LAmEKC6|` zd5;^hP)an@y{_7IU=wA8sZBtF87tHf8RF5bWCIi|6jxE4#I^V{i}6N^Qk=QZ?Bz9q zO^!zx`@|cIv04rH!5Ju}TDFF6w4lUK?a~o}KpC??gEmyE_D)!3LY2C!3kYE9m~Pkt zpLewhll=5|s8xHl`l{Xh(buHZXu=9Vy)JhEhM-2>9Dt(|-e>M$EKoksbjgo)jR;`B z1S1)hdO7Os9@r0TQEeeeF)3R$SD3$EPniv?%*ysBWb%~mYJ6XC;A7?*0IT|-AF6>J zYDEM-0X|iSMPdrDla)omqwLgXwfd9maW7^Y00%zRChbBU6ZR-|cr@MsI6E*M50pH+XKv7RH)LA^B$7l0$` z@gyWjN`s~!?XGV``B=oTZ$`pfeQhMZ081SUi}bKvv#aln7Eb|3Ro7TVORQ}iEGj*Z zED2w%8!sN?5mx#F0$J&JOqVhQlCNrsR@&co4A_}>2GR_AqMg2jtLlI`m~0himu7V2e{6nbMSXVylsem=i#w(L(AN?hn_h! zS7g544dHD4e0*$35l>0g3os2g*sTRPYlx{&i9Hq~9XHfB79vDKv$mT->fS||3fwe; z-b*kEXfcA)rN{^F7@KZeh7B_A8o`+&?COB~Y}Gp`Rvv2A?FiIwQQuOr`f1}*Z!AS_ zmo_X)^GvoER~1x6cr346P;F~)96hr#T)8>gr=}~*Jui1|o+o=?l}DLX<>~s$B^6~j z3Gd%5>}0t(J76Id2tp1UTp>PBTAqz(L6t~^nVz1-!^eh`fU}@^f_Z}*(Pq;2Ta|DW?a&` QICkbE)Z-y5+YZP707^G4f&c&j delta 3130 zcmbuBdt6mj7RULWd+#}FAgCDP18#|eC=byg86;%X%2bd@#YEr=S1!l}yg)>PftF2) zA}nk(J_xDQ$b7VOPWJZEV{9f&KkAHDW)j+f&ona=XP+cfwa8VN3-v;>7#=ckJ$Jcl-H^ZOz^F3fe z0QK|rqb~n$jO3kzH<%DY&j-{Zl=}q^lrV;e-S>mZ66Ux!&x<01ALO$~90$VrnBXWg zA}C{Yo^UxddY;)bR=DgW+&6$-_QM0*73nl#JpXRoA;{x}^q7gp#`)5OC?E3PH$s{| zo^Ji29)7eY`Wj;RiU*oaa;$JWWFp&R1L?uo4#e{j6XyU4ydv%>Fqvk>=V2l9VPY;HlQ;KDpC-wf0={mcvB9Hg?LwKa$~+F)CRlq9 zi?L`f=~TBckY?R?5B;(*2I&-)wFz1LaMlEqY!`BvtVg)xlzCiEh*@4F*pqHXaXEeY zw#6Y5a_B2(4(vRpV5u3oe2?oXz)9gHxd@`hk`&AQ$nfw2e!FA>M6wd*4;U3`jkD@- zRAz%iSbB$Q}PO0I~+6gpE8Lai0i zddq<_{%B<&~`>xw?_#Ogq;AB`l@L6)u$P!QNdFBgvJ*H>H=JRZ-* z8?VCBAY2|6F4Op~rmul@e06gz@DdGcaiKvt??ofUedWh(uk0}4Rr1-IjV-)%Yp4bL zsd;-g4sy$z*=Bqrlu<;xV{w|d?Ve~tJNMl4NiPKOBOhd$q(JBkOWN04!u@>Sftp@O z;~ihjwqOCD_|;lSxzGdLI1-D+eB9A$lT>Vw)5l{`%7>h|DJf+TbN$VelFyE!ODBWK zadNIm$Hym!LcG2?H6DgXlGk02@l^WFULi$%+avv@M+zeKw9Rn;u!qT%_}yiZxA-$R z<#KH(4_b0Qlmgp>sOI|*4PYGgAEFIh>Bbpd!)SiT zUEFXN%k)`CD_uHk!P|l)(!YN4q^2`6ojBK^QC@W33|;Qj<)*Vk=|IaA!sC>?`oBoYIA%>n4$FL#USdq@QygAFJHW)JukHw@(H(G z^L-{=znpI1i*Bq9zyC_Kq6hQ#(YINPHsk6%gN^KAGM&2Gs#Iu$K4h?+*Mh|AwxEKl zuHDg|*INv|sYiFw!JpF&wx@>$kv3-Cjc9`(|1Y0$bvQlv%Uynpk< z=#HcpZywYvO8NDc@xIlhtMDg*rru7{$tIl~y1hiR_@wSP zAXR~yDPr9S-xw$(%b?WsjPuv~2eo;52gw5131*Q%9u1A(kX#>dLD8m)Cxtt6vN zGnebd!7eK(#Y(oQ7iOc1z26HP@PeA!8^?fEYWO`E3#?(8p16ZLHPZ_#O$uq@qygGL zfhzTbxDH=Zm-a^s(5MFZVwMT(S)m^s%6iQ)X#iEnO;dvh;YkS_S<_%FK@;;Cg2hrD zw2MgHFa+-bo7K6)Fx!Mz)Hkho*^Djf%n=Z)+NKT*Mk~xcT~@DINclXs$CN?NRszy-PW*#1WaQ? zz|6xaY8+niaC(~sR`}u zyHvz#=SG@&f+du}U;XF_)Bz{e`b;ev3i#_w;1u#A}lmuha1Xj<03>r>CnP^57xuq z$iYPejC6w_7L$wl27TB~N3b7rvCN?924#7uG(f2VrYsiwaE^K9W4m%r8)dt}o1J12 zUQT2QafuUG4e{jfM72N^)j2h+5Mf|NPFU28BKR9kgs{vaB(lFR!8~0PM@I+cEb6S40zxvECsGGkq&<~^=WL7@snYARbyu# z{H!IY8n;+{jVQ#U`mtumYT)weM(ILF@~G;D%7ze!CH0s(cQwAm09$@ep)0q<;S9g~ z5tDjCO{m3Tu)%ehu6RgdKfWGHSLz2~7ptm6K|-I$9d>K6&1ttT%FP##LYMgHDYn{N zc57*|JzE3T;_`wLhrJ{>%W5mgwz}-L{IIe@SAMoN+g4(uI}^q+YdvD|I!miZPSXD! zF}&fq24i9O=G_`f*f(C0jfrc89!SVRxB5I`ptq=sO)VHA3Vg4)$N*nf`5Gcw=PTHO gsYd(ItJp2Bu8P;th11$=EL*=H1FgW7>;M1& diff --git a/docs/.doctrees/environment.pickle b/docs/.doctrees/environment.pickle index fb91728e3ca8efde5d6566aefffacaf11a6d5257..bbf5f3d93e4a9896296cdf11f983c847b23a2589 100644 GIT binary patch delta 3905 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 GJNZAvdvVGD delta 3919 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 delta 58 zcmX@o&UK`nYlATJK)JT&r>yNy NSsAxKWo5cw3jlrI7AOD! diff --git a/docs/.doctrees/user-guide.doctree b/docs/.doctrees/user-guide.doctree index 3348be86ebc6d275168134cdc464fecf81ccade3..a15ded3c8294a6b6c1f88d8de732ca8e244c4486 100644 GIT binary patch delta 15969 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 diff --git a/docs/_sources/conceptual-overview.rst.txt b/docs/_sources/conceptual-overview.rst.txt index 9a02682e..121dfd68 100644 --- a/docs/_sources/conceptual-overview.rst.txt +++ b/docs/_sources/conceptual-overview.rst.txt @@ -9,7 +9,8 @@ Notation In this document, we denote the interval of integers from :math:`a` to :math:`b - 1` included by :math:`[a..b)`. Most often, :math:`a` will be zero. -This choice matches the indexing convention used in most modern programming language, so our documentation is as close as possible to our implementation. +This choice matches the indexing convention used in the Python and C++ programming languages, +so our documentation is as close as possible to our implementation. For example, :math:`[0..4) = \{0, 1, 2, 3\}`. Note that :math:`[0..n)` contains :math:`n` elements. @@ -110,13 +111,13 @@ Additionally, this set of coalitions can be different for each category. f: x \mapsto \max (\{0\} \cup \{ h \in [1..p): \{ i \in [0..n): x_i \succcurlyeq_i b^h_i \} \in \mathcal{F}^h \}) -Note that this definition extends naturally if we denote :math:`\mathcal{F}^0 = [0..n)` and :math:`b^0 = (\min(X_0), ..., \min(X_{n-1}))`. +Note that this definition extends naturally if we denote :math:`\mathcal{F}^0 = \mathcal{P}([0..n))` and :math:`b^0 = (\min(X_0), ..., \min(X_{n-1}))`. The definition of :math:`f` then simplifies to :math:`x \mapsto \max \{ h \in [0..p): \{ i \in [0..n): x_i \succcurlyeq_i b^h_i \} \in \mathcal{F}^h \}`. This definition may differ slightly from the one you're used to, but it should be formally equivalent. We use it in *lincs* because it is somewhat simple and matches the implementation quite well. -The constraints in the definition all ensure NDS models behave according to intuition: +The constraints in the definition all ensure NCS models behave according to intuition: - the ordering of profiles ensures consistency with the order on categories - the up-closed-ness-by-inclusion(!) of the sufficient coalitions matches the intuition that they are *sufficient* criteria: if a few criteria are sufficient, then more criteria are still sufficient @@ -453,7 +454,7 @@ This gives us :math:`|\mathcal{P}(\{M, P, L, H\})| = 16` equations, amongst whic - :math:`w_M + w_H \ge 1` (because :math:`\{M, H\} \in \mathcal{F}^1`) - :math:`w_P + w_H \ge 1` (because :math:`\{P, H\} \in \mathcal{F}^1`) -Summing the first two equations gives :math:`w_M + w_P + w_L + w_H \lt 2`, and summing teh last four gives :math:`w_M + w_P + w_L + w_H \ge 2`, +Summing the first two equations gives :math:`w_M + w_P + w_L + w_H \lt 2`, and summing the last four gives :math:`w_M + w_P + w_L + w_H \ge 2`, so there is no solution, and that model is not MR-Sort. By contrast, the coalitions :math:`\mathcal{F}^2` of the previous model example can be expressed using the following weights: @@ -513,10 +514,9 @@ It's not always practical to use real-world data when developing a new learning In that approach, one specifies the problem and provides a pre-known model. They then generate pseudo-random alternatives classified according to that original model, and use them as a training set to learn a new model. -Finally, they compare how close the learned model behaves to the original one to evaluate the quality of the algorithm. +Finally, they compare how close the learned model behaves to the original one to evaluate the quality of the learning algorithm. *lincs* provides ways to generate synthetic pseudo-random problems, models and training sets (noisy or clean). -The same file formats are used for synthetic and real-world data. Next diff --git a/docs/_sources/reference.rst.txt b/docs/_sources/reference.rst.txt index 62a1bd1b..c839f3d2 100644 --- a/docs/_sources/reference.rst.txt +++ b/docs/_sources/reference.rst.txt @@ -8,8 +8,8 @@ File formats ============ *lincs* uses text-based (YAML and CSV) file formats. -The same formats are used when *lincs* reads files or when it outputs to files. The same formats are used for synthetic and real-world data. +The same formats are used when *lincs* reads files or when it outputs to files. The same formats are used when *lincs* outputs to actual files or to the standard output. .. _ref-file-problem: diff --git a/docs/_sources/user-guide.rst.txt b/docs/_sources/user-guide.rst.txt index cf7ce4e9..1579e459 100644 --- a/docs/_sources/user-guide.rst.txt +++ b/docs/_sources/user-guide.rst.txt @@ -18,6 +18,8 @@ Formatting data for *lincs* "Problem" files --------------- +.. highlight:: yaml + The concept of classification problem is defined in our :ref:`conceptual overview `. To describe problems, *lincs* uses YAML files conforming to the `JSON schema `_ you'll find in our :ref:`reference documentation `. @@ -222,6 +224,8 @@ It's a CSV file with a header line and one line per alternative. Like model files, alternatives files are always associated to a problem file. +.. highlight:: text + .. START file-formats/expected-classified-alternatives.csv Here is an example corresponding to the problem above:: @@ -284,6 +288,8 @@ When you need reproducibility, you can specify the seed to use with the ``--rand In all cases, the :ref:`comments ` left by *lincs* in the generated files specify the seed that was used. +.. highlight:: shell + Generating a problem -------------------- diff --git a/docs/conceptual-overview.html b/docs/conceptual-overview.html index f96868ba..be8935cb 100644 --- a/docs/conceptual-overview.html +++ b/docs/conceptual-overview.html @@ -39,7 +39,8 @@

Conceptual overview

In this document, we denote the interval of integers from \(a\) to \(b - 1\) included by \([a..b)\). Most often, \(a\) will be zero. -This choice matches the indexing convention used in most modern programming language, so our documentation is as close as possible to our implementation. +This choice matches the indexing convention used in the Python and C++ programming languages, +so our documentation is as close as possible to our implementation. For example, \([0..4) = \{0, 1, 2, 3\}\). Note that \([0..n)\) contains \(n\) elements.

For a given set \(S\), we denote the set of all its subsets (a.k.a. its power set) by \(\mathcal{P}(S)\). @@ -122,11 +123,11 @@

Learning and classifying \[f: x \mapsto \max (\{0\} \cup \{ h \in [1..p): \{ i \in [0..n): x_i \succcurlyeq_i b^h_i \} \in \mathcal{F}^h \})\] -

Note that this definition extends naturally if we denote \(\mathcal{F}^0 = [0..n)\) and \(b^0 = (\min(X_0), ..., \min(X_{n-1}))\). +

Note that this definition extends naturally if we denote \(\mathcal{F}^0 = \mathcal{P}([0..n))\) and \(b^0 = (\min(X_0), ..., \min(X_{n-1}))\). The definition of \(f\) then simplifies to \(x \mapsto \max \{ h \in [0..p): \{ i \in [0..n): x_i \succcurlyeq_i b^h_i \} \in \mathcal{F}^h \}\).

This definition may differ slightly from the one you’re used to, but it should be formally equivalent. We use it in lincs because it is somewhat simple and matches the implementation quite well.

-

The constraints in the definition all ensure NDS models behave according to intuition:

+

The constraints in the definition all ensure NCS models behave according to intuition:

-

Summing the first two equations gives \(w_M + w_P + w_L + w_H \lt 2\), and summing teh last four gives \(w_M + w_P + w_L + w_H \ge 2\), +

Summing the first two equations gives \(w_M + w_P + w_L + w_H \lt 2\), and summing the last four gives \(w_M + w_P + w_L + w_H \ge 2\), so there is no solution, and that model is not MR-Sort.

By contrast, the coalitions \(\mathcal{F}^2\) of the previous model example can be expressed using the following weights: \(w_M = 0.4\), \(w_P = 0.4\), \(w_L = 0.4\), \(w_H = 0.4\): coalitions of at most two criteria have weights sums less than 1, @@ -460,9 +461,8 @@

Classification accuracy -

lincs provides ways to generate synthetic pseudo-random problems, models and training sets (noisy or clean). -The same file formats are used for synthetic and real-world data.

+Finally, they compare how close the learned model behaves to the original one to evaluate the quality of the learning algorithm.

+

lincs provides ways to generate synthetic pseudo-random problems, models and training sets (noisy or clean).

Next

diff --git a/docs/index.html b/docs/index.html index 752408b7..0e6fc7cf 100644 --- a/docs/index.html +++ b/docs/index.html @@ -36,9 +36,12 @@

README

lincs (Learn and Infer Non Compensatory Sortings) is a collection of MCDA algorithms, usable as a command-line utility.

-

@todo(Feature, later) Make it usable as a Python package.

-

@todo(Feature, later) Make it usable as a C++ library.

-

lincs supports Linux, macOS and Windows, with the exception that GPU-based algorithms are not available on macOS, because CUDA itself is not available there.

+

@todo(Feature, later) Make lincs usable as a Python package.

+

@todo(Feature, later) Make lincs usable as a C++ library.

+

lincs supports Linux, macOS and Windows, with the exception that GPU-based algorithms are not available on macOS, because CUDA itself is not available there. +On these 3 OSes, lincs only support x86_64 CPUs.

+

@todo(Feature, later) Support M1 and M2 chips on macOS.

+

@todo(Feature, much later) Support ARM processors in general.

lincs is licensed under the GNU Lesser General Public License v3.0 as indicated by the two files COPYING and COPYING.LESSER.

@todo(Project management, when we publish a paper, later) Add a note asking academics to kindly cite our work.

lincs is available for install from the Python package index. @@ -65,7 +68,7 @@

Provide MCDA tools usable out of the box

Provide a base for developing new MCDA algorithms

-

lincs is designed to be easy to extend with new algorithms of even replace parts of existing algorithms. +

lincs is designed to be easy to extend with new algorithms or even replace parts of existing algorithms. See our contributor guide for more details.

diff --git a/docs/reference.html b/docs/reference.html index f0b074b5..2a7859f2 100644 --- a/docs/reference.html +++ b/docs/reference.html @@ -37,8 +37,8 @@

Reference

File formats

lincs uses text-based (YAML and CSV) file formats. -The same formats are used when lincs reads files or when it outputs to files. The same formats are used for synthetic and real-world data. +The same formats are used when lincs reads files or when it outputs to files. The same formats are used when lincs outputs to actual files or to the standard output.

The problem file

diff --git a/docs/searchindex.js b/docs/searchindex.js index b91cc986..cc785e77 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["changelog", "conceptual-overview", "contributor-guide", "get-started", "index", "reference", "user-guide"], "filenames": ["changelog.rst", "conceptual-overview.rst", "contributor-guide.rst", "get-started.rst", "index.rst", "reference.rst", "user-guide.rst"], "titles": ["Changelog", "Conceptual overview", "Contributor guide", "Get started", "README", "Reference", "User Guide"], "terms": {"thi": [0, 1, 2, 3, 4, 5, 6], "i": [0, 1, 2, 3, 4, 5, 6], "first": [0, 1, 2, 3, 5, 6], "releas": [0, 4], "candid": 0, "break": 0, "allow": [0, 1, 2, 4, 5, 6], "more": [0, 1, 2, 3, 4, 6], "flexibl": [0, 4], "descript": [0, 1, 5, 6], "accept": [0, 5], "valu": [0, 1, 2, 3, 5], "model": [0, 1, 3, 4], "json": [0, 5, 6], "schema": [0, 5, 6], "see": [0, 2, 3, 4, 5], "user": [0, 2, 3, 4, 5], "guid": [0, 1, 3, 4, 5], "detail": [0, 2, 3, 4, 6], "renam": [0, 6], "option": [0, 2, 3, 4, 5], "ucnc": [0, 5, 6], "approach": [0, 1, 3, 4, 5, 6], "strategi": [0, 3, 5], "output": [0, 3, 5, 6], "classifi": [0, 3], "altern": [0, 1, 3], "fix": [0, 2, 5, 6], "line": [0, 2, 4, 6], "end": [0, 3], "window": [0, 3, 4, 6], "linc": [0, 1, 2], "visual": [0, 2, 3], "us": [0, 1, 2, 4, 5], "criteria": [0, 1, 3, 5], "": [0, 1, 2, 3, 4, 5], "min": [0, 1, 5, 6], "max": [0, 1, 2, 3, 5, 6], "categori": [0, 1, 3, 5], "correl": [0, 5, 6], "valid": [0, 5, 6], "consist": [0, 1, 2, 6], "problem": [0, 1, 3], "when": [0, 1, 2, 4, 5, 6], "load": 0, "file": [0, 1, 2, 3], "reproduct": [0, 3, 6], "command": [0, 2, 4, 6], "improv": [0, 4, 5, 6], "document": [0, 1, 3, 4, 6], "pre": [0, 1, 5], "process": [0, 5, 6], "learn": [0, 2, 3, 4], "set": [0, 1, 2, 3, 5, 6], "befor": [0, 1, 2, 5, 6], "all": [0, 1, 3, 5, 6], "algorithm": [0, 1, 2], "possibl": [0, 1, 2], "each": [0, 1, 2, 5, 6], "criterion": [0, 1, 3, 5, 6], "ar": [0, 1, 2, 3, 4, 5, 6], "list": [0, 6], "sort": [0, 3, 4, 5, 6], "actual": [0, 1, 2, 5, 6], "start": [0, 1, 2, 5, 6], "so": [0, 1, 3, 4, 6], "now": [0, 1, 2, 6], "have": [0, 1, 2, 3, 5, 6], "increas": [0, 6], "rang": [0, 1, 6], "integ": [0, 1, 5, 6], "simplif": [0, 1], "implement": [0, 1, 2, 6], "perform": [0, 1, 2, 4, 6], "weight": [0, 1, 2, 3, 5], "profil": [0, 1, 2, 3, 5], "breed": [0, 2, 3, 5], "expos": [0, 2], "sufficientcoalit": 0, "upset_root": [0, 5, 6], "python": [0, 1, 4], "name": [0, 3, 5, 6], "imbal": [0, 3, 5, 6], "gener": [0, 1, 3, 4], "produc": [0, 1, 4, 6], "cleaner": 0, "error": 0, "too": [0, 1, 2, 6], "tight": 0, "print": [0, 5, 6], "number": [0, 1, 2, 3, 5, 6], "iter": [0, 2, 3, 5], "wpb": [0, 1, 6], "displai": [0, 6], "comment": [0, 5], "variou": 0, "code": [0, 2, 4, 5, 6], "readabl": 0, "integr": [0, 2], "cuda": [0, 1, 2, 4, 5, 6], "part": [0, 2, 4, 6], "compil": [0, 2, 5], "openmp": [0, 1], "distribut": 0, "binari": [0, 2, 3, 6], "wheel": [0, 2, 3, 6], "durat": [0, 1, 5, 6], "second": [0, 5, 6], "termin": [0, 2, 3, 5], "condit": [0, 3, 6], "after": [0, 2, 4, 6], "make": [0, 2, 3, 4, 5, 6], "chrone": [0, 2], "an": [0, 1, 3, 4, 5], "depend": [0, 3, 4, 6], "linux": [0, 3, 4, 6], "onli": [0, 1, 2, 3, 4, 5, 6], "verbos": [0, 5, 6], "mode": 0, "pernici": 0, "memori": [0, 1], "bug": [0, 2, 4], "bugfix": 0, "sure": [0, 5, 6], "thei": [0, 1, 2, 3, 4, 6], "built": [0, 2, 6], "gpu": [0, 2, 4, 6], "support": [0, 4, 5, 6], "build": [0, 2, 3], "without": [0, 1, 2, 4, 5, 6], "nvcc": 0, "e": [0, 1, 2, 5, 6], "g": [0, 2, 5, 6], "maco": [0, 3, 4, 6], "provid": [0, 1, 2, 3], "info": [0, 3, 6], "ha": [0, 1, 2, 3, 6], "adapt": [0, 4], "classif": [0, 2, 3], "help": [0, 1, 2, 3, 6], "featur": [0, 2, 3, 4, 6], "add": [0, 4, 5, 6], "sat": [0, 1, 2, 5], "coalit": [0, 1, 3, 5], "separ": [0, 1, 5, 6], "hopefulli": 0, "correct": [0, 2, 6], "time": [0, 1, 2, 4, 6], "yaml": [0, 1, 3, 5, 6], "anchor": [0, 3, 6], "alias": 0, "limit": [0, 6], "repetit": [0, 6], "format": [0, 1, 3], "describ": [0, 1, 2, 3, 5, 6], "u": [0, 2, 6], "c": [0, 4, 6], "textsf": [0, 6], "nc": [0, 3, 4, 6], "specifi": [0, 1, 2, 5, 6], "minimum": [0, 1], "maximum": [0, 1, 5], "synthet": [0, 2, 3, 5], "data": [0, 2, 3, 5], "attribut": [0, 1, 6], "denorm": [0, 5, 6], "decreas": [0, 5, 6], "state": 0, "re": [0, 1, 2, 3], "them": [0, 1, 2, 3, 4, 6], "enough": [0, 1, 2, 3], "decim": 0, "store": [0, 1], "float": [0, 6], "point": [0, 6], "avoid": [0, 2, 3, 6], "ani": [0, 2, 6], "loss": 0, "precis": 0, "log": 0, "final": [0, 1, 2, 3, 6], "accuraci": [0, 3], "mrsort": [0, 2, 3, 5, 6], "test": [0, 2, 3], "remov": [0, 3], "buggi": 0, "publish": [0, 4], "method": [0, 1, 6], "misclassify_altern": 0, "synthes": 0, "nois": [0, 6], "expend": 0, "suffici": [0, 1, 3, 5], "root": [0, 2, 5, 6], "manylinux_2_31": 0, "flow": 0, "arrai": [0, 5], "scalar": 0, "between": [0, 1, 2, 3, 5, 6], "api": [0, 2, 4], "yet": [0, 1, 3, 6], "though": [0, 6], "control": [0, 6], "over": 0, "expans": 0, "except": 0, "fail": [0, 1], "develop": [0, 1], "machin": [0, 2, 6], "never": 0, "properli": 0, "heurist": [0, 1, 3, 5, 6], "introduc": [0, 1, 2, 6], "alglib": [0, 2, 5, 6], "lp": [0, 2], "solver": [0, 3, 5, 6], "docker": [0, 2], "imag": [0, 2, 5], "instal": [0, 2, 3, 4], "chang": [0, 3, 4, 6], "domain": [0, 4], "everywher": [0, 2], "packag": [0, 2, 4], "licens": [0, 4], "lgplv3": 0, "miss": [0, 3], "header": [0, 5, 6], "mr": [0, 3, 6], "sobri": [0, 1], "cpu": [0, 2, 3, 5, 6], "sum": [0, 1, 5, 6], "pypi": [0, 2], "websit": 0, "pseudo": [0, 1, 3, 4, 5, 6], "random": [0, 1, 3, 4, 5], "kick": 0, "off": 0, "effort": [0, 6], "quit": [0, 1, 2, 6], "nice": 0, "readm": [0, 2, 6], "initi": [0, 3, 5, 6], "public": [0, 2, 4], "littl": 0, "function": [0, 1], "In": [1, 4, 6], "we": [1, 2, 3, 4, 6], "denot": 1, "interv": 1, "from": [1, 2, 3, 4, 5, 6], "b": 1, "includ": 1, "most": [1, 2, 4, 5, 6], "often": [1, 2, 3, 6], "zero": 1, "choic": [1, 2, 6], "match": 1, "index": [1, 2, 4], "convent": 1, "modern": 1, "program": [1, 2, 3, 5, 6], "languag": [1, 2], "our": [1, 2, 3, 4, 6], "close": [1, 3], "For": [1, 2, 5, 6], "0": [1, 2, 3, 4, 5, 6], "4": [1, 3, 6], "2": [1, 3, 5, 6], "3": [1, 3, 6], "note": [1, 2, 3, 4, 6], "n": [1, 3], "contain": [1, 2, 3, 5, 6], "element": [1, 6], "given": [1, 2, 6], "its": [1, 2, 3, 4, 5, 6], "subset": [1, 6], "power": 1, "mathcal": 1, "p": 1, "focus": 1, "task": [1, 2], "order": [1, 4, 6], "worst": 1, "best": [1, 2, 6], "possibli": 1, "some": [1, 2, 4, 6], "intermedi": [1, 5, 6], "assign": 1, "base": [1, 2, 3, 5], "The": [1, 2, 3, 4, 6], "constitut": [1, 4], "itself": [1, 3, 5], "vocabulari": 1, "voluntarili": 1, "abstract": [1, 2], "wide": 1, "applic": 1, "concret": [1, 2], "might": [1, 2, 4], "let": [1, 6], "sai": 1, "you": [1, 2, 3, 4, 5, 6], "want": [1, 2, 3, 4, 6], "scholarship": 1, "student": 1, "academ": [1, 4], "your": [1, 3, 4, 6], "fund": 1, "polici": 1, "grade": 1, "should": [1, 2, 3, 4, 5, 6], "get": [1, 2, 5, 6], "And": [1, 2, 3, 6], "favor": [1, 6], "younger": 1, "come": [1, 6], "modest": 1, "background": 1, "differ": [1, 2, 3, 5, 6], "topic": 1, "ag": 1, "famili": 1, "incom": 1, "same": [1, 2, 3, 4, 5, 6], "could": [1, 2, 3, 6], "appli": [1, 2, 4, 6], "triag": 1, "patient": 1, "hospit": 1, "vital": 1, "sign": 1, "A": [1, 2, 6], "defin": [1, 2, 6], "mathbb": 1, "geq": 1, "x_i": 1, "_": 1, "total": [1, 6], "preccurlyeq_i": 1, "h": 1, "prec": 1, "do": [1, 3, 4, 6], "confus": 1, "expon": 1, "just": [1, 2, 4, 5, 6], "cartesian": [1, 2], "product": [1, 2], "x": 1, "prod_": 1, "x_0": 1, "x_": 1, "read": [1, 2, 3, 4, 5, 6], "inform": [1, 3, 5, 6], "csv": [1, 3, 5, 6], "autom": 1, "Its": [1, 4, 5, 6], "alreadi": [1, 4, 6], "new": [1, 3, 6], "call": [1, 6], "train": [1, 3, 5], "ground": 1, "truth": [1, 5], "phase": 1, "f": 1, "rightarrow": 1, "parametr": 1, "form": [1, 2, 6], "find": [1, 2, 4, 6], "paramet": [1, 2], "fit": [1, 2], "expect": [1, 2, 4, 6], "higher": [1, 6], "better": [1, 4], "But": [1, 4, 6], "sometim": 1, "import": [1, 2, 6], "can": [1, 2, 3, 4, 5, 6], "t": [1, 2, 3, 4, 5], "compens": 1, "other": [1, 2, 4, 6], "wai": [1, 2, 3, 4, 5, 6], "captur": [1, 6], "idea": [1, 2], "There": [1, 3], "mani": [1, 5, 6], "share": 1, "vari": 1, "one": [1, 2, 3, 4, 5, 6], "were": [1, 6], "deni": 1, "bouyssou": 1, "thierri": 1, "marchant": 1, "articl": 1, "axiomat": 1, "noncompensatori": 1, "mcdm": 1, "two": [1, 3, 4, 6], "ii": 1, "than": [1, 2, 6], "lower": [1, 6], "It": [1, 2, 3, 5, 6], "good": [1, 2, 6], "abov": [1, 2, 6], "sever": [1, 2, 6], "reach": [1, 3, 5, 6], "level": [1, 2, 4, 5, 6], "singl": [1, 2, 3, 5, 6], "addition": 1, "follow": [1, 2, 4, 5, 6], "h_0": 1, "h_": 1, "still": [1, 2], "subseteq": 1, "With": [1, 6], "constraint": [1, 4], "must": [1, 2, 4, 5, 6], "h_i": 1, "_i": 1, "up": [1, 2, 3, 4, 5, 6], "inclus": 1, "imbric": 1, "supseteq": 1, "which": [1, 2, 3, 6], "default": [1, 3, 5, 6], "mapsto": 1, "cup": 1, "succcurlyeq_i": 1, "extend": [1, 4, 5, 6], "natur": [1, 2], "simplifi": 1, "mai": [1, 2, 3, 5, 6], "slightli": 1, "equival": 1, "becaus": [1, 2, 3, 4, 6], "somewhat": [1, 6], "simpl": [1, 6], "well": [1, 2], "ensur": [1, 5, 6], "nd": 1, "behav": [1, 3], "accord": [1, 4, 5, 6], "intuit": 1, "ness": 1, "few": [1, 2, 3, 6], "upper": [1, 6], "select": [1, 2, 6], "ones": [1, 6], "continu": 1, "three": [1, 6], "partial": [1, 3], "full": [1, 2], "To": [1, 2, 3, 4, 6], "further": 1, "thing": [1, 2], "sacrif": 1, "interest": 1, "consid": [1, 2, 4], "four": 1, "math": 1, "m": 1, "physic": [1, 6], "literatur": 1, "l": 1, "histori": 1, "normal": 1, "forget": 1, "clariti": 1, "ll": [1, 2, 3, 4, 6], "instead": [1, 2, 5, 6], "x_m": 1, "x_p": 1, "x_l": 1, "x_h": 1, "1_m": 1, "1_p": 1, "1_l": 1, "1_h": 1, "6": 1, "55": 1, "7": [1, 6], "5": [1, 3, 5, 6], "2_m": 1, "2_p": 1, "2_l": 1, "2_h": 1, "75": 1, "9": [1, 3, 5, 6], "8": 1, "65": 1, "check": [1, 2, 5, 6], "satisfi": [1, 5], "1_i": 1, "2_i": 1, "look": [1, 2, 3], "like": [1, 2, 3, 6], "repres": [1, 5], "lattic": 1, "where": [1, 2, 4, 6], "arrow": 1, "materi": 1, "relationship": 1, "black": 1, "grei": 1, "here": [1, 2, 6], "If": [1, 2, 3, 4, 5, 6], "els": [1, 2], "ye": 1, "unus": 1, "85": 1, "No": 1, "d": [1, 2], "none": 1, "prose": 1, "formul": 1, "who": 1, "excel": 1, "least": [1, 2, 3, 5, 6], "subject": 1, "scientif": 1, "literari": 1, "back": [1, 3], "concept": [1, 3, 4, 6], "common": 1, "addit": [1, 4, 6], "less": [1, 2], "computation": [1, 2], "simpler": 1, "previou": [1, 2, 6], "ne": 1, "threshold": [1, 3, 5, 6], "wa": [1, 2, 3, 5, 6], "agn\u00e8": 1, "leroi": 1, "et": 1, "al": 1, "multipl": [1, 2, 6], "w_i": 1, "sum_": 1, "again": 1, "answer": 1, "question": [1, 4, 6], "try": [1, 2, 3, 5, 6], "w_m": 1, "w_p": 1, "w_l": 1, "w_h": 1, "give": [1, 2, 5, 6], "16": 1, "equat": 1, "amongst": [1, 6], "lt": 1, "notin": 1, "ge": 1, "teh": 1, "last": [1, 2, 5, 6], "solut": 1, "By": [1, 2, 5, 6], "contrast": 1, "express": 1, "greater": [1, 6], "fewer": 1, "success": [1, 6], "measur": [1, 2, 3], "main": [1, 2, 4], "metric": 1, "quicker": 1, "portion": [1, 3, 5, 6], "real": [1, 3, 5, 6], "world": [1, 3, 5], "noisi": 1, "inconsist": 1, "prevent": 1, "being": [1, 3, 4, 6], "result": [1, 2, 3, 5, 6], "those": [1, 2, 3, 5, 6], "imposs": 1, "100": [1, 3, 6], "summari": 1, "typic": 1, "failur": [1, 2], "quickest": 1, "noth": [1, 2, 6], "goal": 1, "far": [1, 6], "longest": 1, "doesn": [1, 3, 4], "exist": [1, 4, 6], "simpli": [1, 6], "anyth": [1, 2, 5], "configur": [1, 2], "take": [1, 2, 6], "long": [1, 2, 3], "comput": [1, 3, 5], "resourc": 1, "alwai": [1, 6], "longer": [1, 2], "practic": 1, "ali": 1, "tlili": 1, "khale": 1, "belahc\u00e8n": 1, "effici": 1, "maxsat": 1, "conveni": 1, "gather": 1, "place": [1, 2, 3], "olivi": 1, "hi": 1, "ph": 1, "thesi": 1, "originali": 1, "emma": 1, "dixneuf": 1, "thibault": 1, "monsel": 1, "thoma": 1, "vindard": 1, "sequenti": 1, "parallel": 1, "known": 1, "origin": [1, 3, 6], "compar": [1, 2], "how": [1, 3, 4, 6], "evalu": 1, "qualiti": 1, "clean": 1, "haven": [1, 3], "done": [1, 2, 3], "recommend": [1, 2, 3, 4, 6], "strongli": [2, 6], "familiar": [2, 3], "rest": 2, "project": [2, 3], "also": [2, 3, 6], "exampl": [2, 6], "much": [2, 6], "what": [2, 4], "talk": 2, "about": [2, 3, 4, 5], "pleas": [2, 6], "awar": 2, "work": [2, 3, 4], "progress": [2, 5, 6], "write": [2, 4, 5], "kind": [2, 3, 5, 6], "exercis": 2, "clairvoy": 2, "predict": 2, "got": 2, "wrong": 2, "hesit": 2, "contact": 2, "explain": [2, 3, 4, 6], "begin": [2, 6], "scale": [2, 6], "minor": 2, "major": 2, "refactor": 2, "typo": 2, "github": [2, 3, 4, 5], "web": 2, "interfac": [2, 4], "spare": 2, "need": [2, 3, 4, 6], "even": [2, 4, 6], "clone": 2, "repositori": 2, "think": [2, 3], "entir": [2, 6], "architectur": 2, "deserv": 2, "rewrit": 2, "discuss": [2, 4], "http": [2, 5], "com": 2, "mic": [2, 4, 5], "lab": [2, 5], "don": [2, 3, 5], "spend": 2, "someth": [2, 3], "reject": 2, "reason": [2, 6], "appar": 2, "moment": 2, "know": [2, 4, 6], "yourself": 2, "tell": [2, 6], "report": 2, "everyth": [2, 6], "recogn": 2, "open": [2, 4], "sourc": [2, 3, 4, 5], "intimid": 2, "everyon": 2, "experi": [2, 6], "fluenci": 2, "tool": [2, 3, 5, 6], "willing": 2, "feedback": [2, 6], "assur": 2, "construct": 2, "manner": [2, 6], "similar": [2, 6], "inspir": 2, "git": 2, "grep": 2, "theoldth": 2, "thenewth": 2, "blame": 2, "identifi": [2, 6], "commit": 2, "next": 2, "modifi": [2, 3, 4, 6], "recent": 2, "version": [2, 3, 5, 6], "bash": 2, "nvidia": 2, "runtim": 2, "loop": [2, 6], "repeat": [2, 3, 6], "script": [2, 4], "cach": 2, "subsequ": 2, "faster": 2, "librari": [2, 4], "unit": 2, "etc": [2, 3, 4, 6], "speed": 2, "eventu": 2, "maintain": 2, "pull": 2, "request": 2, "doc": 2, "io": [2, 5], "page": 2, "push": 2, "impact": [2, 6], "under": [2, 4], "save": 2, "onc": [2, 3, 4], "submit": 2, "coverag": 2, "stop": 2, "right": 2, "impli": 2, "skip": [2, 6], "forbid": [2, 6], "automat": 2, "warn": 2, "doe": [2, 6], "explicitli": [2, 6], "doctest": 2, "doctest_opt": 2, "pass": [2, 6], "verbatim": 2, "patch": 2, "argument": [2, 4, 5], "requir": [2, 3, 4, 5, 6], "thin": 2, "wrapper": 2, "basic": [2, 6], "rst": 2, "setup": 2, "py": 2, "manifest": 2, "licenc": 2, "local": 2, "render": 2, "current": [2, 3, 6], "dev": 2, "accompani": 2, "pattern": [2, 6], "inject": 2, "easili": 2, "switch": 2, "particularli": 2, "variant": 2, "benchmark": 2, "perspect": 2, "distinct": 2, "recurs": 2, "piec": 2, "learnmrsortbyweightsprofilesbre": 2, "weightsoptimizationstrategi": 2, "profilesimprovementstrategi": 2, "improveprofileswithaccuracyheuristiconcpu": 2, "improveprofileswithaccuracyheuristicongpu": 2, "costli": 2, "click": 2, "class": 2, "foo": 2, "void": 2, "yes_virtu": 2, "no_virtu": 2, "actualfoo": 2, "overrid": 2, "makefoo": 2, "return": [2, 5], "93": 2, "int": 2, "1": [2, 3, 4, 5, 6], "000": 2, "12": 2, "although": 2, "care": 2, "keep": [2, 3, 4, 6], "case": [2, 4, 6], "thousand": 2, "per": [2, 3, 5, 6], "ok": 2, "polymorph": 2, "frequent": 2, "found": [2, 5, 6], "liblinc": 2, "optim": [2, 4, 6], "linear": [2, 3, 5, 6], "hpp": 2, "linearprogram": 2, "cost": 2, "One": 2, "would": [2, 6], "neg": 2, "consequ": 2, "explicit": [2, 4, 5, 6], "instanti": 2, "explod": 2, "incombinatori": 2, "cpp": 2, "whole": 2, "great": 2, "mainten": 2, "specif": [2, 4, 6], "instanci": 2, "modul": 2, "access": 2, "custom": 2, "side": 2, "happen": 2, "That": [2, 3, 4, 6], "restructuredtext": 2, "sphinx": 2, "extent": 2, "edit": [2, 3], "html": [2, 5], "browser": 2, "section": [2, 4, 6], "anticip": [2, 6], "2024": 2, "famou": 2, "word": 2, "mind": [2, 3], "written": [2, 5, 6], "partli": 2, "usabl": 2, "arguabl": [2, 6], "easier": [2, 3], "core": [2, 6], "intens": 2, "interpret": 2, "multi": 2, "thread": 2, "suggest": [2, 3], "both": [2, 3, 4], "someon": 2, "becom": 2, "motiv": [2, 4], "counter": 2, "through": 2, "breedingstrategi": 2, "reduc": [2, 6], "high": [2, 6], "On": 2, "optimizeweightsusingglop": 2, "spent": 2, "locat": 2, "rare": 2, "signific": 2, "easi": [2, 4, 6], "old": [2, 4], "advertis": 2, "boil": 2, "down": 2, "veri": [2, 6], "effect": [2, 3, 6], "unless": 2, "clear": 2, "bilion": 2, "todo": [2, 3, 4], "later": [2, 3, 4], "step": 2, "previous": 2, "mimic": 2, "null": 2, "As": [2, 6], "via": 2, "reli": [2, 4, 6], "duck": 2, "type": [2, 3, 5, 6], "dockerfil": 2, "foobar": 2, "typedef": 2, "liblincs_modul": 2, "__init__": 2, "command_line_interfac": 2, "txt": 2, "accordingli": 2, "procedur": 2, "0a790ef": 2, "modif": 2, "had": 2, "been": 2, "restructur": 2, "sinc": 2, "besid": 2, "x86_64": 3, "processor": [3, 5, 6], "run": 3, "pip": 3, "system": 3, "platform": 3, "lot": 3, "realli": 3, "go": 3, "rout": 3, "action": 3, "workflow": 3, "probabl": 3, "kindli": [3, 4], "ask": [3, 4], "contribut": [3, 4], "easiest": 3, "usag": 3, "arg": [3, 5], "infer": [3, 4, 5], "non": [3, 4, 5], "compensatori": [3, 4, 5], "mcda": [3, 5], "show": [3, 4, 5], "exit": [3, 5], "messag": 3, "graph": [3, 5, 6], "organ": 3, "sub": 3, "design": [3, 4], "handl": [3, 5], "conceptu": [3, 4, 6], "overview": [3, 4, 6], "yml": [3, 6], "10": [3, 6], "seed": [3, 5, 6], "40": 3, "format_vers": [3, 5, 6], "value_typ": [3, 5, 6], "category_correl": [3, 5, 6], "grow": [3, 5, 6], "min_valu": [3, 5, 6], "max_valu": [3, 5, 6], "Then": [3, 6], "41": 3, "accepted_valu": [3, 5, 6], "255905151": 3, "676961303": 3, "0551739037": 3, "324553937": 3, "162252158": 3, "673279881": 3, "0526000932": 3, "598555863": 3, "sufficient_coalit": [3, 5, 6], "criterion_weight": [3, 5, 6], "147771254": 3, "618687689": 3, "406786472": 3, "0960085914": 3, "refer": [3, 4, 6], "mean": [3, 4, 6], "png": [3, 5, 6], "1000": 3, "util": [3, 4], "split": 3, "interact": 3, "42": 3, "misclassifi": [3, 5, 6], "count": [3, 5, 6], "37454012": 3, "796543002": 3, "95071429": 3, "183434784": 3, "731993914": 3, "779690981": 3, "598658502": 3, "596850157": 3, "156018645": 3, "445832759": 3, "15599452": 3, "0999749228": 3, "0580836125": 3, "4592489": 3, "866176128": 3, "333708614": 3, "601114988": 3, "14286682": 3, "708072603": 3, "650888503": 3, "five": 3, "legend": 3, "directli": 3, "structur": [3, 5, 6], "reconstitut": 3, "numer": [3, 6], "43": 3, "maxim": [3, 5], "discrimin": [3, 5], "glop": [3, 5, 6], "reiniti": [3, 5, 6], "accur": [3, 5, 6], "target": [3, 5, 6], "22": 3, "339874953": 3, "421424538": 3, "0556534864": 3, "326433569": 3, "162616938": 3, "67343241": 3, "0878681168": 3, "252649099": 3, "01327896e": 3, "06": 3, "999998987": 3, "howev": 3, "reclassifi": 3, "10000": 3, "diff": 3, "tail": 3, "521c521": 3, "520": 3, "617141366": 3, "326259822": 3, "901315808": 3, "460642993": 3, "614c614": 3, "613": 3, "547554553": 3, "0552174859": 3, "690436542": 3, "511019647": 3, "2595c2595": 3, "2594": 3, "234433308": 3, "780464768": 3, "162389532": 3, "622178912": 3, "2609c2609": 3, "2608": 3, "881479025": 3, "055544015": 3, "82936728": 3, "853676081": 3, "3128c3128": 3, "3127": 3, "146532759": 3, "324625522": 3, "926948965": 3, "817662537": 3, "3691c3691": 3, "3690": 3, "157966524": 3, "326220334": 3, "925864339": 3, "844398499": 3, "3774c3774": 3, "3773": 3, "484662831": 3, "325856268": 3, "966965079": 3, "980859697": 3, "4214c4214": 3, "4213": 3, "254853547": 3, "32587868": 3, "809560299": 3, "554913938": 3, "4265c4265": 3, "4264": 3, "533336997": 3, "0553873181": 3, "735466599": 3, "457309902": 3, "5346c5346": 3, "5345": 3, "815349102": 3, "580399215": 3, "162403136": 3, "995580792": 3, "5781c5781": 3, "5780": 3, "333638728": 3, "325458288": 3, "69509089": 3, "761675119": 3, "8032c8032": 3, "8031": 3, "602598071": 3, "0554222316": 3, "920983374": 3, "00566159375": 3, "9689c9689": 3, "9688": 3, "940304875": 3, "885046899": 3, "162586793": 3, "515185535": 3, "9934c9934": 3, "9933": 3, "705289483": 3, "11529737": 3, "162508503": 3, "0438248962": 3, "9986": 3, "ve": [3, 4, 6], "demonstr": 3, "comfort": 3, "collect": 4, "avail": 4, "gnu": 4, "lesser": 4, "v3": 4, "indic": [4, 6], "copi": 4, "manag": 4, "paper": 4, "cite": 4, "remark": [4, 6], "issu": 4, "research": 4, "team": 4, "centralesup\u00e9lec": 4, "author": 4, "alphabet": 4, "laurent": 4, "cabaret": 4, "vincent": 4, "jacqu": 4, "engin": 4, "mousseau": 4, "expertis": 4, "wassila": 4, "ouerdan": 4, "abl": 4, "specialist": 4, "below": 4, "replac": 4, "favorit": 4, "either": [4, 5, 6], "hand": [4, 6], "former": 4, "latter": 4, "behind": 4, "doubt": 4, "highli": 4, "bit": [4, 6], "semant": 4, "declar": 4, "semver": 4, "exclus": 4, "backward": [4, 6], "compat": [4, 6], "client": 4, "recompil": 4, "futur": [4, 5], "behavior": [4, 6], "especi": 4, "regard": 4, "plan": 4, "chose": 4, "unanticip": 4, "advic": 4, "matter": 4, "implicit": 4, "potenti": 4, "lead": [4, 6], "input": [4, 6], "incompat": 4, "solv": [4, 5, 6], "impos": 4, "text": 5, "standard": [5, 6], "object": 5, "properti": 5, "string": 5, "const": 5, "item": [5, 6], "enumar": 5, "enum": 5, "peak": [5, 6], "unknown": [5, 6], "additionalproperti": 5, "fals": 5, "minitem": 5, "determin": [5, 6], "oneof": 5, "lowest": 5, "comma": 5, "ignor": [5, 6], "quot": 5, "whitespac": 5, "column": [5, 6], "associ": [5, 6], "Their": 5, "empti": [5, 6], "unclassifi": 5, "testing_set": 5, "output_altern": 5, "output_model": 5, "random_se": 5, "model_typ": 5, "mrsort__fixed_weights_sum": 5, "criteria_count": 5, "categories_count": 5, "output_problem": 5, "alternatives_count": 5, "max_imbal": 5, "balanc": [5, 6], "forc": 5, "size": [5, 6], "perfectli": [5, 6], "fraction": [5, 6], "misclassified_count": 5, "whether": 5, "otherwis": 5, "quiet": 5, "learning_set": 5, "ucncs__strategi": 5, "transform": 5, "mrsort__strategi": 5, "top": [5, 6], "mrsort__weights_profiles_breed__target_accuraci": 5, "mrsort__weights_profiles_breed__max_iter": 5, "mrsort__weights_profiles_breed__max_iterations_without_progress": 5, "mrsort__weights_profiles_breed__max_dur": 5, "mrsort__weights_profiles_breed__max_duration_without_progress": 5, "mrsort__weights_profiles_breed__models_count": 5, "temporari": 5, "mrsort__weights_profiles_breed__initialization_strategi": 5, "mrsort__weights_profiles_breed__weights_strategi": 5, "mrsort__weights_profiles_breed__linear_program__solv": 5, "mrsort__weights_profiles_breed__profiles_strategi": 5, "mrsort__weights_profiles_breed__accuracy_heuristic__random_se": 5, "mrsort__weights_profiles_breed__accuracy_heuristic__processor": 5, "mrsort__weights_profiles_breed__breed_strategi": 5, "mrsort__weights_profiles_breed__reinitialize_least_accurate__port": 5, "stderr": 5, "while": 5, "establish": 6, "manipul": 6, "conform": 6, "20": 6, "low": 6, "medium": 6, "kei": 6, "exactli": 6, "respect": 6, "third": 6, "evolv": 6, "enumer": 6, "resp": 6, "correspond": 6, "expert": 6, "knowledg": 6, "extrem": 6, "deleg": 6, "fourth": 6, "rel": 6, "fact": 6, "technic": 6, "embed": 6, "unwant": 6, "referenc": 6, "robust": 6, "content": 6, "hash": 6, "respons": 6, "track": 6, "along": 6, "49331188": 6, "15": 6, "9249287": 6, "49812794": 6, "15932083": 6, "938825667": 6, "343733728": 6, "lack": 6, "transpos": 6, "focuss": 6, "enter": 6, "boundari": 6, "minu": 6, "matrix": 6, "made": 6, "ident": 6, "upset": 6, "anoth": 6, "8156891": 6, "39045048": 6, "25551182": 6, "45864725": 6, "18": 6, "4786396": 6, "31117153": 6, "0154629": 6, "33949804": 6, "30789757": 6, "66963387": 6, "These": 6, "reproduc": 6, "parent": 6, "left": 6, "saw": 6, "tweak": 6, "notabl": 6, "choos": 6, "randomli": 6, "category_corel": 6, "equal": 6, "hard": 6, "600": 6, "200": 6, "160": 6, "240": 6, "significantli": 6, "popul": 6, "lenient": 6, "seen": 6, "own": 6, "goe": 6, "sens": 6, "branch": 6, "realiti": 6, "dot": 6, "scheme": 6, "abil": 6, "collis": 6, "join": 6, "smaller": 6, "softwar": 6, "reus": 6, "directori": 6, "small": 6, "difficult": 6, "parrallel": 6, "Or": 6, "mayb": 6, "met": 6, "exceed": 6, "googl": 6, "OR": 6, "slight": 6, "capabl": 6, "exact": 6, "pick": 6, "Not": 6, "said": 6, "tradoff": 6, "offer": 6, "highligt": 6, "999706864": 6, "0552680492": 6, "325211823": 6, "161919117": 6, "672662616": 6, "995402098": 6, "996754646": 6, "craft": 6, "similarli": 6, "serv": 6, "correctli": 6, "creat": 6, "graphic": 6, "represent": 6, "pretti": 6, "feel": 6, "free": 6, "out": 6}, "objects": {"./publish.sh": [[2, 0, 1, "cmdoption-.-publish.sh-arg-LEVEL", "LEVEL"]], "./run-development-cycle.sh": [[2, 0, 1, "cmdoption-.-run-development-cycle.sh-doctest-option", "--doctest-option"], [2, 0, 1, "cmdoption-.-run-development-cycle.sh-forbid-chrones", "--forbid-chrones"], [2, 0, 1, "cmdoption-.-run-development-cycle.sh-forbid-gpu", "--forbid-gpu"], [2, 0, 1, "cmdoption-.-run-development-cycle.sh-single-python-version", "--single-python-version"], [2, 0, 1, "cmdoption-.-run-development-cycle.sh-skip-long", "--skip-long"], [2, 0, 1, "cmdoption-.-run-development-cycle.sh-skip-unit", "--skip-unit"], [2, 0, 1, "cmdoption-.-run-development-cycle.sh-stop-after-unit", "--stop-after-unit"], [2, 0, 1, "cmdoption-.-run-development-cycle.sh-unit-coverage", "--unit-coverage"], [2, 0, 1, "cmdoption-.-run-development-cycle.sh-with-docs", "--with-docs"]], "lincs-classification-accuracy": [[5, 0, 1, "cmdoption-lincs-classification-accuracy-arg-MODEL", "MODEL"], [5, 0, 1, "cmdoption-lincs-classification-accuracy-arg-PROBLEM", "PROBLEM"], [5, 0, 1, "cmdoption-lincs-classification-accuracy-arg-TESTING_SET", "TESTING_SET"]], "lincs-classify": [[5, 0, 1, "cmdoption-lincs-classify-output-alternatives", "--output-alternatives"], [5, 0, 1, "cmdoption-lincs-classify-arg-ALTERNATIVES", "ALTERNATIVES"], [5, 0, 1, "cmdoption-lincs-classify-arg-MODEL", "MODEL"], [5, 0, 1, "cmdoption-lincs-classify-arg-PROBLEM", "PROBLEM"]], "lincs-generate-classification-model": [[5, 0, 1, "cmdoption-lincs-generate-classification-model-model-type", "--model-type"], [5, 0, 1, "cmdoption-lincs-generate-classification-model-output-model", "--output-model"], [5, 0, 1, "cmdoption-lincs-generate-classification-model-random-seed", "--random-seed"], [5, 0, 1, "cmdoption-lincs-generate-classification-model-arg-PROBLEM", "PROBLEM"]], "lincs-generate-classification-model.--mrsort": [[5, 0, 1, "cmdoption-lincs-generate-classification-model-mrsort.fixed-weights-sum", "fixed-weights-sum"]], "lincs-generate-classification-problem": [[5, 0, 1, "cmdoption-lincs-generate-classification-problem-allow-decreasing-criteria", "--allow-decreasing-criteria"], [5, 0, 1, "cmdoption-lincs-generate-classification-problem-denormalized-min-max", "--denormalized-min-max"], [5, 0, 1, "cmdoption-lincs-generate-classification-problem-output-problem", "--output-problem"], [5, 0, 1, "cmdoption-lincs-generate-classification-problem-random-seed", "--random-seed"], [5, 0, 1, "cmdoption-lincs-generate-classification-problem-arg-CATEGORIES_COUNT", "CATEGORIES_COUNT"], [5, 0, 1, "cmdoption-lincs-generate-classification-problem-arg-CRITERIA_COUNT", "CRITERIA_COUNT"]], "lincs-generate-classified-alternatives": [[5, 0, 1, "cmdoption-lincs-generate-classified-alternatives-max-imbalance", "--max-imbalance"], [5, 0, 1, "cmdoption-lincs-generate-classified-alternatives-misclassified-count", "--misclassified-count"], [5, 0, 1, "cmdoption-lincs-generate-classified-alternatives-output-alternatives", "--output-alternatives"], [5, 0, 1, "cmdoption-lincs-generate-classified-alternatives-random-seed", "--random-seed"], [5, 0, 1, "cmdoption-lincs-generate-classified-alternatives-arg-ALTERNATIVES_COUNT", "ALTERNATIVES_COUNT"], [5, 0, 1, "cmdoption-lincs-generate-classified-alternatives-arg-MODEL", "MODEL"], [5, 0, 1, "cmdoption-lincs-generate-classified-alternatives-arg-PROBLEM", "PROBLEM"]], "lincs-info-has-gpu": [[5, 0, 1, "cmdoption-lincs-info-has-gpu-quiet", "--quiet"]], "lincs-learn-classification-model": [[5, 0, 1, "cmdoption-lincs-learn-classification-model-model-type", "--model-type"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-output-model", "--output-model"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-arg-LEARNING_SET", "LEARNING_SET"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-arg-PROBLEM", "PROBLEM"]], "lincs-learn-classification-model.--mrsort": [[5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.strategy", "strategy"]], "lincs-learn-classification-model.--mrsort.weights-profiles-breed.accuracy-heuristic": [[5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.accuracy-heuristic.processor", "processor"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.accuracy-heuristic.random-seed", "random-seed"]], "lincs-learn-classification-model.--mrsort.weights-profiles-breed": [[5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.breed-strategy", "breed-strategy"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.initialization-strategy", "initialization-strategy"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-duration", "max-duration"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-duration-without-progress", "max-duration-without-progress"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-iterations", "max-iterations"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-iterations-without-progress", "max-iterations-without-progress"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.models-count", "models-count"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.profiles-strategy", "profiles-strategy"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.target-accuracy", "target-accuracy"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.verbose", "verbose"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.weights-strategy", "weights-strategy"]], "lincs-learn-classification-model.--mrsort.weights-profiles-breed.linear-program": [[5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.linear-program.solver", "solver"]], "lincs-learn-classification-model.--mrsort.weights-profiles-breed.reinitialize-least-accurate": [[5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.reinitialize-least-accurate.portion", "portion"]], "lincs-learn-classification-model.--ucncs": [[5, 0, 1, "cmdoption-lincs-learn-classification-model-ucncs.strategy", "strategy"]], "lincs-visualize-classification-model": [[5, 0, 1, "cmdoption-lincs-visualize-classification-model-alternatives", "--alternatives"], [5, 0, 1, "cmdoption-lincs-visualize-classification-model-alternatives-count", "--alternatives-count"], [5, 0, 1, "cmdoption-lincs-visualize-classification-model-arg-MODEL", "MODEL"], [5, 0, 1, "cmdoption-lincs-visualize-classification-model-arg-OUTPUT", "OUTPUT"], [5, 0, 1, "cmdoption-lincs-visualize-classification-model-arg-PROBLEM", "PROBLEM"]], "lincs": [[5, 0, 1, "cmdoption-lincs-version", "--version"]]}, "objtypes": {"0": "std:cmdoption"}, "objnames": {"0": ["std", "cmdoption", "program option"]}, "titleterms": {"changelog": 0, "version": [0, 4], "0": 0, "10": 0, "2": 0, "9": 0, "8": 0, "7": 0, "5": 0, "6": 0, "4": 0, "1": [0, 1], "3": 0, "conceptu": 1, "overview": 1, "notat": 1, "about": [1, 6], "classif": [1, 5, 6], "formal": 1, "definit": [1, 2], "learn": [1, 5, 6], "classifi": [1, 5, 6], "non": 1, "compensatori": 1, "sort": 1, "nc": [1, 5], "exampl": 1, "particular": 1, "case": 1, "u": 1, "c": [1, 2], "textsf": 1, "k": 1, "mr": 1, "accuraci": [1, 5, 6], "synthet": [1, 6], "data": [1, 6], "next": [1, 6], "contributor": [2, 4], "guid": [2, 6], "do": 2, "contribut": 2, "develop": [2, 4], "depend": 2, "cycl": 2, "run": 2, "sh": 2, "publish": 2, "directori": 2, "structur": 2, "gener": [2, 5, 6], "design": 2, "strategi": [2, 6], "But": 2, "bewar": 2, "virtual": 2, "function": 2, "call": 2, "so": 2, "why": 2, "all": 2, "templat": 2, "how": 2, "tos": 2, "updat": 2, "document": 2, "choos": 2, "python": 2, "your": 2, "chang": 2, "tweak": 2, "an": [2, 6], "exist": 2, "add": 2, "new": [2, 4], "extens": 2, "point": 2, "dynam": 2, "static": 2, "default": [2, 4], "behavior": 2, "backward": 2, "compat": 2, "extern": 2, "solver": 2, "get": [3, 4], "start": [3, 4], "linc": [3, 4, 5, 6], "us": [3, 6], "command": [3, 5], "line": [3, 5], "interfac": [3, 5], "what": [3, 6], "now": 3, "readm": 4, "project": 4, "goal": 4, "provid": 4, "mcda": 4, "tool": 4, "usabl": 4, "out": 4, "box": 4, "base": [4, 6], "algorithm": 4, "except": 4, "valu": [4, 6], "file": [4, 5, 6], "format": [4, 5, 6], "itself": 4, "refer": 5, "The": 5, "problem": [5, 6], "model": [5, 6], "altern": [5, 6], "info": 5, "ha": 5, "gpu": 5, "visual": [5, 6], "user": 6, "criteria": 6, "categori": 6, "accept": 6, "suffici": 6, "coalit": 6, "comment": 6, "random": 6, "whole": 6, "tree": 6, "option": 6, "avail": 6, "sub": 6, "weight": 6, "profil": 6, "breed": 6, "termin": 6, "step": 6, "sat": 6, "comput": 6, "": 6}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"Changelog": [[0, "changelog"]], "Versions 0.10.0 to 0.10.2": [[0, "versions-0-10-0-to-0-10-2"]], "Versions 0.9.0 to 0.9.2": [[0, "versions-0-9-0-to-0-9-2"]], "Version 0.8.7": [[0, "version-0-8-7"]], "Versions 0.8.5 to 0.8.6": [[0, "versions-0-8-5-to-0-8-6"]], "Versions 0.8.0 to 0.8.4": [[0, "versions-0-8-0-to-0-8-4"]], "Version 0.7.0": [[0, "version-0-7-0"]], "Version 0.6.0": [[0, "version-0-6-0"]], "Version 0.5.1": [[0, "version-0-5-1"]], "Version 0.5.0": [[0, "version-0-5-0"]], "Version 0.4.5": [[0, "version-0-4-5"]], "Versions 0.4.1 to 0.4.4": [[0, "versions-0-4-1-to-0-4-4"]], "Version 0.4.0": [[0, "version-0-4-0"]], "Versions 0.3.4 to 0.3.7": [[0, "versions-0-3-4-to-0-3-7"]], "Version 0.3.3": [[0, "version-0-3-3"]], "Version 0.3.2": [[0, "version-0-3-2"]], "Version 0.3.1": [[0, "version-0-3-1"]], "Version 0.3.0": [[0, "version-0-3-0"]], "Version 0.2.2": [[0, "version-0-2-2"]], "Version 0.2.1": [[0, "version-0-2-1"]], "Version 0.2.0": [[0, "version-0-2-0"]], "Version 0.1.3": [[0, "version-0-1-3"]], "Get started": [[3, "get-started"], [4, "get-started"]], "Get lincs": [[3, "get-lincs"]], "Start using lincs\u2019 command-line interface": [[3, "start-using-lincs-command-line-interface"]], "What now?": [[3, "what-now"]], "README": [[4, "readme"]], "Contributors": [[4, "contributors"]], "Project goals": [[4, "project-goals"]], "Provide MCDA tools usable out of the box": [[4, "provide-mcda-tools-usable-out-of-the-box"]], "Provide a base for developing new MCDA algorithms": [[4, "provide-a-base-for-developing-new-mcda-algorithms"]], "Versioning": [[4, "versioning"]], "Exceptions": [[4, "exceptions"]], "Default values": [[4, "default-values"]], "File formats": [[4, "file-formats"], [5, "file-formats"]], "Develop lincs itself": [[4, "develop-lincs-itself"]], "Conceptual overview": [[1, "conceptual-overview"]], "Notation": [[1, "notation"]], "About classification": [[1, "about-classification"]], "Formal definition": [[1, null], [1, null], [1, null], [1, null], [1, null]], "Learning and classifying": [[1, "learning-and-classifying"]], "Non-compensatory sorting (NCS)": [[1, "non-compensatory-sorting-ncs"]], "Example": [[1, "example"], [1, "id1"]], "Particular cases": [[1, "particular-cases"]], "U^c \\textsf{-} NCS": [[1, "u-c-textsf-ncs"]], "1 \\textsf{-} U^c \\textsf{-} NCS a.k.a. MR-Sort": [[1, "textsf-u-c-textsf-ncs-a-k-a-mr-sort"]], "Classification accuracy": [[1, "classification-accuracy"]], "Synthetic data": [[1, "synthetic-data"]], "Next": [[1, "next"]], "Contributor guide": [[2, "contributor-guide"]], "Do contribute!": [[2, "do-contribute"]], "Development dependencies": [[2, "development-dependencies"]], "Development cycle": [[2, "development-cycle"]], "./run-development-cycle.sh": [[2, "run-development-cycle-sh"]], "./publish.sh": [[2, "publish-sh"]], "Directory structure": [[2, "directory-structure"]], "General design": [[2, "general-design"]], "Strategies": [[2, "strategies"], [6, "strategies"]], "But beware of virtual function calls": [[2, "but-beware-of-virtual-function-calls"]], "So, why not all templates?": [[2, "so-why-not-all-templates"]], "How-tos": [[2, "how-tos"]], "Update the documentation": [[2, "update-the-documentation"]], "Choose Python or C++ for your change": [[2, "choose-python-or-c-for-your-change"]], "Tweak an existing strategy": [[2, "tweak-an-existing-strategy"]], "Add a new strategy": [[2, "add-a-new-strategy"]], "Add a new extension point": [[2, "add-a-new-extension-point"]], "Dynamic or static?": [[2, "dynamic-or-static"]], "Definition of an dynamic extension point": [[2, "definition-of-an-dynamic-extension-point"]], "Definition of an static extension point": [[2, "definition-of-an-static-extension-point"]], "Default behavior for backward compatibility": [[2, "default-behavior-for-backward-compatibility"]], "Add an external solver": [[2, "add-an-external-solver"]], "User Guide": [[6, "user-guide"]], "Formatting data for lincs": [[6, "formatting-data-for-lincs"]], "\u201cProblem\u201d files": [[6, "problem-files"]], "Criteria": [[6, "criteria"]], "Categories": [[6, "categories"]], "\u201cModel\u201d files": [[6, "model-files"]], "Accepted values": [[6, "accepted-values"]], "Sufficient coalitions": [[6, "sufficient-coalitions"]], "\u201cAlternatives\u201d files": [[6, "alternatives-files"]], "Comments in generated files": [[6, "comments-in-generated-files"]], "Generating synthetic data": [[6, "generating-synthetic-data"]], "About randomness": [[6, "about-randomness"]], "Generating a problem": [[6, "generating-a-problem"]], "Generating a model": [[6, "generating-a-model"]], "Generating alternatives": [[6, "generating-alternatives"]], "Learning a model": [[6, "learning-a-model"]], "An whole tree of options": [[6, "an-whole-tree-of-options"]], "Available learning (sub-)strategies": [[6, "available-learning-sub-strategies"]], "Weights, profiles, breed": [[6, "weights-profiles-breed"]], "General options": [[6, "general-options"]], "Termination": [[6, "termination"]], "\u201cWeights\u201d step": [[6, "weights-step"]], "\u201cProfiles\u201d step": [[6, "profiles-step"]], "\u201cBreed\u201d step": [[6, "breed-step"]], "SAT-based strategies": [[6, "sat-based-strategies"]], "Using a model": [[6, "using-a-model"]], "Classifying alternatives": [[6, "classifying-alternatives"]], "Computing a classification accuracy": [[6, "computing-a-classification-accuracy"]], "Visualizing a model and alternatives": [[6, "visualizing-a-model-and-alternatives"]], "What\u2019s next?": [[6, "what-s-next"]], "Reference": [[5, "reference"]], "The problem file": [[5, "the-problem-file"]], "The NCS model file": [[5, "the-ncs-model-file"]], "The alternatives file": [[5, "the-alternatives-file"]], "Command-line interface": [[5, "command-line-interface"]], "lincs": [[5, "lincs"]], "classification-accuracy": [[5, "lincs-classification-accuracy"]], "classify": [[5, "lincs-classify"]], "generate": [[5, "lincs-generate"]], "classification-model": [[5, "lincs-generate-classification-model"], [5, "lincs-learn-classification-model"], [5, "lincs-visualize-classification-model"]], "classification-problem": [[5, "lincs-generate-classification-problem"]], "classified-alternatives": [[5, "lincs-generate-classified-alternatives"]], "info": [[5, "lincs-info"]], "has-gpu": [[5, "lincs-info-has-gpu"]], "learn": [[5, "lincs-learn"]], "visualize": [[5, "lincs-visualize"]]}, "indexentries": {"--doctest-option": [[2, "cmdoption-.-run-development-cycle.sh-doctest-option"]], "--forbid-chrones": [[2, "cmdoption-.-run-development-cycle.sh-forbid-chrones"]], "--forbid-gpu": [[2, "cmdoption-.-run-development-cycle.sh-forbid-gpu"]], "--single-python-version": [[2, "cmdoption-.-run-development-cycle.sh-single-python-version"]], "--skip-long": [[2, "cmdoption-.-run-development-cycle.sh-skip-long"]], "--skip-unit": [[2, "cmdoption-.-run-development-cycle.sh-skip-unit"]], "--stop-after-unit": [[2, "cmdoption-.-run-development-cycle.sh-stop-after-unit"]], "--unit-coverage": [[2, "cmdoption-.-run-development-cycle.sh-unit-coverage"]], "--with-docs": [[2, "cmdoption-.-run-development-cycle.sh-with-docs"]], "./publish.sh command line option": [[2, "cmdoption-.-publish.sh-arg-LEVEL"]], "./run-development-cycle.sh command line option": [[2, "cmdoption-.-run-development-cycle.sh-doctest-option"], [2, "cmdoption-.-run-development-cycle.sh-forbid-chrones"], [2, "cmdoption-.-run-development-cycle.sh-forbid-gpu"], [2, "cmdoption-.-run-development-cycle.sh-single-python-version"], [2, "cmdoption-.-run-development-cycle.sh-skip-long"], [2, "cmdoption-.-run-development-cycle.sh-skip-unit"], [2, "cmdoption-.-run-development-cycle.sh-stop-after-unit"], [2, "cmdoption-.-run-development-cycle.sh-unit-coverage"], [2, "cmdoption-.-run-development-cycle.sh-with-docs"]], "level": [[2, "cmdoption-.-publish.sh-arg-LEVEL"]], "--allow-decreasing-criteria": [[5, "cmdoption-lincs-generate-classification-problem-allow-decreasing-criteria"]], "--alternatives": [[5, "cmdoption-lincs-visualize-classification-model-alternatives"]], "--alternatives-count": [[5, "cmdoption-lincs-visualize-classification-model-alternatives-count"]], "--denormalized-min-max": [[5, "cmdoption-lincs-generate-classification-problem-denormalized-min-max"]], "--max-imbalance": [[5, "cmdoption-lincs-generate-classified-alternatives-max-imbalance"]], "--misclassified-count": [[5, "cmdoption-lincs-generate-classified-alternatives-misclassified-count"]], "--model-type": [[5, "cmdoption-lincs-generate-classification-model-model-type"], [5, "cmdoption-lincs-learn-classification-model-model-type"]], "--mrsort.fixed-weights-sum": [[5, "cmdoption-lincs-generate-classification-model-mrsort.fixed-weights-sum"]], "--mrsort.strategy": [[5, "cmdoption-lincs-learn-classification-model-mrsort.strategy"]], "--mrsort.weights-profiles-breed.accuracy-heuristic.processor": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.accuracy-heuristic.processor"]], "--mrsort.weights-profiles-breed.accuracy-heuristic.random-seed": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.accuracy-heuristic.random-seed"]], "--mrsort.weights-profiles-breed.breed-strategy": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.breed-strategy"]], "--mrsort.weights-profiles-breed.initialization-strategy": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.initialization-strategy"]], "--mrsort.weights-profiles-breed.linear-program.solver": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.linear-program.solver"]], "--mrsort.weights-profiles-breed.max-duration": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-duration"]], "--mrsort.weights-profiles-breed.max-duration-without-progress": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-duration-without-progress"]], "--mrsort.weights-profiles-breed.max-iterations": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-iterations"]], "--mrsort.weights-profiles-breed.max-iterations-without-progress": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-iterations-without-progress"]], "--mrsort.weights-profiles-breed.models-count": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.models-count"]], "--mrsort.weights-profiles-breed.profiles-strategy": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.profiles-strategy"]], "--mrsort.weights-profiles-breed.reinitialize-least-accurate.portion": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.reinitialize-least-accurate.portion"]], "--mrsort.weights-profiles-breed.target-accuracy": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.target-accuracy"]], "--mrsort.weights-profiles-breed.verbose": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.verbose"]], "--mrsort.weights-profiles-breed.weights-strategy": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.weights-strategy"]], "--output-alternatives": [[5, "cmdoption-lincs-classify-output-alternatives"], [5, "cmdoption-lincs-generate-classified-alternatives-output-alternatives"]], "--output-model": [[5, "cmdoption-lincs-generate-classification-model-output-model"], [5, "cmdoption-lincs-learn-classification-model-output-model"]], "--output-problem": [[5, "cmdoption-lincs-generate-classification-problem-output-problem"]], "--quiet": [[5, "cmdoption-lincs-info-has-gpu-quiet"]], "--random-seed": [[5, "cmdoption-lincs-generate-classification-model-random-seed"], [5, "cmdoption-lincs-generate-classification-problem-random-seed"], [5, "cmdoption-lincs-generate-classified-alternatives-random-seed"]], "--ucncs.strategy": [[5, "cmdoption-lincs-learn-classification-model-ucncs.strategy"]], "--version": [[5, "cmdoption-lincs-version"]], "alternatives": [[5, "cmdoption-lincs-classify-arg-ALTERNATIVES"]], "alternatives_count": [[5, "cmdoption-lincs-generate-classified-alternatives-arg-ALTERNATIVES_COUNT"]], "categories_count": [[5, "cmdoption-lincs-generate-classification-problem-arg-CATEGORIES_COUNT"]], "criteria_count": [[5, "cmdoption-lincs-generate-classification-problem-arg-CRITERIA_COUNT"]], "learning_set": [[5, "cmdoption-lincs-learn-classification-model-arg-LEARNING_SET"]], "model": [[5, "cmdoption-lincs-classification-accuracy-arg-MODEL"], [5, "cmdoption-lincs-classify-arg-MODEL"], [5, "cmdoption-lincs-generate-classified-alternatives-arg-MODEL"], [5, "cmdoption-lincs-visualize-classification-model-arg-MODEL"]], "output": [[5, "cmdoption-lincs-visualize-classification-model-arg-OUTPUT"]], "problem": [[5, "cmdoption-lincs-classification-accuracy-arg-PROBLEM"], [5, "cmdoption-lincs-classify-arg-PROBLEM"], [5, "cmdoption-lincs-generate-classification-model-arg-PROBLEM"], [5, "cmdoption-lincs-generate-classified-alternatives-arg-PROBLEM"], [5, "cmdoption-lincs-learn-classification-model-arg-PROBLEM"], [5, "cmdoption-lincs-visualize-classification-model-arg-PROBLEM"]], "testing_set": [[5, "cmdoption-lincs-classification-accuracy-arg-TESTING_SET"]], "lincs command line option": [[5, "cmdoption-lincs-version"]], "lincs-classification-accuracy command line option": [[5, "cmdoption-lincs-classification-accuracy-arg-MODEL"], [5, "cmdoption-lincs-classification-accuracy-arg-PROBLEM"], [5, "cmdoption-lincs-classification-accuracy-arg-TESTING_SET"]], "lincs-classify command line option": [[5, "cmdoption-lincs-classify-arg-ALTERNATIVES"], [5, "cmdoption-lincs-classify-arg-MODEL"], [5, "cmdoption-lincs-classify-arg-PROBLEM"], [5, "cmdoption-lincs-classify-output-alternatives"]], "lincs-generate-classification-model command line option": [[5, "cmdoption-lincs-generate-classification-model-arg-PROBLEM"], [5, "cmdoption-lincs-generate-classification-model-model-type"], [5, "cmdoption-lincs-generate-classification-model-mrsort.fixed-weights-sum"], [5, "cmdoption-lincs-generate-classification-model-output-model"], [5, "cmdoption-lincs-generate-classification-model-random-seed"]], "lincs-generate-classification-problem command line option": [[5, "cmdoption-lincs-generate-classification-problem-allow-decreasing-criteria"], [5, "cmdoption-lincs-generate-classification-problem-arg-CATEGORIES_COUNT"], [5, "cmdoption-lincs-generate-classification-problem-arg-CRITERIA_COUNT"], [5, "cmdoption-lincs-generate-classification-problem-denormalized-min-max"], [5, "cmdoption-lincs-generate-classification-problem-output-problem"], [5, "cmdoption-lincs-generate-classification-problem-random-seed"]], "lincs-generate-classified-alternatives command line option": [[5, "cmdoption-lincs-generate-classified-alternatives-arg-ALTERNATIVES_COUNT"], [5, "cmdoption-lincs-generate-classified-alternatives-arg-MODEL"], [5, "cmdoption-lincs-generate-classified-alternatives-arg-PROBLEM"], [5, "cmdoption-lincs-generate-classified-alternatives-max-imbalance"], [5, "cmdoption-lincs-generate-classified-alternatives-misclassified-count"], [5, "cmdoption-lincs-generate-classified-alternatives-output-alternatives"], [5, "cmdoption-lincs-generate-classified-alternatives-random-seed"]], "lincs-info-has-gpu command line option": [[5, "cmdoption-lincs-info-has-gpu-quiet"]], "lincs-learn-classification-model command line option": [[5, "cmdoption-lincs-learn-classification-model-arg-LEARNING_SET"], [5, "cmdoption-lincs-learn-classification-model-arg-PROBLEM"], [5, "cmdoption-lincs-learn-classification-model-model-type"], [5, "cmdoption-lincs-learn-classification-model-mrsort.strategy"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.accuracy-heuristic.processor"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.accuracy-heuristic.random-seed"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.breed-strategy"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.initialization-strategy"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.linear-program.solver"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-duration"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-duration-without-progress"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-iterations"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-iterations-without-progress"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.models-count"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.profiles-strategy"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.reinitialize-least-accurate.portion"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.target-accuracy"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.verbose"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.weights-strategy"], [5, "cmdoption-lincs-learn-classification-model-output-model"], [5, "cmdoption-lincs-learn-classification-model-ucncs.strategy"]], "lincs-visualize-classification-model command line option": [[5, "cmdoption-lincs-visualize-classification-model-alternatives"], [5, "cmdoption-lincs-visualize-classification-model-alternatives-count"], [5, "cmdoption-lincs-visualize-classification-model-arg-MODEL"], [5, "cmdoption-lincs-visualize-classification-model-arg-OUTPUT"], [5, "cmdoption-lincs-visualize-classification-model-arg-PROBLEM"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["changelog", "conceptual-overview", "contributor-guide", "get-started", "index", "reference", "user-guide"], "filenames": ["changelog.rst", "conceptual-overview.rst", "contributor-guide.rst", "get-started.rst", "index.rst", "reference.rst", "user-guide.rst"], "titles": ["Changelog", "Conceptual overview", "Contributor guide", "Get started", "README", "Reference", "User Guide"], "terms": {"thi": [0, 1, 2, 3, 4, 5, 6], "i": [0, 1, 2, 3, 4, 5, 6], "first": [0, 1, 2, 3, 5, 6], "releas": [0, 4], "candid": 0, "break": 0, "allow": [0, 1, 2, 4, 5, 6], "more": [0, 1, 2, 3, 4, 6], "flexibl": [0, 4], "descript": [0, 1, 5, 6], "accept": [0, 5], "valu": [0, 1, 2, 3, 5], "model": [0, 1, 3, 4], "json": [0, 5, 6], "schema": [0, 5, 6], "see": [0, 2, 3, 4, 5], "user": [0, 2, 3, 4, 5], "guid": [0, 1, 3, 4, 5], "detail": [0, 2, 3, 4, 6], "renam": [0, 6], "option": [0, 2, 3, 4, 5], "ucnc": [0, 5, 6], "approach": [0, 1, 3, 4, 5, 6], "strategi": [0, 3, 5], "output": [0, 3, 5, 6], "classifi": [0, 3], "altern": [0, 1, 3], "fix": [0, 2, 5, 6], "line": [0, 2, 4, 6], "end": [0, 3], "window": [0, 3, 4, 6], "linc": [0, 1, 2], "visual": [0, 2, 3], "us": [0, 1, 2, 4, 5], "criteria": [0, 1, 3, 5], "": [0, 1, 2, 3, 4, 5], "min": [0, 1, 5, 6], "max": [0, 1, 2, 3, 5, 6], "categori": [0, 1, 3, 5], "correl": [0, 5, 6], "valid": [0, 5, 6], "consist": [0, 1, 2, 6], "problem": [0, 1, 3], "when": [0, 1, 2, 4, 5, 6], "load": 0, "file": [0, 1, 2, 3], "reproduct": [0, 3, 6], "command": [0, 2, 4, 6], "improv": [0, 4, 5, 6], "document": [0, 1, 3, 4, 6], "pre": [0, 1, 5], "process": [0, 5, 6], "learn": [0, 2, 3, 4], "set": [0, 1, 2, 3, 5, 6], "befor": [0, 1, 2, 5, 6], "all": [0, 1, 3, 5, 6], "algorithm": [0, 1, 2], "possibl": [0, 1, 2], "each": [0, 1, 2, 5, 6], "criterion": [0, 1, 3, 5, 6], "ar": [0, 1, 2, 3, 4, 5, 6], "list": [0, 6], "sort": [0, 3, 4, 5, 6], "actual": [0, 1, 2, 5, 6], "start": [0, 1, 2, 5, 6], "so": [0, 1, 3, 4, 6], "now": [0, 1, 2, 6], "have": [0, 1, 2, 3, 5, 6], "increas": [0, 6], "rang": [0, 1, 6], "integ": [0, 1, 5, 6], "simplif": [0, 1], "implement": [0, 1, 2, 6], "perform": [0, 1, 2, 4, 6], "weight": [0, 1, 2, 3, 5], "profil": [0, 1, 2, 3, 5], "breed": [0, 2, 3, 5], "expos": [0, 2], "sufficientcoalit": 0, "upset_root": [0, 5, 6], "python": [0, 1, 4], "name": [0, 3, 5, 6], "imbal": [0, 3, 5, 6], "gener": [0, 1, 3, 4], "produc": [0, 1, 4, 6], "cleaner": 0, "error": 0, "too": [0, 1, 2, 6], "tight": 0, "print": [0, 5, 6], "number": [0, 1, 2, 3, 5, 6], "iter": [0, 2, 3, 5], "wpb": [0, 1, 6], "displai": [0, 6], "comment": [0, 5], "variou": 0, "code": [0, 2, 4, 5, 6], "readabl": 0, "integr": [0, 2], "cuda": [0, 1, 2, 4, 5, 6], "part": [0, 2, 4, 6], "compil": [0, 2, 5], "openmp": [0, 1], "distribut": 0, "binari": [0, 2, 3, 6], "wheel": [0, 2, 3, 6], "durat": [0, 1, 5, 6], "second": [0, 5, 6], "termin": [0, 2, 3, 5], "condit": [0, 3, 6], "after": [0, 2, 4, 6], "make": [0, 2, 3, 4, 5, 6], "chrone": [0, 2], "an": [0, 1, 3, 4, 5], "depend": [0, 3, 4, 6], "linux": [0, 3, 4, 6], "onli": [0, 1, 2, 3, 4, 5, 6], "verbos": [0, 5, 6], "mode": 0, "pernici": 0, "memori": [0, 1], "bug": [0, 2, 4], "bugfix": 0, "sure": [0, 5, 6], "thei": [0, 1, 2, 3, 4, 6], "built": [0, 2, 6], "gpu": [0, 2, 4, 6], "support": [0, 4, 5, 6], "build": [0, 2, 3], "without": [0, 1, 2, 4, 5, 6], "nvcc": 0, "e": [0, 1, 2, 5, 6], "g": [0, 2, 5, 6], "maco": [0, 3, 4, 6], "provid": [0, 1, 2, 3], "info": [0, 3, 6], "ha": [0, 1, 2, 3, 6], "adapt": [0, 4], "classif": [0, 2, 3], "help": [0, 1, 2, 3, 6], "featur": [0, 2, 3, 4, 6], "add": [0, 4, 5, 6], "sat": [0, 1, 2, 5], "coalit": [0, 1, 3, 5], "separ": [0, 1, 5, 6], "hopefulli": 0, "correct": [0, 2, 6], "time": [0, 1, 2, 4, 6], "yaml": [0, 1, 3, 5, 6], "anchor": [0, 3, 6], "alias": 0, "limit": [0, 6], "repetit": [0, 6], "format": [0, 1, 3], "describ": [0, 1, 2, 3, 5, 6], "u": [0, 2, 6], "c": [0, 4, 6], "textsf": [0, 6], "nc": [0, 3, 4, 6], "specifi": [0, 1, 2, 5, 6], "minimum": [0, 1], "maximum": [0, 1, 5], "synthet": [0, 2, 3, 5], "data": [0, 2, 3, 5], "attribut": [0, 1, 6], "denorm": [0, 5, 6], "decreas": [0, 5, 6], "state": 0, "re": [0, 1, 2, 3], "them": [0, 1, 2, 3, 4, 6], "enough": [0, 1, 2, 3], "decim": 0, "store": [0, 1], "float": [0, 6], "point": [0, 6], "avoid": [0, 2, 3, 6], "ani": [0, 2, 6], "loss": 0, "precis": 0, "log": 0, "final": [0, 1, 2, 3, 6], "accuraci": [0, 3], "mrsort": [0, 2, 3, 5, 6], "test": [0, 2, 3], "remov": [0, 3], "buggi": 0, "publish": [0, 4], "method": [0, 1, 6], "misclassify_altern": 0, "synthes": 0, "nois": [0, 6], "expend": 0, "suffici": [0, 1, 3, 5], "root": [0, 2, 5, 6], "manylinux_2_31": 0, "flow": 0, "arrai": [0, 5], "scalar": 0, "between": [0, 1, 2, 3, 5, 6], "api": [0, 2, 4], "yet": [0, 1, 3, 6], "though": [0, 6], "control": [0, 6], "over": 0, "expans": 0, "except": 0, "fail": [0, 1], "develop": [0, 1], "machin": [0, 2, 6], "never": 0, "properli": 0, "heurist": [0, 1, 3, 5, 6], "introduc": [0, 1, 2, 6], "alglib": [0, 2, 5, 6], "lp": [0, 2], "solver": [0, 3, 5, 6], "docker": [0, 2], "imag": [0, 2, 5], "instal": [0, 2, 3, 4], "chang": [0, 3, 4, 6], "domain": [0, 4], "everywher": [0, 2], "packag": [0, 2, 4], "licens": [0, 4], "lgplv3": 0, "miss": [0, 3], "header": [0, 5, 6], "mr": [0, 3, 6], "sobri": [0, 1], "cpu": [0, 2, 3, 4, 5, 6], "sum": [0, 1, 5, 6], "pypi": [0, 2], "websit": 0, "pseudo": [0, 1, 3, 4, 5, 6], "random": [0, 1, 3, 4, 5], "kick": 0, "off": 0, "effort": [0, 6], "quit": [0, 1, 2, 6], "nice": 0, "readm": [0, 2, 6], "initi": [0, 3, 5, 6], "public": [0, 2, 4], "littl": 0, "function": [0, 1], "In": [1, 4, 6], "we": [1, 2, 3, 4, 6], "denot": 1, "interv": 1, "from": [1, 2, 3, 4, 5, 6], "b": 1, "includ": 1, "most": [1, 2, 4, 5, 6], "often": [1, 2, 3, 6], "zero": 1, "choic": [1, 2, 6], "match": 1, "index": [1, 2, 4], "convent": 1, "program": [1, 2, 3, 5, 6], "languag": [1, 2], "our": [1, 2, 3, 4, 6], "close": [1, 3], "For": [1, 2, 5, 6], "0": [1, 2, 3, 4, 5, 6], "4": [1, 3, 6], "2": [1, 3, 5, 6], "3": [1, 3, 4, 6], "note": [1, 2, 3, 4, 6], "n": [1, 3], "contain": [1, 2, 3, 5, 6], "element": [1, 6], "given": [1, 2, 6], "its": [1, 2, 3, 4, 5, 6], "subset": [1, 6], "power": 1, "mathcal": 1, "p": 1, "focus": 1, "task": [1, 2], "order": [1, 4, 6], "worst": 1, "best": [1, 2, 6], "possibli": 1, "some": [1, 2, 4, 6], "intermedi": [1, 5, 6], "assign": 1, "base": [1, 2, 3, 5], "The": [1, 2, 3, 4, 6], "constitut": [1, 4], "itself": [1, 3, 5], "vocabulari": 1, "voluntarili": 1, "abstract": [1, 2], "wide": 1, "applic": 1, "concret": [1, 2], "might": [1, 2, 4], "let": [1, 6], "sai": 1, "you": [1, 2, 3, 4, 5, 6], "want": [1, 2, 3, 4, 6], "scholarship": 1, "student": 1, "academ": [1, 4], "your": [1, 3, 4, 6], "fund": 1, "polici": 1, "grade": 1, "should": [1, 2, 3, 4, 5, 6], "get": [1, 2, 5, 6], "And": [1, 2, 3, 6], "favor": [1, 6], "younger": 1, "come": [1, 6], "modest": 1, "background": 1, "differ": [1, 2, 3, 5, 6], "topic": 1, "ag": 1, "famili": 1, "incom": 1, "same": [1, 2, 3, 4, 5, 6], "could": [1, 2, 3, 6], "appli": [1, 2, 4, 6], "triag": 1, "patient": 1, "hospit": 1, "vital": 1, "sign": 1, "A": [1, 2, 6], "defin": [1, 2, 6], "mathbb": 1, "geq": 1, "x_i": 1, "_": 1, "total": [1, 6], "preccurlyeq_i": 1, "h": 1, "prec": 1, "do": [1, 3, 4, 6], "confus": 1, "expon": 1, "just": [1, 2, 4, 5, 6], "cartesian": [1, 2], "product": [1, 2], "x": 1, "prod_": 1, "x_0": 1, "x_": 1, "read": [1, 2, 3, 4, 5, 6], "inform": [1, 3, 5, 6], "csv": [1, 3, 5, 6], "autom": 1, "Its": [1, 4, 5, 6], "alreadi": [1, 4, 6], "new": [1, 3, 6], "call": [1, 6], "train": [1, 3, 5], "ground": 1, "truth": [1, 5], "phase": 1, "f": 1, "rightarrow": 1, "parametr": 1, "form": [1, 2, 6], "find": [1, 2, 4, 6], "paramet": [1, 2], "fit": [1, 2], "expect": [1, 2, 4, 6], "higher": [1, 6], "better": [1, 4], "But": [1, 4, 6], "sometim": 1, "import": [1, 2, 6], "can": [1, 2, 3, 4, 5, 6], "t": [1, 2, 3, 4, 5], "compens": 1, "other": [1, 2, 4, 6], "wai": [1, 2, 3, 4, 5, 6], "captur": [1, 6], "idea": [1, 2], "There": [1, 3], "mani": [1, 5, 6], "share": 1, "vari": 1, "one": [1, 2, 3, 4, 5, 6], "were": [1, 6], "deni": 1, "bouyssou": 1, "thierri": 1, "marchant": 1, "articl": 1, "axiomat": 1, "noncompensatori": 1, "mcdm": 1, "two": [1, 3, 4, 6], "ii": 1, "than": [1, 2, 6], "lower": [1, 6], "It": [1, 2, 3, 5, 6], "good": [1, 2, 6], "abov": [1, 2, 6], "sever": [1, 2, 6], "reach": [1, 3, 5, 6], "level": [1, 2, 4, 5, 6], "singl": [1, 2, 3, 5, 6], "addition": 1, "follow": [1, 2, 4, 5, 6], "h_0": 1, "h_": 1, "still": [1, 2], "subseteq": 1, "With": [1, 6], "constraint": [1, 4], "must": [1, 2, 4, 5, 6], "h_i": 1, "_i": 1, "up": [1, 2, 3, 4, 5, 6], "inclus": 1, "imbric": 1, "supseteq": 1, "which": [1, 2, 3, 6], "default": [1, 3, 5, 6], "mapsto": 1, "cup": 1, "succcurlyeq_i": 1, "extend": [1, 4, 5, 6], "natur": [1, 2], "simplifi": 1, "mai": [1, 2, 3, 5, 6], "slightli": 1, "equival": 1, "becaus": [1, 2, 3, 4, 6], "somewhat": [1, 6], "simpl": [1, 6], "well": [1, 2], "ensur": [1, 5, 6], "behav": [1, 3], "accord": [1, 4, 5, 6], "intuit": 1, "ness": 1, "few": [1, 2, 3, 6], "upper": [1, 6], "select": [1, 2, 6], "ones": [1, 6], "continu": 1, "three": [1, 6], "partial": [1, 3], "full": [1, 2], "To": [1, 2, 3, 4, 6], "further": 1, "thing": [1, 2], "sacrif": 1, "interest": 1, "consid": [1, 2, 4], "four": 1, "math": 1, "m": 1, "physic": [1, 6], "literatur": 1, "l": 1, "histori": 1, "normal": 1, "forget": 1, "clariti": 1, "ll": [1, 2, 3, 4, 6], "instead": [1, 2, 5, 6], "x_m": 1, "x_p": 1, "x_l": 1, "x_h": 1, "1_m": 1, "1_p": 1, "1_l": 1, "1_h": 1, "6": 1, "55": 1, "7": [1, 6], "5": [1, 3, 5, 6], "2_m": 1, "2_p": 1, "2_l": 1, "2_h": 1, "75": 1, "9": [1, 3, 5, 6], "8": 1, "65": 1, "check": [1, 2, 5, 6], "satisfi": [1, 5], "1_i": 1, "2_i": 1, "look": [1, 2, 3], "like": [1, 2, 3, 6], "repres": [1, 5], "lattic": 1, "where": [1, 2, 4, 6], "arrow": 1, "materi": 1, "relationship": 1, "black": 1, "grei": 1, "here": [1, 2, 6], "If": [1, 2, 3, 4, 5, 6], "els": [1, 2], "ye": 1, "unus": 1, "85": 1, "No": 1, "d": [1, 2], "none": 1, "prose": 1, "formul": 1, "who": 1, "excel": 1, "least": [1, 2, 3, 5, 6], "subject": 1, "scientif": 1, "literari": 1, "back": [1, 3], "concept": [1, 3, 4, 6], "common": 1, "addit": [1, 4, 6], "less": [1, 2], "computation": [1, 2], "simpler": 1, "previou": [1, 2, 6], "ne": 1, "threshold": [1, 3, 5, 6], "wa": [1, 2, 3, 5, 6], "agn\u00e8": 1, "leroi": 1, "et": 1, "al": 1, "multipl": [1, 2, 6], "w_i": 1, "sum_": 1, "again": 1, "answer": 1, "question": [1, 4, 6], "try": [1, 2, 3, 5, 6], "w_m": 1, "w_p": 1, "w_l": 1, "w_h": 1, "give": [1, 2, 5, 6], "16": 1, "equat": 1, "amongst": [1, 6], "lt": 1, "notin": 1, "ge": 1, "last": [1, 2, 5, 6], "solut": 1, "By": [1, 2, 5, 6], "contrast": 1, "express": 1, "greater": [1, 6], "fewer": 1, "success": [1, 6], "measur": [1, 2, 3], "main": [1, 2, 4], "metric": 1, "quicker": 1, "portion": [1, 3, 5, 6], "real": [1, 3, 5, 6], "world": [1, 3, 5], "noisi": 1, "inconsist": 1, "prevent": 1, "being": [1, 3, 4, 6], "result": [1, 2, 3, 5, 6], "those": [1, 2, 3, 5, 6], "imposs": 1, "100": [1, 3, 6], "summari": 1, "typic": 1, "failur": [1, 2], "quickest": 1, "noth": [1, 2, 6], "goal": 1, "far": [1, 6], "longest": 1, "doesn": [1, 3, 4], "exist": [1, 4, 6], "simpli": [1, 6], "anyth": [1, 2, 5], "configur": [1, 2], "take": [1, 2, 6], "long": [1, 2, 3], "comput": [1, 3, 5], "resourc": 1, "alwai": [1, 6], "longer": [1, 2], "practic": 1, "ali": 1, "tlili": 1, "khale": 1, "belahc\u00e8n": 1, "effici": 1, "maxsat": 1, "conveni": 1, "gather": 1, "place": [1, 2, 3], "olivi": 1, "hi": 1, "ph": 1, "thesi": 1, "originali": 1, "emma": 1, "dixneuf": 1, "thibault": 1, "monsel": 1, "thoma": 1, "vindard": 1, "sequenti": 1, "parallel": 1, "known": 1, "origin": [1, 3, 6], "compar": [1, 2], "how": [1, 3, 4, 6], "evalu": 1, "qualiti": 1, "clean": 1, "haven": [1, 3], "done": [1, 2, 3], "recommend": [1, 2, 3, 4, 6], "strongli": [2, 6], "familiar": [2, 3], "rest": 2, "project": [2, 3], "also": [2, 3, 6], "exampl": [2, 6], "much": [2, 4, 6], "what": [2, 4], "talk": 2, "about": [2, 3, 4, 5], "pleas": [2, 6], "awar": 2, "work": [2, 3, 4], "progress": [2, 5, 6], "write": [2, 4, 5], "kind": [2, 3, 5, 6], "exercis": 2, "clairvoy": 2, "predict": 2, "got": 2, "wrong": 2, "hesit": 2, "contact": 2, "explain": [2, 3, 4, 6], "begin": [2, 6], "scale": [2, 6], "minor": 2, "major": 2, "refactor": 2, "typo": 2, "github": [2, 3, 4, 5], "web": 2, "interfac": [2, 4], "spare": 2, "need": [2, 3, 4, 6], "even": [2, 4, 6], "clone": 2, "repositori": 2, "think": [2, 3], "entir": [2, 6], "architectur": 2, "deserv": 2, "rewrit": 2, "discuss": [2, 4], "http": [2, 5], "com": 2, "mic": [2, 4, 5], "lab": [2, 5], "don": [2, 3, 5], "spend": 2, "someth": [2, 3], "reject": 2, "reason": [2, 6], "appar": 2, "moment": 2, "know": [2, 4, 6], "yourself": 2, "tell": [2, 6], "report": 2, "everyth": [2, 6], "recogn": 2, "open": [2, 4], "sourc": [2, 3, 4, 5], "intimid": 2, "everyon": 2, "experi": [2, 6], "fluenci": 2, "tool": [2, 3, 5, 6], "willing": 2, "feedback": [2, 6], "assur": 2, "construct": 2, "manner": [2, 6], "similar": [2, 6], "inspir": 2, "git": 2, "grep": 2, "theoldth": 2, "thenewth": 2, "blame": 2, "identifi": [2, 6], "commit": 2, "next": 2, "modifi": [2, 3, 4, 6], "recent": 2, "version": [2, 3, 5, 6], "bash": 2, "nvidia": 2, "runtim": 2, "loop": [2, 6], "repeat": [2, 3, 6], "script": [2, 4], "cach": 2, "subsequ": 2, "faster": 2, "librari": [2, 4], "unit": 2, "etc": [2, 3, 4, 6], "speed": 2, "eventu": 2, "maintain": 2, "pull": 2, "request": 2, "doc": 2, "io": [2, 5], "page": 2, "push": 2, "impact": [2, 6], "under": [2, 4], "save": 2, "onc": [2, 3, 4], "submit": 2, "coverag": 2, "stop": 2, "right": 2, "impli": 2, "skip": [2, 6], "forbid": [2, 6], "automat": 2, "warn": 2, "doe": [2, 6], "explicitli": [2, 6], "doctest": 2, "doctest_opt": 2, "pass": [2, 6], "verbatim": 2, "patch": 2, "argument": [2, 4, 5], "requir": [2, 3, 4, 5, 6], "thin": 2, "wrapper": 2, "basic": [2, 6], "rst": 2, "setup": 2, "py": 2, "manifest": 2, "licenc": 2, "local": 2, "render": 2, "current": [2, 3, 6], "dev": 2, "accompani": 2, "pattern": [2, 6], "inject": 2, "easili": 2, "switch": 2, "particularli": 2, "variant": 2, "benchmark": 2, "perspect": 2, "distinct": 2, "recurs": 2, "piec": 2, "learnmrsortbyweightsprofilesbre": 2, "weightsoptimizationstrategi": 2, "profilesimprovementstrategi": 2, "improveprofileswithaccuracyheuristiconcpu": 2, "improveprofileswithaccuracyheuristicongpu": 2, "costli": 2, "click": 2, "class": 2, "foo": 2, "void": 2, "yes_virtu": 2, "no_virtu": 2, "actualfoo": 2, "overrid": 2, "makefoo": 2, "return": [2, 5], "93": 2, "int": 2, "1": [2, 3, 4, 5, 6], "000": 2, "12": 2, "although": 2, "care": 2, "keep": [2, 3, 4, 6], "case": [2, 4, 6], "thousand": 2, "per": [2, 3, 5, 6], "ok": 2, "polymorph": 2, "frequent": 2, "found": [2, 5, 6], "liblinc": 2, "optim": [2, 4, 6], "linear": [2, 3, 5, 6], "hpp": 2, "linearprogram": 2, "cost": 2, "One": 2, "would": [2, 6], "neg": 2, "consequ": 2, "explicit": [2, 4, 5, 6], "instanti": 2, "explod": 2, "incombinatori": 2, "cpp": 2, "whole": 2, "great": 2, "mainten": 2, "specif": [2, 4, 6], "instanci": 2, "modul": 2, "access": 2, "custom": 2, "side": 2, "happen": 2, "That": [2, 3, 4, 6], "restructuredtext": 2, "sphinx": 2, "extent": 2, "edit": [2, 3], "html": [2, 5], "browser": 2, "section": [2, 4, 6], "anticip": [2, 6], "2024": 2, "famou": 2, "word": 2, "mind": [2, 3], "written": [2, 5, 6], "partli": 2, "usabl": 2, "arguabl": [2, 6], "easier": [2, 3], "core": [2, 6], "intens": 2, "interpret": 2, "multi": 2, "thread": 2, "suggest": [2, 3], "both": [2, 3, 4], "someon": 2, "becom": 2, "motiv": [2, 4], "counter": 2, "through": 2, "breedingstrategi": 2, "reduc": [2, 6], "high": [2, 6], "On": [2, 4], "optimizeweightsusingglop": 2, "spent": 2, "locat": 2, "rare": 2, "signific": 2, "easi": [2, 4, 6], "old": [2, 4], "advertis": 2, "boil": 2, "down": 2, "veri": [2, 6], "effect": [2, 3, 6], "unless": 2, "clear": 2, "bilion": 2, "todo": [2, 3, 4], "later": [2, 3, 4], "step": 2, "previous": 2, "mimic": 2, "null": 2, "As": [2, 6], "via": 2, "reli": [2, 4, 6], "duck": 2, "type": [2, 3, 5, 6], "dockerfil": 2, "foobar": 2, "typedef": 2, "liblincs_modul": 2, "__init__": 2, "command_line_interfac": 2, "txt": 2, "accordingli": 2, "procedur": 2, "0a790ef": 2, "modif": 2, "had": 2, "been": 2, "restructur": 2, "sinc": 2, "besid": 2, "x86_64": [3, 4], "processor": [3, 4, 5, 6], "run": 3, "pip": 3, "system": 3, "platform": 3, "lot": 3, "realli": 3, "go": 3, "rout": 3, "action": 3, "workflow": 3, "probabl": 3, "kindli": [3, 4], "ask": [3, 4], "contribut": [3, 4], "easiest": 3, "usag": 3, "arg": [3, 5], "infer": [3, 4, 5], "non": [3, 4, 5], "compensatori": [3, 4, 5], "mcda": [3, 5], "show": [3, 4, 5], "exit": [3, 5], "messag": 3, "graph": [3, 5, 6], "organ": 3, "sub": 3, "design": [3, 4], "handl": [3, 5], "conceptu": [3, 4, 6], "overview": [3, 4, 6], "yml": [3, 6], "10": [3, 6], "seed": [3, 5, 6], "40": 3, "format_vers": [3, 5, 6], "value_typ": [3, 5, 6], "category_correl": [3, 5, 6], "grow": [3, 5, 6], "min_valu": [3, 5, 6], "max_valu": [3, 5, 6], "Then": [3, 6], "41": 3, "accepted_valu": [3, 5, 6], "255905151": 3, "676961303": 3, "0551739037": 3, "324553937": 3, "162252158": 3, "673279881": 3, "0526000932": 3, "598555863": 3, "sufficient_coalit": [3, 5, 6], "criterion_weight": [3, 5, 6], "147771254": 3, "618687689": 3, "406786472": 3, "0960085914": 3, "refer": [3, 4, 6], "mean": [3, 4, 6], "png": [3, 5, 6], "1000": 3, "util": [3, 4], "split": 3, "interact": 3, "42": 3, "misclassifi": [3, 5, 6], "count": [3, 5, 6], "37454012": 3, "796543002": 3, "95071429": 3, "183434784": 3, "731993914": 3, "779690981": 3, "598658502": 3, "596850157": 3, "156018645": 3, "445832759": 3, "15599452": 3, "0999749228": 3, "0580836125": 3, "4592489": 3, "866176128": 3, "333708614": 3, "601114988": 3, "14286682": 3, "708072603": 3, "650888503": 3, "five": 3, "legend": 3, "directli": 3, "structur": [3, 5, 6], "reconstitut": 3, "numer": [3, 6], "43": 3, "maxim": [3, 5], "discrimin": [3, 5], "glop": [3, 5, 6], "reiniti": [3, 5, 6], "accur": [3, 5, 6], "target": [3, 5, 6], "22": 3, "339874953": 3, "421424538": 3, "0556534864": 3, "326433569": 3, "162616938": 3, "67343241": 3, "0878681168": 3, "252649099": 3, "01327896e": 3, "06": 3, "999998987": 3, "howev": 3, "reclassifi": 3, "10000": 3, "diff": 3, "tail": 3, "521c521": 3, "520": 3, "617141366": 3, "326259822": 3, "901315808": 3, "460642993": 3, "614c614": 3, "613": 3, "547554553": 3, "0552174859": 3, "690436542": 3, "511019647": 3, "2595c2595": 3, "2594": 3, "234433308": 3, "780464768": 3, "162389532": 3, "622178912": 3, "2609c2609": 3, "2608": 3, "881479025": 3, "055544015": 3, "82936728": 3, "853676081": 3, "3128c3128": 3, "3127": 3, "146532759": 3, "324625522": 3, "926948965": 3, "817662537": 3, "3691c3691": 3, "3690": 3, "157966524": 3, "326220334": 3, "925864339": 3, "844398499": 3, "3774c3774": 3, "3773": 3, "484662831": 3, "325856268": 3, "966965079": 3, "980859697": 3, "4214c4214": 3, "4213": 3, "254853547": 3, "32587868": 3, "809560299": 3, "554913938": 3, "4265c4265": 3, "4264": 3, "533336997": 3, "0553873181": 3, "735466599": 3, "457309902": 3, "5346c5346": 3, "5345": 3, "815349102": 3, "580399215": 3, "162403136": 3, "995580792": 3, "5781c5781": 3, "5780": 3, "333638728": 3, "325458288": 3, "69509089": 3, "761675119": 3, "8032c8032": 3, "8031": 3, "602598071": 3, "0554222316": 3, "920983374": 3, "00566159375": 3, "9689c9689": 3, "9688": 3, "940304875": 3, "885046899": 3, "162586793": 3, "515185535": 3, "9934c9934": 3, "9933": 3, "705289483": 3, "11529737": 3, "162508503": 3, "0438248962": 3, "9986": 3, "ve": [3, 4, 6], "demonstr": 3, "comfort": 3, "collect": 4, "avail": 4, "os": 4, "m1": 4, "m2": 4, "chip": 4, "arm": 4, "gnu": 4, "lesser": 4, "v3": 4, "indic": [4, 6], "copi": 4, "manag": 4, "paper": 4, "cite": 4, "remark": [4, 6], "issu": 4, "research": 4, "team": 4, "centralesup\u00e9lec": 4, "author": 4, "alphabet": 4, "laurent": 4, "cabaret": 4, "vincent": 4, "jacqu": 4, "engin": 4, "mousseau": 4, "expertis": 4, "wassila": 4, "ouerdan": 4, "abl": 4, "specialist": 4, "below": 4, "replac": 4, "favorit": 4, "either": [4, 5, 6], "hand": [4, 6], "former": 4, "latter": 4, "behind": 4, "doubt": 4, "highli": 4, "bit": [4, 6], "semant": 4, "declar": 4, "semver": 4, "exclus": 4, "backward": [4, 6], "compat": [4, 6], "client": 4, "recompil": 4, "futur": [4, 5], "behavior": [4, 6], "especi": 4, "regard": 4, "plan": 4, "chose": 4, "unanticip": 4, "advic": 4, "matter": 4, "implicit": 4, "potenti": 4, "lead": [4, 6], "input": [4, 6], "incompat": 4, "solv": [4, 5, 6], "impos": 4, "text": 5, "standard": [5, 6], "object": 5, "properti": 5, "string": 5, "const": 5, "item": [5, 6], "enumar": 5, "enum": 5, "peak": [5, 6], "unknown": [5, 6], "additionalproperti": 5, "fals": 5, "minitem": 5, "determin": [5, 6], "oneof": 5, "lowest": 5, "comma": 5, "ignor": [5, 6], "quot": 5, "whitespac": 5, "column": [5, 6], "associ": [5, 6], "Their": 5, "empti": [5, 6], "unclassifi": 5, "testing_set": 5, "output_altern": 5, "output_model": 5, "random_se": 5, "model_typ": 5, "mrsort__fixed_weights_sum": 5, "criteria_count": 5, "categories_count": 5, "output_problem": 5, "alternatives_count": 5, "max_imbal": 5, "balanc": [5, 6], "forc": 5, "size": [5, 6], "perfectli": [5, 6], "fraction": [5, 6], "misclassified_count": 5, "whether": 5, "otherwis": 5, "quiet": 5, "learning_set": 5, "ucncs__strategi": 5, "transform": 5, "mrsort__strategi": 5, "top": [5, 6], "mrsort__weights_profiles_breed__target_accuraci": 5, "mrsort__weights_profiles_breed__max_iter": 5, "mrsort__weights_profiles_breed__max_iterations_without_progress": 5, "mrsort__weights_profiles_breed__max_dur": 5, "mrsort__weights_profiles_breed__max_duration_without_progress": 5, "mrsort__weights_profiles_breed__models_count": 5, "temporari": 5, "mrsort__weights_profiles_breed__initialization_strategi": 5, "mrsort__weights_profiles_breed__weights_strategi": 5, "mrsort__weights_profiles_breed__linear_program__solv": 5, "mrsort__weights_profiles_breed__profiles_strategi": 5, "mrsort__weights_profiles_breed__accuracy_heuristic__random_se": 5, "mrsort__weights_profiles_breed__accuracy_heuristic__processor": 5, "mrsort__weights_profiles_breed__breed_strategi": 5, "mrsort__weights_profiles_breed__reinitialize_least_accurate__port": 5, "stderr": 5, "while": 5, "establish": 6, "manipul": 6, "conform": 6, "20": 6, "low": 6, "medium": 6, "kei": 6, "exactli": 6, "respect": 6, "third": 6, "evolv": 6, "enumer": 6, "resp": 6, "correspond": 6, "expert": 6, "knowledg": 6, "extrem": 6, "deleg": 6, "fourth": 6, "rel": 6, "fact": 6, "technic": 6, "embed": 6, "unwant": 6, "referenc": 6, "robust": 6, "content": 6, "hash": 6, "respons": 6, "track": 6, "along": 6, "49331188": 6, "15": 6, "9249287": 6, "49812794": 6, "15932083": 6, "938825667": 6, "343733728": 6, "lack": 6, "transpos": 6, "focuss": 6, "enter": 6, "boundari": 6, "minu": 6, "matrix": 6, "made": 6, "ident": 6, "upset": 6, "anoth": 6, "8156891": 6, "39045048": 6, "25551182": 6, "45864725": 6, "18": 6, "4786396": 6, "31117153": 6, "0154629": 6, "33949804": 6, "30789757": 6, "66963387": 6, "These": 6, "reproduc": 6, "parent": 6, "left": 6, "saw": 6, "tweak": 6, "notabl": 6, "choos": 6, "randomli": 6, "category_corel": 6, "equal": 6, "hard": 6, "600": 6, "200": 6, "160": 6, "240": 6, "significantli": 6, "popul": 6, "lenient": 6, "seen": 6, "own": 6, "goe": 6, "sens": 6, "branch": 6, "realiti": 6, "dot": 6, "scheme": 6, "abil": 6, "collis": 6, "join": 6, "smaller": 6, "softwar": 6, "reus": 6, "directori": 6, "small": 6, "difficult": 6, "parrallel": 6, "Or": 6, "mayb": 6, "met": 6, "exceed": 6, "googl": 6, "OR": 6, "slight": 6, "capabl": 6, "exact": 6, "pick": 6, "Not": 6, "said": 6, "tradoff": 6, "offer": 6, "highligt": 6, "999706864": 6, "0552680492": 6, "325211823": 6, "161919117": 6, "672662616": 6, "995402098": 6, "996754646": 6, "craft": 6, "similarli": 6, "serv": 6, "correctli": 6, "creat": 6, "graphic": 6, "represent": 6, "pretti": 6, "feel": 6, "free": 6, "out": 6}, "objects": {"./publish.sh": [[2, 0, 1, "cmdoption-.-publish.sh-arg-LEVEL", "LEVEL"]], "./run-development-cycle.sh": [[2, 0, 1, "cmdoption-.-run-development-cycle.sh-doctest-option", "--doctest-option"], [2, 0, 1, "cmdoption-.-run-development-cycle.sh-forbid-chrones", "--forbid-chrones"], [2, 0, 1, "cmdoption-.-run-development-cycle.sh-forbid-gpu", "--forbid-gpu"], [2, 0, 1, "cmdoption-.-run-development-cycle.sh-single-python-version", "--single-python-version"], [2, 0, 1, "cmdoption-.-run-development-cycle.sh-skip-long", "--skip-long"], [2, 0, 1, "cmdoption-.-run-development-cycle.sh-skip-unit", "--skip-unit"], [2, 0, 1, "cmdoption-.-run-development-cycle.sh-stop-after-unit", "--stop-after-unit"], [2, 0, 1, "cmdoption-.-run-development-cycle.sh-unit-coverage", "--unit-coverage"], [2, 0, 1, "cmdoption-.-run-development-cycle.sh-with-docs", "--with-docs"]], "lincs-classification-accuracy": [[5, 0, 1, "cmdoption-lincs-classification-accuracy-arg-MODEL", "MODEL"], [5, 0, 1, "cmdoption-lincs-classification-accuracy-arg-PROBLEM", "PROBLEM"], [5, 0, 1, "cmdoption-lincs-classification-accuracy-arg-TESTING_SET", "TESTING_SET"]], "lincs-classify": [[5, 0, 1, "cmdoption-lincs-classify-output-alternatives", "--output-alternatives"], [5, 0, 1, "cmdoption-lincs-classify-arg-ALTERNATIVES", "ALTERNATIVES"], [5, 0, 1, "cmdoption-lincs-classify-arg-MODEL", "MODEL"], [5, 0, 1, "cmdoption-lincs-classify-arg-PROBLEM", "PROBLEM"]], "lincs-generate-classification-model": [[5, 0, 1, "cmdoption-lincs-generate-classification-model-model-type", "--model-type"], [5, 0, 1, "cmdoption-lincs-generate-classification-model-output-model", "--output-model"], [5, 0, 1, "cmdoption-lincs-generate-classification-model-random-seed", "--random-seed"], [5, 0, 1, "cmdoption-lincs-generate-classification-model-arg-PROBLEM", "PROBLEM"]], "lincs-generate-classification-model.--mrsort": [[5, 0, 1, "cmdoption-lincs-generate-classification-model-mrsort.fixed-weights-sum", "fixed-weights-sum"]], "lincs-generate-classification-problem": [[5, 0, 1, "cmdoption-lincs-generate-classification-problem-allow-decreasing-criteria", "--allow-decreasing-criteria"], [5, 0, 1, "cmdoption-lincs-generate-classification-problem-denormalized-min-max", "--denormalized-min-max"], [5, 0, 1, "cmdoption-lincs-generate-classification-problem-output-problem", "--output-problem"], [5, 0, 1, "cmdoption-lincs-generate-classification-problem-random-seed", "--random-seed"], [5, 0, 1, "cmdoption-lincs-generate-classification-problem-arg-CATEGORIES_COUNT", "CATEGORIES_COUNT"], [5, 0, 1, "cmdoption-lincs-generate-classification-problem-arg-CRITERIA_COUNT", "CRITERIA_COUNT"]], "lincs-generate-classified-alternatives": [[5, 0, 1, "cmdoption-lincs-generate-classified-alternatives-max-imbalance", "--max-imbalance"], [5, 0, 1, "cmdoption-lincs-generate-classified-alternatives-misclassified-count", "--misclassified-count"], [5, 0, 1, "cmdoption-lincs-generate-classified-alternatives-output-alternatives", "--output-alternatives"], [5, 0, 1, "cmdoption-lincs-generate-classified-alternatives-random-seed", "--random-seed"], [5, 0, 1, "cmdoption-lincs-generate-classified-alternatives-arg-ALTERNATIVES_COUNT", "ALTERNATIVES_COUNT"], [5, 0, 1, "cmdoption-lincs-generate-classified-alternatives-arg-MODEL", "MODEL"], [5, 0, 1, "cmdoption-lincs-generate-classified-alternatives-arg-PROBLEM", "PROBLEM"]], "lincs-info-has-gpu": [[5, 0, 1, "cmdoption-lincs-info-has-gpu-quiet", "--quiet"]], "lincs-learn-classification-model": [[5, 0, 1, "cmdoption-lincs-learn-classification-model-model-type", "--model-type"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-output-model", "--output-model"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-arg-LEARNING_SET", "LEARNING_SET"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-arg-PROBLEM", "PROBLEM"]], "lincs-learn-classification-model.--mrsort": [[5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.strategy", "strategy"]], "lincs-learn-classification-model.--mrsort.weights-profiles-breed.accuracy-heuristic": [[5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.accuracy-heuristic.processor", "processor"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.accuracy-heuristic.random-seed", "random-seed"]], "lincs-learn-classification-model.--mrsort.weights-profiles-breed": [[5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.breed-strategy", "breed-strategy"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.initialization-strategy", "initialization-strategy"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-duration", "max-duration"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-duration-without-progress", "max-duration-without-progress"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-iterations", "max-iterations"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-iterations-without-progress", "max-iterations-without-progress"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.models-count", "models-count"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.profiles-strategy", "profiles-strategy"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.target-accuracy", "target-accuracy"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.verbose", "verbose"], [5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.weights-strategy", "weights-strategy"]], "lincs-learn-classification-model.--mrsort.weights-profiles-breed.linear-program": [[5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.linear-program.solver", "solver"]], "lincs-learn-classification-model.--mrsort.weights-profiles-breed.reinitialize-least-accurate": [[5, 0, 1, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.reinitialize-least-accurate.portion", "portion"]], "lincs-learn-classification-model.--ucncs": [[5, 0, 1, "cmdoption-lincs-learn-classification-model-ucncs.strategy", "strategy"]], "lincs-visualize-classification-model": [[5, 0, 1, "cmdoption-lincs-visualize-classification-model-alternatives", "--alternatives"], [5, 0, 1, "cmdoption-lincs-visualize-classification-model-alternatives-count", "--alternatives-count"], [5, 0, 1, "cmdoption-lincs-visualize-classification-model-arg-MODEL", "MODEL"], [5, 0, 1, "cmdoption-lincs-visualize-classification-model-arg-OUTPUT", "OUTPUT"], [5, 0, 1, "cmdoption-lincs-visualize-classification-model-arg-PROBLEM", "PROBLEM"]], "lincs": [[5, 0, 1, "cmdoption-lincs-version", "--version"]]}, "objtypes": {"0": "std:cmdoption"}, "objnames": {"0": ["std", "cmdoption", "program option"]}, "titleterms": {"changelog": 0, "version": [0, 4], "0": 0, "10": 0, "2": 0, "9": 0, "8": 0, "7": 0, "5": 0, "6": 0, "4": 0, "1": [0, 1], "3": 0, "conceptu": 1, "overview": 1, "notat": 1, "about": [1, 6], "classif": [1, 5, 6], "formal": 1, "definit": [1, 2], "learn": [1, 5, 6], "classifi": [1, 5, 6], "non": 1, "compensatori": 1, "sort": 1, "nc": [1, 5], "exampl": 1, "particular": 1, "case": 1, "u": 1, "c": [1, 2], "textsf": 1, "k": 1, "mr": 1, "accuraci": [1, 5, 6], "synthet": [1, 6], "data": [1, 6], "next": [1, 6], "contributor": [2, 4], "guid": [2, 6], "do": 2, "contribut": 2, "develop": [2, 4], "depend": 2, "cycl": 2, "run": 2, "sh": 2, "publish": 2, "directori": 2, "structur": 2, "gener": [2, 5, 6], "design": 2, "strategi": [2, 6], "But": 2, "bewar": 2, "virtual": 2, "function": 2, "call": 2, "so": 2, "why": 2, "all": 2, "templat": 2, "how": 2, "tos": 2, "updat": 2, "document": 2, "choos": 2, "python": 2, "your": 2, "chang": 2, "tweak": 2, "an": [2, 6], "exist": 2, "add": 2, "new": [2, 4], "extens": 2, "point": 2, "dynam": 2, "static": 2, "default": [2, 4], "behavior": 2, "backward": 2, "compat": 2, "extern": 2, "solver": 2, "get": [3, 4], "start": [3, 4], "linc": [3, 4, 5, 6], "us": [3, 6], "command": [3, 5], "line": [3, 5], "interfac": [3, 5], "what": [3, 6], "now": 3, "readm": 4, "project": 4, "goal": 4, "provid": 4, "mcda": 4, "tool": 4, "usabl": 4, "out": 4, "box": 4, "base": [4, 6], "algorithm": 4, "except": 4, "valu": [4, 6], "file": [4, 5, 6], "format": [4, 5, 6], "itself": 4, "refer": 5, "The": 5, "problem": [5, 6], "model": [5, 6], "altern": [5, 6], "info": 5, "ha": 5, "gpu": 5, "visual": [5, 6], "user": 6, "criteria": 6, "categori": 6, "accept": 6, "suffici": 6, "coalit": 6, "comment": 6, "random": 6, "whole": 6, "tree": 6, "option": 6, "avail": 6, "sub": 6, "weight": 6, "profil": 6, "breed": 6, "termin": 6, "step": 6, "sat": 6, "comput": 6, "": 6}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"Get started": [[3, "get-started"], [4, "get-started"]], "Get lincs": [[3, "get-lincs"]], "Start using lincs\u2019 command-line interface": [[3, "start-using-lincs-command-line-interface"]], "What now?": [[3, "what-now"]], "README": [[4, "readme"]], "Contributors": [[4, "contributors"]], "Project goals": [[4, "project-goals"]], "Provide MCDA tools usable out of the box": [[4, "provide-mcda-tools-usable-out-of-the-box"]], "Provide a base for developing new MCDA algorithms": [[4, "provide-a-base-for-developing-new-mcda-algorithms"]], "Versioning": [[4, "versioning"]], "Exceptions": [[4, "exceptions"]], "Default values": [[4, "default-values"]], "File formats": [[4, "file-formats"], [5, "file-formats"]], "Develop lincs itself": [[4, "develop-lincs-itself"]], "Changelog": [[0, "changelog"]], "Versions 0.10.0 to 0.10.2": [[0, "versions-0-10-0-to-0-10-2"]], "Versions 0.9.0 to 0.9.2": [[0, "versions-0-9-0-to-0-9-2"]], "Version 0.8.7": [[0, "version-0-8-7"]], "Versions 0.8.5 to 0.8.6": [[0, "versions-0-8-5-to-0-8-6"]], "Versions 0.8.0 to 0.8.4": [[0, "versions-0-8-0-to-0-8-4"]], "Version 0.7.0": [[0, "version-0-7-0"]], "Version 0.6.0": [[0, "version-0-6-0"]], "Version 0.5.1": [[0, "version-0-5-1"]], "Version 0.5.0": [[0, "version-0-5-0"]], "Version 0.4.5": [[0, "version-0-4-5"]], "Versions 0.4.1 to 0.4.4": [[0, "versions-0-4-1-to-0-4-4"]], "Version 0.4.0": [[0, "version-0-4-0"]], "Versions 0.3.4 to 0.3.7": [[0, "versions-0-3-4-to-0-3-7"]], "Version 0.3.3": [[0, "version-0-3-3"]], "Version 0.3.2": [[0, "version-0-3-2"]], "Version 0.3.1": [[0, "version-0-3-1"]], "Version 0.3.0": [[0, "version-0-3-0"]], "Version 0.2.2": [[0, "version-0-2-2"]], "Version 0.2.1": [[0, "version-0-2-1"]], "Version 0.2.0": [[0, "version-0-2-0"]], "Version 0.1.3": [[0, "version-0-1-3"]], "Conceptual overview": [[1, "conceptual-overview"]], "Notation": [[1, "notation"]], "About classification": [[1, "about-classification"]], "Formal definition": [[1, null], [1, null], [1, null], [1, null], [1, null]], "Learning and classifying": [[1, "learning-and-classifying"]], "Non-compensatory sorting (NCS)": [[1, "non-compensatory-sorting-ncs"]], "Example": [[1, "example"], [1, "id1"]], "Particular cases": [[1, "particular-cases"]], "U^c \\textsf{-} NCS": [[1, "u-c-textsf-ncs"]], "1 \\textsf{-} U^c \\textsf{-} NCS a.k.a. MR-Sort": [[1, "textsf-u-c-textsf-ncs-a-k-a-mr-sort"]], "Classification accuracy": [[1, "classification-accuracy"]], "Synthetic data": [[1, "synthetic-data"]], "Next": [[1, "next"]], "Contributor guide": [[2, "contributor-guide"]], "Do contribute!": [[2, "do-contribute"]], "Development dependencies": [[2, "development-dependencies"]], "Development cycle": [[2, "development-cycle"]], "./run-development-cycle.sh": [[2, "run-development-cycle-sh"]], "./publish.sh": [[2, "publish-sh"]], "Directory structure": [[2, "directory-structure"]], "General design": [[2, "general-design"]], "Strategies": [[2, "strategies"], [6, "strategies"]], "But beware of virtual function calls": [[2, "but-beware-of-virtual-function-calls"]], "So, why not all templates?": [[2, "so-why-not-all-templates"]], "How-tos": [[2, "how-tos"]], "Update the documentation": [[2, "update-the-documentation"]], "Choose Python or C++ for your change": [[2, "choose-python-or-c-for-your-change"]], "Tweak an existing strategy": [[2, "tweak-an-existing-strategy"]], "Add a new strategy": [[2, "add-a-new-strategy"]], "Add a new extension point": [[2, "add-a-new-extension-point"]], "Dynamic or static?": [[2, "dynamic-or-static"]], "Definition of an dynamic extension point": [[2, "definition-of-an-dynamic-extension-point"]], "Definition of an static extension point": [[2, "definition-of-an-static-extension-point"]], "Default behavior for backward compatibility": [[2, "default-behavior-for-backward-compatibility"]], "Add an external solver": [[2, "add-an-external-solver"]], "User Guide": [[6, "user-guide"]], "Formatting data for lincs": [[6, "formatting-data-for-lincs"]], "\u201cProblem\u201d files": [[6, "problem-files"]], "Criteria": [[6, "criteria"]], "Categories": [[6, "categories"]], "\u201cModel\u201d files": [[6, "model-files"]], "Accepted values": [[6, "accepted-values"]], "Sufficient coalitions": [[6, "sufficient-coalitions"]], "\u201cAlternatives\u201d files": [[6, "alternatives-files"]], "Comments in generated files": [[6, "comments-in-generated-files"]], "Generating synthetic data": [[6, "generating-synthetic-data"]], "About randomness": [[6, "about-randomness"]], "Generating a problem": [[6, "generating-a-problem"]], "Generating a model": [[6, "generating-a-model"]], "Generating alternatives": [[6, "generating-alternatives"]], "Learning a model": [[6, "learning-a-model"]], "An whole tree of options": [[6, "an-whole-tree-of-options"]], "Available learning (sub-)strategies": [[6, "available-learning-sub-strategies"]], "Weights, profiles, breed": [[6, "weights-profiles-breed"]], "General options": [[6, "general-options"]], "Termination": [[6, "termination"]], "\u201cWeights\u201d step": [[6, "weights-step"]], "\u201cProfiles\u201d step": [[6, "profiles-step"]], "\u201cBreed\u201d step": [[6, "breed-step"]], "SAT-based strategies": [[6, "sat-based-strategies"]], "Using a model": [[6, "using-a-model"]], "Classifying alternatives": [[6, "classifying-alternatives"]], "Computing a classification accuracy": [[6, "computing-a-classification-accuracy"]], "Visualizing a model and alternatives": [[6, "visualizing-a-model-and-alternatives"]], "What\u2019s next?": [[6, "what-s-next"]], "Reference": [[5, "reference"]], "The problem file": [[5, "the-problem-file"]], "The NCS model file": [[5, "the-ncs-model-file"]], "The alternatives file": [[5, "the-alternatives-file"]], "Command-line interface": [[5, "command-line-interface"]], "lincs": [[5, "lincs"]], "classification-accuracy": [[5, "lincs-classification-accuracy"]], "classify": [[5, "lincs-classify"]], "generate": [[5, "lincs-generate"]], "classification-model": [[5, "lincs-generate-classification-model"], [5, "lincs-learn-classification-model"], [5, "lincs-visualize-classification-model"]], "classification-problem": [[5, "lincs-generate-classification-problem"]], "classified-alternatives": [[5, "lincs-generate-classified-alternatives"]], "info": [[5, "lincs-info"]], "has-gpu": [[5, "lincs-info-has-gpu"]], "learn": [[5, "lincs-learn"]], "visualize": [[5, "lincs-visualize"]]}, "indexentries": {"--doctest-option": [[2, "cmdoption-.-run-development-cycle.sh-doctest-option"]], "--forbid-chrones": [[2, "cmdoption-.-run-development-cycle.sh-forbid-chrones"]], "--forbid-gpu": [[2, "cmdoption-.-run-development-cycle.sh-forbid-gpu"]], "--single-python-version": [[2, "cmdoption-.-run-development-cycle.sh-single-python-version"]], "--skip-long": [[2, "cmdoption-.-run-development-cycle.sh-skip-long"]], "--skip-unit": [[2, "cmdoption-.-run-development-cycle.sh-skip-unit"]], "--stop-after-unit": [[2, "cmdoption-.-run-development-cycle.sh-stop-after-unit"]], "--unit-coverage": [[2, "cmdoption-.-run-development-cycle.sh-unit-coverage"]], "--with-docs": [[2, "cmdoption-.-run-development-cycle.sh-with-docs"]], "./publish.sh command line option": [[2, "cmdoption-.-publish.sh-arg-LEVEL"]], "./run-development-cycle.sh command line option": [[2, "cmdoption-.-run-development-cycle.sh-doctest-option"], [2, "cmdoption-.-run-development-cycle.sh-forbid-chrones"], [2, "cmdoption-.-run-development-cycle.sh-forbid-gpu"], [2, "cmdoption-.-run-development-cycle.sh-single-python-version"], [2, "cmdoption-.-run-development-cycle.sh-skip-long"], [2, "cmdoption-.-run-development-cycle.sh-skip-unit"], [2, "cmdoption-.-run-development-cycle.sh-stop-after-unit"], [2, "cmdoption-.-run-development-cycle.sh-unit-coverage"], [2, "cmdoption-.-run-development-cycle.sh-with-docs"]], "level": [[2, "cmdoption-.-publish.sh-arg-LEVEL"]], "--allow-decreasing-criteria": [[5, "cmdoption-lincs-generate-classification-problem-allow-decreasing-criteria"]], "--alternatives": [[5, "cmdoption-lincs-visualize-classification-model-alternatives"]], "--alternatives-count": [[5, "cmdoption-lincs-visualize-classification-model-alternatives-count"]], "--denormalized-min-max": [[5, "cmdoption-lincs-generate-classification-problem-denormalized-min-max"]], "--max-imbalance": [[5, "cmdoption-lincs-generate-classified-alternatives-max-imbalance"]], "--misclassified-count": [[5, "cmdoption-lincs-generate-classified-alternatives-misclassified-count"]], "--model-type": [[5, "cmdoption-lincs-generate-classification-model-model-type"], [5, "cmdoption-lincs-learn-classification-model-model-type"]], "--mrsort.fixed-weights-sum": [[5, "cmdoption-lincs-generate-classification-model-mrsort.fixed-weights-sum"]], "--mrsort.strategy": [[5, "cmdoption-lincs-learn-classification-model-mrsort.strategy"]], "--mrsort.weights-profiles-breed.accuracy-heuristic.processor": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.accuracy-heuristic.processor"]], "--mrsort.weights-profiles-breed.accuracy-heuristic.random-seed": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.accuracy-heuristic.random-seed"]], "--mrsort.weights-profiles-breed.breed-strategy": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.breed-strategy"]], "--mrsort.weights-profiles-breed.initialization-strategy": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.initialization-strategy"]], "--mrsort.weights-profiles-breed.linear-program.solver": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.linear-program.solver"]], "--mrsort.weights-profiles-breed.max-duration": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-duration"]], "--mrsort.weights-profiles-breed.max-duration-without-progress": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-duration-without-progress"]], "--mrsort.weights-profiles-breed.max-iterations": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-iterations"]], "--mrsort.weights-profiles-breed.max-iterations-without-progress": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-iterations-without-progress"]], "--mrsort.weights-profiles-breed.models-count": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.models-count"]], "--mrsort.weights-profiles-breed.profiles-strategy": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.profiles-strategy"]], "--mrsort.weights-profiles-breed.reinitialize-least-accurate.portion": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.reinitialize-least-accurate.portion"]], "--mrsort.weights-profiles-breed.target-accuracy": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.target-accuracy"]], "--mrsort.weights-profiles-breed.verbose": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.verbose"]], "--mrsort.weights-profiles-breed.weights-strategy": [[5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.weights-strategy"]], "--output-alternatives": [[5, "cmdoption-lincs-classify-output-alternatives"], [5, "cmdoption-lincs-generate-classified-alternatives-output-alternatives"]], "--output-model": [[5, "cmdoption-lincs-generate-classification-model-output-model"], [5, "cmdoption-lincs-learn-classification-model-output-model"]], "--output-problem": [[5, "cmdoption-lincs-generate-classification-problem-output-problem"]], "--quiet": [[5, "cmdoption-lincs-info-has-gpu-quiet"]], "--random-seed": [[5, "cmdoption-lincs-generate-classification-model-random-seed"], [5, "cmdoption-lincs-generate-classification-problem-random-seed"], [5, "cmdoption-lincs-generate-classified-alternatives-random-seed"]], "--ucncs.strategy": [[5, "cmdoption-lincs-learn-classification-model-ucncs.strategy"]], "--version": [[5, "cmdoption-lincs-version"]], "alternatives": [[5, "cmdoption-lincs-classify-arg-ALTERNATIVES"]], "alternatives_count": [[5, "cmdoption-lincs-generate-classified-alternatives-arg-ALTERNATIVES_COUNT"]], "categories_count": [[5, "cmdoption-lincs-generate-classification-problem-arg-CATEGORIES_COUNT"]], "criteria_count": [[5, "cmdoption-lincs-generate-classification-problem-arg-CRITERIA_COUNT"]], "learning_set": [[5, "cmdoption-lincs-learn-classification-model-arg-LEARNING_SET"]], "model": [[5, "cmdoption-lincs-classification-accuracy-arg-MODEL"], [5, "cmdoption-lincs-classify-arg-MODEL"], [5, "cmdoption-lincs-generate-classified-alternatives-arg-MODEL"], [5, "cmdoption-lincs-visualize-classification-model-arg-MODEL"]], "output": [[5, "cmdoption-lincs-visualize-classification-model-arg-OUTPUT"]], "problem": [[5, "cmdoption-lincs-classification-accuracy-arg-PROBLEM"], [5, "cmdoption-lincs-classify-arg-PROBLEM"], [5, "cmdoption-lincs-generate-classification-model-arg-PROBLEM"], [5, "cmdoption-lincs-generate-classified-alternatives-arg-PROBLEM"], [5, "cmdoption-lincs-learn-classification-model-arg-PROBLEM"], [5, "cmdoption-lincs-visualize-classification-model-arg-PROBLEM"]], "testing_set": [[5, "cmdoption-lincs-classification-accuracy-arg-TESTING_SET"]], "lincs command line option": [[5, "cmdoption-lincs-version"]], "lincs-classification-accuracy command line option": [[5, "cmdoption-lincs-classification-accuracy-arg-MODEL"], [5, "cmdoption-lincs-classification-accuracy-arg-PROBLEM"], [5, "cmdoption-lincs-classification-accuracy-arg-TESTING_SET"]], "lincs-classify command line option": [[5, "cmdoption-lincs-classify-arg-ALTERNATIVES"], [5, "cmdoption-lincs-classify-arg-MODEL"], [5, "cmdoption-lincs-classify-arg-PROBLEM"], [5, "cmdoption-lincs-classify-output-alternatives"]], "lincs-generate-classification-model command line option": [[5, "cmdoption-lincs-generate-classification-model-arg-PROBLEM"], [5, "cmdoption-lincs-generate-classification-model-model-type"], [5, "cmdoption-lincs-generate-classification-model-mrsort.fixed-weights-sum"], [5, "cmdoption-lincs-generate-classification-model-output-model"], [5, "cmdoption-lincs-generate-classification-model-random-seed"]], "lincs-generate-classification-problem command line option": [[5, "cmdoption-lincs-generate-classification-problem-allow-decreasing-criteria"], [5, "cmdoption-lincs-generate-classification-problem-arg-CATEGORIES_COUNT"], [5, "cmdoption-lincs-generate-classification-problem-arg-CRITERIA_COUNT"], [5, "cmdoption-lincs-generate-classification-problem-denormalized-min-max"], [5, "cmdoption-lincs-generate-classification-problem-output-problem"], [5, "cmdoption-lincs-generate-classification-problem-random-seed"]], "lincs-generate-classified-alternatives command line option": [[5, "cmdoption-lincs-generate-classified-alternatives-arg-ALTERNATIVES_COUNT"], [5, "cmdoption-lincs-generate-classified-alternatives-arg-MODEL"], [5, "cmdoption-lincs-generate-classified-alternatives-arg-PROBLEM"], [5, "cmdoption-lincs-generate-classified-alternatives-max-imbalance"], [5, "cmdoption-lincs-generate-classified-alternatives-misclassified-count"], [5, "cmdoption-lincs-generate-classified-alternatives-output-alternatives"], [5, "cmdoption-lincs-generate-classified-alternatives-random-seed"]], "lincs-info-has-gpu command line option": [[5, "cmdoption-lincs-info-has-gpu-quiet"]], "lincs-learn-classification-model command line option": [[5, "cmdoption-lincs-learn-classification-model-arg-LEARNING_SET"], [5, "cmdoption-lincs-learn-classification-model-arg-PROBLEM"], [5, "cmdoption-lincs-learn-classification-model-model-type"], [5, "cmdoption-lincs-learn-classification-model-mrsort.strategy"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.accuracy-heuristic.processor"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.accuracy-heuristic.random-seed"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.breed-strategy"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.initialization-strategy"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.linear-program.solver"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-duration"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-duration-without-progress"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-iterations"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.max-iterations-without-progress"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.models-count"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.profiles-strategy"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.reinitialize-least-accurate.portion"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.target-accuracy"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.verbose"], [5, "cmdoption-lincs-learn-classification-model-mrsort.weights-profiles-breed.weights-strategy"], [5, "cmdoption-lincs-learn-classification-model-output-model"], [5, "cmdoption-lincs-learn-classification-model-ucncs.strategy"]], "lincs-visualize-classification-model command line option": [[5, "cmdoption-lincs-visualize-classification-model-alternatives"], [5, "cmdoption-lincs-visualize-classification-model-alternatives-count"], [5, "cmdoption-lincs-visualize-classification-model-arg-MODEL"], [5, "cmdoption-lincs-visualize-classification-model-arg-OUTPUT"], [5, "cmdoption-lincs-visualize-classification-model-arg-PROBLEM"]]}}) \ No newline at end of file diff --git a/docs/user-guide.html b/docs/user-guide.html index e959ec80..ee510870 100644 --- a/docs/user-guide.html +++ b/docs/user-guide.html @@ -45,23 +45,23 @@

Formatting data for lincsconceptual overview. To describe problems, lincs uses YAML files conforming to the JSON schema you’ll find in our reference documentation.

Here is an example of a problem file:

-
kind: classification-problem
-format_version: 1
-criteria:
-  - name: Criterion 1
-    value_type: real
-    category_correlation: growing
-    min_value: 0
-    max_value: 20
-  - name: Criterion 2
-    value_type: real
-    category_correlation: decreasing
-    min_value: -5
-    max_value: 5
-categories:
-  - name: Low
-  - name: Medium
-  - name: High
+
kind: classification-problem
+format_version: 1
+criteria:
+  - name: Criterion 1
+    value_type: real
+    category_correlation: growing
+    min_value: 0
+    max_value: 20
+  - name: Criterion 2
+    value_type: real
+    category_correlation: decreasing
+    min_value: -5
+    max_value: 5
+categories:
+  - name: Low
+  - name: Medium
+  - name: High
 

The two first keys, kind and format_version are here to identify exactly the file format. @@ -103,18 +103,18 @@

Categories
kind: ncs-classification-model
-format_version: 1
-accepted_values:
-  - kind: thresholds
-    thresholds: [7.49331188, 15.9249287]
-  - kind: thresholds
-    thresholds: [4.49812794, -3.15932083]
-sufficient_coalitions:
-  - &coalitions
-    kind: weights
-    criterion_weights: [0.938825667, 0.343733728]
-  - *coalitions
+
kind: ncs-classification-model
+format_version: 1
+accepted_values:
+  - kind: thresholds
+    thresholds: [7.49331188, 15.9249287]
+  - kind: thresholds
+    thresholds: [4.49812794, -3.15932083]
+sufficient_coalitions:
+  - &coalitions
+    kind: weights
+    criterion_weights: [0.938825667, 0.343733728]
+  - *coalitions
 

Like for problem files, the two first keys must take exactly these values.

@@ -186,20 +186,20 @@

Sufficient coalitions

Here is another model corresponding to the problem file above, but this time using the roots kind of sufficient coalitions, and using different coalitions for the two boundaries (so, no YAML anchor):

-
kind: ncs-classification-model
-format_version: 1
-accepted_values:
-  - kind: thresholds
-    thresholds: [7.49331188, 15.9249287]
-  - kind: thresholds
-    thresholds: [4.49812794, -3.15932083]
-sufficient_coalitions:
-  - kind: roots
-    upset_roots:
-      - [2]
-  - kind: roots
-    upset_roots:
-      - [1, 2]
+
kind: ncs-classification-model
+format_version: 1
+accepted_values:
+  - kind: thresholds
+    thresholds: [7.49331188, 15.9249287]
+  - kind: thresholds
+    thresholds: [4.49812794, -3.15932083]
+sufficient_coalitions:
+  - kind: roots
+    upset_roots:
+      - [2]
+  - kind: roots
+    upset_roots:
+      - [1, 2]
 

@@ -210,12 +210,12 @@

“Alternatives” files

Like model files, alternatives files are always associated to a problem file.

Here is an example corresponding to the problem above:

-
name,"Criterion 1","Criterion 2",category
-"Alternative 1",10.8156891,4.39045048,Medium
-"Alternative 2",0.25551182,-1.45864725,Low
-"Alternative 3",18.4786396,4.31117153,Medium
-"Alternative 4",18.0154629,1.33949804,Medium
-"Alternative 5",9.30789757,2.66963387,Medium
+
name,"Criterion 1","Criterion 2",category
+"Alternative 1",10.8156891,4.39045048,Medium
+"Alternative 2",0.25551182,-1.45864725,Low
+"Alternative 3",18.4786396,4.31117153,Medium
+"Alternative 4",18.0154629,1.33949804,Medium
+"Alternative 5",9.30789757,2.66963387,Medium
 

Its header line contains the names of its columns. @@ -223,12 +223,12 @@

“Alternatives” filescategory, contains the names of the categories in which each alternative is classified.

Values in the category column can be empty to describe alternatives that are not (yet) classified:

-
name,"Criterion 1","Criterion 2",category
-"Alternative 1",10.8156891,4.39045048,
-"Alternative 2",0.25551182,-1.45864725,
-"Alternative 3",18.4786396,4.31117153,
-"Alternative 4",18.0154629,1.33949804,
-"Alternative 5",9.30789757,2.66963387,
+
name,"Criterion 1","Criterion 2",category
+"Alternative 1",10.8156891,4.39045048,
+"Alternative 2",0.25551182,-1.45864725,
+"Alternative 3",18.4786396,4.31117153,
+"Alternative 4",18.0154629,1.33949804,
+"Alternative 5",9.30789757,2.66963387,
 
@@ -258,7 +258,7 @@

About randomness

With lincs generate classification-problem, you can generate a classification problem file. Using its default settings, you just have to pass it the numbers of criteria and categories you want, as you saw in our get started guide:

-
lincs generate classification-problem 4 3
+
lincs generate classification-problem 4 3
 

The --help option on the command-line and our reference documentation describe the options available to tweak the generated problem. @@ -272,7 +272,7 @@

Generating a problemGenerating a model

With lincs generate classification-model, you can generate a classification model file. Using its default settings, you just have to pass it the problem file you want to use:

-
lincs generate classification-model problem.yml
+
lincs generate classification-model problem.yml
 

For now, lincs can only generate MR-Sort models, so the --model-type option can only take its default value: mrsort. @@ -284,7 +284,7 @@

Generating a model

Generating alternatives

With its default settings, lincs generate classified-alternatives requires only the problem and model files and the number of alternatives to generate:

-
lincs generate classified-alternatives problem.yml model.yml 100
+
lincs generate classified-alternatives problem.yml model.yml 100
 

This generates 100 random alternatives, and then classifies them according to the model.

@@ -306,7 +306,7 @@

Generating alternatives

Learning a model

As you’ve seen in our get started guide, the basic command to learn a classification model with lincs is lincs learn classification-model. With its default settings, you just have to pass it a problem file and a learning set file (of classified alternatives):

-
lincs learn classification-model problem.yml learning-set.csv
+
lincs learn classification-model problem.yml learning-set.csv
 

Its --help option and our reference documentation give you a list of the numerous options it accepts.

@@ -372,8 +372,8 @@
“Weights” step--mrsort.weights-profiles-breed.linear-program.solver option.

By default, it uses GLOP, which is a part of Google’s OR-Tools.

Here is an example using the Alglib solver:

-
lincs learn classification-model problem.yml learning-set.csv \
-  --mrsort.weights-profiles-breed.linear-program.solver alglib
+
lincs learn classification-model problem.yml learning-set.csv \
+  --mrsort.weights-profiles-breed.linear-program.solver alglib
 

It should produce a very similar model, with slight numerical differences.

@@ -390,8 +390,8 @@
“Profiles” steplincs info has-gpu.

Here is an example:

-
lincs learn classification-model problem.yml learning-set.csv \
-  --mrsort.weights-profiles-breed.accuracy-heuristic.processor gpu
+
lincs learn classification-model problem.yml learning-set.csv \
+  --mrsort.weights-profiles-breed.accuracy-heuristic.processor gpu
 

It should produce the exact same model as when using the CPU;