Giter Site home page Giter Site logo

Comments (5)

kilikkuo avatar kilikkuo commented on June 8, 2024

As far as I can think of ... 2 thing should be taken into account.

  1. To support general poinit mutation (allow duplicated element inside a gene), a list of possible elements of a gene should be passed into OCL kernel. ==> Should not be a big problem.
  2. The dna length of a gene is able to greater than 1, that is, are we gonna support genes with variable length ?
    I don't think it's a easy task. IMO, it's quite tough. We may need to create a 2-D array of chromosomes in OCL Kernel to make it easy for crossover. We may need extra array to deliver the length of each chromosome (or even gene).
    If we're not gonna support. Then user need to think of a way, e.g. fill additional 0 into a gene's dna sequence to make every gene equal in length.

Thoughts ?

from openclga.

john-hu avatar john-hu commented on June 8, 2024

https://github.com/PyOCL/oclGA/wiki/Proposal-of-OpenCL-GA

To support general poinit mutation (allow duplicated element inside a gene), a list of possible elements of a gene should be passed into OCL kernel. ==> Should not be a big problem.

In my design, it can be passed through the source code generation. You give me a good hint that the data will be put at stack if I put the data in source code. And if we pass data through function call, the data will be in heap. That should be better....

The dna length of a gene is able to greater than 1, that is, are we gonna support genes with variable length ?

This is a nice catch. I don't think we need to implement it now. It's called GP if we have variable length gene. It is important and we need to implement it in the future. BTW, in my design, we can implement different Gene in both python and CL to support it.

I don't think it's a easy task. IMO, it's quite tough. We may need to create a 2-D array of chromosomes in OCL Kernel to make it easy for crossover. We may need extra array to deliver the length of each chromosome (or even gene).

This one is also a good point. I cannot find any use case now. And it is worth to have further discussion.

If we're not gonna support. Then user need to think of a way, e.g. fill additional 0 into a gene's dna sequence to make every gene equal in length.

I don't think so. We can fill a lot of 0 in python for user If we really need to say oclGA supports it.

from openclga.

john-hu avatar john-hu commented on June 8, 2024

An example implementation of my proposal can be found here: https://github.com/PyOCL/oclGA/tree/1e2e0be35e66ecd08a5caaa882f73be886354783/evaluation/oclGA

from openclga.

john-hu avatar john-hu commented on June 8, 2024

As per offline discussion, we found the implementation of crossover or mutation doesn't give us good solution. There are few docs for this topic here:

from openclga.

john-hu avatar john-hu commented on June 8, 2024

The first version of oclGA is implemented at evaluation folder. I close this issue and file another for moving the code to root.

from openclga.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.