Páginas

sábado, 10 de abril de 2021

BrainJS. Entrenando y probando una red neuronal prealimentada

Entrenamos una red neuronal básica de clasificación basada en retropropagación con 2 capas ocultas de 4 y 2 neuronas.

Generamos 500 puntos de datos en el amarilla (0,0) a (5,5) indicando para cada punto si está o no dentro del cuadrado rojo.

Tras el entrenamiento la red podrá clasificar los puntos del plano que caigan dentro del cuadrado ((2,2),(3,3))

 

Generando en la consola cosas como:

El punto (4.891284625420421,0.7771611636075099) está en el rectangulo ((2,2),(3,3)) --> 0.0035132323391735554
El punto (2.754181240075061,2.371697018062347) está en el rectangulo ((2,2),(3,3)) --> 0.9642634391784668

El código es el siguiente:

<!DOCTYPE html>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Red neuronal de clasificación que aprende si un cierto punto {coordX: x, coordY: y} está o no dentro de un
cuadrado {pointA: pointA, pointB:pointB}</title>
<script src="https://unpkg.com/brain.js@2.0.0-beta.2/dist/brain-browser.min.js"></script>
</head>

<body>

<form>
<input type="button" value="GeneraDatos" onclick="generaDatosEntrenamiento()">
<input type="button" value="EntrenaRed" onclick="realizaEntrenamiento()">
<input type="button" value="GeneraPrediccion" onclick="generaPrediccion()">
</form>

<script type="text/javascript">

/*
Area donde se generarán puntos para los datos de entrenamiento
*/
const nubePuntos = { puntoA: { coordX: 0, coordY: 0 }, puntoB: { coordX: 5, coordY: 5 } };

/*
La red aprende si un punto está dentro de este cuadrado
*/
const cuadradoEntrenamiento = { puntoA: { coordX: 2, coordY: 2 }, puntoB: { coordX: 3, coordY: 3 } };

/*
Función que determina si un punto está dentro de un cierto cuadrado
*/
function estaDentroCuadrado(punto, cuadrado) {
if (punto.coordX >= cuadrado.puntoA.coordX && punto.coordX <= cuadrado.puntoB.coordX &&
punto.coordY >= cuadrado.puntoA.coordY && punto.coordY <= cuadrado.puntoB.coordY) {
return 1;
}
return 0;
}

/*
Función que genera en consola los datos de entenamiento.
Primero genera puntos en una nube aleatoria y después
analiza si dichos puntos caen dentro del cuadrado asociado
al entrenamiento
*/
function generaDatosEntrenamiento() {

let datos = [];
for (i = 0; i < 500; i++) {
x = (Math.random() * nubePuntos.puntoB.coordX) + nubePuntos.puntoA.coordX;
y = (Math.random() * nubePuntos.puntoB.coordY) + nubePuntos.puntoA.coordY;
output = { dentro: estaDentroCuadrado({ coordX: x, coordY: y }, cuadradoEntrenamiento) };
input = { coordX: x, coordY: y };
datos.push({ input, output });
}
var datosJSON = JSON.stringify(datos);
console.log(datosJSON.replace(/"/g, ""));
}

/*
Datos de entrenamiento generados por el código anterios. Hay 24 positivos entre los 500 puntos.
*/
var datosEntrenamiento = [
{input:{coordX:2.591158582085052,coordY:2.042299833846048},output:{dentro:1}},
{input:{coordX:3.0261573771835253,coordY:4.656101063432621},output:{dentro:0}},
{input:{coordX:4.859026562809468,coordY:1.6802148560277903},output:{dentro:0}},
{input:{coordX:0.8688027560553258,coordY:2.9602023180901864},output:{dentro:0}},
{input:{coordX:2.6305403349206795,coordY:1.3342552750053605},output:{dentro:0}},
{input:{coordX:0.39465399884823116,coordY:2.9874843889901372},output:{dentro:0}},
{input:{coordX:4.584064088772152,coordY:0.8300798971447471},output:{dentro:0}},
{input:{coordX:1.7191849022771426,coordY:0.682554313161095},output:{dentro:0}},
{input:{coordX:2.2805414453890753,coordY:0.9334049896908847},output:{dentro:0}},
{input:{coordX:0.4592871750273897,coordY:2.92232926674274},output:{dentro:0}},
{input:{coordX:2.511581676916764,coordY:4.894463455666016},output:{dentro:0}},
{input:{coordX:3.4005691362617285,coordY:3.815651368039598},output:{dentro:0}},
{input:{coordX:1.2471487205648546,coordY:1.3183864324593353},output:{dentro:0}},
{input:{coordX:0.8556602927236767,coordY:1.459276194560442},output:{dentro:0}},
{input:{coordX:4.338815460259784,coordY:3.1474897062307914},output:{dentro:0}},
{input:{coordX:2.1195972310817446,coordY:0.9427627021985485},output:{dentro:0}},
{input:{coordX:2.76802886127951,coordY:3.790134057556593},output:{dentro:0}},
{input:{coordX:4.450454654639632,coordY:4.533901809674175},output:{dentro:0}},
{input:{coordX:4.574229214461389,coordY:0.03408808266700203},output:{dentro:0}},
{input:{coordX:4.6489084985771685,coordY:3.70315149257231},output:{dentro:0}},
{input:{coordX:0.6770676688487298,coordY:0.7995059524010956},output:{dentro:0}},
{input:{coordX:4.646182374334192,coordY:2.4573025129351853},output:{dentro:0}},
{input:{coordX:0.16890281391721884,coordY:0.16608932338141424},output:{dentro:0}},
{input:{coordX:0.7726563178868362,coordY:1.4625243951445444},output:{dentro:0}},
{input:{coordX:2.2855944936244406,coordY:2.1153893158643595},output:{dentro:1}},
{input:{coordX:3.5461546657770278,coordY:1.9070773542434099},output:{dentro:0}},
{input:{coordX:2.2178848951721304,coordY:0.8957765957427388},output:{dentro:0}},
{input:{coordX:0.4627348937373926,coordY:0.5736146880651605},output:{dentro:0}},
{input:{coordX:2.3555675994938463,coordY:2.9698624393694506},output:{dentro:1}},
{input:{coordX:0.8122106633258735,coordY:0.9805200136814568},output:{dentro:0}},
{input:{coordX:3.257621549205135,coordY:2.9930513841845787},output:{dentro:0}},
{input:{coordX:3.7147177482498765,coordY:0.9562403840943867},output:{dentro:0}},
{input:{coordX:3.6895664234884533,coordY:3.5023604710766723},output:{dentro:0}},
{input:{coordX:0.32007061667000347,coordY:0.8730843949345857},output:{dentro:0}},
{input:{coordX:1.2785186287056733,coordY:2.666098662617977},output:{dentro:0}},
{input:{coordX:4.868305613066592,coordY:1.2725352247386745},output:{dentro:0}},
{input:{coordX:3.992499517104606,coordY:0.6301677792938759},output:{dentro:0}},
{input:{coordX:4.537690914812764,coordY:4.413608189244301},output:{dentro:0}},
{input:{coordX:4.528591584029364,coordY:3.366803765438953},output:{dentro:0}},
{input:{coordX:4.996360201662469,coordY:4.569639654197882},output:{dentro:0}},
{input:{coordX:1.1891569653725986,coordY:3.614126471025652},output:{dentro:0}},
{input:{coordX:0.4377865579997414,coordY:4.772961789835246},output:{dentro:0}},
{input:{coordX:4.508371516434325,coordY:0.5232989625136752},output:{dentro:0}},
{input:{coordX:3.699765806871148,coordY:3.3244219003345634},output:{dentro:0}},
{input:{coordX:4.647829486171694,coordY:4.195646692351189},output:{dentro:0}},
{input:{coordX:1.4426875559930785,coordY:1.1372394670006107},output:{dentro:0}},
{input:{coordX:4.129268527924347,coordY:2.154283561684247},output:{dentro:0}},
{input:{coordX:3.0307522856923415,coordY:1.154206395321602},output:{dentro:0}},
{input:{coordX:1.0115229254328324,coordY:4.8773896890339135},output:{dentro:0}},
{input:{coordX:4.514556383398797,coordY:4.8066113479240435},output:{dentro:0}},
{input:{coordX:1.503406160616429,coordY:0.12331365391142768},output:{dentro:0}},
{input:{coordX:3.5502173022206556,coordY:3.33952133351752},output:{dentro:0}},
{input:{coordX:0.1964478156412358,coordY:2.5426592821816425},output:{dentro:0}},
{input:{coordX:3.4718932109813543,coordY:2.84786987658752},output:{dentro:0}},
{input:{coordX:3.022656198603906,coordY:4.852187888866357},output:{dentro:0}},
{input:{coordX:4.12481585909126,coordY:1.413256725342091},output:{dentro:0}},
{input:{coordX:1.1938537566386676,coordY:0.7950300833621438},output:{dentro:0}},
{input:{coordX:0.6329632465600227,coordY:0.42135035907095},output:{dentro:0}},
{input:{coordX:0.3221356696554589,coordY:3.0991561780590358},output:{dentro:0}},
{input:{coordX:2.8998121371390564,coordY:3.6250659878024423},output:{dentro:0}},
{input:{coordX:2.8569843965067996,coordY:1.7136424252402134},output:{dentro:0}},
{input:{coordX:1.7783262146184486,coordY:0.23603740474950008},output:{dentro:0}},
{input:{coordX:1.2042264768117557,coordY:0.6134693021262111},output:{dentro:0}},
{input:{coordX:3.23444842503202,coordY:0.4688557629150153},output:{dentro:0}},
{input:{coordX:2.3695864235707456,coordY:4.083342251621617},output:{dentro:0}},
{input:{coordX:3.2820433975456775,coordY:1.7752579693852106},output:{dentro:0}},
{input:{coordX:3.986810383953949,coordY:4.141298227960039},output:{dentro:0}},
{input:{coordX:3.335070183676475,coordY:1.6580988344070318},output:{dentro:0}},
{input:{coordX:2.5315106252200312,coordY:4.772586872813491},output:{dentro:0}},
{input:{coordX:2.4990349665349187,coordY:2.3295824687469713},output:{dentro:1}},
{input:{coordX:0.12828964256510422,coordY:3.340531337878872},output:{dentro:0}},
{input:{coordX:4.722001884885581,coordY:4.303809877436634},output:{dentro:0}},
{input:{coordX:2.2652293980087035,coordY:2.2465434331052094},output:{dentro:1}},
{input:{coordX:1.7879142582321688,coordY:2.9506118273092734},output:{dentro:0}},
{input:{coordX:4.408619729893482,coordY:2.9860324361282364},output:{dentro:0}},
{input:{coordX:1.1648443073019066,coordY:0.04664074787817718},output:{dentro:0}},
{input:{coordX:1.1614285878923303,coordY:0.19277172136332954},output:{dentro:0}},
{input:{coordX:2.9544552908326738,coordY:3.5728596480170296},output:{dentro:0}},
{input:{coordX:2.9525793254027324,coordY:4.05580460021049},output:{dentro:0}},
{input:{coordX:3.0271123423790645,coordY:3.9043302859360414},output:{dentro:0}},
{input:{coordX:4.842860307346679,coordY:4.674812183882458},output:{dentro:0}},
{input:{coordX:3.1599326128975562,coordY:0.29846574268705184},output:{dentro:0}},
{input:{coordX:0.6102122467164806,coordY:3.2455042824668623},output:{dentro:0}},
{input:{coordX:1.1252857446476872,coordY:2.2662565994396724},output:{dentro:0}},
{input:{coordX:0.19651972687378283,coordY:4.567336121693078},output:{dentro:0}},
{input:{coordX:3.497059258387798,coordY:1.869572264271337},output:{dentro:0}},
{input:{coordX:2.802017822766399,coordY:2.0450265802649636},output:{dentro:1}},
{input:{coordX:1.0693147997366297,coordY:4.994694608471769},output:{dentro:0}},
{input:{coordX:1.2255545493324198,coordY:1.131059782715944},output:{dentro:0}},
{input:{coordX:1.3759590004161164,coordY:1.0873737033491748},output:{dentro:0}},
{input:{coordX:4.0566311657843315,coordY:2.4126195829409207},output:{dentro:0}},
{input:{coordX:4.822085561417683,coordY:2.227405205706166},output:{dentro:0}},
{input:{coordX:3.133692808689351,coordY:3.0703550480179516},output:{dentro:0}},
{input:{coordX:0.6526543504184695,coordY:2.510283262875781},output:{dentro:0}},
{input:{coordX:0.3788131657184035,coordY:4.9863507647425465},output:{dentro:0}},
{input:{coordX:4.454252568839932,coordY:1.3536210680951104},output:{dentro:0}},
{input:{coordX:1.0797310165066654,coordY:1.0305142946159322},output:{dentro:0}},
{input:{coordX:0.12343201243169899,coordY:3.924519812183516},output:{dentro:0}},
{input:{coordX:1.0002062213634715,coordY:0.6708008974302682},output:{dentro:0}},
{input:{coordX:2.964984464260022,coordY:3.102376387371992},output:{dentro:0}},
{input:{coordX:2.719686041372456,coordY:0.30746515304745425},output:{dentro:0}},
{input:{coordX:2.4931787449307,coordY:2.5502514138024104},output:{dentro:1}},
{input:{coordX:1.1253108707716102,coordY:2.9311631623755345},output:{dentro:0}},
{input:{coordX:4.827212707222049,coordY:3.149451034597},output:{dentro:0}},
{input:{coordX:3.4549645088598253,coordY:0.10394653511317298},output:{dentro:0}},
{input:{coordX:3.6363424686748314,coordY:4.65661141378061},output:{dentro:0}},
{input:{coordX:0.1884508433924903,coordY:2.7820506841773254},output:{dentro:0}},
{input:{coordX:2.2139997106122684,coordY:2.4534714002295215},output:{dentro:1}},
{input:{coordX:4.719510725097681,coordY:1.812211850872144},output:{dentro:0}},
{input:{coordX:3.2360525565511393,coordY:1.6076557675323921},output:{dentro:0}},
{input:{coordX:4.4802775208883325,coordY:4.494509825444161},output:{dentro:0}},
{input:{coordX:1.881487250916762,coordY:1.309964288741844},output:{dentro:0}},
{input:{coordX:2.844044233791611,coordY:4.63429000968908},output:{dentro:0}},
{input:{coordX:1.4784204143516488,coordY:4.449629748570722},output:{dentro:0}},
{input:{coordX:2.2804551716397925,coordY:3.802103886514118},output:{dentro:0}},
{input:{coordX:2.0010265040334407,coordY:1.6580850821679345},output:{dentro:0}},
{input:{coordX:1.542268940110384,coordY:0.9888049784803432},output:{dentro:0}},
{input:{coordX:4.046825000230106,coordY:0.7013135654771213},output:{dentro:0}},
{input:{coordX:0.5134317831107094,coordY:4.330518057506569},output:{dentro:0}},
{input:{coordX:2.0799136779317533,coordY:4.944250791785447},output:{dentro:0}},
{input:{coordX:2.379233669383507,coordY:0.9762506495844975},output:{dentro:0}},
{input:{coordX:3.097867857296471,coordY:3.159473813391509},output:{dentro:0}},
{input:{coordX:0.9516003832855952,coordY:1.1248671040871243},output:{dentro:0}},
{input:{coordX:2.7729341514204076,coordY:1.7416475490250005},output:{dentro:0}},
{input:{coordX:1.5401166777293223,coordY:0.6195253222461872},output:{dentro:0}},
{input:{coordX:3.99292833250286,coordY:3.4324301227992238},output:{dentro:0}},
{input:{coordX:2.646802641558202,coordY:3.1671619790492245},output:{dentro:0}},
{input:{coordX:0.6434863523090179,coordY:2.2091534561215087},output:{dentro:0}},
{input:{coordX:2.441131123539017,coordY:2.992076148678822},output:{dentro:1}},
{input:{coordX:2.537002301911306,coordY:0.6331317797210118},output:{dentro:0}},
{input:{coordX:1.530887461546147,coordY:4.042357940796142},output:{dentro:0}},
{input:{coordX:2.640285776442436,coordY:2.077450640362153},output:{dentro:1}},
{input:{coordX:2.144317605868238,coordY:0.3745379249097147},output:{dentro:0}},
{input:{coordX:2.6534373037077934,coordY:1.7057412044393643},output:{dentro:0}},
{input:{coordX:4.612283611931763,coordY:2.191754158105044},output:{dentro:0}},
{input:{coordX:1.474009689673761,coordY:0.4452474713236032},output:{dentro:0}},
{input:{coordX:3.2641893900643715,coordY:4.160327255918491},output:{dentro:0}},
{input:{coordX:0.4873651158345277,coordY:2.714631430986165},output:{dentro:0}},
{input:{coordX:2.205211548697456,coordY:0.5697480043809128},output:{dentro:0}},
{input:{coordX:3.302099530862276,coordY:0.41257830760690173},output:{dentro:0}},
{input:{coordX:4.038077115313566,coordY:1.0012554140117365},output:{dentro:0}},
{input:{coordX:3.505468105375011,coordY:0.3395151851650219},output:{dentro:0}},
{input:{coordX:4.036153690311485,coordY:3.2053996151954567},output:{dentro:0}},
{input:{coordX:0.31621120057998053,coordY:0.6696052330883773},output:{dentro:0}},
{input:{coordX:2.2892052635157207,coordY:1.2260431261314158},output:{dentro:0}},
{input:{coordX:0.8361540826463293,coordY:2.5578836985029496},output:{dentro:0}},
{input:{coordX:2.4126310593705242,coordY:1.0381328646504135},output:{dentro:0}},
{input:{coordX:4.820974048439909,coordY:4.019341586227395},output:{dentro:0}},
{input:{coordX:4.437471321217095,coordY:3.9285272180602737},output:{dentro:0}},
{input:{coordX:1.9235825270606748,coordY:2.80672294644726},output:{dentro:0}},
{input:{coordX:0.49187184951079377,coordY:3.815047897619695},output:{dentro:0}},
{input:{coordX:3.1671294238885084,coordY:0.5371133021968755},output:{dentro:0}},
{input:{coordX:0.30866302906460696,coordY:1.8028667354149874},output:{dentro:0}},
{input:{coordX:3.322844931918139,coordY:4.4428220052612275},output:{dentro:0}},
{input:{coordX:2.5006771808360444,coordY:0.7361300107916569},output:{dentro:0}},
{input:{coordX:1.3467979180968215,coordY:2.3365418736839065},output:{dentro:0}},
{input:{coordX:2.1037178011498074,coordY:3.573568855027767},output:{dentro:0}},
{input:{coordX:3.145264338020147,coordY:1.2577400217239865},output:{dentro:0}},
{input:{coordX:3.556844362660763,coordY:0.2438256141143752},output:{dentro:0}},
{input:{coordX:3.6096180341380664,coordY:0.8115602761520224},output:{dentro:0}},
{input:{coordX:3.8630900174630716,coordY:4.1252679207308365},output:{dentro:0}},
{input:{coordX:2.8286522753927867,coordY:4.414246896078119},output:{dentro:0}},
{input:{coordX:1.3976321093575306,coordY:0.14529072299913348},output:{dentro:0}},
{input:{coordX:1.206371642850963,coordY:2.9025858407059606},output:{dentro:0}},
{input:{coordX:3.036101595749428,coordY:0.6299660099446497},output:{dentro:0}},
{input:{coordX:3.9112927431083264,coordY:0.004482649606867839},output:{dentro:0}},
{input:{coordX:4.50589350221354,coordY:2.7235805875277217},output:{dentro:0}},
{input:{coordX:3.6274924449728676,coordY:0.7104132143966158},output:{dentro:0}},
{input:{coordX:0.46392992873701966,coordY:0.2441132995551143},output:{dentro:0}},
{input:{coordX:2.3637735876144212,coordY:1.0054523513262077},output:{dentro:0}},
{input:{coordX:3.7422785206760993,coordY:4.570449686331192},output:{dentro:0}},
{input:{coordX:3.256347422415451,coordY:4.480529572348397},output:{dentro:0}},
{input:{coordX:3.31120747482528,coordY:2.6113518089710865},output:{dentro:0}},
{input:{coordX:2.694622163466229,coordY:3.136643734147006},output:{dentro:0}},
{input:{coordX:0.15722435217951136,coordY:2.304940862603928},output:{dentro:0}},
{input:{coordX:3.1441067586517013,coordY:1.7185257495174033},output:{dentro:0}},
{input:{coordX:3.198464126190431,coordY:0.4032328507488142},output:{dentro:0}},
{input:{coordX:4.046195344741124,coordY:0.6242624120002577},output:{dentro:0}},
{input:{coordX:2.4930878331018618,coordY:4.279834549855128},output:{dentro:0}},
{input:{coordX:3.3204596222810583,coordY:0.9691690755862736},output:{dentro:0}},
{input:{coordX:4.79682369132332,coordY:3.5857033941607535},output:{dentro:0}},
{input:{coordX:4.881737220735893,coordY:1.1497013701453125},output:{dentro:0}},
{input:{coordX:1.1399663907900743,coordY:3.1945853733278193},output:{dentro:0}},
{input:{coordX:3.193139924783383,coordY:3.084946420385367},output:{dentro:0}},
{input:{coordX:3.3300531036310432,coordY:1.3865524875040647},output:{dentro:0}},
{input:{coordX:3.2986598941143708,coordY:1.5886990725219297},output:{dentro:0}},
{input:{coordX:2.912909505311174,coordY:2.5970774698332195},output:{dentro:1}},
{input:{coordX:3.218838960999734,coordY:0.4622839543502122},output:{dentro:0}},
{input:{coordX:1.1686157253516445,coordY:3.9733161388806018},output:{dentro:0}},
{input:{coordX:0.761516023534804,coordY:3.3518358028088335},output:{dentro:0}},
{input:{coordX:2.0161924111919975,coordY:0.7450015365413842},output:{dentro:0}},
{input:{coordX:2.154483334794091,coordY:4.935563041107962},output:{dentro:0}},
{input:{coordX:2.0003437495773073,coordY:0.9976917254277257},output:{dentro:0}},
{input:{coordX:3.7943900763777054,coordY:2.9690857457658835},output:{dentro:0}},
{input:{coordX:0.040052876368935064,coordY:1.1006471923568757},output:{dentro:0}},
{input:{coordX:1.252292086332711,coordY:4.841139022671863},output:{dentro:0}},
{input:{coordX:1.6003916414581076,coordY:4.2317218044703555},output:{dentro:0}},
{input:{coordX:2.033912728395202,coordY:3.665385555664264},output:{dentro:0}},
{input:{coordX:0.03368854486543116,coordY:3.9525858833283687},output:{dentro:0}},
{input:{coordX:3.949721716085767,coordY:3.9754011884828433},output:{dentro:0}},
{input:{coordX:2.879666811003276,coordY:1.6771767219553952},output:{dentro:0}},
{input:{coordX:0.23351737905658976,coordY:0.4313530243815328},output:{dentro:0}},
{input:{coordX:3.4824057667906745,coordY:4.460747124603172},output:{dentro:0}},
{input:{coordX:0.33272984294137553,coordY:1.2188632155980246},output:{dentro:0}},
{input:{coordX:0.5320065971881122,coordY:0.7836628149419234},output:{dentro:0}},
{input:{coordX:0.22101749819515848,coordY:4.624565660438144},output:{dentro:0}},
{input:{coordX:3.503921210863719,coordY:2.303683104955617},output:{dentro:0}},
{input:{coordX:0.416091577986476,coordY:3.8789269488151996},output:{dentro:0}},
{input:{coordX:4.28457935950948,coordY:4.005992278098774},output:{dentro:0}},
{input:{coordX:2.99918373651031,coordY:0.3977901126214567},output:{dentro:0}},
{input:{coordX:0.7078986063750276,coordY:1.2191764574720438},output:{dentro:0}},
{input:{coordX:4.11357897804483,coordY:1.2533169884420359},output:{dentro:0}},
{input:{coordX:3.150575300833957,coordY:0.7410961429714324},output:{dentro:0}},
{input:{coordX:2.5363201713319516,coordY:1.8184284470722463},output:{dentro:0}},
{input:{coordX:0.011505880489067755,coordY:4.813799663548135},output:{dentro:0}},
{input:{coordX:1.86717239017355,coordY:4.7884573230054315},output:{dentro:0}},
{input:{coordX:0.25027252781804954,coordY:2.223235236335243},output:{dentro:0}},
{input:{coordX:3.822850020406821,coordY:0.24177433228934897},output:{dentro:0}},
{input:{coordX:0.5022527096697582,coordY:3.5510296730010236},output:{dentro:0}},
{input:{coordX:4.137924602625344,coordY:0.8568680640564086},output:{dentro:0}},
{input:{coordX:4.146156843839235,coordY:3.593501765137938},output:{dentro:0}},
{input:{coordX:4.995397174773309,coordY:3.737491514409732},output:{dentro:0}},
{input:{coordX:2.5723499113065267,coordY:2.4986412543460226},output:{dentro:1}},
{input:{coordX:4.970715814736831,coordY:0.6447003748166957},output:{dentro:0}},
{input:{coordX:4.31821764575692,coordY:2.381087291549834},output:{dentro:0}},
{input:{coordX:3.246404064839174,coordY:3.3208643352057443},output:{dentro:0}},
{input:{coordX:0.5352960894640924,coordY:1.353182257896115},output:{dentro:0}},
{input:{coordX:4.277189498701176,coordY:3.606249216975504},output:{dentro:0}},
{input:{coordX:0.454836144248838,coordY:2.9529998012745082},output:{dentro:0}},
{input:{coordX:0.33488936907839273,coordY:3.948701506298655},output:{dentro:0}},
{input:{coordX:2.9866254154135543,coordY:2.9221584426968024},output:{dentro:1}},
{input:{coordX:4.750680594542428,coordY:4.787429272176158},output:{dentro:0}},
{input:{coordX:2.151498127386546,coordY:4.834940253828296},output:{dentro:0}},
{input:{coordX:3.2629541105014677,coordY:1.8259205187534415},output:{dentro:0}},
{input:{coordX:4.411250519093598,coordY:1.186695656815004},output:{dentro:0}},
{input:{coordX:3.1064641630743592,coordY:2.1711842215351123},output:{dentro:0}},
{input:{coordX:4.191850973644078,coordY:1.303591139830238},output:{dentro:0}},
{input:{coordX:2.5082742617950426,coordY:1.126237024756986},output:{dentro:0}},
{input:{coordX:3.1775890184818985,coordY:3.5607832447605543},output:{dentro:0}},
{input:{coordX:4.183438224086873,coordY:0.4496393496862089},output:{dentro:0}},
{input:{coordX:2.5697407634505702,coordY:4.070894131287156},output:{dentro:0}},
{input:{coordX:4.256449670465758,coordY:0.09912408449155641},output:{dentro:0}},
{input:{coordX:3.0310959000939777,coordY:3.5923076601993635},output:{dentro:0}},
{input:{coordX:0.22955381724616641,coordY:2.4188592045079895},output:{dentro:0}},
{input:{coordX:4.8379796481911095,coordY:0.37691843036169403},output:{dentro:0}},
{input:{coordX:0.9452190725101245,coordY:1.5058882038269494},output:{dentro:0}},
{input:{coordX:2.854452757418428,coordY:4.882024402446001},output:{dentro:0}},
{input:{coordX:1.7283906365844282,coordY:2.6019626293170055},output:{dentro:0}},
{input:{coordX:2.3946540350760834,coordY:4.944569298771339},output:{dentro:0}},
{input:{coordX:3.46222936432613,coordY:3.134662092769997},output:{dentro:0}},
{input:{coordX:4.727327224346942,coordY:3.1262198155266803},output:{dentro:0}},
{input:{coordX:3.4565853301276013,coordY:2.822639788738913},output:{dentro:0}},
{input:{coordX:3.2161094614609897,coordY:4.065903005940312},output:{dentro:0}},
{input:{coordX:2.413619433881861,coordY:1.082963068106384},output:{dentro:0}},
{input:{coordX:1.0552911167009378,coordY:2.5836197375907384},output:{dentro:0}},
{input:{coordX:3.0243001959386477,coordY:1.1017774869634929},output:{dentro:0}},
{input:{coordX:1.7313984034258234,coordY:2.4225443952318635},output:{dentro:0}},
{input:{coordX:3.1514998666952607,coordY:0.47263095966346036},output:{dentro:0}},
{input:{coordX:1.846534212618428,coordY:2.1761976894795665},output:{dentro:0}},
{input:{coordX:3.7095033382025204,coordY:2.2509886772604313},output:{dentro:0}},
{input:{coordX:2.871397027577804,coordY:4.71824263205623},output:{dentro:0}},
{input:{coordX:3.4333672098193793,coordY:2.0280758682721434},output:{dentro:0}},
{input:{coordX:0.38999607711460993,coordY:1.8010781318643816},output:{dentro:0}},
{input:{coordX:2.4422268241896514,coordY:2.258242014970323},output:{dentro:1}},
{input:{coordX:1.9982811745797924,coordY:4.219450372874788},output:{dentro:0}},
{input:{coordX:4.760082642005266,coordY:1.0048022940451562},output:{dentro:0}},
{input:{coordX:3.9185192287659163,coordY:2.50046710500977},output:{dentro:0}},
{input:{coordX:1.8383590968817893,coordY:2.241336708255544},output:{dentro:0}},
{input:{coordX:1.672780733597653,coordY:4.442214257082721},output:{dentro:0}},
{input:{coordX:4.534574581273852,coordY:4.099166887610133},output:{dentro:0}},
{input:{coordX:0.7250089614436694,coordY:4.597144115647885},output:{dentro:0}},
{input:{coordX:2.3891505078918414,coordY:2.831674410266637},output:{dentro:1}},
{input:{coordX:2.750287656349484,coordY:2.8478848161280834},output:{dentro:1}},
{input:{coordX:0.09833623258234947,coordY:4.082909184899686},output:{dentro:0}},
{input:{coordX:3.0248953254039375,coordY:3.5556588801160878},output:{dentro:0}},
{input:{coordX:1.671987955240977,coordY:4.129193284230019},output:{dentro:0}},
{input:{coordX:4.001849266486557,coordY:1.205280682448181},output:{dentro:0}},
{input:{coordX:4.988518499029045,coordY:1.6172403460486855},output:{dentro:0}},
{input:{coordX:0.39433722436549745,coordY:4.134609678419109},output:{dentro:0}},
{input:{coordX:1.6279242499664321,coordY:2.2423089202814666},output:{dentro:0}},
{input:{coordX:1.498675549396427,coordY:4.772349084010053},output:{dentro:0}},
{input:{coordX:1.8825744525280708,coordY:2.687542928153671},output:{dentro:0}},
{input:{coordX:1.755234128903217,coordY:1.9025219265307665},output:{dentro:0}},
{input:{coordX:4.147593757800891,coordY:0.3432282760240063},output:{dentro:0}},
{input:{coordX:3.7887258327953437,coordY:0.902728804604454},output:{dentro:0}},
{input:{coordX:1.1936113231132488,coordY:2.155712709315931},output:{dentro:0}},
{input:{coordX:3.421023892412625,coordY:4.916681499580208},output:{dentro:0}},
{input:{coordX:3.288115641115418,coordY:4.5970540310107335},output:{dentro:0}},
{input:{coordX:4.533764672960644,coordY:4.789473605485444},output:{dentro:0}},
{input:{coordX:4.828645855102723,coordY:1.5112685326148028},output:{dentro:0}},
{input:{coordX:0.0665248101011845,coordY:0.34126186475430975},output:{dentro:0}},
{input:{coordX:0.307723025102668,coordY:2.9380005852475435},output:{dentro:0}},
{input:{coordX:3.5950851671157675,coordY:2.6620872143468284},output:{dentro:0}},
{input:{coordX:2.9504010786501427,coordY:3.8790247353185476},output:{dentro:0}},
{input:{coordX:4.025137723700105,coordY:2.795196196983265},output:{dentro:0}},
{input:{coordX:1.2449694961049467,coordY:3.275432726548206},output:{dentro:0}},
{input:{coordX:3.1021302807289426,coordY:1.1744864807639517},output:{dentro:0}},
{input:{coordX:3.200603192006696,coordY:3.6608763835311824},output:{dentro:0}},
{input:{coordX:2.3195276421809363,coordY:1.813223488125033},output:{dentro:0}},
{input:{coordX:2.660040509828435,coordY:4.840427036649345},output:{dentro:0}},
{input:{coordX:1.6258742690438894,coordY:1.7961097206426606},output:{dentro:0}},
{input:{coordX:2.049903192678877,coordY:0.5866029709552256},output:{dentro:0}},
{input:{coordX:2.78741217893133,coordY:4.780111852106793},output:{dentro:0}},
{input:{coordX:0.1180835190308116,coordY:1.0899039760151552},output:{dentro:0}},
{input:{coordX:2.333138832319985,coordY:3.3348087584193347},output:{dentro:0}},
{input:{coordX:3.4633221130741947,coordY:3.5287400212424935},output:{dentro:0}},
{input:{coordX:2.8366954367253445,coordY:1.3383212242396354},output:{dentro:0}},
{input:{coordX:4.6273906976068275,coordY:0.496176958727344},output:{dentro:0}},
{input:{coordX:3.054215585904709,coordY:2.1395688538840334},output:{dentro:0}},
{input:{coordX:1.31847708625209,coordY:2.3410940743886592},output:{dentro:0}},
{input:{coordX:3.590641116967948,coordY:2.989056166712384},output:{dentro:0}},
{input:{coordX:2.6756745397350605,coordY:4.554317848095392},output:{dentro:0}},
{input:{coordX:3.647364715736279,coordY:0.1058577787673598},output:{dentro:0}},
{input:{coordX:3.707137939394021,coordY:4.222866820422489},output:{dentro:0}},
{input:{coordX:3.238564234227374,coordY:0.8927061454089508},output:{dentro:0}},
{input:{coordX:2.999237564565057,coordY:1.5289433609290237},output:{dentro:0}},
{input:{coordX:2.0985021502716976,coordY:1.4642674988332387},output:{dentro:0}},
{input:{coordX:2.51621133652343,coordY:4.929886109933333},output:{dentro:0}},
{input:{coordX:1.8556572350771505,coordY:1.0719176303325395},output:{dentro:0}},
{input:{coordX:3.425478432353419,coordY:3.102679441623286},output:{dentro:0}},
{input:{coordX:0.41167584585873496,coordY:3.8663846945881764},output:{dentro:0}},
{input:{coordX:0.8965408920314183,coordY:1.4575264136632582},output:{dentro:0}},
{input:{coordX:4.994210666532178,coordY:0.8236130787701851},output:{dentro:0}},
{input:{coordX:0.24557567529333857,coordY:1.6788237096976482},output:{dentro:0}},
{input:{coordX:2.0989248433309493,coordY:4.430512686526004},output:{dentro:0}},
{input:{coordX:3.1416912026767245,coordY:3.4922492988964597},output:{dentro:0}},
{input:{coordX:1.2713864371899586,coordY:2.3794997565802496},output:{dentro:0}},
{input:{coordX:4.014567142933735,coordY:3.594328475774727},output:{dentro:0}},
{input:{coordX:4.511238842845852,coordY:3.3506271098514926},output:{dentro:0}},
{input:{coordX:4.600119723310383,coordY:3.883046947792987},output:{dentro:0}},
{input:{coordX:0.37390914436509937,coordY:2.6344773257270093},output:{dentro:0}},
{input:{coordX:0.7272090384174301,coordY:0.6746688657659816},output:{dentro:0}},
{input:{coordX:2.1269642313890484,coordY:2.252073039426059},output:{dentro:1}},
{input:{coordX:4.672389556980399,coordY:3.1919761716461736},output:{dentro:0}},
{input:{coordX:2.9560991716385643,coordY:1.6663216255287516},output:{dentro:0}},
{input:{coordX:0.8837634359141988,coordY:3.1424538323464626},output:{dentro:0}},
{input:{coordX:2.2893724505889335,coordY:2.471645135815102},output:{dentro:1}},
{input:{coordX:2.1306296443369077,coordY:3.1664514401787107},output:{dentro:0}},
{input:{coordX:2.8966249758362905,coordY:4.603741465914915},output:{dentro:0}},
{input:{coordX:0.6705076787055486,coordY:3.623100512580319},output:{dentro:0}},
{input:{coordX:3.9960952180183744,coordY:0.37022458105847866},output:{dentro:0}},
{input:{coordX:0.271360780257367,coordY:0.6740279913960523},output:{dentro:0}},
{input:{coordX:4.95545177469501,coordY:2.7772374551303534},output:{dentro:0}},
{input:{coordX:0.227031745196285,coordY:1.6416025512419523},output:{dentro:0}},
{input:{coordX:1.7886929664995184,coordY:0.44374386575040003},output:{dentro:0}},
{input:{coordX:4.368299267899269,coordY:0.6269238286883916},output:{dentro:0}},
{input:{coordX:1.1022744747982012,coordY:2.2140661814682296},output:{dentro:0}},
{input:{coordX:2.67874172901384,coordY:2.1888754043158754},output:{dentro:1}},
{input:{coordX:3.2662597891772487,coordY:3.599337675400642},output:{dentro:0}},
{input:{coordX:4.948487435120824,coordY:3.4917670820572173},output:{dentro:0}},
{input:{coordX:2.220943679125865,coordY:3.6455507321366536},output:{dentro:0}},
{input:{coordX:3.5448817481984274,coordY:2.1270447444504237},output:{dentro:0}},
{input:{coordX:1.3592060553992384,coordY:4.719597239702673},output:{dentro:0}},
{input:{coordX:1.5499117181863353,coordY:3.1711100247741184},output:{dentro:0}},
{input:{coordX:1.029551413175539,coordY:4.035969410149136},output:{dentro:0}},
{input:{coordX:2.54693629565058,coordY:3.2514804429681377},output:{dentro:0}},
{input:{coordX:3.9787461895983753,coordY:0.9234690811565277},output:{dentro:0}},
{input:{coordX:4.253705244577155,coordY:3.197895880452895},output:{dentro:0}},
{input:{coordX:2.3292450408078613,coordY:4.158559465516157},output:{dentro:0}},
{input:{coordX:3.1941095693528103,coordY:3.9699825582636765},output:{dentro:0}},
{input:{coordX:2.680734540599063,coordY:1.1804360350373373},output:{dentro:0}},
{input:{coordX:4.739025955467791,coordY:3.7409626538414233},output:{dentro:0}},
{input:{coordX:0.45148369946130806,coordY:0.9598385678731469},output:{dentro:0}},
{input:{coordX:0.7461122863797703,coordY:3.98188180916935},output:{dentro:0}},
{input:{coordX:4.884921412156257,coordY:1.4321874136006625},output:{dentro:0}},
{input:{coordX:3.565608477710658,coordY:3.3532173233980385},output:{dentro:0}},
{input:{coordX:4.340647739349781,coordY:1.5630285729068922},output:{dentro:0}},
{input:{coordX:4.277372022901472,coordY:1.1746815064860683},output:{dentro:0}},
{input:{coordX:4.766191042075224,coordY:0.9700108006229174},output:{dentro:0}},
{input:{coordX:2.919863298452019,coordY:1.7344582952930299},output:{dentro:0}},
{input:{coordX:4.807696739086878,coordY:2.019152650459564},output:{dentro:0}},
{input:{coordX:0.7417761840958709,coordY:3.4553999871909618},output:{dentro:0}},
{input:{coordX:3.738633394324265,coordY:1.895530581423091},output:{dentro:0}},
{input:{coordX:3.1526476999049406,coordY:4.465967072548411},output:{dentro:0}},
{input:{coordX:1.7805742833604865,coordY:0.08747846236699663},output:{dentro:0}},
{input:{coordX:2.982231750919021,coordY:0.3591406019284782},output:{dentro:0}},
{input:{coordX:0.4959449445858849,coordY:4.699963026938086},output:{dentro:0}},
{input:{coordX:0.832252668597066,coordY:3.9061065466153186},output:{dentro:0}},
{input:{coordX:3.869800544345307,coordY:0.647215598308189},output:{dentro:0}},
{input:{coordX:1.9218927981567369,coordY:1.7780153795564435},output:{dentro:0}},
{input:{coordX:3.2658499715899705,coordY:0.4926158989086815},output:{dentro:0}},
{input:{coordX:3.1240904560098235,coordY:4.654173320378876},output:{dentro:0}},
{input:{coordX:1.4279706244345465,coordY:2.235806917519983},output:{dentro:0}},
{input:{coordX:1.2781411679504262,coordY:3.779353169939204},output:{dentro:0}},
{input:{coordX:4.805044709120289,coordY:3.2626649734362587},output:{dentro:0}},
{input:{coordX:3.2090238294446345,coordY:2.415468003293078},output:{dentro:0}},
{input:{coordX:1.524379546378432,coordY:0.5515283072152294},output:{dentro:0}},
{input:{coordX:0.4751328078447159,coordY:3.9129917205026916},output:{dentro:0}},
{input:{coordX:1.2205797239881848,coordY:3.821920040399079},output:{dentro:0}},
{input:{coordX:0.23137792890822795,coordY:0.519961061558088},output:{dentro:0}},
{input:{coordX:4.0447993654194425,coordY:1.4740451077101435},output:{dentro:0}},
{input:{coordX:3.753308531638151,coordY:0.6559863978165315},output:{dentro:0}},
{input:{coordX:1.4969906902239498,coordY:4.932712468561701},output:{dentro:0}},
{input:{coordX:0.33432620232231813,coordY:4.081187197094801},output:{dentro:0}},
{input:{coordX:4.890517470769416,coordY:1.6774173916783957},output:{dentro:0}},
{input:{coordX:0.43398734463220345,coordY:1.95215550033502},output:{dentro:0}},
{input:{coordX:1.8640920896959274,coordY:2.7157971915714985},output:{dentro:0}},
{input:{coordX:2.4225985086238726,coordY:1.505669809661161},output:{dentro:0}},
{input:{coordX:1.1200523379612626,coordY:3.3031502152049645},output:{dentro:0}},
{input:{coordX:2.2090002540375604,coordY:1.5665411285599746},output:{dentro:0}},
{input:{coordX:2.8179226139307674,coordY:1.9291115756940724},output:{dentro:0}},
{input:{coordX:2.2271394845984274,coordY:4.55624876643785},output:{dentro:0}},
{input:{coordX:2.255329087746336,coordY:2.594092432861203},output:{dentro:1}},
{input:{coordX:3.251584925507827,coordY:0.13390733361676066},output:{dentro:0}},
{input:{coordX:0.5636862542265947,coordY:1.7955829173234128},output:{dentro:0}},
{input:{coordX:2.0630915418907403,coordY:3.9989760203002382},output:{dentro:0}},
{input:{coordX:3.197635002936414,coordY:2.072906496478418},output:{dentro:0}},
{input:{coordX:1.0961606569742255,coordY:4.034524577506496},output:{dentro:0}},
{input:{coordX:1.6151064503072194,coordY:3.0739513536834324},output:{dentro:0}},
{input:{coordX:1.3260942625891676,coordY:3.0339323681599675},output:{dentro:0}},
{input:{coordX:2.2338696700641476,coordY:3.2164610646001064},output:{dentro:0}},
{input:{coordX:0.4194043987493806,coordY:3.1831756255162684},output:{dentro:0}},
{input:{coordX:3.7071049093684345,coordY:2.9985138956249493},output:{dentro:0}},
{input:{coordX:4.477201953850042,coordY:4.129854063605965},output:{dentro:0}},
{input:{coordX:0.5125325959845889,coordY:4.52640348391554},output:{dentro:0}},
{input:{coordX:4.049999868098492,coordY:3.8716199332232195},output:{dentro:0}},
{input:{coordX:3.5479924787141934,coordY:4.795601160206046},output:{dentro:0}},
{input:{coordX:3.1310637776342825,coordY:1.3366593153490243},output:{dentro:0}},
{input:{coordX:4.0205599719074305,coordY:3.7930738527521575},output:{dentro:0}},
{input:{coordX:0.7016805157645617,coordY:0.9449368100933692},output:{dentro:0}},
{input:{coordX:3.1040046582812604,coordY:1.4122060573308866},output:{dentro:0}},
{input:{coordX:2.8271145613440396,coordY:3.398917089825412},output:{dentro:0}},
{input:{coordX:4.544253819702218,coordY:4.323677296349116},output:{dentro:0}},
{input:{coordX:3.4962194464068848,coordY:3.2689087094522233},output:{dentro:0}},
{input:{coordX:4.102193621776122,coordY:4.611669788888176},output:{dentro:0}},
{input:{coordX:4.997049151723314,coordY:0.2794161632636022},output:{dentro:0}},
{input:{coordX:1.33858290131045,coordY:3.7445465284387525},output:{dentro:0}},
{input:{coordX:2.729239438924534,coordY:0.7735631464107229},output:{dentro:0}},
{input:{coordX:3.2381764212503166,coordY:0.8514218702916992},output:{dentro:0}},
{input:{coordX:0.9279247480518238,coordY:4.558972384450469},output:{dentro:0}},
{input:{coordX:0.7394544460347868,coordY:4.023262686383106},output:{dentro:0}},
{input:{coordX:2.3566146701100417,coordY:1.9953854547146173},output:{dentro:0}},
{input:{coordX:2.054817875181384,coordY:1.4834009664539543},output:{dentro:0}},
{input:{coordX:0.4933732058254081,coordY:3.2032420025194277},output:{dentro:0}},
{input:{coordX:2.136597080390867,coordY:0.41991905155767617},output:{dentro:0}},
{input:{coordX:4.3030400873925565,coordY:2.4402787543454996},output:{dentro:0}},
{input:{coordX:1.5430509198256726,coordY:0.9606699845822458},output:{dentro:0}},
{input:{coordX:4.5119951049059095,coordY:4.9554526035262105},output:{dentro:0}},
{input:{coordX:2.253097692288741,coordY:4.099423556469653},output:{dentro:0}},
{input:{coordX:4.167193230994263,coordY:0.993167180692906},output:{dentro:0}},
{input:{coordX:2.311181250881049,coordY:1.520240717354377},output:{dentro:0}},
{input:{coordX:3.28199430505302,coordY:3.296735718770625},output:{dentro:0}},
{input:{coordX:1.4995615727056688,coordY:2.0236379818272536},output:{dentro:0}},
{input:{coordX:2.2471801476337383,coordY:0.14460599478739178},output:{dentro:0}},
{input:{coordX:4.377237215738093,coordY:2.498013090218118},output:{dentro:0}},
{input:{coordX:1.0351243272338617,coordY:0.7548151855702734},output:{dentro:0}},
{input:{coordX:4.412203297179589,coordY:2.355626544806471},output:{dentro:0}},
{input:{coordX:3.720429526453717,coordY:0.9455404457139083},output:{dentro:0}},
{input:{coordX:2.336449582288887,coordY:4.528508605502948},output:{dentro:0}},
{input:{coordX:1.6254932591424605,coordY:0.6164549153681359},output:{dentro:0}},
{input:{coordX:4.49380686815539,coordY:2.5211863212537717},output:{dentro:0}},
{input:{coordX:3.7597246346082507,coordY:0.020583138825610026},output:{dentro:0}},
{input:{coordX:0.05115960862027591,coordY:1.4364777031655795},output:{dentro:0}},
{input:{coordX:3.9871446638734884,coordY:2.111390129614364},output:{dentro:0}},
{input:{coordX:1.9950946192167591,coordY:4.57866988593504},output:{dentro:0}},
{input:{coordX:4.798235513276436,coordY:2.1277106129002576},output:{dentro:0}},
{input:{coordX:4.299775004376528,coordY:3.072982298521683},output:{dentro:0}},
{input:{coordX:1.396158590229456,coordY:3.481023179010794},output:{dentro:0}},
{input:{coordX:4.779033954603933,coordY:2.466185284709279},output:{dentro:0}},
{input:{coordX:0.26439393835574254,coordY:1.885797943516509},output:{dentro:0}},
{input:{coordX:3.2823271322072594,coordY:3.030845566553784},output:{dentro:0}},
{input:{coordX:0.34107780983853864,coordY:2.652408872320339},output:{dentro:0}},
{input:{coordX:0.5213379651005984,coordY:0.5140642505388165},output:{dentro:0}},
{input:{coordX:1.6406783294651839,coordY:4.557718775695475},output:{dentro:0}},
{input:{coordX:0.23698988044482727,coordY:4.663855255308955},output:{dentro:0}},
{input:{coordX:4.9514124421119075,coordY:1.259779507773426},output:{dentro:0}},
{input:{coordX:3.2736006579511994,coordY:3.4914439826145167},output:{dentro:0}},
{input:{coordX:2.508944225928846,coordY:4.098182012696347},output:{dentro:0}},
{input:{coordX:1.273992133968006,coordY:4.687894559254873},output:{dentro:0}},
{input:{coordX:2.8893312233364736,coordY:2.6899517475118015},output:{dentro:1}},
{input:{coordX:4.320996916641976,coordY:2.130341242566682},output:{dentro:0}},
{input:{coordX:2.0836867639801526,coordY:2.880668594141188},output:{dentro:1}},
{input:{coordX:4.781259554625619,coordY:3.961648188683438},output:{dentro:0}},
{input:{coordX:0.05192975171759706,coordY:2.298103838389153},output:{dentro:0}},
{input:{coordX:3.699664559067774,coordY:3.9710371489329015},output:{dentro:0}},
{input:{coordX:1.9379422597637759,coordY:1.9795332735461062},output:{dentro:0}},
{input:{coordX:2.9827201428670587,coordY:2.0421336279085835},output:{dentro:1}},
{input:{coordX:4.033246160332309,coordY:3.0147896279047313},output:{dentro:0}},
{input:{coordX:4.879898567404818,coordY:2.8209783958217223},output:{dentro:0}},
{input:{coordX:1.769418329425339,coordY:0.9339906131353476},output:{dentro:0}},
{input:{coordX:3.581311554585021,coordY:1.4880419720269822},output:{dentro:0}},
{input:{coordX:1.6672503889681023,coordY:1.2023637703973333},output:{dentro:0}},
{input:{coordX:4.544350908311962,coordY:1.3774645135283736},output:{dentro:0}},
{input:{coordX:1.218505818085045,coordY:4.985360006361043},output:{dentro:0}},
{input:{coordX:1.08040155676751,coordY:3.132499666911508},output:{dentro:0}},
{input:{coordX:1.9542061443805454,coordY:4.535984912465059},output:{dentro:0}},
{input:{coordX:4.381667665532988,coordY:0.7010143649992212},output:{dentro:0}},
{input:{coordX:2.80509326779298,coordY:1.8227783652570717},output:{dentro:0}},
{input:{coordX:1.2855833826654406,coordY:1.4194398926039202},output:{dentro:0}},
{input:{coordX:0.13487614651416846,coordY:4.215753472095731},output:{dentro:0}},
{input:{coordX:2.1914905013367565,coordY:4.011557456139474},output:{dentro:0}},
{input:{coordX:1.5795839891593444,coordY:2.7304006630094046},output:{dentro:0}},
{input:{coordX:2.0412993376204023,coordY:2.6366345780502303},output:{dentro:1}},
{input:{coordX:0.4738599212409206,coordY:3.6693455984587815},output:{dentro:0}},
{input:{coordX:2.726355257039625,coordY:0.8812589711208973},output:{dentro:0}},
{input:{coordX:2.599918474810678,coordY:0.23845141657989566},output:{dentro:0}},
{input:{coordX:0.6535655605884888,coordY:0.8286517868744792},output:{dentro:0}},
{input:{coordX:0.39767226120502763,coordY:4.522678283900609},output:{dentro:0}},
{input:{coordX:3.963658393499523,coordY:4.04192358594597},output:{dentro:0}},
{input:{coordX:0.34810241261076347,coordY:3.915220873167395},output:{dentro:0}}
];

/*
Instanciamos una red neuronal con 2 capas ocultas,
la primera con 4 nodos y la segunda con 2 nodos
valores elegidos de forma completamente aleatoria
*/
var net = new brain.NeuralNetwork({
hiddenLayers: [4, 2]
});

/*
Entenamos la red con los datos preparados
*/
function realizaEntrenamiento() {

net.train(datosEntrenamiento, {
iterations: 60000, // the maximum times to iterate the training data --> number greater than 0
log: true, // true to use console.log, when a function is supplied it is used --> Either true or a function
errorThresh: 0.008
}); // the acceptable error percentage from training data --> number between 0 and 1
console.log("Entrenamiento finalizado");
}

/*
Realizamos una predicción para ver si el punto ((2.5),(2.5)) está en el rectangulo ((2,2),(3,3))
*/
function generaPrediccion() {

x = (Math.random() * nubePuntos.puntoB.coordX) + nubePuntos.puntoA.coordX;
y = (Math.random() * nubePuntos.puntoB.coordY) + nubePuntos.puntoA.coordY;
var output = net.run({ coordX: x, coordY: y });
console.log("El punto ("+x+","+y+") está en el rectangulo ((2,2),(3,3)) --> " + output.dentro);
}
</script>
</body>

</html>

No hay comentarios:

Publicar un comentario