top of page
  • Foto do escritorJoão Ataide

Como pesquisa operacional me ajudou a decidir qual notebook comprar?

Atualizado: 15 de fev. de 2023


 

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 .


bottom of page