Como muitos sabem, eu sou aluno do curso de MBA em Pesquisa Operacional e Tomada de Decisão da BsBr, curso coordenado pelo professor Dr. Marcos Santos, um dos caras mais incríveis da PO no Brasil. Neste MBA ao final de cada disciplina é pedido para que os alunos, em grupo, realizem um pequeno caso prático com dados reais utilizando os métodos apresentados. Com isso, exatamente na disciplina de métodos de sobreclassificação decidi unir o útil ao agradável, juntei a atividade com a minha necessidade comprar um novo notebook de alto desempenho para fazer meus trabalhos de visão computacional e sugeri para meu grupo esse tema.
Então realizei juntamente com meu grupo uma busca das seguindo algumas premissas:
Notebooks de alto desempenho com de processador i7;
Notebooks em lojas nacionais das marcas Asus, Avell e Dell, com suporte de no mínimo 1 ano;
Slot para HD adicional para a máquina;
Preço referente a aquisição sem desconto.
Coletando os dados dos notebooks referentes aos seguintes critérios:
Memória RAM (GB)
Armazenamento (Tb)
Placa de Vídeo (GB)
Processador (Hz)
Preço (R$)
Obtendo então a seguinte matriz de decisão.
Para resolver o problema utilizei a biblioteca pyDecision do python e escolhi o método do Electre III, pois o intuito era realizar um ranking dos melhores notebooks, com base em pseudos critérios, considerando os pesos para cada critério estabelecido. Esse método ainda tem a vantagem das relações de discordância e concordância serem estabelecidos pelo decisor (comprador final no nosso caso) e ainda revelam o grau de rigor dessas relações.
Os pesos e limiares de concordância (p), discordância(q), veto (v) e os pesos (w) foram geradas através discussões com o usuário final, com o intuito de que tais parâmetros sejam o mais realistas quanto aos interesses finais.
Executando a função electre_iii podemos escolher se vai gerar ou não o grafo de decisão, esse ilustra quais alternativas que se destacaram e a depender do modelo multicritério que você escolher terá uma melhor resposta e poderá te auxiliar na tomada de decisão.
global_concordance, credibility, rank_D, rank_A, rank_N, rank_P = electre_iii(ds_list, P = P, Q = Q, V = V, W = W, graph = True)
Devido ao modelo gerar uma lista um pouco truncada como resultado, realizei o seguinte código abaixo para fazer o split e transformar o resultado em um data frame.
rank_D_final = []
rank = []
k = 1
for i in range(0, len(rank_D)):
splited = list(rank_D[i].split('; '))
for s in splited:
rank_D_final.append(s)
rank.append(k)
k += 1
resultado = pd.DataFrame()
resultado["Alternativas"] = rank_D_final
resultado["Resultado"] = rank
E posteriormente, peguei o nome real das alternativas do nosso dataset inicial, mostrando então o resultado do modelo e o nome de cada notebook.
dic = ds.iloc[:, 0:2].set_index("Alternativas")
dic.join(resultado.set_index("Alternativas"),on="Alternativas").sort_values("Resultado")
É possível observar que o AVELL A65 MOB é o mais caro de todos os notebooks que coloquei na busca, entretanto, a sua placa gráfica é a melhor se sobressaindo devido a isso. Já o outro notebook em primeiro lugar o AVELL A70 MOB seu preço é menor que o A65, mas se destaca dos outros nos requisitos técnicos, sendo o ele o provável de ser adquirido.
Com essa aplicação simples de multicritério foi possível resolver o meu problema de indecisão para comprar a nova máquina, infelizmente não realizei a compra ainda, mas estou planejando em realizá-la logo, aí farei um review no canal do Spatial Hackers sobre ela. Aqui entre nós, fico feliz pela AVELL ter se destacado das demais, em especial por ser uma montadora brasileira a qual tenho uma experiência ótima que dura mais de 5 anos.
Agora deixo esse finalzinho aqui para agradecer aos feras do meu grupo do MBA, Daniella Tombi, Geraldo Jorge, Leonardo Ciotti, Lucas Tayrone e Robsion Gomes .
Comments