O problema da mochila é um problema de otimização bem conhecido. É encontrado, por exemplo, na embalagem de contêineres. Um contêiner de transporte tem uma capacidade de peso que pode suportar. Dada uma coleção de itens a serem despachados, onde cada item possui um valor e um peso, o problema é selecionar os itens ideais para embalar no contêiner de transporte. Este problema de otimização pode ser definido como um objetivo com uma restrição:
Este exemplo resolve esse problema de mochila reformulando-o como um modelo quadrático restrito (CQM) e submetendo-o a um solucionador CQM híbrido Leap.
Para executar a demonstração padrão, digite o comando:
python knapsack.py
Para visualizar as opções disponíveis, digite o comando:
python knapsack.py --help
Os argumentos de linha de comando permitem selecionar um dos vários conjuntos de dados (na pasta /data
) e definir a capacidade de frete. Os arquivos de dados são formulados como linhas de itens, cada um definido como um par de peso e valor.
O código em knapsack.py
inclui três funções principais:
build_knapsack_cqm()
cria um CQM definindo um objetivo e uma restrição como segue:
parse_inputs()
é uma função utilitária que lê dados dos arquivos de exemplo.
parse_solution()
analisa e exibe os resultados retornados do solucionador.
Lançado sob a licença Apache 2.0. Consulte o arquivo LICENÇA.