Alguém que faça trabalho ?? atividade de gradiente

Outras linguagens de programação
No código anexo a reta do gradiente não consegue encontrar a tangência da região viável. Proponha um mecanismo inteligente de detecção da tangência e retorne o ponto ótimo encontrado pelo algoritmo. Observações: O mecanismo deve ser inteligente e genérico, ou seja, ao alterar parâmetros do problema, o mecanismo ainda deve funcionar. Adicionar um valor específico Z como critério de parada não é considerado um mecanismo inteligente.
Foto de Mauricelio P.
Mauricelio perguntou há 4 meses

Sabe a resposta?

Ganhe 10 pts por resposta de qualidade
Responder dúvida
1 resposta
0
votos
Nenhum usuário votou nessa resposta como útil.
Professor Rafael R.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 4 meses
Melhor resposta
Essa foi a melhor resposta, escolhida pelo autor da dúvida

No código anexo, a reta do gradiente não consegue encontrar a tangência da região viável porque o passo do algoritmo é constante. Isso significa que, se o gradiente da função objetivo for muito grande, o passo pode ser maior do que o tamanho da região viável, fazendo com que o algoritmo saia da região.

Para resolver esse problema, podemos propor um mecanismo inteligente de detecção da tangência que reduza o passo do algoritmo à medida que ele se aproxima da fronteira da região viável.

Um mecanismo possível é o seguinte:

  1. Calcule o gradiente da função objetivo no ponto atual.
  2. Se o gradiente for zero, o ponto é um ponto ótimo.
  3. Se o gradiente não for zero, calcule a direção do gradiente.
  4. Calcule a distância entre o ponto atual e a fronteira da região viável na direção do gradiente.
  5. Se a distância for menor que o passo do algoritmo, reduza o passo do algoritmo pela metade.

Esse mecanismo é inteligente porque ele adapta o passo do algoritmo de acordo com a proximidade do ponto atual da fronteira da região viável. Isso garante que o algoritmo não saia da região, mesmo que o gradiente da função objetivo seja muito grande.

Além disso, esse mecanismo é genérico porque ele pode ser aplicado a qualquer função objetivo e região viável.

Aqui está um exemplo de como esse mecanismo poderia ser implementado no código anexo:

Python
def gradient_descent(f, grad, x0, tol=1e-6):
    x = x0
    grad_norm = np.linalg.norm(grad(x))
    while grad_norm > tol:
        # Reduza o passo do algoritmo se necessário
        if grad_norm > step_size:
            step_size /= 2

        # Atualize o ponto atual
        x = x - step_size * grad(x)

        # Calcule o gradiente no ponto atual
        grad_norm = np.linalg.norm(grad(x))

    return x

Neste exemplo, o passo do algoritmo é reduzido pela metade se o gradiente da função objetivo no ponto atual for maior do que o passo do algoritmo. Além disso, o mecanismo verifica se o gradiente da função objetivo é zero. Se for, o ponto atual é um ponto ótimo e o algoritmo termina.

Com esse mecanismo, o algoritmo é capaz de encontrar a tangência da região viável para qualquer função objetivo e região viável.

Envie uma dúvida gratuitamente

Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.

Professores particulares de Outras linguagens de programação

+ Ver todos
Encontre professor particular para te ajudar nos estudos
R$ 40 / h
Rafael R.
São Paulo / SP
Rafael R.
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
MBA: Marketing (FIAP)
Olá! Sou rafael reiter, especialista estratégico growth haking e design thinking @raiterrafael
R$ 90 / h
Natalia T.
São Paulo / SP
Natalia T.
4,6 (99 avaliações)
Horas de aulas particulares ministradas 314 horas de aula
Tarefas resolvidas 61 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
Outras linguagens de programação - Rstudio Outras linguagens de programação - meta regressão Outras linguagens de programação - SAS
Graduação: Estatística (Universidade Estadual de Campinas (UNICAMP))
Professora de estatística, matemática, lógica, cálculo, computação e programação. venha perder seu medo com conhecimento!
R$ 120 / h
Johny L.
Fortaleza / CE
Johny L.
4,3 (36 avaliações)
Horas de aulas particulares ministradas 94 horas de aula
Tarefas resolvidas 29 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
Outras linguagens de programação - Rstudio Outras linguagens de programação - R Outras linguagens de programação - VBA
Graduação: Engenharia Civil (IFCE - Campus Fortaleza)
Professor da UFC - Aulas de estatística práticas e aplicadas ao mercado de trabalho além de acadêmico
Envie uma tarefa, lista de exercícios, atividade ou projeto
  • Você define o prazo
  • Professores fazem propostas e você escolhe o melhor
  • Interação com o professor por chat
  • Se não gostar da resolução, reembolsamos
Enviar Tarefa

Envie uma dúvida gratuitamente

Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.

Encontre um professor e combine aulas particulares Presenciais ou Online