Biblioteca Topsis
Project description
TOPSIS - Técnica para Ordenação de Preferências por Similaridade com a Solução Ideal
Descrição
Este projeto implementa o método TOPSIS (Technique for Order Preference by Similarity to Ideal Solution), uma técnica de análise de decisão multicritério. O objetivo é classificar alternativas com base em múltiplos critérios, considerando pesos diferentes para cada um.
Autores
- Mateus da Silva
- Lucas Luis
Requisitos
Antes de rodar o código, instale as dependências necessárias. Você pode fazer isso com o comando:
pip install -r requirements.txt
Como Usar
Entrada de Dados
O código recebe uma entrada no formato JSON ou dicionário Python contendo:
- method: Nome do método ("TOPSIS").
- parameters: Um dicionário contendo:
- alternatives: Lista das alternativas.
- criteria: Lista dos critérios.
- performance_matrix: Dicionário onde cada alternativa possui uma lista de valores para cada critério.
- criteria_types: Especificação se o critério é de custo (min) ou benefício (max).
- weights: Pesos de cada critério.
Exemplo de Entrada:
{
"method": "TOPSIS",
"parameters": {
"alternatives": ["Palio", "HB20", "Corolla"],
"criteria": ["Consumo", "Conforto", "Preço", "Reputação"],
"performance_matrix": {
"Palio": [15, 6, 25000, 7],
"HB20": [12, 7, 35000, 7],
"Corolla": [10, 9, 55000, 8]
},
"criteria_types": {"Consumo": "min", "Conforto": "max", "Preço": "min", "Reputação": "max"},
"weights": {"Consumo": 0.3, "Conforto": 0.05, "Preço": 0.6, "Reputação": 0.05}
}
}
Execução do Código
Para rodar o código, basta executar:
from main import TOPSIS
data = { # Insira os dados conforme o formato acima }
topsis = TOPSIS(data)
resultado = topsis.calculate()
print(resultado)
Saída Esperada
O código retorna um dicionário contendo:
- positive_ideal_solution: Solução ideal positiva.
- negative_ideal_solution: Solução ideal negativa.
- distance_to_pis: Distância de cada alternativa à solução ideal positiva.
- distance_to_nis: Distância de cada alternativa à solução ideal negativa.
- topsis_score: Coeficiente de proximidade.
- ranking: Lista das alternativas ordenadas.
Exemplo de Saída:
{
"method": "TOPSIS",
"results": {
"positive_ideal_solution": {"Consumo": 10.0, "Conforto": 9.0, "Preço": 25000.0, "Reputação": 8.0},
"negative_ideal_solution": {"Consumo": 15.0, "Conforto": 6.0, "Preço": 55000.0, "Reputação": 7.0},
"distance_to_pis": {"Palio": 0.7, "HB20": 0.5, "Corolla": 0.3},
"distance_to_nis": {"Palio": 0.3, "HB20": 0.5, "Corolla": 0.7},
"topsis_score": {"Palio": 0.3, "HB20": 0.5, "Corolla": 0.7},
"ranking": ["Corolla", "HB20", "Palio"]
}
}
Licença
Este projeto está sob a licença MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file topsis_cin-0.1.1.tar.gz.
File metadata
- Download URL: topsis_cin-0.1.1.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be8a5fcf5b6a0cc183bf960207155f6ea446bef470a8c4bfcaa9c9af7ba90da7
|
|
| MD5 |
c395bf2ed1f2f66bde777499972d7f8d
|
|
| BLAKE2b-256 |
e80d1f953ec150d29d62612ca623c5a3f239e714cbcb46ca9976623718f2625f
|
File details
Details for the file topsis_cin-0.1.1-py3-none-any.whl.
File metadata
- Download URL: topsis_cin-0.1.1-py3-none-any.whl
- Upload date:
- Size: 5.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4324074fb6ad2d7380bd12c6f98f6fc740b64d12ef339e6592ee88ac14b1b3a
|
|
| MD5 |
adb5481d8f92f3f5a98297e70b48646c
|
|
| BLAKE2b-256 |
f1e1c0a8a39c0d56ffc481e58fdea345c8b7c4a8336a5b2b25a63b3ee285b7c7
|