A TOPIC OF MANAGEMENT INFORMATION SYSTEMFull description
Introducción a Inteligencia artificial primer tema del curso de Programación LógicaDescripción completa
this is a seminar presentation of Artificial Passenger system. Artificial Passenger is broadly used to prevent accident.Artificial Passenger component establishes interface with other drivers ...
1. The ability of a computer or other machine to perform those activities that are normally thought to require intelligence. 2. The branch of computer science concerned with the development of mac...
Artificial Intelligence (short: AI) is a multidisciplinary field, including computer science, philosophy, and psychology. The aim of Artificial Intelligence is to replicate human’s brain act…Full description
Descripción completa
Descripción completa
Conforto ambiental lumínico na arquiteturaDescrição completa
Descripción: aplicacion de la vision artificial
Descrição completa
FACULDADE ANHANGUERA DE BAURU
Inteligência Inteligência Artificial ATPS Ciência da Computação Oitava Serie
André Ricardo da Silva RA 4251855410
Bruno Bueno de Camargo RA 4215784996
Bruno Alves Quintanilha RA 4200060435
Felipe Rangel de Oliveira RA 4211808985
Kleber Felipe da Silva RA 1186413238
Prof.: Marcelo Cabello Peres
INTELIGÊNCIA ARTIFICIAL
Bauru, 13 de outubro de 2015
2
ATPS - ATIVIDADES PRÁTICAS SUPERVISIONADAS
Mecanismos de Busca, Heurística Aceitável e Algoritmo A*
Mapa
Cidades
o
Cidade Azul
o
Cidade Laranja
o
Cidade Verde
o
Cidade Roxa
o
Cidade Cinza
Determinando as distâncias e os possíveis caminhos entre uma cidade A e uma cidade B
o
Cidade A – Cidade Azul (estado inicial)
o
Cidade B – Cidade Cinza (estado final)
Custo do caminho
Melhor rota:
Azul – Verde – Cinza Custo total:
471Km Ciência da Computação 8º Semestre
3
ATPS - ATIVIDADES PRÁTICAS SUPERVISIONADAS
Programa em funcionamento no Navegador Web
Requisitos do programa o
Navegador com suporte a HTML5 e Canvas
Código de programação do programa
var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); ctx.canvas.width = window.innerWidth / 2; ctx.canvas.height = window.innerHeight / 2; var BB = canvas.getBoundingClientRect(); var offsetX = BB.left; var offsetY = BB.top; var WIDTH = canvas.width; var HEIGHT = canvas.height; var rec0 = document.getElementById("0"); var rec1 = document.getElementById("1"); var rec2 = document.getElementById("2"); var rec3 = document.getElementById("3"); var rec4 = document.getElementById("4"); // Chaves de DragDrop var dragok = false; var startX; var startY; var tbCurta = document.getElementById("tBcurto"); var tbLongo = document.getElementById("tBlongo"); Ciência da Computação 8º Semestre
// evento de quando clicar e segurar apertado function myDown(e) { // invoca os eventos do browser e.preventDefault(); e.stopPropagation(); // pega a posicao do mouse var mx = parseInt(e.clientX - offsetX); var my = parseInt(e.clientY - offsetY);
dragok = false; for (var i = 0; i < rects.length; i++) { var r = rects[i]; if (mx > r.x && mx < r.x + r.width && my > r.y && my < r.y + r.height) { dragok = true; r.isDragging = true; } } // guarda as posições startX = mx; startY = my; }
Ciência da Computação 8º Semestre
7
ATPS - ATIVIDADES PRÁTICAS SUPERVISIONADAS
function myUp(e) { // tell the browser we're handling this mouse event e.preventDefault(); e.stopPropagation(); // clear all the dragging flags dragok = false; for (var i = 0; i < rects.length; i++) { rects[i].isDragging = false; } }
// handle mouse moves function myMove(e) { if (dragok) { e.preventDefault(); e.stopPropagation(); var mx = parseInt(e.clientX - offsetX); var my = parseInt(e.clientY - offsetY); var dx = mx - startX; var dy = my - startY; for (var i = 0; i < rects.length; i++) { var r = rects[i]; if (r.isDragging) { r.x += dx; r.y += dy; } } draw(); startX = mx; startY = my; } } function CalcularDistancia(xa, xb, ya, yb) { Ciência da Computação 8º Semestre
8
ATPS - ATIVIDADES PRÁTICAS SUPERVISIONADAS
resultadoX = ((xb - xa) < 0 ? (xb - xa) * (-1) : xb - xa); resultadoY = ((yb - ya) < 0 ? (yb - ya) * (-1) : yb - ya); resultadoTotal = Math.pow(resultadoX, 2) + Math.pow(resultadoY, 2); return Math.sqrt(resultadoTotal); } function BuscarRotas(objInicio, objFim) { //Zerando os arrays resultados = []; resultadosInverso = []; //--------------------if (objInicio != objFim) { BuscarRotaInversa(objInicio, objFim); total = 0; for (var i = 0; i < rects.length; i++) { //Procura o Objeto de inicio if (rects[i].name == objInicio) { for (var k = 0; k < rects.length; k++) { if (rects[i].node == rects[k].name) { resultados.push({ de: rects[i].name, para: rects[k].name, distancia: CalcularDistancia(rects[i].x, rects[k].x, rects[i].y, rects[k].y) }); if (rects[k].name == objFim) { i = rects.length; k = i; break; } objInicio = rects[k].name; i = -1; break; } } } } for (var t = 0; t < resultados.length; t++) { total += resultados[t].distancia; } popularTabelas(); } else { Ciência da Computação 8º Semestre
9
ATPS - ATIVIDADES PRÁTICAS SUPERVISIONADAS
alert("A origem deve ser diferente do destino"); } } function BuscarRotaInversa(objI, objF) { totalI = 0; for (var i = 0; i < rects.length; i++) { //Procura o Objeto de inicio if (rects[i].node == objI) { for (var k = 0; k < rects.length; k++) { if (rects[i].node == rects[k].name) { resultadosInverso.push({ de: rects[k].name, para: rects[i].name, distancia: CalcularDistancia(rects[i].x, rects[k].x, rects[i].y, rects[k].y) }); if (rects[i].name == objF) { i = rects.length; k = i; break; } objI = rects[i].name; i = -1 break; } } } } for (var t = 0; t < resultadosInverso.length; t++) { totalI += resultadosInverso[t].distancia; } } function carregarSelect() { var select = document.getElementById("combo1"); var select2 = document.getElementById("combo2"); for (var k = 0; k < rects.length; k++) { select.innerHTML += ""; } select2.innerHTML = select.innerHTML; } Ciência da Computação 8º Semestre
10
ATPS - ATIVIDADES PRÁTICAS SUPERVISIONADAS
function popularTabelas() { tbCurta.innerHTML = ""; tbLongo.innerHTML = ""; tbCurta.innerHTML
=
"
De
Para
Distancia
"; tbLongo.innerHTML
=
"
De
Para
Distancia
"; if (total < totalI) { for (var i = 0; i < resultados.length; i++) { tbCurta.innerHTML += "
" + resultados[i].de + "
" + resultados[i].para + "
" + Math.round(resultados[i].distancia) + "
"; if (i == resultados.length - 1) { tbCurta.innerHTML
+=
"
"
+
Math.round(total) + "
"; } } for (var k = 0; k < resultadosInverso.length; k++) { tbLongo.innerHTML += "