profile
viewpoint
Marcos Martín Pozo Delgado Martin1887

Martin1887/oxigen 72

Fast, parallel, extensible and adaptable genetic algorithms library written in Rust

Martin1887/camaLESS 3

JS library for customizable color themes

Martin1887/RAEfox 3

RAEfox is an open source application under Apache 2.0 license that allows an offline definition search in the castilian dictionary from Wiktionary.

Martin1887/VSCodeThemes 2

Themes for Visual Studio Code

Martin1887/atom-lava-syntax 1

Atom Lava syntax theme darker and a bit more coloured - nice and warm

Martin1887/RAEfox-Android 1

Android application for RAEfox

Martin1887/Rocket 1

A web framework for Rust.

Martin1887/rust-brotli 1

Brotli decompressor written in rust that optionally avoids the stdlib

Martin1887/awesome-cpp 0

A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

Martin1887/awesome-rust 0

A curated list of Rust code and resources.

create barnchMartin1887/fast-downward

branch : master

created branch time in 20 days

create barnchMartin1887/fast-downward

branch : petri

created branch time in 20 days

created repositoryMartin1887/fast-downward

Modifications to the Fast-Downward planner using Petri nets

created time in 20 days

push eventMartin1887/RAEfox

Marcos Martín Pozo Delgado

commit sha 37d079f8ac939e2e0065c08c11bb7ac71c69be19

Update LICENSE (fix copyright)

view details

push time in 21 days

push eventMartin1887/camaLESS

Marcos Martín Pozo Delgado

commit sha 309cf77109c08300bf4232829e60ac01422f64aa

Update LICENSE (fix copyright)

view details

push time in 21 days

starteddcamarmas/creator

started time in 2 months

push eventMartin1887/oxigen

David

commit sha a89d2a3e4fbb25ee1b0c2a9309bc2996eae78e36

partially matched crossover

view details

Marcos Martín Pozo Delgado

commit sha 1bb13605d827099ee0c98a27335f9e6edaa79c18

Merge pull request #14 from aneksteind/feature/partially_matched_cx Feature/partially matched cx

view details

push time in 2 months

PR merged Martin1887/oxigen

Feature/partially matched cx

Similar to #11, but portions of the parent genotypes will not be swapped

+67 -2

1 comment

2 changed files

aneksteind

pr closed time in 2 months

issue commentMartin1887/oxigen

feature request: polymorphic fitness types

I had thought in this feature but the problem is that a type for the fitness return type cannot be added in stable Rust (at least when I tried it). Another problem is that Rust does not define a trait for numbers, and I found some crates for that purpose.

The trait object option that you propose could be a workaround, but more research about the impact of this change is needed.

Regards.

aneksteind

comment created time in 2 months

issue commentMartin1887/oxigen

Trouble building 3.0

Hello.

It is bug of cargo workspaces when some crates have features in dependencies and other have not. Compile only one project each time (entering in its folder) instead of all at once from the workspace folder and everything should work.

I spent several days until I found this cargo bug.

Regards.

aneksteind

comment created time in 2 months

pull request commentMartin1887/oxigen

Feature/partially matched uniform cx

OK, merged. If i do changes in the future in this crossover I will tell you.

aneksteind

comment created time in 2 months

push eventMartin1887/oxigen

David

commit sha d8313f8184962c6332c8049a306567cf02afa6ff

uniform partially matched crossover

view details

David

commit sha ca3dae401fdd535ec2ae16046dbf74e4f560740b

update readme for uniform partially matched crossover

view details

Marcos Martín Pozo Delgado

commit sha bd5114031766f6757ee16ffa2c4c10d0be3ec366

Merge pull request #11 from aneksteind/feature/partially_matched_uniform_cx Feature/partially matched uniform crossover

view details

push time in 2 months

PR merged Martin1887/oxigen

Feature/partially matched uniform cx

An implementation of "uniform partially matched crossover". An example is given in this paper in section 4.4.4. Useful for problems such as traveling salesman and genotypes that require uniquely-labeled genes 0 through N to remain present in the chromosome following crossover. An example of the problem having such a crossover alleviates:

Parent 1: [1,2,3,4,5] Parent 2: [5,4,3,2,1]

Single point crossover after the 2nd index

Child 1: [5,4,3,4,5] Child 2: [1,2,3,2,1]

If you imagine the genes as stops along a route, the resulting genotypes are no longer valid because 2 locations are skipped in each child representation. This is the problem that partially-matched crossover is meant to alleviate; it's an element-preserving operation.

+57 -1

5 comments

2 changed files

aneksteind

pr closed time in 2 months

pull request commentMartin1887/oxigen

Feature/partially matched uniform cx

I have reviewed it a bit more. Could not be used a Vec<Option> putting as None the popped values instead of removing in a StableVec?

If the response is negative it could be merged too as it, but it is convenient to reduce the dependencies.

I will probably revisit it when I have more free time to try to optimize it anyway (probably I will not be able to, your implementation seems good :-)).

aneksteind

comment created time in 2 months

pull request commentMartin1887/oxigen

Feature/partially matched uniform cx

This method seems interesting :).

But why do you add the StableVec dependency? Is it necessary?

aneksteind

comment created time in 2 months

issue closedMartin1887/oxigen

Support for a reference environment

Is your feature request related to a problem? Please describe. I am attempting to optimize for a graph-related problem and would like to create a genotype whose fitness function is calculated based on some reference graph, which ideally would be part of some read-only environment.

It seems that, internally in oxigen/lib.rs, fitness is calculated for individuals generated with generate (see here), which can only take in a ProblemSize instance passed via genotype_size().

So, either it appears that any fitness method I define cannot refer to the graph I wish to optimize against because that is decided at runtime or I must smuggle the graph in as part of the ProblemSize passed into the genotype_size() method. Is this the correct interpretation?

In effect, ProblemSize is acting as the environment type and field. For example, it appears this is the case in the knap-sack example where the items are constructed (see here) and passed in as part of the problem size.

Describe the solution you'd like Rename

  1. ProblemSize
  2. genotype_size(mut self, new_size: Ind::ProblemSize), and
  3. GeneticExecution.genotype_size

to

  1. Environment
  2. set_environment(mut self, env: Ind::Environment), and
  3. GeneticExecution.environment, respectively

Describe alternatives you've considered No alternatives considered.

Additional context No additional context.

closed time in 2 months

aneksteind

issue commentMartin1887/oxigen

Support for a reference environment

Hello.

Yes, you are right, in knapsack problem I used the ProblemSize to pass additional information, and this was the first time that I had to do it, when the interface was already defined.

Your change is good, Environment is a better name. However, this change breaks the current interface, so it cannot be merged in the current version. I have created a 3.0 branch where I have merged your pull request, but note that I will not release a 3.0 version until I do more changes, what unfortunately will not happen in the short time.

How has been your experience with Oxigen beyond this issue? I hope that you have enjoyed it. Anything that you would like to have in a future version? I have planned a metagenotype to automatically get the best parameters for your genetic algorithm, maybe something similar for coevolution, macros to minimize the boilerplate in genotypes of basic types, maybe Python bindings, improve statistics, maybe hall of fame, binary and Gray coding utilities, the other open issues and trying to improve even more the performance.

Thanks for your contribution!

aneksteind

comment created time in 2 months

push eventMartin1887/oxigen

David

commit sha 1097527a40648b3b2b142bd397776bfb3e9ed74e

convert ProblemSize to Environment

view details

Marcos Martín Pozo Delgado

commit sha c0d38c9a85d73ca8e51ec9b6fba60410d75e4180

Merge pull request #10 from aneksteind/feature/environment_support convert ProblemSize to Environment

view details

push time in 2 months

PR merged Martin1887/oxigen

convert ProblemSize to Environment

in reference to #9, this change re-brands the ProblemSize type to an Environment type to pass relevant, problem-specific information

+79 -79

0 comment

8 changed files

aneksteind

pr closed time in 2 months

create barnchMartin1887/oxigen

branch : 3.0

created branch time in 2 months

startedhecrj/iced

started time in 3 months

more