O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Inteligencia Artificial #1 - Introdução e Árvore de Decisão

Iniciado por Raizen, 10/09/2019 às 18:18

[box class=windowbg1]
Índice das aulas básicas
  • Aula 1 - Introdução
  • Aula 2 - Objetos
  • Aula 3 - Operações
  • Aula 4 - Condições
  • Aula 5 - Repetição
  • Aula 6 - Arrays
  • Aula 7 - Hashes
    [/box]
    [box class=windowbg1]
    Índice das aulas avançadas
  • Aula 8 - Superclasses e instâncias
    [/box]
    [box class=windowbg1]
    Índice das aulas de algoritmos
  • Aula 1 - Sort
  • Aula 2 - Busca
  • Aula 3 - Recursividade
    [/box]

    [box class=windowbg]
    Introdução
    [/box]
    Conhecimento necessário : médio
    [box class=windowbg]
    Introdução
    [/box]
    [box class=windowbg2]
         Inicialmente isso não é uma aula para iniciantes em lógica de programação, porém para quem mexe apenas com eventos também pode ter um material interessante para estudar. Para começar falar um pouco da história de I.A, I.A não foi necessariamente criado por alguém, iniciou de fato em 1956 na universidade de Dartmouth College, porém é um rumo natural da programação. I.A nada mais é do que trazer a inteligência humana para a máquina e isso seria um curso natural da própria programação, por isso mesmo que tenha de fato um criador, ele seria apenas o precursor da I.A. Claro dito isso que a I.A tem como objetivo simular a inteligência humana, não posso deixar de fora o teste de Turing criado por Alan Turing que nada mais é do que ter um avaliador de um lado e uma máquina cujo o avaliador não pode ver e realizar uma conversa com essa "caixa preta" (caixa preta também o termo usado quando a pessoa não tem acesso ao interior, o código da aplicação), se ele achar que é uma pessoa, logo a máquina passou no teste. Os conceitos do teste porém são extremamente extensos, e não sendo o foco dessa aula deixo em aberto para quem quiser estudar um pouco sobre o teste e aprender mais sobre as técnicas que já foram utilizadas para essa tentativa de imitação do ser humano.
         Sempre que escutamos I.A, relacionamos isso a jogos e sempre foi muito mais palpável para os desenvolvedores. O motivo são as próprias limitações do jogo, as limitações que o jogo impõe no jogador facilitam as decisões que a I.A precisa realizar. Não são todos os jogos que tem I.A, o motivo é por causa do trabalho que isso impõe no desenvolvimento, para essa compensação muitas vezes é adicionado algo ao adversário que tenha vantagem sobre o jogador (maior hp, ataque, defesa, golpes melhores etc). Resumindo, a I.A é uma porta nova para trazer um desafio maior e único ao jogo, mas que é possível realizar um jogo sem dependendo do jogo, só que aqui entre nós, uma boa I.A vai trazer uma identidade muito incrível para o jogo :).
        Para aqueles que estão com receio e acham que inteligência artificial não é fácil... Pois realmente não é, mas ele é totalmente baseado em algoritmos que tentamos simular a inteligência. Dito isso, as aulas começarão com algoritmos mais simples e iremos aos mais complexos, dependendo do jogo os algoritmos mais simples já são suficientes. Vamos começar com a árvore de decisões!
    [/box]

    [box class=windowbg]
    Árvore de Decisão (Decision Tree)
    [/box]

    [box class=windowbg2]
      A ideia de árvore de decisão é a mais simples possível, você entrega uma situação a máquina e ela decide a sua ação baseada em condições.
     
     
     
      É bem simples, "Preciso realizar uma ação X", essa ação X depende de 2 ou mais condições logo eu verifico as condições e vejo qual ele se encaixa e ai eu sigo com uma decisão. As perguntas são chamadas de "Nós", as afirmações são as "Decisões"  e as condições também fazem parte dos nós. Ai essa árvore pode então destrinchar em N nós e N decisões que aumentam o sentimento de inteligência da máquina.
     
     
     
      Para um jogo de ação poderia ser simplesmente.
      "Vou Atacar" Se o personagem estiver no ar, ataque aereo, se estiver no chão ataque terrestre. A partir disso ir adicionando nós e decisões para aumentar a inteligência da máquina.

    [/box]


    [box class=windowbg]
    Condição de Decisão
    [/box]

    [box class=windowbg2]
      Como já foi ensinado as decisões tem condições, essas condições são simplificados por Sim e Não nos exemplos anteriores, porém o algoritmo de condição se extende além disso. Existe um termo "Weighted Decisions" ou seja decisões que não dependem apenas de Sim ou não, e sim de uma combinação de fatores que indicam o peso para aquela decisão. Exemplo:
     
     
      E o algoritmo que gera o número poderia ser por exemplo:
     
    metodo movimento()
    	    calculo = distancia_do_personagem
    	    se personagem_atacando?
    		calculo = calculo - 3
    	    fim se
    	    se personagem_pulando?
    		calculo = calculo + 3
    	    fim se
                retorna calculo
    	fim metodo
     
    

     
      Com isso podemos ter uma reação com base no posicionamento e na ação do personagem.

    [/box]

    [box class=windowbg]
    Finalizando
    [/box]
    [box class=windowbg2]
    A ideia é que essa fosse a introdução a I.A e que tenham várias aulas se aprofundando nos algoritmos de I.A, espero que tenham gostado :)
    [/box]

Opa, boa. Acompanharei. Adoro I.A. e seus vários tipos de encaixar um if haha.

Show! Esse é o tipo de conteúdo que curto gastar umas boas horas estudando.


Citação de: Corvo online 10/09/2019 às 19:15
Opa, boa. Acompanharei. Adoro I.A. e seus vários tipos de encaixar um if haha.
Opa! Vlws Corvo!

Esse é o básico, agora vai começar a ficar bem legal  :carinha:

Citação de: Gabriel N. online 10/09/2019 às 21:45
Show! Esse é o tipo de conteúdo que curto gastar umas boas horas estudando.

Vlws Sky! Esse está meio curtinho e simples ainda, mas o próximo que vou escrever acho que vai ter mais conteúdo interessante!