Spelling suggestions: "subject:"lenguaje dde programación"" "subject:"lenguaje dee programación""
31 |
Un Modelo Abierto de Proximidad para el Descubrimiento de Servicios en Computación PervasivaRamiro Cid, Víctor Alejandro January 2009 (has links)
No description available.
|
32 |
Construcción de un editor de mapas para el juego "1814: la rebelión del Cuzco"Landa Torrejón, Luis Ignacio 17 July 2017 (has links)
En el 2014, el grupo de investigación AVATAR lanzó su juego de estrategia en
tiempo real “1814: La rebelión del Cuzco”, y ahora desean expandir el contenido del
juego con nuevos mapas y niveles. Sin embargo, crear contenido de este tipo
requiere iniciar un ciclo de desarrollo extenso y costoso, el cual produce una
cantidad limitada de mapas.
Frente a esta necesidad, se propone un editor de mapas para el juego. Una
herramienta que permite crear una cantidad ilimitada de mapas y, a diferencia de un
algoritmo de generación de niveles, aprovecha la creatividad de los jugadores para
generar nuevo contenido e interés en el juego.
El editor se construyó siguiendo la estructura de un compilador que recibe como
entrada un lenguaje visual. Se elaboró primero una interfaz gráfica donde se edita
el mapa de forma intuitiva, el cual luego es procesado por el compilador y traducido
a una estructura de datos interpretable por el motor de juego. Por último, se realizó
una prueba con usuarios para validar la usabilidad del editor y el correcto
funcionamiento de los mapas editados.
Al finalizar el proyecto de fin de carrera se logró construir satisfactoriamente un
editor de mapas para “1814: La rebelión del Cuzco”, capaz de ser utilizado, tanto
por jugadores expertos como casuales, para crear fácilmente nuevos mapas y
luego integrarlos al juego.
|
33 |
Análisis del posicionamiento sectorial de compañías en temas de dirección de proyectos usando la plataforma Linkedin y técnicas de procesado de lenguaje naturalRivas Huapalla, Juan José Antonio 18 September 2019 (has links)
En un mundo íntegramente inmerso en la era digital, las personas han adoptado una nueva forma de adquirir conocimientos, datos y referencias sobre sus gustos e intereses. Sin embargo, esta nueva era ha generado una gran cantidad de información que, muchas veces, es completamente abrumadora para el ser humano. En lo que respecta al área laboral, esto no cambia en absoluto. La gran mayoría de empresas, en la actualidad, cuentan con una página web y, si son empresas multinacionales, tendrán una en cada país donde operan. Asimismo, las redes sociales se han convertido en un medio altamente eficaz para comunicarse, no solamente con los consumidores finales sino, además, con futuros colaboradores en busca de nuevas oportunidades. La red laboral LinkedIn es un claro ejemplo de este fenómeno. En esta red se puede encontrar a empresas de todo el mundo, de distintos sectores y tamaños, ofreciendo puestos de trabajo y, no menos importante, información sobre lo que se encuentran realizando en su sector, noticias sobre sus nuevas implementaciones y publicaciones de sus colaboradores.
La presente tesis nace de la necesidad de identificar cómo se presentan las empresas hacia las personas y el entorno con intereses afines en esta red laboral. Al ser esta red sumamente amplia, se acotó la data a empresas de ingeniería presentes en el mercado español, tomando como referencia el listado de empresas por la Clasificación Nacional de Actividades Económicas (CNAE), específicamente las empresas que brindan servicios técnicos de ingeniería y otras actividades relacionadas con el asesoramiento técnico. Se ha hecho uso de distintas técnicas de minería de datos y lenguaje de programación natural mediante el lenguaje de programación R, tomando en cuenta las noticias del último año (10 de agosto de 2018) de 168 empresas con actividad regular en LinkedIn y con perfiles en idioma español o inglés. De esta forma, se podrán encontrar relaciones reales entre las acciones que promueven dentro de esta red, así como los clústeres que pueden existir en las empresas de ingeniería con respecto a su promoción en la era digital. Para realizar este análisis, se ha dividido la data recogida de las empresas estudiadas en tres (3) periodos temporales denominados: “2018 S2”, “2018 S1” y “2017 S2”, esto se entiende como los semestres de los años mencionados. Asimismo, se agruparon en cinco (5) grandes sectores: Telecomunicaciones, Industria Energética, Industria Automotriz y Aeroespacial, Industria Civil e Infraestructuras y Gestión y Control de la Calidad. La finalidad de estas segmentaciones es interpretar el comportamiento de las empresas en general por periodos temporales y contrastarla con un análisis sectorial.
Finalmente, se expondrán las interpretaciones y conclusiones de los resultados obtenidos al sintetizar los datos obtenidos. De esta manera, se podrá saber qué es lo que realmente están transmitiendo las empresas a través de esta red laboral.
|
34 |
Patrones de circulación oceánica en el litoral españolListe Muñoz, María 30 July 2009 (has links)
En esta Tesis, se ha desarrollado el Modelo MEDiNA, que simula la circulación oceánica tridimensional del Atlántico Norte y del Mar Mediterráneo y da como resultado series temporales de salinidad, temperatura y componente u, v y w de la velocidad. Mediante la ejecución de dicho modelo, se han generado 46 años de datos que se han validado mediante la comparación de los mismos con una base de datos de climatologías (GDP), además de mediante el cálculo del transporte en los principales canales y estrechos de la cuenca occidental mediterránea y del Golfo de México. Una vez que se han validado los resultados se ha demostrado además, la capacidad que tiene el modelo MEDiNA para simular la formación y la propagación de la masa de agua MOW (Mediterranean Overflow Water) y se ha conseguido demostrar que los modelos-z, como el modelo MEDiNA, son capaces de simular adecuadamente las corrientes de densidad, como por ejemplo la MOW (Dietrich et al., 2008). Por último se han aplicado dos herramientas estadísticas para el análisis de los resultados; la primera de ellas es la técnica estadística estándar, análisis de Componentes Principales, también denominada análisis de Funciones Ortogonales Empíricas (Empirical Orthogonal Function, EOF), y la segunda son las Redes Neuronales Auto-Organizativas (Self Organizing Maps, SOM). Se ha demostrado que tanto los EOF como las SOM, además de ser potentes herramientas estadísticas, son adecuadas para estudiar en este caso, las series temporales de variables oceanográficas obtenidas a partir del modelo MEDiNA, con el fin de obtener patrones de circulación, así como la relación de éstos con los patrones atmosféricos. / In this thesis, it has developed the MEDiNA model, which simulates three-dimensional ocean circulation in the North Atlantic and the Mediterranean Sea and results time series of salinity, temperature and component u, v and w of the velocity. By implementing this model it has generated 46 years of data that it has been validated by comparing with a climatology database (GDP), and by calculating the main transport in the narrow channels Western Mediterranean basin and the Gulf of Mexico. Once it has validated the results also demonstrated the ability of the Medina model to simulate the formation and spread of the water body MOW (Mediterranean Overflow Water) and has succeeded in demonstrating that the z-models, as MEDINA model, are able to adequately simulate density currents, such as the MOW (Dietrich et al., 2008). Finally, it has applied two statistical tools for analyzing the results, the first of these is the standard statistical technique, principal component analysis, also called Empirical Orthogonal Function analysis (Empirical Orthogonal Function, EOF) and the second is Self-Organizing Neural Networks (Self Organizing Maps, SOM). Its have been shown that both, SOM and EOF, as well as being powerful statistical tools are adequate to study in this case, the time series of oceanographic variables of the model obtained from Medina, to obtain ocean patterns and their relationship to atmospheric patterns.
|
35 |
A formal framework for model managementBoronat Moll, Arturo 07 May 2008 (has links)
El Desarrollo de Software Dirigido por Modelos es una rama de la Ingeniería del Software en la
que los artefactos software se representan como modelos para incrementar la productividad, calidady eficiencia económica en el proceso de desarrollo de software, donde un modelo proporciona una representación abstracta del código final de una aplicación. En este campo, la iniciativa Model-Driven Architecture (MDA), patrocinada por la OMG, está constituida por una familia de estándares industriales, entre los que se destacan: Meta-Object Facility (MOF), Unified Modeling Language (UML), Object Constraint Language (OCL), XML Metadata Interchange (XMI),
y Query/Views/Transformations (QVT). Estos estándares proporcionan unas directrices comunes
para herramientas basadas en modelos y para procesos de desarrollo de software dirigidos por modelos.
Su objetivo consiste en mejorar la interoperabilidad entre marcos de trabajo ejecutables, en
automatizar el proceso desarrollo de software de software y en proporcionar técnicas que eviten
errores durante ese proceso.
El estándar MOF describe un marco de trabajo genérico que permite definir la sintaxis abstracta
de lenguajes de modelado. Este estándar persigue la definición de los conceptos básicos que son
utilizados en procesos de desarrollo de software dirigidos por modelos: que es un modelo, que es un metamodelo, qué es reflexión en un marco de trabajo basado en MOF, etc. Sin embargo, la mayoría de estos conceptos carecen de una semántica formal en la versión actual del estándar MOF. Además, OCL se utiliza como un lenguage de definición de restricciones que permite añadir semántica a un metamodelo MOF. Desafortunadamente, la relación entre un metamodelo y sus restricciones OCL también carece de una semántica formal. Este hecho es debido, en parte, a que los metamodelos solo pueden ser definidos como dato en un marco de trabajo basado en MOF.
El estándar MOF también proporciona las llamadas facilidades de reflexión de MOF (MOF Reflecti / Boronat Moll, A. (2007). A formal framework for model management [Tesis doctoral]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/1964
|
36 |
Baseline-oriented modeling: una aproximación MDA basada en líneas de productos software para el desarrollo de aplicaciones: (dominio de los sistemas expertos)Cabello Espinosa, María Eugenia 15 December 2008 (has links)
Esta tesis presenta la aproximación denominada Baseline Oriented Modeling
(BOM). BOM es un framework que genera automáticamente Sistemas
Expertos (SE) basado en Líneas de Producto Software (LPS).
En BOM, se generan aplicaciones en un dominio específico, basadas en la
estructura y comportamiento de los SE, como modelos arquitectónicos
PRISMA, utilizando técnicas de LPS. Este proceso implica, por un lado
construir una Baseline (como repositorio que contiene todos los assets
necesarios para construir un producto de la LPS), y por otro lado realizar el
plan de producción de la LPS.
BOM gestiona la especificación de la variabilidad y la funcionalidad en modelos
separados, representados a través de modelos conceptuales. La variabilidad se
maneja en dos pasos: i) en el primer paso la variabilidad del dominio se refleja
en las arquitecturas base de la LPS, que comparten una arquitectura genérica,
y ii) en el segundo paso la variabilidad del dominio de aplicación específico se
instancia para obtener la arquitectura específica PRISMA como el producto
final de la LPS.
BOM sigue la iniciativa del Object Management Group (OMG) de Model-Driven
Architecture (MDA) para construir modelos de dominio (como Modelos
Independientes de Computación), que son transformados en modelos
arquitectónicos PRISMA (como Modelos Independientes de Plataforma) y
compilados a una aplicación ejecutable en .NET (como Modelos Específicos de
Plataforma). Lenguajes Específicos de Dominio han sido utilizados para que la
interfaz del usuario sea amigable, clara y sencilla. / Cabello Espinosa, ME. (2008). Baseline-oriented modeling: una aproximación MDA basada en líneas de productos software para el desarrollo de aplicaciones: (dominio de los sistemas expertos) [Tesis doctoral]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/3793
|
37 |
Program Slicing for Modern Programming LanguagesGalindo Jiménez, Carlos Santiago 24 September 2025 (has links)
[ES] Producir software eficiente y efectivo es una tarea que parece ser tan difícil ahora como lo era para los primeros ordenadores. Con cada mejora de hardware y herramientas de desarrollo (como son compiladores y analizadores), la demanda de producir software más rápido y más complejo ha ido aumentando. Por tanto, todos estos análisis auxiliares ahora son una parte integral del desarrollo de programas complejos.
La fragmentación de programas es una técnica de análisis estático, que da respuesta a ¿Qué partes del programa pueden afectar a esta instrucción? Su aplicación principal es la depuración de programas, porque puede acotar la zona de código a la que el programador debe prestar atención mientras busca la causa de un error. También tiene otras muchas aplicaciones, como pueden ser la paralelización y especialización de programas, la comprensión de programas y el mantenimiento. En los últimos años, su uso más común ha sido como preproceso a otros análisis con alto coste computacional, para reducir el tamaño del programa a procesar, y, por tanto, el tiempo de ejecución de estos. La estructura de datos más popular para fragmentar programas es el system dependence graph (SDG), un grafo dirigido que representa las instrucciones de un programa como vértices, y sus dependencias como arcos. Los dos tipos principales de dependencias son las de control y las de datos, que encapsulan el flujo de control y datos en todas las ejecuciones posibles de un programa.
El área de lenguajes de programación está en eterno cambio, ya sea por la aparición de nuevos lenguajes o por el lanzamiento de nuevas características en lenguajes existentes, como pueden ser Java o Erlang. Sin embargo, la fragmentación de programas se definió originalmente para el paradigma imperativo. Aun así, hay características populares en lenguajes imperativos, como las arrays y las excepciones, que aún no tienen una representación eficiente y/o completa en el SDG. Otros paradigmas, como el funcional o el orientado a objetos, sufren también de un soporte parcial en el SDG.
Esta tesis presenta mejoras para construcciones comunes en la programación moderna, dividiendo contribuciones en las enfocadas a dependencias de control y las enfocadas a datos. Para las primeras, especificamos una nueva representación de instrucciones catch, junto a una descripción completa del resto de instrucciones relacionadas con excepciones. También analizamos las técnicas punteras para saltos incondicionales (p.e., break), y mostramos los riesgos de combinarlas con otras técnicas para objetos, llamadas o excepciones. A continuación, ponemos nuestra mirada en la concurrencia, con una formalización de un depurador de especificaciones CSP reversible y causal-consistente. En cuanto a las dependencias de datos, se enfocan en técnicas sensibles al contexto (es decir, más precisas en presencia de rutinas y sus llamadas). Exploramos las dependencias de datos generadas en programas concurrentes por memoria compartida, redefiniendo las dependencias de interferencia para hacerlas sensibles al contexto. A continuación, damos un pequeño rodeo por el campo de la indecidibilidad, en el que demostramos que ciertos tipos de análisis de datos sobre programas con estructuras de datos complejas son indecidibles. Finalmente, ampliamos un trabajo previo sobre la fragmentación de estructuras de datos complejas, combinándolo con la fragmentación tabular, que la hace sensible al contexto.
Además, se han desarrollado o extendido múltiples librerías de código con las mejoras mencionadas anteriormente. Estas librerías nos han permitido realizar evaluaciones empíricas para algunos de los capítulos, y también han sido publicadas bajo licencias libres, que permiten a otros desarrolladores e investigadores extenderlas y contrastarlas con sus propuestas, respectivamente. Las herramientas resultantes son dos fragmentadores de código para Java y Erlang, y un depurador de CSP reversible y causal-consistente. / [CA] La producció de programari eficient i eficaç és una tasca que resulta tan difícil hui dia com ho va ser durant l'adveniment dels ordinadors. Per cada millora de maquinari i ferramentes per al desenvolupament, augmenta sovint la demanda de programes, així com la seua complexitat. Com a conseqüència, totes aquestes anàlisis auxiliars esdevenen una part integral del desenvolupament de programari.
La fragmentació de programes és una tècnica d'anàlisi estàtica, que respon a "Quines parts d'aquest programa poden afectar a aquesta instrucció?". L'aplicació principal d'aquesta tècnica és la depuració de programes, per la seua capacitat de reduir la llargària d'un programa sense canviar el seu funcionament respecte a una instrucció que està fallant, delimitant així l'àrea del codi en què el programador busca l'origen de l'errada. Tot i això, té moltes altres aplicacions, com la paral·lelització i especialització de programes o la comprensió de programes i el seu manteniment. Durant els darrers anys, l'ús més freqüent de la fragmentació de programes ha sigut com a <<preprocés>> abans d'altres anàlisis amb un alt cost computacional, per tal de reduir-ne el temps requerit per realitzar-les. L'estructura de dades més popular per fragmentar programes és el system dependence graph (SDG), un graf dirigit representant-ne les instruccions d'un programa amb vèrtexs i les seues dependències amb arcs. Els dos tipus principals de dependència són el de control i el de dades, aquests encapsulen el flux de control i dades a totes les possibles execucions d'un programa.
L'àrea dels llenguatges de programació s'hi troba en constant evolució, o bé per l'aparició de nous llenguatges, o bé per noves característiques per als preexistents, com poden ser Java o Erlang. No obstant això, la fragmentació de programes s'hi va definir originalment per al paradigma imperatiu. Tot i que, també hi trobem característiques populars als llenguatges imperatius, com els arrays i les excepcions, que encara no en tenen una representació eficient i/o completa al SDG. Altres paradigmes, com el funcional o l'orientat a objectes, pateixen també d'un suport reduit al SDG.
Aquesta tesi presenta millores per a construccions comunes de la programació moderna, dividint les contribucions entre aquelles enfocades a les dependències de control i aquelles enfocades a dades. Per a les primeres, hi especifiquem una nova representació d'instruccions catch, junt amb una descripció de la resta d'instruccions relacionades amb excepcions. També hi analitzem les tècniques capdavanteres de fragmentació de salts incondicionals, i hi mostrem els riscs de combinar-ne-les amb altres tècniques per a objectes, instruccions de crida i excepcions. A continuació, hi posem la nostra atenció en la concurrència, amb una formalització d'un depurador d'especificacions CSP reversible i causal-consistent. Respecte a les dependències de dades, dirigim els nostres esforços a produir tècniques sensibles al context (és a dir, que es mantinguen precises en presència de procediments). Hi explorem les dependències de dades generades en programes concurrents amb memòria compartida, redefinint-ne les dependències d'interferència per a fer-ne-les sensibles al context. Seguidament, hi demostrem la indecidibilitat d'alguns tipus d'anàlisis de dades per a programes amb estructures de dades complexes. Finalment, hi ampliem un treball previ sobre la fragmentació d'estructures de dades complexes, combinant-lo amb la fragmentació tabular, fent-hi-la sensible al context.
A més a més, s'han desenvolupat o estés diverses llibreries de codi amb les millores esmentades prèviament. Aquestes llibreries ens han permés avaluar empíricament alguns dels capítols i també han sigut publicades sota llicències lliures, fet que permet a altres desenvolupadors i investigadors poder estendre-les i contrastar-les, respectivament. Les ferramentes resultants són dos fragmentadors de codi per a Java i Erlang, i un depurador CSP. / [EN] Producing efficient and effective software is a task that has remained difficult since the advent of computers. With every improvement on hardware and developer tooling (e.g., compilers and checkers), the demand for software has increased even further. This means that auxiliary analyses have become integral in developing complex software systems.
Program slicing is a static analysis technique that gives answers to "What parts of the program can affect a given statement?", and similar questions. Its main application is debugging, as it can reduce the amount of code on which a programmer must look for a mistake or bug. Other applications include program parallelization and specialisation, program comprehension, and software maintenance. Lately, it has mostly been applied as a pre-processing step in other expensive static analyses, to lower the size of the program and thus the analyses' runtime. The most popular data structure in program slicing is the system dependence graph (SDG), which represents statements as nodes and dependences as arcs between them. The two main types of dependences are control and data dependences, which encapsulate the control and data flow throughout every possible execution of a program.
Programming languages are an ever-expanding subject, with new features coming to new releases of popular and up-and-coming languages like Python, Java, Erlang, Rust, and Go. However, program slicing was originally defined for (and has been mostly focused on) imperative programming languages. Even then, some popular elements of the imperative paradigm, such as arrays and exceptions do not have an efficient or sometimes complete representation in the SDG. Other paradigms, such as functional or object-oriented also suffer from partial support in the SDG.
This thesis presents improvements for common programming constructs, and its contributions are split into control and data dependence. For the former, we (i) specify a new representation of catch statements, along with a full description of other exception-handling constructs. We also (ii) analyse the current state-of-the-art technique for unconditional jumps (e.g., break or return), and show the risks of combining it with other popular techniques. Then, we focus on concurrency, with a (iii) formalisation of a reversible, causal-consistent debugger for CSP specifications. Switching to data dependences, we focus our contributions on making existing techniques context-sensitive (i.e., more accurate in the presence of routines or functions). We explore the data dependences involved in shared-memory concurrent programs, (iv) redefining interference dependence to make it context-sensitive. Afterwards, we take a small detour to (v) explore the decidability of various data analyses on programs with (and without) complex data structures and routine calls. Finally, we (vi) extend our previous work on slicing complex data structures to combine it with tabular slicing, which provides context-sensitivity.
Additionally, throughout this thesis, multiple supporting software libraries have been written or extended with the aforementioned improvements to program slicing. These have been used to provide empirical evaluations, and are available under libre software licenses, such that other researchers and software developers may extend or contrast them against their own proposals. The resulting tools are two program slicers for Java and Erlang, and a causal-consistent reversible debugger for CSP. / Galindo Jiménez, CS. (2024). Program Slicing for Modern Programming Languages [Tesis doctoral]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/211183
|
38 |
Rule-Based Software Verification and CorrectionBallis, Demis 07 May 2008 (has links)
The increasing complexity of software systems has led to the development of sophisticated formal Methodologies for verifying and correcting data and programs. In general, establishing whether a program behaves correctly w.r.t. the original programmer s intention or checking the consistency and the correctness of a large set of data are not trivial tasks as witnessed by many case studies which occur in the literature.
In this dissertation, we face two challenging problems of verification and correction. Specifically, verification and correction of declarative programs, and the verification and correction of Web sites (i.e. large collections of semistructured data).
Firstly, we propose a general correction scheme for automatically correcting declarative, rule-based programs which exploits a combination of bottom-up as well as topdown inductive learning techniques. Our hybrid hodology is able to infer program corrections that are hard, or even impossible, to obtain with a simpler,automatic top-down or bottom-up learner. Moreover, the scheme will be also particularized to some well-known declarative programming paradigm: that is, the functional logic and the functional programming paradigm.
Secondly, we formalize a framework for the automated verification of Web sites which can be used to specify integrity conditions for a given Web site, and then automatically check whether these conditions are fulfilled. We provide a rule-based, formal specification language which allows us to define syntactic as well as semantic
properties of the Web site. Then, we formalize a verification technique which detects both incorrect/forbidden patterns as well as lack of information, that is, incomplete/missing Web pages. Useful information is gathered during the verification process which can be used to repair the Web site. So, after a verification phase, one
can also infer semi-automatically some possible corrections in order to fix theWeb site.
The methodology is based on a novel rewrit / Ballis, D. (2005). Rule-Based Software Verification and Correction [Tesis doctoral]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/1948
|
39 |
Towards Data Wrangling Automation through Dynamically-Selected Background KnowledgeContreras Ochando, Lidia 04 February 2021 (has links)
[ES] El proceso de ciencia de datos es esencial para extraer valor de los datos. Sin embargo, la parte más tediosa del proceso, la preparación de los datos, implica una serie de formateos, limpieza e identificación de problemas que principalmente son tareas manuales. La preparación de datos todavía se resiste a la automatización en parte porque el problema depende en gran medida de la información del dominio, que se convierte en un cuello de botella para los sistemas de última generación a medida que aumenta la diversidad de dominios, formatos y estructuras de los datos.
En esta tesis nos enfocamos en generar algoritmos que aprovechen el conocimiento del dominio para la automatización de partes del proceso de preparación de datos. Mostramos la forma en que las técnicas generales de inducción de programas, en lugar de los lenguajes específicos del dominio, se pueden aplicar de manera flexible a problemas donde el conocimiento es importante, mediante el uso dinámico de conocimiento específico del dominio. De manera más general, sostenemos que una combinación de enfoques de aprendizaje dinámicos y basados en conocimiento puede conducir a buenas soluciones. Proponemos varias estrategias para seleccionar o construir automáticamente el conocimiento previo apropiado en varios escenarios de preparación de datos. La idea principal se basa en elegir las mejores primitivas especializadas de acuerdo con el contexto del problema particular a resolver.
Abordamos dos escenarios. En el primero, manejamos datos personales (nombres, fechas, teléfonos, etc.) que se presentan en formatos de cadena de texto muy diferentes y deben ser transformados a un formato unificado. El problema es cómo construir una transformación compositiva a partir de un gran conjunto de primitivas en el dominio (por ejemplo, manejar meses, años, días de la semana, etc.). Desarrollamos un sistema (BK-ADAPT) que guía la búsqueda a través del conocimiento previo extrayendo varias meta-características de los ejemplos que caracterizan el dominio de la columna. En el segundo escenario, nos enfrentamos a la transformación de matrices de datos en lenguajes de programación genéricos como R, utilizando como ejemplos una matriz de entrada y algunas celdas de la matriz de salida. También desarrollamos un sistema guiado por una búsqueda basada en árboles (AUTOMAT[R]IX) que usa varias restricciones, probabilidades previas para las primitivas y sugerencias textuales, para aprender eficientemente las transformaciones.
Con estos sistemas, mostramos que la combinación de programación inductiva, con la selección dinámica de las primitivas apropiadas a partir del conocimiento previo, es capaz de mejorar los resultados de otras herramientas actuales específicas para la preparación de datos. / [CA] El procés de ciència de dades és essencial per extraure valor de les dades. No obstant això, la part més tediosa del procés, la preparació de les dades, implica una sèrie de transformacions, neteja i identificació de problemes que principalment són tasques manuals. La preparació de dades encara es resisteix a l'automatització en part perquè el problema depén en gran manera de la informació del domini, que es converteix en un coll de botella per als sistemes d'última generació a mesura que augmenta la diversitat de dominis, formats i estructures de les dades.
En aquesta tesi ens enfoquem a generar algorismes que aprofiten el coneixement del domini per a l'automatització de parts del procés de preparació de dades. Mostrem la forma en què les tècniques generals d'inducció de programes, en lloc dels llenguatges específics del domini, es poden aplicar de manera flexible a problemes on el coneixement és important, mitjançant l'ús dinàmic de coneixement específic del domini. De manera més general, sostenim que una combinació d'enfocaments d'aprenentatge dinàmics i basats en coneixement pot conduir a les bones solucions. Proposem diverses estratègies per seleccionar o construir automàticament el coneixement previ apropiat en diversos escenaris de preparació de dades. La idea principal es basa a triar les millors primitives especialitzades d'acord amb el context del problema particular a resoldre.
Abordem dos escenaris. En el primer, manegem dades personals (noms, dates, telèfons, etc.) que es presenten en formats de cadena de text molt diferents i han de ser transformats a un format unificat. El problema és com construir una transformació compositiva a partir d'un gran conjunt de primitives en el domini (per exemple, manejar mesos, anys, dies de la setmana, etc.). Desenvolupem un sistema (BK-ADAPT) que guia la cerca a través del coneixement previ extraient diverses meta-característiques dels exemples que caracteritzen el domini de la columna. En el segon escenari, ens enfrontem a la transformació de matrius de dades en llenguatges de programació genèrics com a R, utilitzant com a exemples una matriu d'entrada i algunes dades de la matriu d'eixida. També desenvolupem un sistema guiat per una cerca basada en arbres (AUTOMAT[R]IX) que usa diverses restriccions, probabilitats prèvies per a les primitives i suggeriments textuals, per aprendre eficientment les transformacions.
Amb aquests sistemes, mostrem que la combinació de programació inductiva amb la selecció dinàmica de les primitives apropiades a partir del coneixement previ, és capaç de millorar els resultats d'altres enfocaments de preparació de dades d'última generació i més específics. / [EN] Data science is essential for the extraction of value from data. However, the most tedious part of the process, data wrangling, implies a range of mostly manual formatting, identification and cleansing manipulations. Data wrangling still resists automation partly because the problem strongly depends on domain information, which becomes a bottleneck for state-of-the-art systems as the diversity of domains, formats and structures of the data increases.
In this thesis we focus on generating algorithms that take advantage of the domain knowledge for the automation of parts of the data wrangling process. We illustrate the way in which general program induction techniques, instead of domain-specific languages, can be applied flexibly to problems where knowledge is important, through the dynamic use of domain-specific knowledge. More generally, we argue that a combination of knowledge-based and dynamic learning approaches leads to successful solutions. We propose several strategies to automatically select or construct the appropriate background knowledge for several data wrangling scenarios. The key idea is based on choosing the best specialised background primitives according to the context of the particular problem to solve.
We address two scenarios. In the first one, we handle personal data (names, dates, telephone numbers, etc.) that are presented in very different string formats and have to be transformed into a unified format. The problem is how to build a compositional transformation from a large set of primitives in the domain (e.g., handling months, years, days of the week, etc.). We develop a system (BK-ADAPT) that guides the search through the background knowledge by extracting several meta-features from the examples characterising the column domain. In the second scenario, we face the transformation of data matrices in generic programming languages such as R, using an input matrix and some cells of the output matrix as examples. We also develop a system guided by a tree-based search (AUTOMAT[R]IX) that uses several constraints, prior primitive probabilities and textual hints to efficiently learn the transformations.
With these systems, we show that the combination of inductive programming with the dynamic selection of the appropriate primitives from the background knowledge is able to improve the results of other state-of-the-art and more specific data wrangling approaches. / This research was supported by the Spanish MECD Grant FPU15/03219;and partially by the Spanish MINECO TIN2015-69175-C4-1-R (Lobass) and RTI2018-094403-B-C32-AR (FreeTech) in Spain; and by the ERC Advanced Grant Synthesising Inductive Data Models (Synth) in Belgium. / Contreras Ochando, L. (2020). Towards Data Wrangling Automation through Dynamically-Selected Background Knowledge [Tesis doctoral]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/160724
|
40 |
Development of high-performance algorithms for a new generation of versatile molecular descriptors. The Pentacle softwareDurán Alcaide, Ángel 04 March 2010 (has links)
The work of this thesis was focused on the development of high-performance algorithms for a new generation of molecular descriptors, with many advantages with respect to its predecessors, suitable for diverse applications in the field of drug design, as well as its implementation in commercial grade scientific software (Pentacle). As a first step, we developed a new algorithm (AMANDA) for discretizing molecular interaction fields which allows extracting from them the most interesting regions in an efficient way. This algorithm was incorporated into a new generation of alignmentindependent molecular descriptors, named GRIND-2. The computing speed and efficiency of the new algorithm allow the application of these descriptors in virtual screening. In addition, we developed a new alignment-independent encoding algorithm (CLACC) producing quantitative structure-activity relationship models which have better predictive ability and are easier to interpret than those obtained with other methods. / El trabajo que se presenta en esta tesis se ha centrado en el desarrollo de algoritmos de altas prestaciones para la obtención de una nueva generación de descriptores moleculares, con numerosas ventajas con respecto a sus predecesores, adecuados para diversas aplicaciones en el área del diseño de fármacos, y en su implementación en un programa científico de calidad comercial (Pentacle). Inicialmente se desarrolló un nuevo algoritmo de discretización de campos de interacción molecular (AMANDA) que permite extraer eficientemente las regiones de máximo interés. Este algoritmo fue incorporado en una nueva generación de descriptores moleculares independientes del alineamiento, denominados GRIND-2. La rapidez y eficiencia del nuevo algoritmo permitieron aplicar estos descriptores en cribados virtuales. Por último, se puso a punto un nuevo algoritmo de codificación independiente de alineamiento (CLACC) que permite obtener modelos cuantitativos de relación estructura-actividad con mejor capacidad predictiva y mucho más fáciles de interpretar que los obtenidos con otros métodos.
|
Page generated in 0.1025 seconds