D. Deugo | Carleton University (original) (raw)

Papers by D. Deugo

Research paper thumbnail of Dynamic application loading and unloading on Pocket PCs

A problem small with devices, such as the iPAQ Pocket PC, is that their small amounts of memory l... more A problem small with devices, such as the iPAQ Pocket PC, is that their small amounts of memory limits the number of applications that can be stored on them. A simple solution to this problem is to have applications load when needed and then unload when not in use. In this paper, we describe how to repackage Eclipse's OSGi plug-ins with some custom software to provide a dynamic application loader and unloader for the iPAQ Pocket PC

Research paper thumbnail of JSF performance

JavaServer Faces is a new technology that helps developers build web applications using Java. Wit... more JavaServer Faces is a new technology that helps developers build web applications using Java. With every new technology comes a concern about performance. We wanted to know what type of performance one can expect from an open source web application consisting of Tomcat, Hibernate, MySQL and JSF. We describe a minimal web application and evaluate its transaction rate. Our goal is determine expected transaction times by minimizing network latency and behavioral processing, so that we can identify a best case scenario and a best case transaction rate

Research paper thumbnail of An evolutionary approach to cognition

Research paper thumbnail of A Method of Detecting Code Cloning in Open Source Software

In this paper, we discuss an approach to detect code copying in open source software. This approa... more In this paper, we discuss an approach to detect code copying in open source software. This approach generates a small fingerprint that includes the main features of the class files contained in a Java Archive (Jar) file. By comparing the intrinsic and extrinsic features of the class files, the approach can find the cloned code in anonymous Jar files. This approach provides a tool to detect cloned code correctly and effectively

Research paper thumbnail of A dynamic case-based planning system for space station application

We are currently investigating the use of a case-based reasoning approach to develop a dynamic pl... more We are currently investigating the use of a case-based reasoning approach to develop a dynamic planning system. The dynamic planning system (DPS) is designed to perform resource management, i.e., to efficiently schedule tasks both with and without failed components. This approach deviates from related work on scheduling and on planning in AI in several aspects. In particular, an attempt is made to equip the planner with an ability to cope with a changing environment by dynamic replanning, to handle resource constraints and feedback, and to achieve some robustness and autonomy through plan learning by dynamic memory techniques. We briefly describe the proposed architecture of DPS and its four major components: the PLANNER, the plan EXECUTOR, the dynamic REPLANNER, and the plan EVALUATOR. The planner, which is implemented in Smalltalk, is being evaluated for use in connection with the Space Station Mobile Service System (MSS).

Research paper thumbnail of Range of Bluetooth Low Energy Beacons in Relation to Their Transmit Power

In this paper, we answer the question of whether or not the range at which Bluetooth Low Energy (... more In this paper, we answer the question of whether or not the range at which Bluetooth Low Energy (BLE) beacons can be detected is related to the transmit power and position of the beacons. We used an Android smartphone app developed for our research and a small USB BLE beacon. Experiments were conducted at each of the sixteen preset power settings of the BLE beacon to determine the range at which the smartphone app lost connection to the BLE beacon. We show that the power setting of the BLE beacon did, in fact, have a significant impact on the overall range of the BLE beacon, as did its positioning. Our findings confirm that these BLE beacons can indeed be configured to have different ranges and thereby be used more reliably for indoor localization.

Research paper thumbnail of Performance of Lambda Expressions in Java 8

A major feature introduced to developers in Java 8 is language-level support for lambda expressio... more A major feature introduced to developers in Java 8 is language-level support for lambda expressions. Oracle claims that the use of lambda expressions will allow for the writing of more concise and efficient code for processing elements that are stored in collections. We consider the problem of determining if the runtime of lambda expressions in Java 8 are faster than non-lambda expressions. By comparing the speed of a lambda expression with a corresponding non-lambda expression, that renders the same result, we describe where lambda expressions have performance advantages or disadvantages.

Research paper thumbnail of Using Genetic Algorithms to Evolve a Rule Hierarchy

Lecture Notes in Computer Science, 1999

This paper describes the implementation and the functioning of RAGA (Rule Acquisition with a Gene... more This paper describes the implementation and the functioning of RAGA (Rule Acquisition with a Genetic Algorithm), a genetic-algorithm-based data mining system suitable for both supervised and certain types of unsupervised knowledge extraction from large and possibly noisy databases. The genetic engine is modified through the addition of several methods tuned specifically for the task of association rule discovery. A set of genetic operators and techniques are employed to efficiently search the space of potential rules. During this process, RAGA evolves a default hierarchy of rules, where the emphasis is placed on the group rather than each individual rule. Rule sets of this type are kept simple in both individual rule complexity and the total number of rules that are required. In addition, the default hierarchy deals with the problem of overfitting, particularly in classification tasks. Several data mining experiments using RAGA are described.

Research paper thumbnail of A Distributed Algorithm as Mobile Agents

Lecture Notes in Computer Science, 1999

ABSTRACT We present a technique for mapping a distributed algorithm to a set of homogeneous mobil... more ABSTRACT We present a technique for mapping a distributed algorithm to a set of homogeneous mobile agents that solves the distributed control problem known as election. Our solution is as efficient as the corresponding distributed algorithm, but does not rely on message passing between custom protocols located on communicating nodes. Rather, the proposed solution relies on mobile agents. We also present an environment model that supports not only the mapping to election agents but other agent-based solutions to distributed control problems based on distributed algorithms.

Research paper thumbnail of Achieving Self-Stabilization in a Distributed System Using Evolutionary Strategies

Artificial Neural Nets and Genetic Algorithms, 1993

In this paper we present a genetic self-stabilization protocol for the canonical distributed prob... more In this paper we present a genetic self-stabilization protocol for the canonical distributed problem of leader election. A self-stabilizing distributed system is one that can be started in any global state, and, during its execution, will eventually reach a legitimate global state(s) and henceforth remain there, maintaining its integrity without any kind of outside intervention. Current self-stabilizing systems either program the stabilizing feature into their protocols, or they use randomized protocols and special processors to stabilize the system. We believe that self-stabilization should be an emergent property of a distributed system, and, by transforming a distributed problem to a model of evolution, which is inherently self-stabilizing, we demonstrate how the emergence of self-stabilization can be achieved. We attempt to achieve more than just solving a problem with a distributed genetic algorithm: we take a distributed problem and show how analogies from evolution can be used to solve it.

Research paper thumbnail of The evolution of hierarchical representations

Advances in Artificial Life, 1995

ABSTRACT In the areas of Genetic Algorithms and Artificial Life, genetic material is often repres... more ABSTRACT In the areas of Genetic Algorithms and Artificial Life, genetic material is often represented by fixed-length chromosomes. The simplification of a fixed size, sequential sequence of genes is in accord with the principle of meaningful building blocks. The principle suggests that epistatically related genes should be positioned close to one another. However, in situations in which gene dependency information cannot be determined a priori, a Genetic Algorithm that uses static list-structured chromosomes will often not work. The problem of determining gene dependencies is itself a search problem, and seems well suited for the application of a Genetic Algorithm. In this paper, we propose a Genetic Algorithm that evolves a hierarchical representation in which gene dependencies and values of a chromosome coevolve.

Research paper thumbnail of Automatic Change of Representation in Genetic Algorithms

Artificial Neural Nets and Genetic Algorithms, 1995

In the areas of Genetic Algorithms, Artificial Life and Animats, genetic material is often repres... more In the areas of Genetic Algorithms, Artificial Life and Animats, genetic material is often represented as a fixed size sequence of genes with alleles of 0 and 1. This is in accord with the ‘principle of meaningful building blocks’. The principle suggests that epistatically related genes should be positioned very close to one another. However, in situations in which gene dependency information cannot be determined a priori, a Genetic Algorithm that uses a static, list chromosome structure will often not work. The problem of determining gene dependencies is itself a search problem, and seems well suited for the application of a Genetic Algorithm. In this paper, we propose a self-organizing Genetic Algorithm, and, after describing four different chromosome representations, show that the best one for a Genetic Algorithm to use to coevolve the organization and contents (gene dependencies and values) of a chromosome is a hierarchy.

Research paper thumbnail of Improving the quality of case memory using genetic techniques

Research paper thumbnail of Eclipse Project and Resource Tracking Plug-in

2008 Ninth ACIS International Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing, 2008

ABSTRACT This paper discusses the eclipse project and resource tracking plug-in, which provides s... more ABSTRACT This paper discusses the eclipse project and resource tracking plug-in, which provides solutions to problems commonly found in software management. The Plug-in provides intelligent project scheduling and tracking capabilities, and is intended for both project managers and developers. The paper outlines the goals of the Plug-in, describes the solution provided by the Plug-in, and discusses the details of the underlying design and architecture.

Research paper thumbnail of Collective Intelligence and Priority Routing in Networks

Lecture Notes in Computer Science, 2002

This paper describes how biologically-inspired agents can be used to solve complex routing proble... more This paper describes how biologically-inspired agents can be used to solve complex routing problems incorporating prioritized information flow. These agents, inspired by the foraging behavior of ants, exhibit the desirable characteristics of simplicity of action and interaction. The collection of agents, or swarm system, deals only with local knowledge and exhibits a form of distributed control with agent communication effected through the environment. While ant-like agents have been applied to the routing problem, previous work has ignored the problems of agent adaptation, multi-path and priority-based routing. These are discussed here. [4]. Research into the problems and potential of multiple, interacting swarms of agents is just beginning [8]. This paper builds on prior work by proposing routing solutions for creation of multi-cast routes, in an environment that supports traffic prioritization. It appeals to the SynthECA agent architecture recently proposed [8]. This paper consists of 3 further sections. The next section introduces elements of the SynthECA architecture pertinent to this paper. The following section describes the algorithms used to solve routing problems, and the results of applying them. The paper then summarizes its key messages. 2 SynthECA Agents Agents in the SynthECA system can be described by the tuple, A = (E,R,C,MDF,m). The important components pertinent to this paper are the ideas of a chemical (C) and a Migration Decision Function (MDF). A detailed description of the architecture can be found in [8]. The chemical concept is used in order to provide communication between agents and to create dissipative fields within the environment. The chemical concept is used to provide communication with, and sensing of, the environment and provides the driving force for agent mobility. A chemical consists of two components, an encoding and a concentration. When the encoding uses the alphabet {1, 0, #} in a string of length m, we say that we are using a Binary Array Chemistry of order m. The MDF is a function or rule set that is used to determine where an agent should visit next. The MDF typically uses chemical and link cost information in order to determine the next hop in its journey through the network or may simply follow a hard-coded route through the network. An important consideration in designing an MDF is that it should take advantage of gradients in chemicals that are present in the network. In doing so, agents may take advantage of the actions of other agents. Particular agents may want to move up a gradient (attraction) or down a gradient (repulsion). The MDF may take advantage of the pattern matching properties of the language used for the chemistry of the system. Consider a chemical encoding consisting of 2 bits. We might include a term in the MDF consisting of the chemical 1#, where the # symbol matches either a 0 or a 1. Consider a scenario where an agent has the choice of two links. Link 1 has concentrations Ch(10, 0.1) and Ch(11, 0.7). Link 2 has concentrations Ch(10, 0.5) and Ch(11, 0.6). Thus, an agent moving up a gradient indicated by the 1# pattern would follow link 2 because Ch(1#, 1.1) is sensed for that link. Similarly, an agent moving up the gradient indicated by the 11 pattern would follow link 1. This example is crucially important for the priority discussion later in the paper.

Research paper thumbnail of CodeSnippets plug-in to eclipse: Introducing web 2.0 tagging to improve software developer recall

Proceedings - SERA 2007: Fifth ACIS International Conference on Software Engineering Research, Management, and Applications, 2007

Abstract Putting aside the marketing hype of Web2. 0, a few central themes have emerged: user gen... more Abstract Putting aside the marketing hype of Web2. 0, a few central themes have emerged: user generated content, software to enable users (not restrict them), building a community and instant feedback. Many of these concepts can equally apply to rich client applications and a focus on software development teams. The initial motivation for Code Snippets was to fulfill the personal needs of software developers. At times, they need to reuse the same coding constructs, library access, method calls, and Web services. Recalling (or finding) ...

Research paper thumbnail of Evolving java objects using a grammar-based approach

Proceedings of the 11th Annual conference on Genetic and evolutionary computation, 2009

ABSTRACT Grammar-Based Object Oriented Genetic Programming leverages the Object Oriented programm... more ABSTRACT Grammar-Based Object Oriented Genetic Programming leverages the Object Oriented programming paradigm in evolutionary computation. The difference between this approach and others is that the resulting solution is a syntactically correct and executable Java program. Candidate solutions are created and tested against a JUnit test suite. Evolved solutions incorporate useful Object Oriented patterns. To create and compile the Java classes a new framework for Grammar-Based Genetic Programming has been created. The framework is entirely written in Java. By externally compiling and then loading the classes into the framework for testing true object-oriented encapsulation is achieved. For the first time state and behaviour can be passed around as an object.

Research paper thumbnail of Creating Objects Using Genetic Programming Techniques

2009 10th ACIS International Conference on Software Engineering, Artificial Intelligences, Networking and Parallel/Distributed Computing, 2009

Grammar-based object oriented genetic programming leverages the object oriented programming parad... more Grammar-based object oriented genetic programming leverages the object oriented programming paradigm in evolutionary computation. The difference between our approach and others is that the resulting solution is a syntactically correct and executable Java program. Candidate solutions are created and tested against a JUnit test suite. Evolved solutions incorporate useful object oriented patterns. To create and compile the Java classes, a new framework for grammar-based genetic programming was created. The framework is entirely written in Java. By externally compiling and then loading the classes into the framework for testing, true object-oriented encapsulation is achieved. For the first time state and behavior are passed around as an object.

Research paper thumbnail of A TINI Development Environment for Eclipse

IECON 2006 - 32nd Annual Conference on IEEE Industrial Electronics, 2006

ABSTRACT It is obvious to anyone developing for the Tini platform that they need to perform four ... more ABSTRACT It is obvious to anyone developing for the Tini platform that they need to perform four major activities: compile the code, build the application, deploy the application and test it. Several independent tools exist to help developers with each of these activities. To streamline Tini platform development and to improve developer productivity, we describe a Tini integrated development environment that is structured as an Eclipse plug-in. It combines all four development activities into a single Eclipse perspective

Research paper thumbnail of GAs and Financial Analysis

Lecture Notes in Computer Science, 2001

... GAs and Financial Analysis Matty Leus 1, Dwight Deugo 2, Franz Oppacher2, and Rob Cattral2 ..... more ... GAs and Financial Analysis Matty Leus 1, Dwight Deugo 2, Franz Oppacher2, and Rob Cattral2 ... Once the data is attained, it's broken into two chunks. One chunk is for the last 66 days and represents the quarter that the rule will trade in after it has evolved from the system. ...

Research paper thumbnail of Dynamic application loading and unloading on Pocket PCs

A problem small with devices, such as the iPAQ Pocket PC, is that their small amounts of memory l... more A problem small with devices, such as the iPAQ Pocket PC, is that their small amounts of memory limits the number of applications that can be stored on them. A simple solution to this problem is to have applications load when needed and then unload when not in use. In this paper, we describe how to repackage Eclipse's OSGi plug-ins with some custom software to provide a dynamic application loader and unloader for the iPAQ Pocket PC

Research paper thumbnail of JSF performance

JavaServer Faces is a new technology that helps developers build web applications using Java. Wit... more JavaServer Faces is a new technology that helps developers build web applications using Java. With every new technology comes a concern about performance. We wanted to know what type of performance one can expect from an open source web application consisting of Tomcat, Hibernate, MySQL and JSF. We describe a minimal web application and evaluate its transaction rate. Our goal is determine expected transaction times by minimizing network latency and behavioral processing, so that we can identify a best case scenario and a best case transaction rate

Research paper thumbnail of An evolutionary approach to cognition

Research paper thumbnail of A Method of Detecting Code Cloning in Open Source Software

In this paper, we discuss an approach to detect code copying in open source software. This approa... more In this paper, we discuss an approach to detect code copying in open source software. This approach generates a small fingerprint that includes the main features of the class files contained in a Java Archive (Jar) file. By comparing the intrinsic and extrinsic features of the class files, the approach can find the cloned code in anonymous Jar files. This approach provides a tool to detect cloned code correctly and effectively

Research paper thumbnail of A dynamic case-based planning system for space station application

We are currently investigating the use of a case-based reasoning approach to develop a dynamic pl... more We are currently investigating the use of a case-based reasoning approach to develop a dynamic planning system. The dynamic planning system (DPS) is designed to perform resource management, i.e., to efficiently schedule tasks both with and without failed components. This approach deviates from related work on scheduling and on planning in AI in several aspects. In particular, an attempt is made to equip the planner with an ability to cope with a changing environment by dynamic replanning, to handle resource constraints and feedback, and to achieve some robustness and autonomy through plan learning by dynamic memory techniques. We briefly describe the proposed architecture of DPS and its four major components: the PLANNER, the plan EXECUTOR, the dynamic REPLANNER, and the plan EVALUATOR. The planner, which is implemented in Smalltalk, is being evaluated for use in connection with the Space Station Mobile Service System (MSS).

Research paper thumbnail of Range of Bluetooth Low Energy Beacons in Relation to Their Transmit Power

In this paper, we answer the question of whether or not the range at which Bluetooth Low Energy (... more In this paper, we answer the question of whether or not the range at which Bluetooth Low Energy (BLE) beacons can be detected is related to the transmit power and position of the beacons. We used an Android smartphone app developed for our research and a small USB BLE beacon. Experiments were conducted at each of the sixteen preset power settings of the BLE beacon to determine the range at which the smartphone app lost connection to the BLE beacon. We show that the power setting of the BLE beacon did, in fact, have a significant impact on the overall range of the BLE beacon, as did its positioning. Our findings confirm that these BLE beacons can indeed be configured to have different ranges and thereby be used more reliably for indoor localization.

Research paper thumbnail of Performance of Lambda Expressions in Java 8

A major feature introduced to developers in Java 8 is language-level support for lambda expressio... more A major feature introduced to developers in Java 8 is language-level support for lambda expressions. Oracle claims that the use of lambda expressions will allow for the writing of more concise and efficient code for processing elements that are stored in collections. We consider the problem of determining if the runtime of lambda expressions in Java 8 are faster than non-lambda expressions. By comparing the speed of a lambda expression with a corresponding non-lambda expression, that renders the same result, we describe where lambda expressions have performance advantages or disadvantages.

Research paper thumbnail of Using Genetic Algorithms to Evolve a Rule Hierarchy

Lecture Notes in Computer Science, 1999

This paper describes the implementation and the functioning of RAGA (Rule Acquisition with a Gene... more This paper describes the implementation and the functioning of RAGA (Rule Acquisition with a Genetic Algorithm), a genetic-algorithm-based data mining system suitable for both supervised and certain types of unsupervised knowledge extraction from large and possibly noisy databases. The genetic engine is modified through the addition of several methods tuned specifically for the task of association rule discovery. A set of genetic operators and techniques are employed to efficiently search the space of potential rules. During this process, RAGA evolves a default hierarchy of rules, where the emphasis is placed on the group rather than each individual rule. Rule sets of this type are kept simple in both individual rule complexity and the total number of rules that are required. In addition, the default hierarchy deals with the problem of overfitting, particularly in classification tasks. Several data mining experiments using RAGA are described.

Research paper thumbnail of A Distributed Algorithm as Mobile Agents

Lecture Notes in Computer Science, 1999

ABSTRACT We present a technique for mapping a distributed algorithm to a set of homogeneous mobil... more ABSTRACT We present a technique for mapping a distributed algorithm to a set of homogeneous mobile agents that solves the distributed control problem known as election. Our solution is as efficient as the corresponding distributed algorithm, but does not rely on message passing between custom protocols located on communicating nodes. Rather, the proposed solution relies on mobile agents. We also present an environment model that supports not only the mapping to election agents but other agent-based solutions to distributed control problems based on distributed algorithms.

Research paper thumbnail of Achieving Self-Stabilization in a Distributed System Using Evolutionary Strategies

Artificial Neural Nets and Genetic Algorithms, 1993

In this paper we present a genetic self-stabilization protocol for the canonical distributed prob... more In this paper we present a genetic self-stabilization protocol for the canonical distributed problem of leader election. A self-stabilizing distributed system is one that can be started in any global state, and, during its execution, will eventually reach a legitimate global state(s) and henceforth remain there, maintaining its integrity without any kind of outside intervention. Current self-stabilizing systems either program the stabilizing feature into their protocols, or they use randomized protocols and special processors to stabilize the system. We believe that self-stabilization should be an emergent property of a distributed system, and, by transforming a distributed problem to a model of evolution, which is inherently self-stabilizing, we demonstrate how the emergence of self-stabilization can be achieved. We attempt to achieve more than just solving a problem with a distributed genetic algorithm: we take a distributed problem and show how analogies from evolution can be used to solve it.

Research paper thumbnail of The evolution of hierarchical representations

Advances in Artificial Life, 1995

ABSTRACT In the areas of Genetic Algorithms and Artificial Life, genetic material is often repres... more ABSTRACT In the areas of Genetic Algorithms and Artificial Life, genetic material is often represented by fixed-length chromosomes. The simplification of a fixed size, sequential sequence of genes is in accord with the principle of meaningful building blocks. The principle suggests that epistatically related genes should be positioned close to one another. However, in situations in which gene dependency information cannot be determined a priori, a Genetic Algorithm that uses static list-structured chromosomes will often not work. The problem of determining gene dependencies is itself a search problem, and seems well suited for the application of a Genetic Algorithm. In this paper, we propose a Genetic Algorithm that evolves a hierarchical representation in which gene dependencies and values of a chromosome coevolve.

Research paper thumbnail of Automatic Change of Representation in Genetic Algorithms

Artificial Neural Nets and Genetic Algorithms, 1995

In the areas of Genetic Algorithms, Artificial Life and Animats, genetic material is often repres... more In the areas of Genetic Algorithms, Artificial Life and Animats, genetic material is often represented as a fixed size sequence of genes with alleles of 0 and 1. This is in accord with the ‘principle of meaningful building blocks’. The principle suggests that epistatically related genes should be positioned very close to one another. However, in situations in which gene dependency information cannot be determined a priori, a Genetic Algorithm that uses a static, list chromosome structure will often not work. The problem of determining gene dependencies is itself a search problem, and seems well suited for the application of a Genetic Algorithm. In this paper, we propose a self-organizing Genetic Algorithm, and, after describing four different chromosome representations, show that the best one for a Genetic Algorithm to use to coevolve the organization and contents (gene dependencies and values) of a chromosome is a hierarchy.

Research paper thumbnail of Improving the quality of case memory using genetic techniques

Research paper thumbnail of Eclipse Project and Resource Tracking Plug-in

2008 Ninth ACIS International Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing, 2008

ABSTRACT This paper discusses the eclipse project and resource tracking plug-in, which provides s... more ABSTRACT This paper discusses the eclipse project and resource tracking plug-in, which provides solutions to problems commonly found in software management. The Plug-in provides intelligent project scheduling and tracking capabilities, and is intended for both project managers and developers. The paper outlines the goals of the Plug-in, describes the solution provided by the Plug-in, and discusses the details of the underlying design and architecture.

Research paper thumbnail of Collective Intelligence and Priority Routing in Networks

Lecture Notes in Computer Science, 2002

This paper describes how biologically-inspired agents can be used to solve complex routing proble... more This paper describes how biologically-inspired agents can be used to solve complex routing problems incorporating prioritized information flow. These agents, inspired by the foraging behavior of ants, exhibit the desirable characteristics of simplicity of action and interaction. The collection of agents, or swarm system, deals only with local knowledge and exhibits a form of distributed control with agent communication effected through the environment. While ant-like agents have been applied to the routing problem, previous work has ignored the problems of agent adaptation, multi-path and priority-based routing. These are discussed here. [4]. Research into the problems and potential of multiple, interacting swarms of agents is just beginning [8]. This paper builds on prior work by proposing routing solutions for creation of multi-cast routes, in an environment that supports traffic prioritization. It appeals to the SynthECA agent architecture recently proposed [8]. This paper consists of 3 further sections. The next section introduces elements of the SynthECA architecture pertinent to this paper. The following section describes the algorithms used to solve routing problems, and the results of applying them. The paper then summarizes its key messages. 2 SynthECA Agents Agents in the SynthECA system can be described by the tuple, A = (E,R,C,MDF,m). The important components pertinent to this paper are the ideas of a chemical (C) and a Migration Decision Function (MDF). A detailed description of the architecture can be found in [8]. The chemical concept is used in order to provide communication between agents and to create dissipative fields within the environment. The chemical concept is used to provide communication with, and sensing of, the environment and provides the driving force for agent mobility. A chemical consists of two components, an encoding and a concentration. When the encoding uses the alphabet {1, 0, #} in a string of length m, we say that we are using a Binary Array Chemistry of order m. The MDF is a function or rule set that is used to determine where an agent should visit next. The MDF typically uses chemical and link cost information in order to determine the next hop in its journey through the network or may simply follow a hard-coded route through the network. An important consideration in designing an MDF is that it should take advantage of gradients in chemicals that are present in the network. In doing so, agents may take advantage of the actions of other agents. Particular agents may want to move up a gradient (attraction) or down a gradient (repulsion). The MDF may take advantage of the pattern matching properties of the language used for the chemistry of the system. Consider a chemical encoding consisting of 2 bits. We might include a term in the MDF consisting of the chemical 1#, where the # symbol matches either a 0 or a 1. Consider a scenario where an agent has the choice of two links. Link 1 has concentrations Ch(10, 0.1) and Ch(11, 0.7). Link 2 has concentrations Ch(10, 0.5) and Ch(11, 0.6). Thus, an agent moving up a gradient indicated by the 1# pattern would follow link 2 because Ch(1#, 1.1) is sensed for that link. Similarly, an agent moving up the gradient indicated by the 11 pattern would follow link 1. This example is crucially important for the priority discussion later in the paper.

Research paper thumbnail of CodeSnippets plug-in to eclipse: Introducing web 2.0 tagging to improve software developer recall

Proceedings - SERA 2007: Fifth ACIS International Conference on Software Engineering Research, Management, and Applications, 2007

Abstract Putting aside the marketing hype of Web2. 0, a few central themes have emerged: user gen... more Abstract Putting aside the marketing hype of Web2. 0, a few central themes have emerged: user generated content, software to enable users (not restrict them), building a community and instant feedback. Many of these concepts can equally apply to rich client applications and a focus on software development teams. The initial motivation for Code Snippets was to fulfill the personal needs of software developers. At times, they need to reuse the same coding constructs, library access, method calls, and Web services. Recalling (or finding) ...

Research paper thumbnail of Evolving java objects using a grammar-based approach

Proceedings of the 11th Annual conference on Genetic and evolutionary computation, 2009

ABSTRACT Grammar-Based Object Oriented Genetic Programming leverages the Object Oriented programm... more ABSTRACT Grammar-Based Object Oriented Genetic Programming leverages the Object Oriented programming paradigm in evolutionary computation. The difference between this approach and others is that the resulting solution is a syntactically correct and executable Java program. Candidate solutions are created and tested against a JUnit test suite. Evolved solutions incorporate useful Object Oriented patterns. To create and compile the Java classes a new framework for Grammar-Based Genetic Programming has been created. The framework is entirely written in Java. By externally compiling and then loading the classes into the framework for testing true object-oriented encapsulation is achieved. For the first time state and behaviour can be passed around as an object.

Research paper thumbnail of Creating Objects Using Genetic Programming Techniques

2009 10th ACIS International Conference on Software Engineering, Artificial Intelligences, Networking and Parallel/Distributed Computing, 2009

Grammar-based object oriented genetic programming leverages the object oriented programming parad... more Grammar-based object oriented genetic programming leverages the object oriented programming paradigm in evolutionary computation. The difference between our approach and others is that the resulting solution is a syntactically correct and executable Java program. Candidate solutions are created and tested against a JUnit test suite. Evolved solutions incorporate useful object oriented patterns. To create and compile the Java classes, a new framework for grammar-based genetic programming was created. The framework is entirely written in Java. By externally compiling and then loading the classes into the framework for testing, true object-oriented encapsulation is achieved. For the first time state and behavior are passed around as an object.

Research paper thumbnail of A TINI Development Environment for Eclipse

IECON 2006 - 32nd Annual Conference on IEEE Industrial Electronics, 2006

ABSTRACT It is obvious to anyone developing for the Tini platform that they need to perform four ... more ABSTRACT It is obvious to anyone developing for the Tini platform that they need to perform four major activities: compile the code, build the application, deploy the application and test it. Several independent tools exist to help developers with each of these activities. To streamline Tini platform development and to improve developer productivity, we describe a Tini integrated development environment that is structured as an Eclipse plug-in. It combines all four development activities into a single Eclipse perspective

Research paper thumbnail of GAs and Financial Analysis

Lecture Notes in Computer Science, 2001

... GAs and Financial Analysis Matty Leus 1, Dwight Deugo 2, Franz Oppacher2, and Rob Cattral2 ..... more ... GAs and Financial Analysis Matty Leus 1, Dwight Deugo 2, Franz Oppacher2, and Rob Cattral2 ... Once the data is attained, it's broken into two chunks. One chunk is for the last 66 days and represents the quarter that the rule will trade in after it has evolved from the system. ...