Tarefa 4 - Código usado

Tarefa 4 - Código usado

por Carlos Morais de Oliveira Filho -
Número de respostas: 4
Professor ou monitor,

O enunciado diz para usar o código das notas de aula na manipulação do grafo.
Sei que facilita a correção, mas precisa ser exatamente o mesmo código?

Precisei modificá-lo para me adaptar à alocação dinâmica, realocando G->adj quando aumento o número de vértices.
Também modifiquei o código do hash com o mesmo objetivo.

O enunciado também diz que devemos usar os vetores up_to_date e mod_time.
Porém, não achei utilidade alguma para eles, pois quando preciso da informação uso a função mtime() do enunciado ou atualizado() que eu mesmo fiz.
Esses vetores são necessários? Caso sejam, poderia me esclarecer o porquê?

Grato,
Carlos
Em resposta à Carlos Morais de Oliveira Filho

Re: Tarefa 4 - Código usado

por Rafael Schouery -
Olá Carlos,
pode sim alterar o código, mas por favor deixe bem documentado.

Infelizmente não conversei com o professor sobre o motivo do up_to_date e do mod_time e portanto não sei se consigo responder completamente sua pergunta.

Mas em geral, se temos uma função complicada e demorada, podemos armazenar a informação como forma de otimização, ou seja, gastamos mais espaço mas usamos menos tempo.
Em resposta à Rafael Schouery

Re: Tarefa 4 - Código usado

por Carlos Morais de Oliveira Filho -
Não precisamos atualizar o flag 'atualizado' sempre que vamos construir um target?
Se sim não adianta, temos que chamar a função de qualquer jeito.
Se não, quando precisamos da informação sem precisar que ela seja atualizada?

Outra pergunta, agora sobre os arcos do tipo v-v. Como foi explicado no início da disciplina, não precisamos nos preocupar com este tipo de arco. Nosso Make deve detectá-los? (o código das notas de aula simplesmente ignora esses arcos)
Em resposta à Carlos Morais de Oliveira Filho

Re: Tarefa 4 - Código usado

por Luiz Fernando O C Real -
Bom, no meu EP eu utilizei o mod_time para não ficar usando a função stat o tempo todo. Quando começo a analisar um target, calculo esse mod_time e só calculo novamente depois de atualizá-lo, se foi necessário fazê-lo.
Já o up_to_date eu utilizei para que um vértice, depois de analisar seus filhos na busca em profundidade, soubesse se ele mesmo precisava ser atualizado ou não, ou seja, se o mod_time dele mesmo fosse -1 ou se o mod_time de um filho fosse maior do que o dele.
Em resposta à Carlos Morais de Oliveira Filho

Re: Tarefa 4 - Código usado

por Rafael Schouery -
Carlos, não se preocupe com laços. O que eu quis dizer é que em geral os algoritmos funcionam para grafos com laços mesmo se você não pensou deste jeito.