1. Classificação dos produtos:
class Produto:
def __init__(self, nome, categoria, probabilidade_conversao):
self.nome = nome
self.categoria = categoria
self.probabilidade_conversao = probabilidade_conversao
def __repr__(self):
return f"{self.nome} ({self.categoria}, {self.probabilidade_conversao})"
2. Sistema de Recomendação com A*
import heapq
class AStarRecommendation:
def __init__(self, produtos):
self.produtos = produtos
# Grafo simplificado:
self.grafo = {p: [q for q in produtos if q != p] for p in produtos}
def heuristica(self, produto_atual, produto_destino):
return 1 - produto_atual.probabilidade_conversao
def custo(self, produto_atual, produto_vizinho):
# Custo inverso da probabilidade de conversão:
return 1 - produto_vizinho.probabilidade_conversao
def encontrar_caminho(self, inicio, destino):
open_set = []
heapq.heappush(open_set, (0, inicio))
came_from = {}
g_score = {p: float("inf") for p in self.produtos}
g_score[inicio] = 0
while open_set:
_, atual = heapq.heappop(open_set)
if atual == destino:
caminho = []
while atual in came_from:
caminho.append(atual)
atual = came_from[atual]
caminho.append(inicio)
return list(reversed(caminho))
for vizinho in self.grafo[atual]:
tentativo_g = g_score[atual] + self.custo(atual, vizinho)
if tentativo_g < g_score[vizinho]:
came_from[vizinho] = atual
g_score[vizinho] = tentativo_g
f_score = tentativo_g + self.heuristica(vizinho, destino)
heapq.heappush(open_set, (f_score, vizinho))
return None
3. Testando o Sistema:
# Criação de produtos:
p1 = Produto("Notebook Gamer", "Eletrônicos", 0.9)
p2 = Produto("Mouse Wireless", "Acessórios", 0.7)
p3 = Produto("Cadeira Ergonômica", "Móveis", 0.6)
p4 = Produto("Monitor 4K", "Eletrônicos", 0.8)
p5 = Produto("Headset", "Acessórios", 0.75)
# Lista de produtos:
produtos = [p1, p2, p3, p4, p5]
# Criação de sistema de recomendação:
sistema = AStarRecommendation(produtos)
# Melhor camingo de recomendação:
caminho = sistema.encontrar_caminho(p1, p3)
print("Melhor caminho de recomendação:", caminho)
Melhor caminho de recomendação: [Notebook Gamer (Eletrônicos, 0.9), Cadeira Ergonômica (Móveis, 0.6)]