Pular para o conteúdo principal
Versões: 0.5.x

BaseOptimizer

Classe base abstrata para algoritmos de otimização.

Módulos: aisp.base
Importação: from aisp.base import BaseOptimizer


Visão geral

Esta classe define a interface principal para algoritmos de otimização.
Ela mantém o histórico de custos, soluções avaliadas, e a melhor solução encontrada durante a otimização. As classes derivadas devem implementar os métodos optimize e affinity_function.

Casos de uso:

  • Classe base abstrata para estender classes de algoritmos de otimização.

Atributos

NomeTipoPadrãoDescrição
cost_historyList[float][]Histórico dos melhores custos encontrados em cada iteração.
solution_historyList[]Histórico da melhor solução encontrada em cada iteração.
best_solutionAnyNoneA melhor solução global encontrada.
best_costOptional[float]NoneCusto da melhor solução global encontrada.
mode{"min", "max"}'min'Define se o algoritmo minimiza ou maximiza a função de custo.

Métodos abstratos

optimize

@abstractmethod
def optimize(
self,
max_iters: int = 50,
n_iter_no_change: int = 10,
verbose: bool = True
) -> Any:
...

Executa o processo de otimização.
Este método abstrato é implementado é responsabilidade das classes filhas, definindo a estratégia de otimização.

Parâmetros

NomeTipoPadrãoDescrição
max_itersint50Número máximo de iterações
n_iter_no_changeint10Número máximo de interações sem atualização da melhor solução.
verboseboolTrueIndica se as mensagens de progresso do treinamento deve ser exibido.

Returns

TipoDescrição
SelfRetorna a instancia da classe.

affinity_function

@abstractmethod
def affinity_function(self, solution: Any) -> float:
...

Avalia a afinidade (qualidade) de uma solução candidata.

Este método deve ser implementado conforme o problema de otimização específico, definindo como a solução sera medida. O valor retornado deve representar a qualidade da solução avaliada.

Parâmetros

NomeTipoPadrãoDescrição
solutionAny-Solução candidata que será avaliada.

Returns

TipoDescrição
floatValor de custo associada a solução encontrada.

Métodos públicos

get_report

def get_report(self) -> str:
...

Gera um relatorio resumindo e formatado do processo de otimização.
O relatorio incluir a melhor solução, seu custo, e a evolução dos valores a cada iteração.

Returns

TipoDescrição
strUma string formatada contendo o resumo da otimização.

register

def register(self, alias: str, function: Callable[..., Any]) -> None:
...

Registra dinamicamente uma função na instância do otimizador.

Parâmetros

NomeTipoPadrãoDescrição
aliasstr-Nome usado para acessar a função como um atributo.
functionCallable[..., Any]-Função que será registrada.

Exceções

ExceçãoDescrição
TypeErrorSe a function fornecida não for uma função valida.
AttributeErrorSe o alias for protegido e não puder ser modificado, ou não existir na classe.

reset

def reset(self):
...

Reseta o estado interno do objeto, limpando histórico e restaurando valores iniciais.