# MCDM-Project. Part 1. Concept

### Foreword

Still, I’m a dreamer and a dreamer in my soul, in fact (in the programming world) the maximum is “the guy from the garage”, but after “loosening the nuts” I could not help refusing to show the MCDM-Project as a whole and the toy project a test version in particular (I am somewhat afraid of the Habraeffect, if there are problems - we apologize). A link to the project’s website awaits the reader at the end of the publication (along with the survey), it’s recommended that you take a tour on the website, and ideally, familiarize yourself with the main ideas under the cut.

### Why nonlinearity?

This story began with a series of publications on the topic of multi-criteria assessment of objects with loosely coupled (not obvious connected) parameters and work with experts who were supposed to formulate rules for evaluating the objects under consideration. Pretty quickly it became clear that it is impossible to use linear evaluation criteria when working with experts. Man thinks non-additively. Imagine that you are going to choose a laptop (this example should be very close to the public from Habr) and consider some specific option (simplifying many features): let it be an i5 with a frequency of 3 GHz, 8 GB of RAM, and a video card of the 10th series with 4 GB of memory . Assume that the available alternatives for the purchase (with the same budget) are as follows:

1. i5 with a frequency of 3GHz, 8GB of RAM, and a video card of the 10th series with 4GB of memory;
2. i5 with a frequency of 3.5 GHz, 4 GB of RAM, and a video card of the 10th series with 4 GB of memory;
3. i5 with a frequency of 2.5 GHz, 8 GB of RAM, and a video card of the 10th series with 6 GB of memory;
4. i5 with a frequency of 3.5 GHz, 8 GB of RAM, and a video card of the 10th series with 2GB of memory.

Please note that in this example, all parameter values ​​change linearly (decreasing / increasing the value of one parameter by a constant relative to the reference option leads to an increase / decrease of another parameter by another constant). But will this mean that your preference remains unchanged? Not at all! On a vskidku you can always indicate the most preferable option for yourself, which means that its rating is higher than that of others. Continuing the thought, we prove with this example that the linear criterion of preference for evaluating alternatives is also not suitable. Suppose this is not the case. As an example, we will choose a laptop for work (i.e. we do not intend to play, but for calculations we are interested in performance and the amount of RAM). We’ll introduce a new option: i5 with a frequency of 3.5 GHz, 16 GB of RAM, and a video card with 0GB of memory. We distinguish three alternatives (the numbering is preserved for ease of perception):

2) i5 with a frequency of 3.5 GHz, 4 GB of RAM, and a video card of the 10th series with 4GB of memory;
4) i5 with a frequency of 3.5 GHz, 8 GB of RAM, and a video card of the 10th series with 2GB of memory;
5) i5 with a frequency of 3.5 GHz, 16 GB of RAM, and a video card with 0 GB of memory.

Given our preference, No. 5 is obviously the best alternative. The use of a linear evaluation criterion assumes that the contribution of a unit of the parameter value is linearly related to the criterion value (for example, increasing the parameter by one leads to an increase in the criterion by some other unit). In this case, while alternative No. 4 is conditionally worse by X, alternative No. 2 should be worse by 2X (we did not take into account the video card). But if we want to play not too demanding games after work - which option should we choose? Here I can disagree, but most will convincingly choose alternative No. 4. The thing is that the expert in his judgment takes into account the implicit relationships of the joint contribution of the parameters to the quality of the alternative. So,

In the case when there are more than 3 selection parameters, the expert is required to evaluate the influence of not only pairs, but also triples of parameters, etc., which characterizes not only the flexibility of such a search setting for the preferred alternative, but, unfortunately, the complexity of this process for an expert (formation of COMPLEX RULES).

At the time of the publication of the article in our test version, there is only basic functionality, which also does not allow flexible configuration of selection rules. So far, it is limited (conditionally 1m) by the level of complexity, which in the future will be called SIMPLE RULES. It is worth noting that simple rules already provide more convenience than any (of the well-known) existing directory. Either we don’t know what we want to find in the catalog, and then we are forced to literally leaf through the catalog up and down (the sortings used are traditionally simple - by price, by novelty, etc.) looking for something that we like, or we we know very well what we want to find, and then we use filters = greatly narrow the search area, risking missing interesting options that do not go much beyond the scope of the search, but which could be interesting to us, or after making a bunch of annoying clicks, you suddenly realize that the catalog has nothing to offer us. The latter is a bit simpler - many catalogs show the number of options when applying filters.

We offer an approach that combines sophisticated sorting and range filters. For a catalog site, this means supplementing the existing functionality with an external add-on, which takes care of the preferences of users (the formation of selection rules, storage and use of successful rules). In the future, it is planned to develop the “all in box” option, possibly a DBMS based on new principles, but we will not discuss this in this article.

The emergence of multifactor sorting is due to the fact that the selection rules formed by the user (expert) can be “rolled up” into a mathematical nonlinear function. This means that with the help of such a function each element of the catalog can be evaluated (each element of the catalog is assigned a degree of correspondence to the user's preference). On the one hand, this means that it is possible in principle to sort the entire catalog according to user preference (i.e., so that the first items are the most preferred). This greatly simplifies the life of the user and should have a positive effect on increasing interest in such a directory site. On the other hand - it causes additional overhead for the sorting itself, does not allow to make partial selections of 10-20-50 and further elements per page. And here we have no questions to the existing DBMS. This has historically happened - it is required to “beat off” the shaft of “piecewise” user requests to the DBMS as quickly as possible (so that the user does not wait too much). But let's think for a moment: and not because there are so many of these requests that we cannot find what we are looking for using the existing interface? Does not the desire to offload the server side make us (users) poke more and more? We make a huge percentage of useless requests, but are we to blame for this ... We offer to enable users to make complex requests and honestly warn that they will have to wait. Maybe it would suit you specifically: less clicks and more sense = save energy on the search and spend them on the analysis of options, etc.

To demonstrate how the proposed method works, immersion in practice is required. Classic practical problems are: the problem of buying a home, the problem of choosing a car, and some others. They are distinguished by a large number of alternatives (of the order of several thousand) and a relatively small (usually five to ten) number of basic, in the general form of weakly interconnected, selection parameters. In this article we will rely on the problem of buying a home.

There are many real estate catalogs, we used the well-known real estate catalog (there is no certainty that its name should be indicated here - the corresponding link is posted on the project website) in the middle of last 2018 and based on it we formed a conditional catalog of apartments for sale ads (secondary market) in St. Petersburg. Here one could place material about how the parser was written, how they “walked” through the catalog pages in the machine, downloaded them, pulled out the advertisement data and what difficulties they encountered in assembling the conditional catalog, however, in our opinion, this material is quite typical for Habr and does not represent special interest in the light of article. We only note that it was necessary to download images from the source directory not a month after the formation of the conditional directory,

### In the dry residue

Today we are ready to show an alpha test version with basic sorting capabilities using the example of the problem of buying a home. It is worth noting the main features of the presented functionality:

1. Sorting is implemented on the client side (browser).
2. Remote formation of the sorting function occurs WITHOUT accessing the directory. Only general information on the ranges of possible values ​​of the parameters of the sorted objects is required.
3. The sorting function is an anonymous JS function (the very rare case of formation from the string “on the fly”).
4. Sorting the WHOLE catalog assumes a “run” through the anonymous function (Section 3) of EVERY catalog item (implemented by overloading the built-in sorting function).

An interactive tour on the project website will best tell you how to use the proposed functionality.

### Immediate plans and prospects

In parallel with the work on the alpha test version (the problem of buying a home), a conditional base of laptops was collected. The number of possible parameters in comparison with the basic examples is just off scale! Moreover, problems (somewhere expected) were revealed. The first is that the presence of a wide range of components in laptops makes it appropriate to organize some nesting assessment. This is due to the fact that processors, video cards and other critical components are rather difficult to compare with each other (which is a separate problem), as well as the fact that if you leave the component parameters at the level of laptop parameters, their number will be too large, and the user (expert) it will be extremely difficult to build adequate selection rules. The second problem is

In future publications, it is planned to cover in more detail the process of forming COMPLEX selection rules with interactive test functionality, plan a new test version with the formation of COMPLEX rules and / or introducing a conditional catalog of laptops as a complicated example, and also take into account your feedback in the further development of the project. Thanks for attention! PS constructive criticism of the idea and the test (demo) version of the project is welcome :)

UPD : it seems that the server turned out to be rather weak, if anyone gets a “Connection error”, please try a little later (it is advisable to refresh the page) ...

### References

Project site: mcdm-project.org

Scientific publications on the topic:

• Pavlov, AN The Technique of Multi-Criteria Decision-Making in the Study of Semi-Structured Problems / AN Pavlov, DA Pavlov, AA Pavlov, AA Slin'ko // Proceedings of the 6th Computer Science On-line Conference 2017 (CSOC2017) . April 2017 .-- Springer International Publishing Switzerland 2017, Vol 2: Cybernetics and Mathematics Applications in Intelligent Systems. P.131-140. DOI 10.1007 / 978-3-319-57264-2_13
• Pavlov, A.N. The combined method of multicriteria choice of managerial decisions based on models of knowledge representation and experiment planning / A.N. Pavlov, A.A. Pavlov, D.A. Pavlov, A.A. Slinko // “Proceedings of the A.F. Mozhaysky. " - SPb .: VKA them. A.F. Mozhaysky, 2017 .-- Issue. 656. - C. 9-17
• Pavlov AN, Methodology and technology of multicriteria analysis of criticality of failures of functional elements of general ship systems / A.N. Pavlov, A.Yu. Kulakov, D.A. Pavlov // The Second International Scientific and Practical Conference "Simulation and Integrated Modeling of Marine Engineering and Marine Transport Systems" (PCM MTMTS 2013), July 3, 2013, St. Petersburg: Proceedings of the conference / OJSC "Center for Shipbuilding and Ship Repair Technology" - St. Petersburg , 2013, S. 78-85
• Pavlov A.N., Zelentsov V.A. Multicriteria analysis of the influence of individual elements on the performance of a complex system // Management Information Systems. - 2010, No. 6 (49), S.7-12
• Pavlov A.N., Combined method of multicriteria analysis of criticality of failures of elements of complex objects / A.N. Pavlov, V.A. Zelentsov, E.A. Kopytov, // 10th International Conference “Reliability and Statistics in Transportation and Communication” (RelStat'10), October 20–23, 2010, Riga, Latvia, ISBN 978-9984-818-34-4 - Riga: Transport and Telecommunication Institute, p. 353-360

Only registered users can participate in the survey. Please come in.