|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - deaven
Páginas: [1]
1
« en: Martes 7 de Abril de 2015, 10:17 »
Corregido
2
« en: Miércoles 12 de Diciembre de 2012, 15:46 »
Corregido
3
« en: Lunes 10 de Diciembre de 2012, 05:02 »
Corregido
4
« en: Jueves 30 de Septiembre de 2010, 11:18 »
Te voy a comentar mi personal punto de vista.
Para k cualquier programa de IA realmente aprenda, no se le deberían de preprogramar las respuestas, xk además de k no estaría aprendiendo, sería cuento de jamás terminar de programar, ya k los lenguajes con los k podemos comunicar los conceptos de nuestra mente son muchísimos (orales, escritos, corporales, químicos, etc.)
Lo k se debería de hacer, pe. en un chat, es k el propio programa vaya aprendiendo según los chatistas vayan introduciendo más y más datos. Pe. Si varias veces el programa ha sensado desde el chat k si alguien dice "hola", frecuentemente se contesta con "que tal" o con otro "hola", entonces el mismo programa debe de ser capaz de deducir k si encuentra k algún chatista escribió "hola", entonces es muy posible k una respuesta correcta a sacar en el chat, sea k él mismo conteste "hola" o "que tal" (los algoritmos de deducción, imitación, analogízación y relacionados, son los k debería de programar uno mismo y no las respuestas preprogramadas, si es k se quiere k el programa realmente aprenda)
En este ejemplo, si las respuestas hubieran sido preprogramadas, habría un resultado casi similar, la diferencia estriba en k si utilizas respuestas preprogramadas, la respuesta correcta sólo se obtendrá para el idioma en k las hayas escrito, y nadamás; Pero si utilizas algoritmos k puedan detectar las respuestas posibles, basándose en las respuestas ya dadas anteriormente x los mismos chatistas, entonces las respuestas correctas serán válidas para CUALQUIER lenguaje.
Si aceptamos k un concepto es todo lo k se sabe acerca de algo en concreto. Con este sistema de aprendizaje, de hecho el programa sería capaz de aprender conceptos (en este caso el concepto de "Saludo en un Chat", es decir, aprendería todas las variaciones del saludo).
Por supuesto, se tiene k tener un sistema k pueda almacenar y representar el entorno desde el cual obtiene sus datos el programa (pe. un chat), lo más fielmente posible, incluido el tiempo mismo (imaginate aprender a tocar un piano sin tener un sentido del tiempo, sería casi imposible).
Espero haberte podido comunicar mi particular punto de vista sobre lo k preguntaste.
Saludos.
5
« en: Miércoles 10 de Febrero de 2010, 04:51 »
Gracias x tu interés en el programa.
Actualmente estoy en una fase de actualización del programa (Desde VB6 a VB NET 2008, y mejoras fundamentales del programa).
Esto me llevará todavía varios meses, ya k es mucho lo k se tiene k hacer.
En cuanto termine esta fase y si aún estás interesado en el programa, con mucho gusto serás de los primeros en probarlo.
Saludos.
6
« en: Jueves 10 de Diciembre de 2009, 15:48 »
corregido
7
« en: Jueves 10 de Diciembre de 2009, 15:47 »
corregido
8
« en: Jueves 10 de Diciembre de 2009, 15:46 »
corregido
9
« en: Sábado 7 de Noviembre de 2009, 23:36 »
Desde mi punto de vista "El aprender" es la parte menos difícil de todas. Lo k es mucho más complicado de lograr es tanto encontrar automáticamente las reglas k trae lo aprendido como tratar de crear nueva información a partir tanto de lo aprendido como de las reglas encontradas automáticamente, mediante deducciones, analogías, etc. Esto es lo k los seres humanos hacemos muy eficazmente, y sin duda, quien lo haga mejor es más inteligente k quienes no lo hagan. Una parte del aprendizaje, es indispensable k se realice mediante prueba y error, esto no se puede evitar....al menos, eso es lo k creo.
10
« en: Lunes 1 de Junio de 2009, 18:18 »
Hola Pues sí, x aquí andamos, tratando de distraer un poco el cerebro. Veo k como muchísimos otros, simplemente no crees k un producto como el mencionado pueda ser real; Bien, como lo dije antes, están en todo su derecho a creerlo y lo respeto. Pero...te pido por un segundo, k te metas a tu cerebro la idea de k efectivamente lo tengo. Este producto tendría lo siguiente Aprende por premio y castigo Aprende por imitación Aprende por analogías. Aprende por deducciones. Sus sensores no solo pueden ser las entradas de un chat, sino k pueden ser cualquier sentido k te puedas imaginar (tacto, vista, oído, etc.) Su percepción del significado de los conceptos k maneja, es directamente proporcional a la cantidad de información k tenga de esos conceptos. Su comportamiento y respuestas están basados en los instintos básicos k le pongas, k se convierten en propósitos fundamentales a lograr. Su capacidad de creación de nueva información, en base al cruzado de sus conocimientos es brutal. Pues bien, olvidate x un segundo, k quien tenga un producto k pueda hacer semejantes cosas, pueda convertirse en un Bill Gates cualquiera. Olvidate x otro segundo, k un producto de este tipo, podría producir un cambio tremendo en la vida de mucha gente...para bien o para mal. Simplemente imaginate k un producto como el k te pido k aceptes momentáneamente k existe, estuviera en manos equivocadas. Gente k le alterara sus instintos básicos para fines personales, no muy nobles. ¡IMAGÍNATELO¡ Esta de risa , ¿verdad?
11
« en: Lunes 1 de Junio de 2009, 08:26 »
12
« en: Lunes 1 de Junio de 2009, 08:09 »
Hola Nebire Te comento algunas de las particularidades de dos de las matrices k uso en el programa. MATRIZ C Esta matriz es la principal, tiene una vida permanente y consume casi alrededor del 90% de la memoria usada) Esta matriz tiene 3 niveles de profundidad matricional -el formato es: C (Nivel1)(Nivel2)(Nivel3). Si echas un vistazo a la sub RedimMat, verás k solo redimensiono los índices del Nivel1 y del Nivel3 de esa Matriz C. Para el Nivel1, una vez creados índices extras (mandar a Redim), jamás cambiarán sus elementos (no los borraré, ni los intercambiaré, creo k esto es importante para escoger utilizar matrices en lugar de Colecciones). Para el caso del Nivel3, una vez creados índices extras, también jamás se borrarán los elementos k contiene, pero sí se reacomodarán frecuentemente en pares, pe. si el contenido del índice 150, se colocará en el índice 100, entonces el contenido del índice 100, se colocará en el índice 150 -debido a esto, en ningún momento tengo k bajar todos los elementos k estén arriba de uno de los elementos movidos-. Creo k aquí también es preferible utilizar matrices en lugar de Colecciones. MATRIZ CPsValores Esta matriz es muy parecida a la matriz C (3 niveles de profundidad matricional), excepto en k consume alrededor del 50% del tiempo de proceso del CPU, se crea y se destruye constantemente. Con esta matriz, sí k tengo grandes problemas de uso de CPU. Y pienso k es debido a k escogí erróneamente una matriz. Debido a esa mala elección, si introduzco alrededor de 1000 páginas de conversación al programa, empiezo a tener problemas de tiempo excesivo del proceso de la información, debido a k frecuentemente tengo k eliminar algún índice del nivel1 y luego bajar un lugar a todos los índices k estén arriba del eliminado, y pues me consume muchísimo tiempo. He pensado en algunas soluciones a ésta última situación (además de la de los árboles k me comentas) , k lamentablemente hasta la amplicación del programa podré implementar (...la novatez se paga). Y sí, sin duda, la utilización de matrices de varias profundidades ha vuelto la depuración del programa, excesivamente tardado y complejo (ayer mismo, para hacer una sola nueva implementación k involucraba a todo el programa, me tardé toda la noche -...mmmm o será k ya estoy demasiado usado jaja , pero...bueno, creo k el fin hará k valga la pena ) Nuevamente Gracias x tus comentarios y sugerencias. Saludos
13
« en: Jueves 28 de Mayo de 2009, 09:17 »
Hola M0skit0 , Nebire, muchas gracias x sus consejos. Nebire, efectivamente el dobleteo de espacio en las matrices lo hago para reservar espacio de una sola vez, pero no mucha para no agotarla y que me permita redimensionar la menor cantidad de veces posibles. Te comento k al principio de la elaboración del programa escogí usar colecciones, pero noté k, en el caso concreto para lo k las uso, era muchísimo más rápido utilizar matrices, x lo k en determinado momento tuve k hacer el cambio casi completo de colecciones a matrices. De hecho, en el caso concreto de mi programa, solo en un caso resultó más eficiente utilizar las colecciones k las matrices . Como te habrás dado cuenta, soy un programador bastante novato, y no conocía los árboles k mencionas, estuve investigando un poco k erán, y te comento, k por lo k entendí, sin saberlo, actualmente ya he implementado algo un poco parecido a esos árboles. Nebire, muchas gracias x el código, me quedó muy clara tu explicación. Y Oigan, sinceramente les reitrero mi agradecimiento x sus comentarios y consejos. Saludos
14
« en: Martes 26 de Mayo de 2009, 06:13 »
Hola Nebire, muchas gracias x tu respuesta Exactamente estoy viendo lo k comentas del rendimiento de lo k Moskito me hizo el favor de contestarme. Para el programa k estoy optimizando y ampliando, es muy importante la velocidad, y como éste usa, en buena medida, muchas matrices (algunas matrices se redimensionan miles de veces, x cuestión de compromiso entre velocidad y memoria usada), es imprescindible k escoja el sistema más veloz. Muy interesante tu explicación k das del funcionamiento de las matrices El método de sustitución del uso de matrices k me comentas me parece también muy interesante. Estoy haciendo las pruebas de rendimiento k comentas tanto de lo comentado por Moskito como lo comentado x tí. Si alguno de esos métodos son más rápidos k los k actualmente uso, sin duda los implementaré, especialmente en la ampliación del programa, porque para lo ya escrito del programa me sería algo tardado, x k son miles de líneas de código k se tendrían k modificar. Para k te des una idea mas amplía, pongo la sub, k mando llamar para redimensionar varios tipos de matriz al doble de índices k tenga su dimensión última. Indicando entre líneas de asteríscos los puntos k quiero optimizar . 'Nebire, nuevamente gracias x el valioso tiempo k te tomas en contestar, analizaré el código k escribiste a fondo. Saludos 'Redimensiona los índices de la matriz al doble de su valor actual, preservando sus valores originales (incluye matrices de una dimensión, 2 dimensiones y matrices dentro 'de matrices) Public Sub RedimMat(NombreMatriz As String, Optional Nivel1, Optional Nivel2, Optional LlenarLosNuevosIndicesConElSigValor As Boolean = False, _ Optional ValorAIntroducirEnLosIndicesDeLaMat As Variant = SinVal) 'ENTRADAS '1)NombreMatriz indica el nombre de la matriz a redimensionar '2)Nivel1 = Primer nivel de profundidad de matriz '3)Nivel2 = Segundo nivel de profundidad de matriz '4)ValorAIntroducirEnLosIndicesDeLaMat = Es el valor k se va a introducir en los nuevos índices redimensionados de la matriz (en caso de k LlenarLosNuevosIndicesConElSigValor '= True '5)LlenarLosNuevosIndicesConElSigValor = Bandera para utilizar ValorAIntroducirEnLosIndicesDeLaMat o no utilizarla 'SALIDAS '1)La matriz indicada x el NombreMatriz, ya redimensionada al doble Static MatRedimMatTemporal As Variant Dim EmpezarALlenarConElValor3APartirDeEsteNumero Dim NumeroLlenando As Long Select Case NombreMatriz 'Matrices con 1 dimensión Case "CPsValores" ReDim Preserve CPsValores(LBound(CPsValores) To UBound(CPsValores) + (UBound(CPsValores) _ - LBound(CPsValores) + 1)) Case "MatDendDsAMover" ReDim Preserve MatDendDsAMover(LBound(MatDendDsAMover) To UBound(MatDendDsAMover) + (UBound(MatDendDsAMover) _ - LBound(MatDendDsAMover) + 1)) Case "MatrizDeCamSeñales" ReDim Preserve MatrizDeCamSeñales(LBound(MatrizDeCamSeñales) To UBound(MatrizDeCamSeñales) + (UBound(MatrizDeCamSeñales) _ - LBound(MatrizDeCamSeñales) + 1)) Case "PoblacsPendientes" ReDim Preserve PoblacsPendientes(LBound(PoblacsPendientes) To UBound(PoblacsPendientes) + (UBound(PoblacsPendientes) - LBound(PoblacsPendientes) + 1)) Case "C" ReDim Preserve C(LBound(C) To UBound(C) + (UBound(C) - LBound(C) + 1)) Case "MatCamSeñalesDeCaseta" ReDim Preserve MatCamSeñalesDeCaseta(LBound(MatCamSeñalesDeCaseta) To UBound(MatCamSeñalesDeCaseta) + (UBound(MatCamSeñalesDeCaseta) - LBound(MatCamSeñalesDeCaseta) + 1)) Case "MatDeCaHisYCaMas" ReDim Preserve MatDeCaHisYCaMas(LBound(MatDeCaHisYCaMas) To UBound(MatDeCaHisYCaMas) + (UBound(MatDeCaHisYCaMas) - LBound(MatDeCaHisYCaMas) + 1)) '********************************************************************* 'PUNTO K QUISIERA OPTIMIZAR 'Matrices q a fuerzas se tienen q copiar a una matriz individual, porque la instrucción Redim no permite redimensionarlas directamente, porque 'son matrices q están dentro de otra matriz, y vb6 no la reconoce como tal (visual basic 2008 sí la reconoce) Case "C() () " MatRedimMatTemporal = C(Nivel1)(Nivel2) If LlenarLosNuevosIndicesConElSigValor = True Then EmpezarALlenarConElValor3APartirDeEsteNumero = UBound(MatRedimMatTemporal) + 1 ReDim Preserve MatRedimMatTemporal(LBound(MatRedimMatTemporal) To UBound(MatRedimMatTemporal) + (UBound(MatRedimMatTemporal) _ - LBound(MatRedimMatTemporal) + 1)) If LlenarLosNuevosIndicesConElSigValor = True Then For NumeroLlenando = EmpezarALlenarConElValor3APartirDeEsteNumero To UBound(MatRedimMatTemporal) MatRedimMatTemporal(NumeroLlenando) = ValorAIntroducirEnLosIndicesDeLaMat Next End If C(Nivel1)(Nivel2) = MatRedimMatTemporal Case "CpsValores() () " MatRedimMatTemporal = CPsValores(Nivel1)(Nivel2) If LlenarLosNuevosIndicesConElSigValor = True Then EmpezarALlenarConElValor3APartirDeEsteNumero = UBound(MatRedimMatTemporal) + 1 ReDim Preserve MatRedimMatTemporal(LBound(MatRedimMatTemporal) To UBound(MatRedimMatTemporal) + (UBound(MatRedimMatTemporal) _ - LBound(MatRedimMatTemporal) + 1)) If LlenarLosNuevosIndicesConElSigValor = True Then For NumeroLlenando = EmpezarALlenarConElValor3APartirDeEsteNumero To UBound(MatRedimMatTemporal) MatRedimMatTemporal(NumeroLlenando) = ValorAIntroducirEnLosIndicesDeLaMat Next End If CPsValores(Nivel1)(Nivel2) = MatRedimMatTemporal '*********************************************************************** 'Matrices con 2 dimensiones Case "MatCamLlavesTratadas" ReDim Preserve MatCamLlavesTratadas(LBound(MatCamLlavesTratadas, 1) To UBound(MatCamLlavesTratadas, 1), _ LBound(MatCamLlavesTratadas, 2) To UBound(MatCamLlavesTratadas, 2) + (UBound(MatCamLlavesTratadas, 2) - LBound(MatCamLlavesTratadas, 2) + 1)) Case "MatSeparadoresDeConceptos" ReDim Preserve MatSeparadoresDeConceptos(LBound(MatSeparadoresDeConceptos, 1) To UBound(MatSeparadoresDeConceptos, 1), _ LBound(MatSeparadoresDeConceptos, 2) To UBound(MatSeparadoresDeConceptos, 2) + (UBound(MatSeparadoresDeConceptos, 2) - LBound(MatSeparadoresDeConceptos, 2) + 1)) Case "MatrizDeAccionesEnVisio" ReDim Preserve MatrizDeAccionesEnVisio(LBound(MatrizDeAccionesEnVisio, 1) To UBound(MatrizDeAccionesEnVisio, 1), _ LBound(MatrizDeAccionesEnVisio, 2) To UBound(MatrizDeAccionesEnVisio, 2) + (UBound(MatrizDeAccionesEnVisio, 2) - LBound(MatrizDeAccionesEnVisio, 2) + 1)) Case "MatDeCaHis" ReDim Preserve MatDeCaHis(LBound(MatDeCaHis, 1) To UBound(MatDeCaHis, 1), _ LBound(MatDeCaHis, 2) To UBound(MatDeCaHis, 2) + (UBound(MatDeCaHis, 2) - LBound(MatDeCaHis, 2) + 1)) Case Else ErrorCritico ("La Matriz se tiene que redimensionar antes de continuar"), -1: Debug.Assert Seguir: Ending 'Si no encontré el NombreMatriz, saca un error y ya no puedo 'continuar hasta k solucione el error. End Select NombreMatriz = "" End Sub
15
« en: Lunes 25 de Mayo de 2009, 17:02 »
Si k funciona, no sabía k se podía hacer eso. Mil gracias m0skit0, me ahorraste mucho tiempo.
16
« en: Domingo 24 de Mayo de 2009, 04:03 »
Hola.
Tengo un problema en Visual Basic 6, quisiera ver si alguién me pdría echar una mano.
Según yo, el siguiente código sí debería de trabajar en VB6 (El código sí trabaja bien en Visual Basic 2008)
Private Sub Matrices() Dim hola() Dim Matr()
ReDim Preserve hola(20) ReDim Matr(2)
hola(20) = Matr hola(20)(0) = "como"
ReDim Preserve hola(20)(1) End Sub
Al ejecutar el código en VB6, me da error de sintaxis en "ReDim Preserve hola(20)(1)" ¿Cuál podría ser el problema?, ¿Hay alguna solución?
17
« en: Domingo 10 de Mayo de 2009, 14:59 »
Hola
Si alguien piensa k el programa Glupet es un tongo, está en todo su derecho de pensarlo, espero pronto poder hacer k cambien de opinión.
Saludos
18
« en: Lunes 27 de Abril de 2009, 08:00 »
OK
Investigando un poco en internet, pude finalmente solucionar el problema.
Bajé e instalé el archivo DsoFileSetup_KB224351_x86.exe desde Micros oft
Con el archivo ya ejecutado, tuve una referencia automática en VB6 a DSO OLE Document Properties Readers 2.1
Mediante el archivo de ejemplo para VB6, además de poder modificar, mediante programación todos los datos de la ventana propiedades del archivo, incluyendo las de las pestañas "General" y "Resumen", se pueden modificar varias cosas mas.
Saludos
19
« en: Sábado 25 de Abril de 2009, 20:07 »
Saludos compañeros de este foro. Quisiera ver si me pueden hacer el favor de sacarme de la siguiente duda. Cuando estoy en el explorador de windows XP y pongo el mouse encima de un archivo binario creado por mí, con una extensión k yo le puse .gpt, aparece un recuadro indicándome varios datos del archivo. Estando en el mismo explorador, al hacer click en el archivo con el botón derecho y seleccionar propiedades aparece una ventana con 2 pestañas, una llamada "General" y la otra llamada "Resumen" Con un código similar al siguiente, puedo leer (y en algunos casos también escribir), vía programación, los datos k aparecen en la pestaña "General" Dim NombreDeArchivo as string Set fs = CreateObject("Scripting.FileSystemObject") Set Archivofs = fs.GetFile(PathYNombreDeArchivo) debug.print "Fecha de Creacion " & Archivofs.DateCreated debug.print "Ultimo Uso " & Archivofs.DateLastAccessed debug.print "Ultima Modificacion" & Archivofs.DateLastModified NombreDeArchivo = Archivofs.Name Archivofs.Name = "NuevoNombreDeArchivo" La pregunta es: ¿Cómo podría modificar, vía programación, los datos que se muestran en la pestaña "Resumen" de la ventana propiedades del archivo mencionado? De antemano, gracias x su ayuda.
20
« en: Lunes 13 de Abril de 2009, 02:01 »
Hola
Hugo, si todavía sigues utilizando el interruptor en lugar del ratón sugerido x Nebire, quizá tu problema se solucionaría poniéndole un capacitor (condensador), k vaya desde tierra a la salida del interruptor.
Para encontrar el valor del capacitor tendrías k encontrarlo un poco con la práctica. Desde unos cuantos picofaradios hasta unos cuantos microfaradios.
Alguna vez hice un decodificador de televisión análogico (cuando nadie lo hacía todavía) y necesitaba k para activarse, el usuario pusiera una determinada secuencia de teclas desde los botones de la TV. Y fue ahí donde se me presentaba este problema. Al analizar con el osciloscopio la salida del interruptor cuando se accionaba, esta salida tenía precisamente mucho ruido. Mi solución fue la k te comento.
Saludos
21
« en: Domingo 29 de Marzo de 2009, 09:01 »
Hola Nebire, gracias x comentar.
En respuesta a tu pregunta, te comento k Glupet es una combinación k me gustó como suena, de los nombres de mis dos queridas abuelas: Guadalupe y Petra. Además la idea del programa es k pueda servir a las personas de algún modo, x lo k la terminación pet me agradó. Hay un poquito mas en la palabra Glupet, pero principalmente es esto.
Saludos.
22
« en: Sábado 28 de Marzo de 2009, 22:18 »
Hola Lamento no haber podido publicar nada durante algún tiempo, pero no he tenido mucho tiempo para hacerlo.
Lamentablemente he decidido hacer comercial el programa, x lo k ya no me es posible dar detalles de su funcionamiento, x lo k les pido una disculpa por ello.
Solo les comento k en poco tiempo, tendré lista una versión para probar en línea.
La versión en línea, tendrá conocimientos en español a un nivel aproximado de 8 años (pero en muchos temas el conocimiento será mucho mayor, especialmente en los k no están involucradas emociones), con posibilidades completas de nuevo aprendizaje de cualquier tema. El conocimiento de inglés será, a un nivel de 4 a 5 años. Para cualquier otro lenguaje (k no esté cifrado, o al menos k pueda ser usado en la vida diaria de las personas), el nivel de conocimiento sera de 0 años, pero con capacidad de aprendizaje completo. El aprendizaje de nuevo conocimiento corre, por completo, por cuenta del usuario, simplemente platicando con el programa, enseñándole nuevo conocimiento. Solo muy al principio lo emitido x el Glupet no será muy acertado (aunque siempre real), pero muy pronto su certeza de respuestas y preguntas será muy parecida a la del usuario (excepto en los temas k desconozca pero k puede aprender)
La única limitación del programa on-line será un límite de tiempo.
Saludos
23
« en: Miércoles 22 de Octubre de 2008, 11:38 »
NOTA IMPORTANTE: Lamentablemente, después de escribir muchos mas información de la k sale en esta respuesta, el Foro me indicaba error y ya no podía recuperar lo escrito. X lo k pido disculpas y por tanto mejor crearé una Página personal en algún sitio, en la k iré poniendo todo lo k falta. Cuando tenga lista la página, se las daré a conocer en este mismo foro. Mil disculpas.
24
« en: Lunes 20 de Octubre de 2008, 12:55 »
Introduccion
25
« en: Lunes 20 de Octubre de 2008, 11:49 »
HOLA: PRESENTACIÓN. Actualmente tengo casi terminado un modelo de programa al k he llamado, provisionalmente Glupet. Este programa tiene presentación gráfica tipo Chat, y k como comenté antes, trata de aprender todo lo sensado, y de producir comportamientos inteligentes en base a lo sensado. Algo, importantísimo en este programa, es k no tiene ni una sola regla gramatical programada, y puede experimentarse con él en cualquier lenguaje (español, inglés, francés o cualquier otro lenguaje, no importa el k sea, inclusive lenguajes ideográficos). Y simplemente cambiando sus tipos de sensores puede predecir comportamientos de cualquier índole.
Páginas: [1]
|
|
|