1
resposta

[Dúvida] Construindo um sistema inteligente de recomendação

Não tenho familiaridade com linhas de código, mas com a ajuda de IA obtive esse resultado.
Quais cursos de linguagem de programação devo iniciar para uma melhor compreensão desses exercícios?

import heapq

Classe Produto

class Produto:
def init(self, nome, categoria, prob_conversao):
self.nome = nome
self.categoria = categoria
self.prob_conversao = prob_conversao # valor entre 0 e 1

def __repr__(self):
    return f"{self.nome} ({self.categoria}) - {self.prob_conversao:.2f}"

# Necessário para uso na fila de prioridade (heap)
def __lt__(self, other):
    return self.prob_conversao > other.prob_conversao

Classe A* para recomendação

class AStarRecommendation:
def init(self, produtos):
self.produtos = produtos

# Grafo completo: todos os produtos conectados
def get_vizinhos(self, produto):
    return [p for p in self.produtos if p != produto]

# Custo: quanto menor, melhor (inverso da probabilidade)
def custo(self, atual, vizinho):
    return 1 - vizinho.prob_conversao

# Heurística baseada na probabilidade de conversão
def heuristica(self, produto, objetivo):
    return 1 - produto.prob_conversao

# Implementação do algoritmo A*
def a_star(self, inicio, objetivo):
    fila = []
    heapq.heappush(fila, (0, inicio))

    veio_de = {}
    custo_ate_agora = {inicio: 0}

    while fila:
        _, atual = heapq.heappop(fila)

        if atual == objetivo:
            break

        for vizinho in self.get_vizinhos(atual):
            novo_custo = custo_ate_agora[atual] + self.custo(atual, vizinho)

            if vizinho not in custo_ate_agora or novo_custo < custo_ate_agora[vizinho]:
                custo_ate_agora[vizinho] = novo_custo
                prioridade = novo_custo + self.heuristica(vizinho, objetivo)
                heapq.heappush(fila, (prioridade, vizinho))
                veio_de[vizinho] = atual

    return self.reconstruir_caminho(veio_de, inicio, objetivo)

# Reconstrução do caminho final
def reconstruir_caminho(self, veio_de, inicio, objetivo):
    caminho = []
    atual = objetivo

    while atual != inicio:
        caminho.append(atual)
        atual = veio_de.get(atual)
        if atual is None:
            return []  # não há caminho

    caminho.append(inicio)
    caminho.reverse()
    return caminho

Teste do sistema

if name == "main":
# Criando produtos
p1 = Produto("Notebook", "Eletrônicos", 0.70)
p2 = Produto("Mouse Gamer", "Eletrônicos", 0.60)
p3 = Produto("Teclado Mecânico", "Eletrônicos", 0.65)
p4 = Produto("Cadeira Gamer", "Móveis", 0.80)
p5 = Produto("Headset", "Eletrônicos", 0.75)

produtos = [p1, p2, p3, p4, p5]

# Inicializando o sistema
sistema = AStarRecommendation(produtos)

# Definindo início e objetivo
inicio = p1
objetivo = p4

# Executando o algoritmo A*
caminho = sistema.a_star(inicio, objetivo)

# Exibindo o resultado
print("Melhor caminho encontrado:\n")
for produto in caminho:
    print(produto)
1 resposta

Olá, Cássio! Tudo bem?

A linguagem utilizada no curso em questão é a linguagem Python.

Aliás, atualmente o Python é a linguagem mais popular para lidar com ferramentas e bibliotecas de Inteligência Artificial.

Minha sugestão para iniciar seria esse: Python: Inteligência Artificial Aplicada

E depois fique à vontade para explorar outros cursos de Python na plataforma.

Espero ter ajudado e fico à disposição se precisar.

Abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado