
Prólogo
Aún así, soy un soñador y un soñador en mi alma, de hecho (en el mundo de la programación) el máximo es "el chico del garaje", pero después de
"aflojar las tuercas" no pude resistir la idea de mostrar el Proyecto MCDM en su conjunto y el proyecto de
juguete una versión de prueba en particular (tengo algo de miedo al efecto Habrae, si hay problemas, nos disculpamos). Un enlace al sitio web del proyecto espera al lector al final de la publicación (junto con la encuesta), se recomienda que realice un recorrido por el sitio web e, idealmente, se familiarice con las ideas principales del corte para una introducción.
¿Por qué no linealidad?
Esta historia comenzó con una serie de publicaciones sobre el tema de la evaluación multicriterio de objetos con parámetros poco acoplados (no conectados de manera obvia) y trabajar con expertos que supuestamente formularían reglas para evaluar los objetos en consideración. Con bastante rapidez se hizo evidente que era imposible utilizar criterios de evaluación lineal cuando se trabajaba con expertos. El hombre piensa de forma no aditiva. Imagine que va a elegir una computadora portátil (este ejemplo debería estar muy cerca del público de Habr) y considere una opción específica (simplificando muchas funciones): deje que sea una i5 con una frecuencia de 3 GHz, 8 GB de RAM y una tarjeta de video de la décima serie con 4 GB de memoria . Suponga que las alternativas disponibles para la compra (con el mismo presupuesto) son las siguientes:
- i5 con una frecuencia de 3GHz, 8GB de RAM y una tarjeta de video de la décima serie con 4GB de memoria;
- i5 con una frecuencia de 3.5 GHz, 4 GB de RAM y una tarjeta de video de la décima serie con 4 GB de memoria;
- i5 con una frecuencia de 2.5 GHz, 8 GB de RAM y una tarjeta de video de la décima serie con 6 GB de memoria;
- i5 con una frecuencia de 3.5 GHz, 8 GB de RAM y una tarjeta de video de la décima serie con 2GB de memoria.
Tenga en cuenta que en este ejemplo, todos los valores de los parámetros cambian linealmente (disminuir / aumentar el valor de un parámetro en una constante en relación con la versión de referencia conduce a un aumento / disminución de otro parámetro en otra constante). ¿Pero esto significará que su preferencia se mantiene sin cambios? ¡Para nada! Con un descuento, siempre puede indicar la opción más preferible para usted, lo que significa que su calificación es más alta que la de los demás. Continuando con el pensamiento, demostremos con este ejemplo que el criterio lineal de preferencia para evaluar alternativas tampoco es adecuado. Supongamos que este no es el caso. Como ejemplo, elegiremos una computadora portátil para el trabajo (es decir, no esperamos jugar, pero para los cálculos estamos interesados en el rendimiento y la RAM). Presentaremos una nueva opción: i5 con una frecuencia de 3.5 GHz, 16 GB de RAM y una tarjeta de video con 0 GB de memoria. Distinguimos tres alternativas (la numeración se conserva para facilitar la percepción):
2) i5 con una frecuencia de 3.5 GHz, 4 GB de RAM y una tarjeta de video de la décima serie con 4 GB de memoria;
4) i5 con una frecuencia de 3.5 GHz, 8 GB de RAM y una tarjeta de video de la décima serie con 2 GB de memoria;
5) i5 con una frecuencia de 3.5 GHz, 16 GB de RAM y una tarjeta de video con 0 GB de memoria.
Dada nuestra preferencia, el No. 5 es obviamente la mejor alternativa. El uso de un criterio de evaluación lineal supone que la contribución de una unidad del valor del parámetro está relacionada linealmente con el valor del criterio (por ejemplo, aumentar el parámetro en uno conduce a un aumento en el criterio en alguna otra unidad). En este caso, mientras que la alternativa No. 4 es condicionalmente peor para X, la alternativa No. 2 debería ser peor para 2X (no tomamos en cuenta la tarjeta de video). Pero, ¿deberíamos jugar juegos no demasiado exigentes después del trabajo, qué opción deberíamos elegir? Aquí puedo estar en desacuerdo, pero la mayoría elegirá de manera convincente la alternativa No. 4. La cuestión es que el experto a su juicio tiene en cuenta las relaciones implícitas de la contribución conjunta de los parámetros a la calidad de la alternativa. Entonces, para nuestra regla de selección, la importancia conjunta de la frecuencia del procesador y la cantidad de RAM es más importante que la importancia conjunta de la cantidad de RAM y la cantidad de memoria de video.
En el caso de que haya más de 3 parámetros de selección, se requiere que el experto evalúe la influencia no solo de pares, sino también triples de parámetros, etc., lo que caracteriza no solo la flexibilidad de dicha configuración de búsqueda para la alternativa preferida, sino, desafortunadamente, la complejidad de este proceso para un experto (formación de NORMAS COMPLEJAS).
En el momento de la publicación del artículo, en nuestra versión de prueba solo hay una funcionalidad básica, que tampoco permite una configuración flexible de las reglas de selección. Hasta ahora, está limitado (condicionalmente 1 m) por el nivel de complejidad, que en el futuro se denominará REGLAS SIMPLES. Vale la pena señalar que las reglas simples ya proporcionan más comodidad que cualquier directorio existente (del conocido). O no sabemos lo que queremos encontrar en el catálogo, y luego nos vemos obligados a hojear literalmente el catálogo hacia arriba y hacia abajo (las clasificaciones utilizadas son tradicionalmente simples, por precio, por novedad, etc.) buscando algo que nos guste, o nosotros sabemos muy bien lo que queremos encontrar, y luego usamos filtros = reducir en gran medida el área de búsqueda, con el riesgo de perder opciones interesantes que no van mucho más allá del alcance de la búsqueda, pero que podrían ser interesantes para nosotros, o haciendo un montón de clics molestos, de repente darse cuenta de que el directorio no puede hacer nada ofrecernos Este último es un poco más simple: muchos catálogos muestran la cantidad de opciones al aplicar filtros.
Ofrecemos un enfoque que combina sofisticados filtros de clasificación y rango. Para un sitio de catálogo, esto significa complementar la funcionalidad existente con un complemento externo, que se ocupa de las preferencias de los usuarios (la formación de reglas de selección, almacenamiento y uso de reglas exitosas). En el futuro, se planea desarrollar la opción "todo en caja", posiblemente un DBMS basado en nuevos principios, pero no lo discutiremos en este artículo.
De calificación a calificación
La aparición de la clasificación multifactorial se debe al hecho de que las reglas de selección formadas por el usuario (experto) se pueden "enrollar" en una función matemática no lineal. Esto significa que, con la ayuda de dicha función, se puede evaluar cada elemento del catálogo (a cada elemento del catálogo se le asigna un grado de correspondencia según las preferencias del usuario). Por un lado, esto significa que, en principio, es posible ordenar todo el catálogo de acuerdo con las preferencias del usuario (es decir, para que los primeros artículos sean los más preferidos). Esto simplifica enormemente la vida del usuario y debería tener un efecto positivo en aumentar el interés en dicho sitio de directorio. Por otro lado, causa una sobrecarga adicional para la clasificación en sí, no permite realizar selecciones parciales de 10-20-50 y otros elementos por página. Y aquí no tenemos preguntas para el DBMS existente. Esto ha sucedido históricamente: es necesario "superar" el eje de las solicitudes de usuario "por partes" al DBMS lo más rápido posible (para que el usuario no espere demasiado). Pero pensemos por un momento: ¿y no porque hay tantas de estas solicitudes que no podemos encontrar lo que estamos buscando usando la interfaz existente? ¿El deseo de descargar el lado del servidor no hace que nosotros (los usuarios) toquemos más y más? Hacemos un gran porcentaje de solicitudes inútiles, pero somos los culpables de esto ... Ofrecemos a los usuarios hacer solicitudes complejas y advertir honestamente que tendrán que esperar. Tal vez esto le convenga específicamente: menos clics y más sentido = ahorre energía en la búsqueda y gastéelos en el análisis de opciones, etc.
Para demostrar cómo funciona el método propuesto, se requiere inmersión en la práctica. Los problemas prácticos clásicos son: el problema de comprar una casa, el problema de elegir un automóvil y algunos otros. Se distinguen por una gran cantidad de alternativas (del orden de varios miles) y una cantidad relativamente pequeña (generalmente de cinco a diez) de parámetros básicos, en la forma general de parámetros de selección débilmente interconectados. En este artículo confiaremos en el problema de comprar una casa.
Hay muchos catálogos de bienes raíces, utilizamos el conocido catálogo de bienes raíces (no hay certeza de que su nombre deba indicarse aquí; el enlace del proyecto se encuentra en el sitio web del proyecto) a mediados de 2018 y, sobre la base, formamos un catálogo condicional de anuncios de apartamentos en venta (mercado secundario) en St. Petersburgo Aquí sería posible colocar material sobre cómo se escribió el analizador, cómo "caminaron" a través de las páginas del catálogo en la máquina, los descargaron, sacaron los datos publicitarios y las dificultades que encontraron para armar el catálogo condicional, sin embargo, en nuestra opinión, este material es bastante típico para Habr y no representa un interés especial a la luz del artículo. Solo notamos que era necesario descargar imágenes del directorio fuente no un mes después de la formación del directorio condicional, ya que muchos anuncios para ese momento habían sido eliminados (vendidos / eliminados / ...), lo que significa que varias declaraciones del directorio condicional ahora están sin una miniatura (lo cual no es crítico en absoluto, pero sí algo molesto).
En el residuo seco
Hoy estamos listos para mostrar una versión de prueba alfa con capacidades básicas de clasificación utilizando el ejemplo del problema de comprar una casa. Vale la pena señalar las principales características de la funcionalidad presentada:
- La ordenación se implementa en el lado del cliente (navegador).
- La formación remota de la función de clasificación se produce SIN acceder al directorio. Solo se requiere información general sobre los rangos de valores posibles de los parámetros de los objetos ordenados.
- La función de clasificación es una función JS anónima (el caso muy raro de formación a partir de la cadena "sobre la marcha").
- La clasificación del catálogo ENTERO supone una "ejecución" a través de la función anónima (Sección 3) de CADA elemento del catálogo (implementado al sobrecargar la función de clasificación incorporada).
Una visita interactiva en el sitio web del proyecto le indicará mejor cómo usar la funcionalidad propuesta.
Planes inmediatos y perspectivas
En paralelo con el trabajo en la versión de prueba alfa (el problema de comprar una casa), se recopiló una base condicional de computadoras portátiles. ¡El número de parámetros posibles en comparación con los ejemplos básicos está fuera de los gráficos! Además, se revelaron problemas (en algún lugar esperado). La primera es que la presencia de una amplia gama de componentes en las computadoras portátiles hace que sea apropiado organizar algunas evaluaciones de anidamiento. Esto se debe al hecho de que los procesadores, las tarjetas de video y otros componentes críticos son bastante difíciles de comparar entre sí (lo cual es un problema separado), así como al hecho de que si deja los parámetros del componente al nivel de los parámetros de la computadora portátil, su número será demasiado grande y el usuario (experto) Será extremadamente difícil construir reglas de selección adecuadas. El segundo problema es que una serie de parámetros son fundamentalmente numéricos (por ejemplo, el fabricante de un componente individual, las tecnologías implementadas en él, etc., sin mencionar el país de ensamblaje y otra información poco formalizada).
En futuras publicaciones, se planea cubrir con más detalle el proceso de creación de reglas de selección COMPLEJO con funcionalidad de prueba interactiva, planificar una nueva versión de prueba con la formación de reglas COMPLEJAS y / o introducir un catálogo condicional de computadoras portátiles como un ejemplo complicado, y también tener en cuenta sus comentarios en el desarrollo posterior del proyecto. Gracias por su atencion! PS crítica constructiva de la idea y la versión de prueba (demo) del proyecto es bienvenida :)
UPD : parece que el servidor resultó ser bastante débil, si alguien recibe un "Error de conexión", intente un poco más tarde (es recomendable actualizar la página) ...
Referencias
Sitio del proyecto:
mcdm-project.orgPublicaciones relacionadas:
- Pavlov, AN La técnica de toma de decisiones de criterios múltiples en el estudio de problemas semiestructurados / AN Pavlov, DA Pavlov, AA Pavlov, AA Slin'ko // Actas de la 6ta Conferencia en línea de informática 2017 (CSOC2017) . Abril de 2017 .-- Springer International Publishing Switzerland 2017, Vol. 2: Aplicaciones de cibernética y matemáticas en sistemas inteligentes. P.131-140. DOI 10.1007 / 978-3-319-57264-2_13
- Pavlov, A.N. El método combinado de elección multicriterio de decisiones gerenciales basadas en modelos de representación del conocimiento y planificación de experimentos / A.N. Pavlov, A.A. Pavlov, D.A. Pavlov, A.A. Slinko // "Actas de la A.F. Mozhaysky ". - SPb .: VKA ellos. A.F. Mozhaysky, 2017 .-- Edición. 656. - C. 9-17
- Pavlov AN, Metodología y tecnología de análisis multicriterios de criticidad de fallas de elementos funcionales de sistemas generales de buques / A.N. Pavlov, A.Yu. Kulakov, D.A. Pavlov // Segunda Conferencia Internacional Científica y Práctica "Simulación y Modelado Integrado de Ingeniería Marina y Sistemas de Transporte Marítimo" (PCM MTMTS 2013), 3 de julio de 2013, San Petersburgo: Actas de la conferencia / OJSC "Centro de Tecnología de Construcción y Reparación de Barcos" - San Petersburgo , 2013, S. 78-85
- Pavlov A.N., Zelentsov V.A. Análisis multicriterio de la influencia de elementos individuales en el rendimiento de un sistema complejo // Sistemas de información de gestión. - 2010, n. ° 6 (49), S.7-12
- Pavlov A.N., Método combinado de análisis multicriterio de la criticidad de fallas de elementos de objetos complejos / A.N. Pavlov, V.A. Zelentsov, E.A. Kopytov, // Décima Conferencia Internacional "Fiabilidad y estadísticas en transporte y comunicación" (RelStat'10), 20-23 de octubre de 2010, Riga, Letonia, ISBN 978-9984-818-34-4 - Riga: Transporte y telecomunicaciones Instituto, p. 353-360