
Prefácio
Ainda assim, sou um sonhador e um sonhador em minha alma, de fato (no mundo da programação) o máximo é "o cara da garagem", mas depois do
"afrouxamento das nozes" não pude resistir à ideia de mostrar o Projeto MCDM como um todo e o projeto de
brinquedos uma versão de teste em particular (eu tenho um pouco de medo do efeito Habrae, se houver problemas - pedimos desculpas). Um link para o site do projeto aguarda o leitor no final da publicação (junto com a pesquisa); é recomendável fazer um tour no site e, idealmente, familiarizar-se com as principais idéias subjacentes a uma introdução.
Por que não linearidade?
Essa história começou com uma série de publicações sobre o tópico avaliação de múltiplos critérios de objetos com parâmetros pouco acoplados (não conectados por óbvios) e trabalho com especialistas que deveriam formular regras para avaliar os objetos em consideração. Muito rapidamente ficou claro que era impossível usar critérios de avaliação linear ao trabalhar com especialistas. O homem pensa de forma não aditiva. Imagine que você escolherá um laptop (este exemplo deve ser muito próximo do público da Habr) e considere alguma opção específica (simplificando muitos recursos): seja um i5 com frequência de 3 GHz, 8 GB de RAM e uma placa de vídeo da 10ª série com 4 GB de memória . Suponha que as alternativas disponíveis para a compra (com o mesmo orçamento) sejam as seguintes:
- i5 com frequência de 3GHz, 8GB de RAM e uma placa de vídeo da 10ª série com 4GB de memória;
- i5 com uma frequência de 3,5 GHz, 4 GB de RAM e uma placa de vídeo da 10ª série com 4 GB de memória;
- i5 com uma frequência de 2,5 GHz, 8 GB de RAM e uma placa de vídeo da 10ª série com 6 GB de memória;
- i5 com uma frequência de 3,5 GHz, 8 GB de RAM e uma placa de vídeo da 10ª série com 2 GB de memória.
Observe que, neste exemplo, todos os valores de parâmetros mudam linearmente (diminuir / aumentar o valor de um parâmetro por uma constante em relação à opção de referência leva a um aumento / diminuição de outro parâmetro por outra constante). Mas isso significa que sua preferência permanece inalterada? Nem um pouco! Com um desconto, você sempre pode indicar a opção mais preferível para si mesmo, o que significa que a classificação é mais alta que a dos outros. Continuando o pensamento, vamos provar com este exemplo que o critério linear de preferência para avaliar alternativas também não é adequado. Suponha que esse não seja o caso. Como exemplo, escolheremos um laptop para o trabalho (ou seja, não esperamos jogar, mas para os cálculos estamos interessados em desempenho e RAM). Vamos apresentar uma nova opção: i5 com uma frequência de 3,5 GHz, 16 GB de RAM e uma placa de vídeo com 0 GB de memória. Distinguimos três alternativas (a numeração é preservada para facilitar a percepção):
2) i5 com frequência de 3,5 GHz, 4 GB de RAM e placa de vídeo da 10ª série com 4 GB de memória;
4) i5 com frequência de 3,5 GHz, 8 GB de RAM e placa de vídeo da 10ª série com 2 GB de memória;
5) i5 com uma frequência de 3,5 GHz, 16 GB de RAM e uma placa de vídeo com 0 GB de memória.
Dada a nossa preferência, o número 5 é obviamente a melhor alternativa. O uso de um critério de avaliação linear pressupõe que a contribuição de uma unidade do valor do parâmetro esteja linearmente relacionada ao valor do critério (por exemplo, aumentar o parâmetro em um leva a um aumento no critério por outra unidade). Nesse caso, enquanto a alternativa nº 4 é condicionalmente pior em X, a alternativa nº 2 deve ser pior em 2X (não levamos em consideração a placa de vídeo). Mas devemos querer jogar jogos não muito exigentes depois do trabalho - qual opção devemos escolher? Aqui posso discordar, mas a maioria escolherá de forma convincente a alternativa número 4. O fato é que o especialista em seu julgamento leva em consideração as relações implícitas da contribuição conjunta dos parâmetros para a qualidade da alternativa. Portanto, para nossa regra de seleção, o significado conjunto da frequência do processador e a quantidade de RAM é mais importante do que o significado conjunto da quantidade de RAM e da quantidade de memória de vídeo.
No caso em que existem mais de 3 parâmetros de seleção, o especialista é obrigado a avaliar a influência não apenas de pares, mas também de triplos, etc., o que caracteriza não apenas a flexibilidade de uma configuração de pesquisa para a alternativa preferida, mas, infelizmente, a complexidade desse processo para um especialista (formação de REGRAS COMPLEXAS).
No momento da publicação do artigo, em nossa versão de teste, havia apenas funcionalidade básica, o que também não permite a configuração flexível das regras de seleção. Até o momento, é limitado (condicionalmente 1m) pelo nível de complexidade, que no futuro será chamado de REGRAS SIMPLES. Vale ressaltar que regras simples já oferecem mais comodidade do que qualquer diretório existente (conhecido). Ou não sabemos o que queremos encontrar no catálogo e somos forçados a folhear literalmente o catálogo para cima e para baixo (as classificações usadas são tradicionalmente simples - por preço, por novidade etc.) procurando algo que gostamos ou que sabemos muito bem o que queremos encontrar e, em seguida, usamos filtros = estreitam muito a área de pesquisa, correndo o risco de perder opções interessantes que não vão muito além do escopo da pesquisa, mas que podem ser interessantes para nós ou com cliques irritantes, de repente percebe que o diretório não pode fazer nada nos oferecer. O último é um pouco mais simples - muitos catálogos mostram o número de opções ao aplicar filtros.
Oferecemos uma abordagem que combina filtros sofisticados de classificação e intervalo. Para um site de catálogo, isso significa complementar a funcionalidade existente com um complemento externo, que cuida das preferências dos usuários (a formação de regras de seleção, armazenamento e uso de regras bem-sucedidas). No futuro, está planejado o desenvolvimento da opção "tudo na caixa", possivelmente um SGBD baseado em novos princípios, mas não discutiremos isso neste artigo.
Da classificação à classificação
A aparência da classificação multifatorial deve-se ao fato de que as regras de seleção formadas pelo usuário (especialista) podem ser “agregadas” a uma função matemática não-linear. Isso significa que, com a ajuda dessa função, cada elemento do catálogo pode ser avaliado (cada elemento do catálogo recebe um grau de correspondência com a preferência do usuário). Por um lado, isso significa que é possível, em princípio, classificar todo o catálogo de acordo com a preferência do usuário (ou seja, para que os primeiros itens sejam os mais preferidos). Isso simplifica bastante a vida do usuário e deve ter um efeito positivo no aumento do interesse em um site de diretório. Por outro lado - causa sobrecarga adicional para a classificação em si, não permite fazer seleções parciais de 10-20-50 e outros elementos por página. E aqui não temos perguntas para o DBMS existente. Isso aconteceu historicamente - é necessário "superar" o eixo de solicitações "por partes" do usuário para o DBMS o mais rápido possível (para que o usuário não espere demais). Mas vamos pensar por um momento: e não porque existem tantas solicitações que não conseguimos encontrar o que procuramos usando a interface existente? O desejo de descarregar o lado do servidor não nos faz (usuários) cutucar cada vez mais? Fazemos uma grande porcentagem de solicitações inúteis, mas somos os culpados por isso ... Oferecemos aos usuários a possibilidade de fazer solicitações complexas e honestamente alertar que eles terão que esperar. Talvez isso lhe convenha especificamente: menos cliques e mais senso = economize energia na pesquisa e gaste-os na análise de opções, etc.
Para demonstrar como o método proposto funciona, é necessária a imersão na prática. Os problemas práticos clássicos são: o problema de comprar uma casa, o problema de escolher um carro e alguns outros. Eles se distinguem por um grande número de alternativas (da ordem de vários milhares) e por um número relativamente pequeno (geralmente de cinco a dez) de parâmetros básicos, na forma geral de parâmetros de seleção fracamente interconectados. Neste artigo, contaremos com o problema de comprar uma casa.
Existem muitos catálogos imobiliários, usamos o conhecido catálogo imobiliário (não há certeza de que seu nome deve ser indicado aqui - o link do projeto está localizado no site do projeto) em meados de 2018 e, com base nisso, formamos um catálogo condicional de apartamentos para anúncios de venda (mercado secundário) em St. Petersburg. Aqui, pode-se colocar material sobre como o analisador foi escrito, como eles "percorreram" as páginas do catálogo na máquina, baixaram-nos, extraíram os dados do anúncio e que dificuldades encontraram na montagem do catálogo condicional; no entanto, em nossa opinião, esse material é bastante típico para Habr e não representa um interesse especial à luz do artigo. Observamos apenas que era necessário fazer o download de imagens do diretório de origem nem um mês após a formação do diretório condicional, pois muitos anúncios haviam sido excluídos (vendidos / removidos / ...) nessa época, o que significa que várias declarações do diretório condicional estão agora sem uma miniatura (que não é nada crítico, mas um pouco irritante).
No resíduo seco
Hoje estamos prontos para mostrar uma versão de teste alfa com recursos básicos de classificação usando o exemplo do problema de comprar uma casa. Vale ressaltar as principais características da funcionalidade apresentada:
- A classificação é implementada no lado do cliente (navegador).
- A formação remota da função de classificação ocorre SEM acessar o diretório. Somente informações gerais sobre os intervalos de valores possíveis dos parâmetros dos objetos classificados são necessárias.
- A função de classificação é uma função JS anônima (o caso muito raro de formação da string "on the fly").
- A classificação do catálogo INTEIRO pressupõe uma "execução" através da função anônima (Seção 3) de TODOS os itens do catálogo (implementados sobrecarregando a função de classificação interna).
Um tour interativo no site do projeto mostrará melhor como usar a funcionalidade proposta.
Planos e perspectivas imediatas
Paralelamente ao trabalho na versão de teste alfa (o problema de comprar uma casa), foi coletada uma base condicional de laptops. O número de parâmetros possíveis em comparação com os exemplos básicos está fora dos gráficos! Além disso, problemas (em algum lugar esperado) foram revelados. A primeira é que a presença de uma ampla variedade de componentes nos laptops torna apropriado organizar alguma avaliação de aninhamento. Isso se deve ao fato de que processadores, placas de vídeo e outros componentes críticos são bastante difíceis de comparar entre si (o que é um problema separado), além do fato de que, se você deixar os parâmetros do componente no nível dos parâmetros do laptop, seu número será muito grande e o usuário (especialista) será extremamente difícil criar regras de seleção adequadas. O segundo problema é que vários parâmetros são fundamentalmente numéricos (por exemplo, o fabricante de um componente individual, as tecnologias nele implementadas etc.), sem mencionar o país da montagem e outras informações mal formalizadas.
Em publicações futuras, está planejado para cobrir com mais detalhes o processo de criação de regras de seleção COMPLEX com funcionalidade de teste interativo, planejar uma nova versão de teste com a formação de regras COMPLEX e / ou introduzir um catálogo condicional de laptops como um exemplo complicado, além de levar em consideração seus comentários no desenvolvimento futuro do projeto. Obrigado pela atenção! PS críticas construtivas à idéia e à versão de teste (demo) do projeto são bem-vindas :)
UPD : parece que o servidor ficou bastante fraco, se alguém receber um "Erro de conexão", tente um pouco mais tarde (é aconselhável atualizar a página) ...
Referências
Site do projeto:
mcdm-project.orgPublicações relacionadas:
- Pavlov, AN A técnica da tomada de decisão multicritério no estudo de problemas semiestruturados / AN Pavlov, DA Pavlov, AA Pavlov, AA Pavlov, AA Slin'ko // Anais da 6ª Conferência On-line de Ciência da Computação 2017 (CSOC2017) . Abril de 2017 - Springer International Publishing Switzerland 2017, Vol. 2: Aplicações de Cibernética e Matemática em Sistemas Inteligentes. P.131-140. DOI 10.1007 / 978-3-319-57264-2_13
- Pavlov, A.N. O método combinado de escolha multicritério de decisões gerenciais com base em modelos de representação do conhecimento e planejamento de experimentos / A.N. Pavlov, A.A. Pavlov, D.A. Pavlov, A.A. Slinko // "Procedimentos da A.F. Mozhaysky ". - SPb.: VKA eles. A.F. Mozhaysky, 2017 - edição. 656. - C. 9-17
- Pavlov AN, Metodologia e tecnologia de análise multicritério da criticidade de falhas de elementos funcionais de sistemas gerais de navios / A.N. Pavlov, A.Yu. Kulakov, D.A. Pavlov // Segunda Conferência Científica e Prática Internacional "Simulação e Modelagem Integrada de Engenharia Marítima e Sistemas de Transporte Marinho" (PCM MTMTS 2013), 3 de julho de 2013, São Petersburgo: Anais da conferência / OJSC "Center for Shipbuilding and Ship Repair Technology" - São Petersburgo , 2013, S. 78-85
- Pavlov A.N., Zelentsov V.A. Análise multicritério da influência de elementos individuais no desempenho de um sistema complexo // Sistemas de Informação Gerencial. - 2010, n.o 6 (49), S.7-12
- Pavlov A.N., Método combinado de análise multicritério da criticidade de falhas de elementos de objetos complexos / A.N. Pavlov, V.A. Zelentsov, E.A. Kopytov, // 10ª Conferência Internacional “Confiabilidade e Estatística em Transportes e Comunicação” (RelStat'10), 20–23 de outubro de 2010, Riga, Letônia, ISBN 978-9984-818-34-4 - Riga: Transportes e Telecomunicações Instituto, p. 353-360