Introdução de Complexidade tarefa 1, opção avançada. Este é um vídeo tutorial destinado a opção avançada na tarefa. Por favor abra o arquivo no Netlogo chamado MultipleAnts.Netlogo, você pode encontrar este arquivo nos materiais do curso em nossa página. Quando abrir a interface vai estar aparecendo assim; Nós já fizemos algumas modificações nas 2 primeiras seções das tarefas, e nós não eliminamos isso; Então primeira coisa que vou fazer é recolorir as formigas, para que elas sejam sempre vermelhas; vou eliminar essas 2 linhas do código; farei isto menos confuso; Vamos voltar para interface onde nossa tarefa pede para criar uma trilha de feromonas para que outras formigas que estejam atrás possam seguir, uma vez que achem comida, e testar isso pra ver se é mais rápido que o método atual apresentado. Vamos então para a seção do código; primeiro criamos um caminho variável e chamamos de feromônio, faça isto aqui; agora desça para Setup para estabelecer os caminhos não apenas para os ninhos como também os feromonas; Irei mudar o Set up nest para o Set up patches, iremos ask patches para iniciar os feromonios serem zero, então set feromônio zero; Vamos verificar isso; Agora queremos que as formigas deixem um rastro de feromonios, depois de comerem a comida e voltarem para o ninho; e também gostaríamos que essas outras formigas sigam o rastro de feromônios. Para fazer isto desça para o procedimento "return- to-nest" o qual nós escrevemos mais cedo e adicione uma linha "set pheromone" para ser o nível de feromônio atual + 1. Quero que você visualize quanto de feromônios tem cada caminho; Eu vou chamar de set plabel para ser simplesmente um valor numérico de feromônios; você também pode usar cores diferentes para isto se quiser, mas acho que é interessante usar a legenda para fazer isto. Então vamos verificar isto e ver se funciona; parece que sim, que a resposta para a coleta de comida e o retorno para o ninho e deixar um rastro de feromônios como eles fazem, o que aumenta numericamente. Agora eu gostaria que os feromônios evaporassem com o tempo; então vamos voltar para o código e fazer isto. Vamos criar uma nova linha no procedimento anterior chamada "evaporate- pheromone" então vamos escrever o procedimento para "evaporate- pheromone", gostaríamos que os feromônios tenham uma probabilidade de evaporar, o que significa um número entre 0 e 1; Então vamos estabelecer um número variável e chamar de X, o que será um acaso entre 0 e 1, então "random-float 1" então iremos perguntar caminhos com feromônios maiores que zero qualquer caminho que tenha feromônios. Se a variável X é menor que a probabilidade que decidirmos o que será uma barra que colocaremos na interface que chamaremos essa barra de "probabilidade de evaporação" então "probability-to-evaporate" Então iremos estabelecer que o feromônio seja o valor atual -1, para que o feromônio evapore gradualmente. Nós também gostaríamos de ver isso então colocaremos uma "plabel". Nós precisamos adicionar aquela barra que mencionei; para fazer isto vá até a interface "Button" e adicione "slider" colocaremos de lado um pouco; e chamaremos de "probalility-to-evaporate e será um número entre 0 e 1 com incrementos de 0.1, que inicialmente seja .1 e pressione ok; E agora movemos essa barra para debaixo das outras aqui, movendo este gráfico um pouco mais para baixo e alinhar para que fique melhor; e agora colocamos esta barra aqui embaixo, deixando do mesmo tamanho das outras barras. Então está pronto, revisamos e voltamos para a interface para rodar de novo. Os níveis de feromônios deveriam decrescer e parece que eles estão, isto é bom. E agora o problema final é que as outras formigas sigam os rastros de feromonios então faremos essa continuação. A propósito, a maneira de selecionar janelas na interface e clicar em um espaço em branco e arrastar sobre a barra que se queira; você também pode clicar com o botão direito e editar de várias maneiras. Agora voltaremos ao código e mudaremos o jeito com que se movem as formigas em seu mundo. vamos para to-look-for-food e nós vamos adicionar um código aqui; vamos estabelecer novas variáveis digamos, "let pheromone-ahead"? scent -at-angle 0 e irei explicar o que isso significa em um segundo; "let-pheromone-right?" scent-at-angle 45 "let-pheromone-left?" scent-at-angle -45 Então este código é bem parecido com o modelo das formigas nos arquivos do Netlogo; basicamente estamos pedindo que cada formiga olhe pra frente, um pouco para a direita e um pouco para a esquerda, para determinar se há algo feromônio nessa direções, e se há para seguir o feromônio e que se não tiver que se caminhe aleoatoriamente o que será que manteremos este código igual daqui pra baixo; Logo faremos uma série de declarações "ifelse"; ifelse (pheromone-right? > pheromone-ahead? or pheromone-left?> pheromone-ahead); [ifelse pherome-right? é maior que pheromone left? nós iremos para direita 45 e se não for nós iremos para a esquerda 45; e se caso nenhum deles for verdade, o que significa que tem feromonios na frente ou não se tem feromônios em nenhuma direção, vamos dizer que se pheromone-ahead? = 0, então seguimos com este resto mesmo; abre e fecha colchetes. Revisamos e ele disse que não há nada chamado scent-at-angle, e é verdade nós não estabelecemos um scent-at-angle ainda; Então vamos para o final do código e reportaremos; to-report scent-at-angle e colocaremos um ângulo deixamos p patche-right-and-ahead e estas são primitivas do Netlogo; Para todos que quiserem verificar o que Primitivas significa, podem selecionar e clicar em quick-help e assim abrirá uma pequena sinopse sobre o que é. Então nós usamos os ângulos que nós usamos e colocaremos a distância de 1; se p= noboby ( ninguém) então não tem feromônios, reporte 0; caso contrário reporte feromônios de p. e é isso. Revisamos o código, não há fecha colchetes para este colchete aberto, temos uma mensagem de erro, parece que eu esqueci de fechar colchetes aqui; Também notei que há alguns colchetes faltando nessas linhas, desculpe-me sobre isto, agora revisemos e parece que está tudo certo, vamos voltar para a interface e parece que o comportamento está muito bom, nós poderíamos analizar isto um pouco mais e fazer observações melhores sobre como está funcionando, mas vou deixar isto para você Eu notei que tem muito para responder nos cantos deste mundo, nós podemos consertar isso indo em settings selecionando word horizontalmente e verticalmente e ok. E parece que respondeu bem rápido, comendo toda a comida em 73 ticks; no modelo anterior antes de adicionarmos os feromonios e eles duram 128 ticks. E esta foi a tarefa número 1, espero que vocês tenham gostado do tutorial. Nós vemos na próxima!