Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/r3.2.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
jenetics committed Jul 23, 2015
2 parents 1f109b6 + 5f07805 commit 9ae2e44
Show file tree
Hide file tree
Showing 127 changed files with 20,134 additions and 15,807 deletions.
37 changes: 29 additions & 8 deletions README.md
@@ -1,10 +1,10 @@
# Jenetics (_3.1.0_)
# Jenetics (_3.2.0_)

**Jenetics** is an **Genetic Algorithm**, respectively an **Evolutionary Algorithm**, library written in Java. It is designed with a clear separation of the several concepts of the algorithm, e.g. `Gene`, `Chromosome`, `Genotype`, `Phenotype`, `Population` and fitness `Function`. **Jenetics** allows you to minimize and maximize the given fitness function without tweaking it. In contrast to other GA implementations, the library uses the concept of an evolution stream (`EvolutionStream`) for executing the evolution steps. Since the `EvolutionStream` implements the Java Stream interface, it works smoothly with the rest of the Java Stream API.

## Documentation

The library is fully documented ([javadoc](http://jenetics.io/javadoc/org.jenetics/index.html)) and comes with an user manual ([pdf](http://jenetics.io/manual/manual-3.1.0.pdf)).
The library is fully documented ([javadoc](http://jenetics.io/javadoc/org.jenetics/3.2/index.html)) and comes with an user manual ([pdf](http://jenetics.io/manual/manual-3.2.0.pdf)).


## Requirements
Expand All @@ -17,19 +17,19 @@ The library is fully documented ([javadoc](http://jenetics.io/javadoc/org.jeneti
* **Gradle 2.x**: [Gradle](http://www.gradle.org/) is used for building the library. (Gradle is download automatically, if you are using the Gradle Wrapper script `gradlew`, located in the base directory, for building the library.)

### Test compile/execution
* **TestNG 8.8**: Jenetics uses [TestNG](http://testng.org/doc/index.html) framework for unit tests.
* **Apache Commons Math 3.4.1**: [Library](http://commons.apache.org/proper/commons-math/) is used for testing statistical collectors.
* **TestNG 6.9.4**: Jenetics uses [TestNG](http://testng.org/doc/index.html) framework for unit tests.
* **Apache Commons Math 3.5**: [Library](http://commons.apache.org/proper/commons-math/) is used for testing statistical collectors.

## Download
* **Github**: <https://github.com/jenetics/jenetics/releases/download/v3.1.0/jenetics-3.1.0.zip>
* **Github**: <https://github.com/jenetics/jenetics/releases/download/v3.2.0/jenetics-3.2.0.zip>
* **Sourceforge**: <https://sourceforge.net/projects/jenetics/files/latest/download>
* **Maven**: `org.bitbucket.fwilhelm:org.jenetics:3.1.0` on [Maven Central](http://search.maven.org/#search|ga|1|a%3A%22org.jenetics%22)
* **Maven**: `org.bitbucket.fwilhelm:org.jenetics:3.2.0` on [Maven Central](http://search.maven.org/#search|ga|1|a%3A%22org.jenetics%22)

## Build Jenetics

[![Build Status](https://travis-ci.org/jenetics/jenetics.svg?branch=master)](https://travis-ci.org/jenetics/jenetics)

For building the Jenetics library from source, download the most recent, stable package version from [Github](https://github.com/jenetics/jenetics/releases/download/v3.1.0/jenetics-3.1.0.zip) (or [Sourceforge](https://sourceforge.net/projects/jenetics/files/latest/download)) and extract it to some build directory.
For building the Jenetics library from source, download the most recent, stable package version from [Github](https://github.com/jenetics/jenetics/releases/download/v3.2.0/jenetics-3.2.0.zip) (or [Sourceforge](https://sourceforge.net/projects/jenetics/files/latest/download)) and extract it to some build directory.

$ unzip jenetics-<version>.zip -d <builddir>

Expand Down Expand Up @@ -71,7 +71,7 @@ The latest Eclipse version (4.4.2) has problems compiling some _valid_ lambda ex
.builder((Function<Genotype<BitGene>, Integer>)HelloWorld::eval, gtf)
.build();

Or you are using [IntelliJ 14](https://www.jetbrains.com/idea/download/) instead.
Or you are using ![IntelliJ 14](https://www.jetbrains.com/idea/download/) instead.

## Example

Expand Down Expand Up @@ -142,6 +142,23 @@ The library is licensed under the [Apache License, Version 2.0](http://www.apach

## Release notes

### 3.2.0

#### Improvements

* [#24](https://github.com/jenetics/jenetics/issues/24): Stabilize statistical selector tests.
* [#25](https://github.com/jenetics/jenetics/issues/25): Remove `testng.xml` file. The test classes are now determined automatically.
* [#40](https://github.com/jenetics/jenetics/issues/40): Introduce `Codec` interface for defining problem encodings.
* Add _Internal_ section in manual, which describes implementation details.

#### Bug fixes

* [#33](https://github.com/jenetics/jenetics/issues/33): Selectors must not change the input population. This occasionally caused `ConcurrentModificationException`. Such selectors are now creating a defensive copy of the input population.
* [#34](https://github.com/jenetics/jenetics/issues/34): `IndexOutOfBoundsException` when selecting populations which are too short.
* [#35](https://github.com/jenetics/jenetics/issues/35): `IndexOutOfBoundsException` when altering populations which are too short.
* [#39](https://github.com/jenetics/jenetics/issues/39): Numerical instabilities of `ProbabilitySelector`.
* [#47](https://github.com/jenetics/jenetics/issues/47): `Engine` deadlock for long running fitness functions.

### 3.1.0

#### Improvements
Expand All @@ -165,3 +182,7 @@ The library is licensed under the [Apache License, Version 2.0](http://www.apach

* Rewrite of *engine* classes to make use of Java 8 Stream API.

## Used software

<a href="https://www.jetbrains.com/idea/">![IntelliJ](https://www.jetbrains.com/idea/docs/logo_intellij_idea.png)</a>

2 changes: 1 addition & 1 deletion build.gradle
Expand Up @@ -73,7 +73,7 @@ allprojects { Project prj ->
}

task wrapper(type: Wrapper) {
gradleVersion = '2.3'
gradleVersion = '2.4'
}

task trimLineFeed(type: TrimLineFeedTask) {
Expand Down
Expand Up @@ -21,6 +21,7 @@ package org.jenetics.gradle.plugin

import org.apache.tools.ant.filters.ReplaceTokens
import org.gradle.api.Project
import org.jenetics.gradle.Version
import org.jenetics.gradle.task.Lyx2PDFTask

/**
Expand Down Expand Up @@ -56,7 +57,10 @@ class LyxPlugin extends JeneticsPlugin {
into project.build.temporaryDir
filter(ReplaceTokens, tokens: [
__year__: project.copyrightYear,
__identifier__: project.manualIdentifier
__identifier__: project.manualIdentifier,
__version__: project.version,
__minor_version__: Version.parse(project.version.toString())
.minorVersionString()
])
}
copy {
Expand Down
Expand Up @@ -112,13 +112,10 @@ class SetupPlugin extends JeneticsPlugin {
private void configureTestReporting() {
plugins.apply(JacocoPlugin)
project.test {
outputs.upToDateWhen { false }
useTestNG {
//parallel = 'tests' // 'methods'
//threadCount = Runtime.runtime.availableProcessors() + 1
//include '**/*Test.class'
suites project.file(
"${project.projectDir}/src/test/resources/testng.xml"
)
parallel = 'tests' // 'methods'
threadCount = Runtime.runtime.availableProcessors() + 1
}
}

Expand Down
12 changes: 12 additions & 0 deletions buildSrc/src/main/java/org/jenetics/gradle/Version.java
Expand Up @@ -100,6 +100,18 @@ public int compareTo(final Version version) {
return comp;
}

public String majorVersionString() {
return Integer.toString(_major);
}

public String minorVersionString() {
return format("%d.%d", _major, _minor);
}

public String microVersionString() {
return format("%d.%d.%d", _major, _minor, _micro);
}

@Override
public int hashCode() {
int hash = getClass().hashCode();
Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Sun Apr 19 21:26:59 CEST 2015
#Thu May 21 19:03:17 CEST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-bin.zip
8 changes: 4 additions & 4 deletions include.properties
@@ -1,6 +1,6 @@
# Definition of the external projects.
Include.Apache.Commons.Math=org.apache.commons:commons-math3:3.4.1
Include.Apache.Commons.Math=org.apache.commons:commons-math3:3.5
Include.Jettison=org.codehaus.jettison:jettison:1.4.1
Include.JMH.Core=org.openjdk.jmh:jmh-core:1.8
Include.JMH.Processor=org.openjdk.jmh:jmh-generator-annprocess:1.8
Include.TestNG=org.testng:testng:6.8.21
Include.JMH.Core=org.openjdk.jmh:jmh-core:1.10.1
Include.JMH.Processor=org.openjdk.jmh:jmh-generator-annprocess:1.10.1
Include.TestNG=org.testng:testng:6.9.4

0 comments on commit 9ae2e44

Please sign in to comment.