
Préface
Pourtant, je suis un rêveur et un rêveur dans mon âme, en fait (dans le monde de la programmation) le maximum est "le gars du garage", mais après le
"relâchement des noix", je n'ai pas pu résister à l'idée de montrer le projet MCDM dans son ensemble et le projet de
jouet une version de test en particulier (j'ai un peu peur de l'Habraeffect, s'il y a des problèmes - nous nous excusons). Un lien vers le site Web du projet attend le lecteur à la fin de la publication (avec le sondage), il est recommandé de faire un tour sur le site Web et, idéalement, de vous familiariser avec les principales idées sous la coupe.
Pourquoi la non-linéarité?
Cette histoire a commencé par une série de publications sur le thème de l'évaluation multicritères d'objets avec des paramètres faiblement couplés (pas clairement connectés) et de travailler avec des experts qui étaient censés formuler des règles pour évaluer les objets considérés. Assez rapidement, il est devenu clair qu'il était impossible d'utiliser des critères d'évaluation linéaires lorsque l'on travaillait avec des experts. L'homme pense de façon non additive. Imaginez que vous allez choisir un ordinateur portable (cet exemple devrait être très proche du public de Habr) et envisagez une option spécifique (simplifiant de nombreuses fonctionnalités): que ce soit un i5 avec une fréquence de 3 GHz, 8 Go de RAM et une carte vidéo de la 10e série avec 4 Go de mémoire . Supposons que les alternatives disponibles pour l'achat (avec le même budget) sont les suivantes:
- i5 avec une fréquence de 3 GHz, 8 Go de RAM et une carte vidéo de la 10e série avec 4 Go de mémoire;
- i5 avec une fréquence de 3,5 GHz, 4 Go de RAM et une carte vidéo de la 10e série avec 4 Go de mémoire;
- i5 avec une fréquence de 2,5 GHz, 8 Go de RAM et une carte vidéo de la 10e série avec 6 Go de mémoire;
- i5 avec une fréquence de 3,5 GHz, 8 Go de RAM et une carte vidéo de la 10e série avec 2 Go de mémoire.
Veuillez noter que dans cet exemple, toutes les valeurs des paramètres changent de façon linéaire (diminuer / augmenter la valeur d'un paramètre d'une constante par rapport à l'option de référence entraîne une augmentation / diminution d'un autre paramètre par une autre constante). Mais cela signifie-t-il que votre préférence reste inchangée? Pas du tout! Lors d'une remise, vous pouvez toujours indiquer l'option la plus préférable pour vous, ce qui signifie que sa note est supérieure à celle des autres. Poursuivant la réflexion, prouvons avec cet exemple que le critère linéaire de préférence pour évaluer les alternatives n'est pas non plus adapté. Supposons que ce ne soit pas le cas. Par exemple, nous choisirons un ordinateur portable pour le travail (c'est-à-dire que nous ne nous attendons pas à jouer, mais pour les calculs, nous nous intéressons aux performances et à la RAM). Nous allons introduire une nouvelle option: i5 avec une fréquence de 3,5 GHz, 16 Go de RAM et une carte vidéo avec 0 Go de mémoire. On distingue trois alternatives (la numérotation est conservée pour en faciliter la perception):
2) i5 avec une fréquence de 3,5 GHz, 4 Go de RAM et une carte vidéo de la 10e série avec 4 Go de mémoire;
4) i5 avec une fréquence de 3,5 GHz, 8 Go de RAM et une carte vidéo de la 10e série avec 2 Go de mémoire;
5) i5 avec une fréquence de 3,5 GHz, 16 Go de RAM et une carte vidéo avec 0 Go de mémoire.
Compte tenu de notre préférence, le n ° 5 est évidemment la meilleure alternative. L'utilisation d'un critère d'évaluation linéaire suppose que la contribution d'une unité de la valeur du paramètre est liée linéairement à la valeur du critère (par exemple, l'augmentation du paramètre d'une unité entraîne une augmentation du critère d'une autre unité). Dans ce cas, alors que l'alternative n ° 4 est conditionnellement pire de X, l'alternative n ° 2 devrait être pire de 2X (nous n'avons pas pris en compte la carte vidéo). Mais devrions-nous vouloir jouer à des jeux pas trop exigeants après le travail - quelle option devrions-nous choisir? Ici, je ne suis pas d'accord, mais la plupart choisiront de manière convaincante l'alternative n ° 4. Le fait est que l'expert dans son jugement prend en compte les relations implicites de la contribution conjointe des paramètres à la qualité de l'alternative. Ainsi, pour notre règle de sélection, l'importance conjointe de la fréquence du processeur et de la quantité de RAM est plus importante que l'importance conjointe de la quantité de RAM et de la quantité de mémoire vidéo.
Dans le cas où il y a plus de 3 paramètres de sélection, l'expert doit évaluer l'influence non seulement des paires, mais aussi des triplets de paramètres, etc., ce qui caractérise non seulement la flexibilité d'un tel paramètre de recherche pour l'alternative préférée, mais, malheureusement, la complexité de ce processus pour un expert (formation de RÈGLES COMPLEXES).
Au moment de la publication de l'article, dans notre version de test, il n'y a que des fonctionnalités de base, qui ne permettent pas non plus une configuration flexible des règles de sélection. Jusqu'à présent, il est limité (conditionnellement à 1 m) par le niveau de complexité, qui sera à l'avenir appelé RÈGLES SIMPLES. Il convient de noter que les règles simples offrent déjà plus de commodité que n'importe quel répertoire existant (bien connu). Soit nous ne savons pas ce que nous voulons trouver dans le catalogue, puis nous sommes obligés de parcourir littéralement le catalogue de haut en bas (les tris utilisés sont traditionnellement simples - par prix, par nouveauté, etc.) à la recherche de quelque chose que nous aimons, ou nous nous savons très bien ce que nous voulons trouver, puis nous utilisons des filtres = restreindre considérablement la zone de recherche, au risque de manquer des options intéressantes qui ne vont pas bien au-delà de la portée de la recherche, mais qui pourraient être intéressantes pour nous, ou en faisant un tas de clics ennuyeux, réaliser soudainement que le répertoire ne peut rien faire offrez-nous. Ce dernier est un peu plus simple - de nombreux catalogues indiquent le nombre d'options lors de l'application de filtres.
Nous proposons une approche qui combine des filtres de tri et de gamme sophistiqués. Pour un site de catalogue, cela signifie ajouter la fonctionnalité existante à un complément externe, qui prend en compte les préférences des utilisateurs (création de règles de sélection, stockage et utilisation de règles réussies). À l'avenir, il est prévu de développer l'option «all in box», éventuellement un SGBD basé sur de nouveaux principes, mais nous n'en discuterons pas dans cet article.
Du classement au classement
L'apparition du tri multifactoriel est due au fait que les règles de sélection formées par l'utilisateur (expert) peuvent être «enroulées» en une fonction mathématique non linéaire. Cela signifie qu'à l'aide d'une telle fonction, chaque élément du catalogue peut être évalué (chaque élément du catalogue se voit attribuer un degré de correspondance selon les préférences de l'utilisateur). D'une part, cela signifie qu'il est en principe possible de trier l'ensemble du catalogue en fonction des préférences de l'utilisateur (c'est-à-dire de sorte que les premiers articles soient les plus préférés). Cela simplifie considérablement la vie de l'utilisateur et devrait avoir un effet positif sur l'augmentation de l'intérêt pour un tel site d'annuaire. D'autre part - cela entraîne des frais supplémentaires pour le tri lui-même, ne permet pas de faire des sélections partielles de 10-20-50 et d'autres éléments par page. Et ici, nous n'avons pas de questions pour le SGBD existant. Historiquement, cela s'est produit - il est nécessaire de «repousser» l'arbre des demandes d'utilisateurs «par morceaux» au SGBD aussi rapidement que possible (afin que l'utilisateur n'attende pas trop). Mais réfléchissons un instant: et non pas parce qu'il y a tellement de demandes que nous ne pouvons pas trouver ce que nous recherchons en utilisant l'interface existante? Le désir de décharger côté serveur ne nous pousse-t-il pas de plus en plus (utilisateurs)? Nous faisons un énorme pourcentage de demandes inutiles, mais sommes-nous à blâmer pour cela ... Nous proposons de permettre aux utilisateurs de faire des demandes complexes et d'avertir honnêtement qu'ils devront attendre. Peut-être que cela vous conviendrait spécifiquement: moins de clics et plus de sens = économiser de l'énergie sur la recherche et les dépenser pour l'analyse des options, etc.
Pour démontrer le fonctionnement de la méthode proposée, une immersion dans la pratique est requise. Les problèmes pratiques classiques sont: le problème de l'achat d'une maison, le problème du choix d'une voiture et quelques autres. Ils se distinguent par un grand nombre d'alternatives (de l'ordre de plusieurs milliers) et un nombre relativement faible (généralement de cinq à dix) de paramètres de sélection de base, sous la forme générale de paramètres faiblement interconnectés. Dans cet article, nous nous appuierons sur le problème de l'achat d'une maison.
Il existe de nombreux catalogues immobiliers, nous avons utilisé le catalogue immobilier bien connu (il n'y a aucune certitude que son nom doit être indiqué ici - le lien du projet est situé sur le site Web du projet) au milieu de l'année dernière 2018 et sur la base, nous avons formé un catalogue conditionnel d'appartements à vendre (marché secondaire) à St. Pétersbourg. Ici, il serait possible de placer du matériel sur la façon dont l'analyseur a été écrit, comment ils ont "parcouru" les pages du catalogue dans la machine, les ont téléchargés, ont extrait les données de la publicité et quelles difficultés ils ont rencontrées lors de l'assemblage du catalogue conditionnel, cependant, à notre avis, ce matériel est assez typique pour Habr et ne représente pas un intérêt particulier à la lumière de l'article. Nous notons seulement qu'il était nécessaire de télécharger des images du répertoire source pas un mois après la formation du répertoire conditionnel, car de nombreuses annonces avaient à ce moment été supprimées (vendues / supprimées / ...), ce qui signifie qu'un certain nombre de déclarations du répertoire conditionnel sont désormais sans vignette (ce qui n'est pas critique du tout, mais quelque peu ennuyeux).
Dans le résidu sec
Aujourd'hui, nous sommes prêts à montrer une version de test alpha avec des capacités de tri de base en utilisant l'exemple du problème de l'achat d'une maison. Il convient de noter les principales caractéristiques de la fonctionnalité présentée:
- Le tri est implémenté côté client (navigateur).
- La formation à distance de la fonction de tri se produit SANS accéder au répertoire. Seules des informations générales sur les plages de valeurs possibles des paramètres des objets triés sont nécessaires.
- La fonction de tri est une fonction JS anonyme (le cas très rare de formation à partir de la chaîne «à la volée»).
- Le tri du catalogue ENTIER suppose une «exécution» de la fonction anonyme (section 3) de CHAQUE élément du catalogue (implémenté en surchargeant la fonction de tri intégrée).
Une visite interactive sur le site Web du projet vous expliquera le mieux comment utiliser la fonctionnalité proposée.
Plans et perspectives immédiats
Parallèlement aux travaux sur la version de test alpha (problème d'achat d'une maison), une base conditionnelle d'ordinateurs portables a été collectée. Le nombre de paramètres possibles par rapport aux exemples de base est hors du commun! De plus, des problèmes (quelque part attendus) ont été révélés. Le premier est que la présence d'une large gamme de composants dans les ordinateurs portables rend approprié l'organisation d'une évaluation d'imbrication. Cela est dû au fait que les processeurs, les cartes vidéo et d'autres composants critiques sont assez difficiles à comparer les uns aux autres (ce qui est un problème distinct), ainsi qu'au fait que si vous laissez les paramètres des composants au niveau des paramètres de l'ordinateur portable, leur nombre sera trop grand et l'utilisateur (expert) il sera extrêmement difficile d'élaborer des règles de sélection adéquates. Le deuxième problème est qu'un certain nombre de paramètres sont fondamentalement numériques (par exemple, le fabricant d'un composant individuel, les technologies qui y sont implémentées, etc., sans parler du pays d'assemblage et d'autres informations mal formalisées).
Dans les futures publications, il est prévu de couvrir plus en détail le processus de création de règles de sélection COMPLEX avec une fonctionnalité de test interactif, de planifier une nouvelle version de test avec la formation de règles COMPLEX et / ou d'introduire un catalogue conditionnel d'ordinateurs portables comme exemple compliqué, et de prendre également en compte vos commentaires dans le développement ultérieur du projet. Merci de votre attention! PS critique critique de l'idée et la version test (démo) du projet est la bienvenue :)
UPD : il semble que le serveur se soit avéré plutôt faible, si quelqu'un obtient une "Erreur de connexion", essayez un peu plus tard (il est conseillé de rafraîchir la page) ...
Les références
Site du projet:
mcdm-project.orgPublications connexes:
- Pavlov, AN La technique de prise de décision multicritères dans l'étude des problèmes semi-structurés / AN Pavlov, DA Pavlov, AA Pavlov, AA Slin'ko // Actes de la 6e conférence en ligne 2017 sur l'informatique (CSOC2017) . Avril 2017 .-- Springer International Publishing Suisse 2017, Vol 2: Applications cybernétiques et mathématiques dans les systèmes intelligents. P.131-140. DOI 10.1007 / 978-3-319-57264-2_13
- Pavlov, A.N. La méthode combinée de choix multicritères de décisions managériales basée sur des modèles de représentation des connaissances et de planification d'expériences / A.N. Pavlov, A.A. Pavlov, D.A. Pavlov, A.A. Slinko // «Actes de l'A.F. Mozhaysky. " - SPb.: VKA eux. A.F. Mozhaysky, 2017 .-- Numéro. 656. - C. 9-17
- Pavlov AN, Méthodologie et technologie d'analyse multicritères de la criticité des défaillances des éléments fonctionnels des systèmes généraux de navire / A.N. Pavlov, A.Yu. Kulakov, D.A. Pavlov // Deuxième conférence internationale scientifique et pratique "Simulation et modélisation intégrée du génie maritime et des systèmes de transport maritime" (PCM MTMTS 2013), 3 juillet 2013, Saint-Pétersbourg: Actes de la conférence / OJSC "Centre for Shipbuilding and Ship Repair Technology" - Saint-Pétersbourg , 2013, art. 78-85
- Pavlov A.N., Zelentsov V.A. Analyse multicritères de l'influence d'éléments individuels sur la performance d'un système complexe // Management Information Systems. - 2010, n ° 6 (49), S.7-12
- Pavlov A.N., Méthode combinée d'analyse multicritères de la criticité des défaillances d'éléments d'objets complexes / A.N. Pavlov, V.A. Zelentsov, E.A. Kopytov, // 10e Conférence internationale «Fiabilité et statistiques dans les transports et les communications» (RelStat'10), 20-23 octobre 2010, Riga, Lettonie, ISBN 978-9984-818-34-4 - Riga: Transports et télécommunications Institut, p. 353-360