Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problema 2 #33

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Problema 2 #33

wants to merge 2 commits into from

Conversation

wmsbill
Copy link
Contributor

@wmsbill wmsbill commented Jan 18, 2024

Esse algo é rápido pra dar uma resposta perto da correta. Tá bom pra mim. Um dia eu aprendo a fazer o correto.

@gabrielng-rj99
Copy link
Contributor

gabrielng-rj99 commented Jan 20, 2024

Esse tá difícil pra kct, eu demorei vários dias pra conseguir resolver vários tipos de caso mas ainda tem mt edges cases... -.-"

@elvcastelo
Copy link
Contributor

elvcastelo commented Jan 23, 2024

Esse tá difícil pra kct, eu demorei vários dias pra conseguir resolver vários tipos de caso mas ainda tem mt edges cases... -.-"

Não precisa se preocupar em resolver ao ótimo, uma solução viável é o suficiente :). O problema de decisão é NP-Completo então definitivamente não fará isso em tempo polinomial.

Há algumas alternativas:

  • Algoritmos aproximativos
  • Algoritmos probabilísticos
  • Heurísticas e Metaheuristicas
  • Algoritmos parametrizados

@gabrielng-rj99
Copy link
Contributor

Esse tá difícil pra kct, eu demorei vários dias pra conseguir resolver vários tipos de caso mas ainda tem mt edges cases... -.-"

Não precisa se preocupar em resolver ao ótimo, uma solução viável é o suficiente :). O problema de decisão é NP-Completo então definitivamente não fará isso em tempo polinomial.

Há algumas alternativas:

  • Algoritmos aproximativos
  • Algoritmos probabilísticos
  • Heurísticas e Metaheuristicas
  • Algoritmos parametrizados

estou começando ainda na área, não sei ainda com muitos detalhes a matemática por trás dos algoritmos, mal sei direito o q é NP (apesar de saber o q significa a sigla).
sobre o problema 1 minha primeira ideia foi um algoritmo aproximativo justamente pela velocidade, mas como eu encontrei uma forma de solucionar eu optei por esse caminho.
Sobre o segundo, eu nem saberia explicar q tipo de algoritmo q eu entreguei rs...

@wmsbill
Copy link
Contributor Author

wmsbill commented Jan 24, 2024

Nesse Pr meu, minha estrategia naive foi criar uma árvore a partir de cada nó do grafo e retornar o que tem mais folhas. Dá pra melhorar, mas eu não tive tempo de iterar.

@gabrielng-rj99
Copy link
Contributor

Nesse Pr meu, minha estrategia naive foi criar uma árvore a partir de cada nó do grafo e retornar o que tem mais folhas. Dá pra melhorar, mas eu não tive tempo de iterar.

minha ideia foi parecida, eu resolvi fazer um hashmap inicial pra saber qual seria a provável melhor raiz e ir excluindo arestas entras as mais prováveis folhas, dá um bom resultado mas não o ótimo kk, como eu disse. Acho q uma coisa q deve ser ajeitável é ter várias raízes possíveis, mas ainda não tive tempo de alterar, se for ficar muito mais tempo a rinha no ar eu vou testar essa possibilidade

@elvcastelo
Copy link
Contributor

estou começando ainda na área, não sei ainda com muitos detalhes a matemática por trás dos algoritmos, mal sei direito o q é NP (apesar de saber o q significa a sigla). sobre o problema 1 minha primeira ideia foi um algoritmo aproximativo justamente pela velocidade, mas como eu encontrei uma forma de solucionar eu optei por esse caminho. Sobre o segundo, eu nem saberia explicar q tipo de algoritmo q eu entreguei rs...

Longe de ser um problema! O objetivo da rinha é aprender mesmo. Escolhi esses dois problemas por já terem uma boa quantidade de material sobre eles. Estou supondo que seu algoritmo sempre retorne uma árvore geradora (não necessariamente ótima e sem prova de limitantes no valor da solução). Se for o caso, é uma heurística.

Caso queira saber mais sobre análise de algoritmos, checa a grade de Ciência da Computação da UBL. Acabou de ser atualizada :)

Nesse Pr meu, minha estrategia naive foi criar uma árvore a partir de cada nó do grafo e retornar o que tem mais folhas. Dá pra melhorar, mas eu não tive tempo de iterar.

Simples, mas uma boa estratégia. Não chequei o código ainda, mas perceba que a árvore deve ser geradora, isto é, deve conectar todos os vértices do grafo.

minha ideia foi parecida, eu resolvi fazer um hashmap inicial pra saber qual seria a provável melhor raiz e ir excluindo arestas entras as mais prováveis folhas, dá um bom resultado mas não o ótimo kk, como eu disse. Acho q uma coisa q deve ser ajeitável é ter várias raízes possíveis, mas ainda não tive tempo de alterar, se for ficar muito mais tempo a rinha no ar eu vou testar essa possibilidade

Fique a vontade para submeter um PR mesmo após o fim da rinha.

Agradeço a participação de vocês :)

@wmsbill
Copy link
Contributor Author

wmsbill commented Jan 25, 2024

É eu quero arranjar tempo pra fazer um com metodo de subtrair conexões ao inves de reconstruir a partir de um no especifico.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants