Skip to content

Trabalho desenvolvido na disciplina de pesquisa operacional.

Notifications You must be signed in to change notification settings

WellersonPrenholato/Pythonisa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

🔮 Pythonisa

Python

📖 Overview

Pythonisa é um código que encapsula funções da biblioteca Pulp para resolução de problema de Programação Linear que busca maximizar lucros de uma panificadora com base nos ingredientes disponíveis no estoque.

Curiosidade: Pithonisa, do latin pythonīssa,ae é a denominação utilizada na antiguidade para referir-se às mulheres que supostamente tinham o dom de prever o futuro. Também conhecida como profetisas.

🔨 Funcionamento básico

Pythonisa faz a leitura de dados de uma planilha online no serviço Google Sheets com dados baseados na receita de produção de alguns tipos de pães de uma panificadora e monta e determina a solução, quando possível. Para isso, é necessário ter um arquivo de credenciais que dão acesso somente leitura à este arquivo. Você pode ver como gerar esse arquivo aqui

Métodos disponíveis
  • dataframeFromSheet: Este método retorna um dataframe construído a partir da leitura de uma planilha gsheets.

    def dataframeFromSheet(source,
                        credentialsFilename, 
                        worksheet):

    onde

    source: Endereço URL da planilha online credentialsFilename: Caminho do arquivo de credenciais para interação com API do Google Sheets worksheet: Nome da planilha

  • mountLP(title) Este método constroi o problema de PL a partir de um dataframe construído com o método dataframeFromSheet

    def mountLP(title=f"Problem_{datetime.now()}"):

    onde

    title (opcional): Título dado ao objeto referente ao problema de LP.

  • optimize() Este método executa o solver para um problema de PL montado com o método mountLP().

    def optimize():
  • showLP(): Este método exibe o problema de PL anteriormente montado com o método mountLP().

    def optimize():
  • getMinValuesResource() Descrição: Determina valores mínimos de estoque de forma que a demanda seja satisfeita.

    def getMinValuesResource():

🎈 Executando o código

O trecho a seguir demonstra a execução do Pythonisa.

    myProb = BakeryProblem(From='gsheet', 
                    SheetUrl='https://docs.google.com/spreadsheets/d/1hwY2ab3CDSFSSYIu1Xnj-4vbM3iQM240EsfiFAG50EM',
                    Credentials='credentials.json')
    
    myProb.mountLP()
    myProb.showLP()
    myProb.optimize()

About

Trabalho desenvolvido na disciplina de pesquisa operacional.

Topics

Resources

Stars

Watchers

Forks