[Unreleased]
Major Changes
- 2024-12-04 #55
- Rename
LookupComponents#lookup
to LookupComponents#persistedLookup
.
- Define new
LookupComponents#lookup
methods, that returns a lookup,
that may be persisted or not.
- Delete LookupFactory and LookupIFactory, as it was not needed.
- Rename Lookup related implementations to PersistedLookup implementations.
- 2024-10-28 #51 Make Table naming more logical and consistent with public communities like SQL.
- Rename Table to View in order to avoid confusion.
- Rename Database to Table in order to avoid confusion.
- 2024-09-20 #26 Migrate
Table#toFods
, SolutionView#toFodsTableAnalysis
and History#toAnalysisFods
from XML to Perspective.
- 2024-07-25 #24 Rename
Query#constraint
to Query#parseConstraint
in order to mark the intent better.
- 2024-04-01 #170 Deprecate ResourceOptionI.
Implement the ResourceOption API directly instead,
by implementing the
Option#defaulValue()
instead of implementing this via the default constructor.
- 2023-06-27 #170
Line#values()
are now read only, in order to allow more performant code,
by not requiring lines to provide a new copy of line values for every Line#values()
call.
- 2023-06-21 #170
Table#columnsView
now only returns a read-only access to the columns,
in order to enable faster alternative Database implementations,
that do not have writeable columns.
Also, writeable access to the columns via the public interface was never planned.
Especially, in the Table interface, that is thought to be a read-only interface.
- 2023-06-15 #170
- Rename
net.splitcells.gel.data.allocation.Allocation*
to net.splitcells.gel.data.assignment.Assignment*
,
which is more in line with the name of the core model problem the assignment problem.
- Provide new Allocations interface, that is the foundation of the Assignments interface.
The key difference is, that the Allocations only allows one assignment for each demand and
for each supply.
This interface can be used instead, in order to improve the performance,
if an appropriate usage is possible.
- 2023-06-08 #170
Table#columnsView
now returns a view of the list,
instead of a writeable copy,
in order to improve the runtime performance.
- 2023-04-12 #170 Rename
Table#line(int)
to Table#orderedLine(int)
in order to avoid misunderstandings by avoiding ambiguity.
- 2023-04-07
- Rename
Table#lines
to Table#unorderedLines
in order to avoid programmer errors.
- Rename
Table#linesStream
to Table#unorderedLinesStream
in order to avoid programmer errors.
- Rename
LinearInitialization
to OfflineLinearInitialization
in order to discourage its usage.
- 2023-03-30 #170 Require raters to implement toSimpleDescription in order always have a working report,
for a given optimization problem.
- **2023-03-25 ** Deprecate
Databases
without a name,
because such Database
instances make it harder to understand these compared to a named Database
.
- 2023-03-07 ##170: New
GroupId
now require an parent GroupId
,
if the new GroupId
is explicitly stated to be a root GroupId
.
This makes it easier to get the meaning of a GroupId
during debugging,
if Constraints with overlapping GroupId
are present.
- 2022-11-27 ##8:
OnlineLinearInitialization
now ensures,
demands and supplies are allocated in the same order,
as it is present in their respective tables.
- 2022-11-20 #170: Constraint nodes (i.e.
ForAll
and Then
) now internally require an optional parent discoverability path.
This is the basis required, so that constraints can be viewed via the web server.
The end goal is to provide for each constraint a path,
that starts with the problem's path and after that continues with the constraint node's path.
For example: /net/splitcells/run/conway-s-game-of-life/forAll/timeSteps
points to the constraint node
of an instance of conway's game of life, that groups all values according to their time value.
In other words, the aim is to provide a unique id for all constraint nodes, that can be easily discovered.
- 2022-09-06 #8: Disable history of solutions by default.
- 2022-08-24 #8: Unify Table methods naming:
- Rename
Table#getLines
to Table#lines
.
- Rename
Table#getDistinctLines
to Table#distinctLines
.
- Rename
Table#getDistinctLineValues
to Table#distinctLineValues
.
- Rename
Table#getLines(int)
to Table#line(int)
.
- Rename
Table#getLines(int)
to Table#line(int)
.
- 2022-07-15 #8: Rename
RoutingRating#events
to RoutingRating#ratingComponents
, in order to communicate meaning a bit better.
- 2022-07-01 #8: Create
Query#constraintPath
in order to select a constraint path of a solution via the query interface,
which is a lot easier to understand,
than selecting paths by recursive calls of Constraint#childrenView
.
- 2022-06-30 #8:
- Remove
Constraint#parentOf
, because its definition does not seem to be useful and this method is not used.
- Rename
Query#constraint
to Query#currentConstraint
in order to clarify its meaning.
- 2022-05-23 #170:
SolutionBuilder
now requires to always define the demand and solution set explicitly.
The helper methods withNoDemands
and withNoSupplies
are created for that, in order to state intent.
Also, setting the supply or demand set multiple times during solution building is not allowed anymore, in order to simplify the building workflow.
- 2022-04-19 #170: Create method
complexAdditions
for RatingEvent
in order to prepare assigning multiple groups to one line.
- 2022-04-04 Remove no args method
Query.then
,
as it does not seem to make sense.
- 2022-03-31 #8:
Rename optimizer components,
so it will be easy to distinguish the offline repair from the planned online repair:
- Rename
ConstraintGroupBasedRepair
to ConstraintGroupBasedOfflineRepair
.
- Rename
SupplySelector
to SupplyOfflineSelector
.
- Rename
SupplySelectors
to SupplyOfflineSelectors
.
Minor Changes
- 2024-11-15 #51
- Define rating method after line removal instead of before for raters.
This makes it possible to create simplified rater implementation.
- Deprecate RaterBasedOnLineGroup, as it is too complicated.
Create LineGroupRater as an alternative.
- 2024-11-13 #51 Define description string API of ratings for users.
- 2024-07-24 #24 Constraint queries can now be used to check for the existence of constraint nodes without creating new constraints.
- 2023-12-22 ##252:
DefaultOptimization
now provides the recommended optimizer for problems in general.
- 2023-06-14 ##170: Add
DatabaseI#addWithSameHeaderPrefix
as a faster alternative to DatabaseI#add
,
if the line's header to be added to the database is a prefix to the database's header.
- 2023-06-11 ##170: Introduce IndexedAttribute in order to access values of Lines faster.
- 2023-04-13 ##170: Extend Query with optional value containing the Allocations the Query is being applied to.
This allows one to create constraints,
that depend on the supply and demand Tables of assignments of the given problem.
- 2023-03-17 ##170: Introduce
HistoryForDatabase
for debugging purposes.
An instance can be connected to a given database via the DatabaseFactory
,
which can be viewed via the webserver in order to understand how the content of the given database was created.
GelDev.process(() -> {
[Actual Code]
}, env -> env.config().configValue(Databases.class).withConnector(d -> {
if (d.path().equals(list("conway-s-game-of-life", "Propagation", "ForAll", "6", "Propagation", "ForAll", "0", "Propagation", "ForAll", "isDead", "ForAll", ".lines", "assignments/linesProcessing", "linesProcessing", "demands-free"))) {
historyForDatabase(d);
}
}));
- 2023-02-02 #170: Add meta data container to GroupId.
- 2022-07-24 #8:
- Deprecate
LinearInitialization
and prefer using OnlineLinearInitialization
for better performance.
- Solution optimization now supports an
OptimizationConfig
,
which simplifies future backward-compatible changes to the Solution interface.
- 2022-06-03 #8: The history interface for assignments defines now a
toAnalysisFods
method,
that creates an alternative more searchable version of Table#toFods
.
The new version has dedicated columns for fields of complex attributes.
This makes it easier to search for events in the optimization history by i.e. demand or supply attributes.
- SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
- SPDX-FileCopyrightText: Contributors To The
net.splitcells.*
Projects