Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adapt algorithm event system to be serializable #138

Merged
merged 24 commits into from Jul 8, 2019

Conversation

@ahetzer
Copy link
Collaborator

commented May 22, 2019

Adapted the algorithm event system to be serializable such that an AlgorithmEventHistory can now be both written and read using an AlgorithmEventHistorySerializer. This is possible since we map each AlgorithmEvent to a PropertyProcessedAlgorithmEvent which can have certain properties. These properties are computed using AlgorithmEventPropertyComputers, which have to be handed to the recorder responsible for creating the event history. Such properties should be constructed in a way which enables them to be serializable.

In order to allow viewing recorded algorithm runs, the algorithm visualization underwent an overhaul to work with ProcessedPropertyAlgorithmEvent only instead of the original events, although these can still be used to control the algorithm in a live version of the visualization. For an example how to initialize an AlgorithmVisualizationWindow using the new system, refer to the MLPlanArffExample.

Additionally two basic tests for the serialization were added.

ahetzer added some commits May 16, 2019

Fix bug in SearchRolloutHistogramPlugin
Fixed a bug in the SearchRolloutHistogramPlugin which caused the search
rollout histogram not to update properly if a node without evaluations
was selected.
@mwever

This comment has been minimized.

Copy link
Collaborator

commented May 23, 2019

Do you have the time to add javadoc to your code?

ahetzer added some commits Jul 4, 2019

Merge branch 'dev' into feature/serializable_algorithm_events
Conflicts:
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/events/recorder/AlgorithmEventHistory.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/events/recorder/AlgorithmEventHistoryEntry.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/events/recorder/AlgorithmEventHistoryEntryDeliverer.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/events/recorder/AlgorithmEventHistoryRecorder.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/ASimpleMVCPlugin.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/ASimpleMVCPluginController.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/ASimpleMVCPluginView.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/IGUIPlugin.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/IGUIPluginController.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/controlbar/ControlBarGUIPlugin.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/controlbar/ControlBarGUIPluginController.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/graphview/GraphMouseListener.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/graphview/GraphViewPlugin.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/graphview/GraphViewPluginController.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/graphview/GraphViewPluginModel.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/graphview/NodeClickedEvent.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/nodeinfo/NodeInfoGUIPlugin.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/nodeinfo/NodeInfoGUIPluginController.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/nodeinfo/NodeInfoGUIPluginModel.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/nodeinfo/NodeInfoGUIPluginView.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/solutionperformanceplotter/SolutionPerformanceTimelinePluginController.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/solutionperformanceplotter/SolutionPerformanceTimelinePluginModel.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/solutionperformanceplotter/SolutionPerformanceTimelinePluginView.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/speedslider/SpeedSliderGUIPlugin.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/speedslider/SpeedSliderGUIPluginController.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/timeslider/TimeSliderGUIPlugin.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/plugin/timeslider/TimeSliderGUIPluginController.java
	JAICore/jaicore-graphvisualizer/src/main/java/jaicore/graphvisualizer/window/AlgorithmVisualizationWindow.java
	JAICore/jaicore-search/src/main/java/jaicore/search/gui/plugins/rollouthistograms/SearchRolloutHistogramPlugin.java
	JAICore/jaicore-search/src/main/java/jaicore/search/gui/plugins/rollouthistograms/SearchRolloutHistogramPluginController.java
	JAICore/jaicore-search/src/main/java/jaicore/search/gui/plugins/rollouthistograms/SearchRolloutHistogramPluginModel.java
	JAICore/jaicore-search/src/main/java/jaicore/search/gui/plugins/rollouthistograms/SearchRolloutHistogramPluginView.java
	JAICore/jaicore-search/src/test/java/jaicore/search/testproblems/cannibals/CannibalTester.java
	softwareconfiguration/hasco/src/example/java/hasco/examples/HASCOModelStatisticsObserverPluginExample.java
	softwareconfiguration/hasco/src/example/java/hasco/examples/HASCOWithSolutionPerformanceVisualizationExample.java
	softwareconfiguration/hasco/src/main/java/hasco/gui/statsplugin/HASCOModelStatisticsComponentSelector.java
	softwareconfiguration/hasco/src/main/java/hasco/gui/statsplugin/HASCOModelStatisticsPluginController.java
	softwareconfiguration/hasco/src/main/java/hasco/gui/statsplugin/HASCOModelStatisticsPluginModel.java
	softwareconfiguration/hasco/src/main/java/hasco/gui/statsplugin/HASCOModelStatisticsPluginView.java
	softwareconfiguration/hasco/src/main/java/hasco/model/CategoricalParameterDomain.java
	softwareconfiguration/hasco/src/main/java/hasco/model/Component.java
	softwareconfiguration/hasco/src/main/java/hasco/model/ComponentInstance.java
	softwareconfiguration/hasco/src/main/java/hasco/model/NumericParameterDomain.java
	softwareconfiguration/hasco/src/main/java/hasco/model/Parameter.java
	softwareconfiguration/mlplan/src/example/java/de/upb/crc901/automl/mlplan/examples/MLPlanARFFExample.java
	softwareconfiguration/mlplan/src/example/java/de/upb/crc901/mlplan/examples/MLPlanSubsamplingExample.java
	softwareconfiguration/mlplan/src/example/java/de/upb/crc901/mlplan/examples/multilabel/meka/ML2PlanARFFExample.java
	softwareconfiguration/mlplan/src/example/java/de/upb/crc901/mlplan/examples/multilabel/meka/ML2PlanAutoMLCExperimenter.java
	softwareconfiguration/mlplan/src/main/java/de/upb/crc901/mlplan/cli/MLPlanCLI.java
	softwareconfiguration/mlplan/src/main/java/de/upb/crc901/mlplan/gui/outofsampleplots/OutOfSampleErrorPlotPluginController.java
	softwareconfiguration/mlplan/src/main/java/de/upb/crc901/mlplan/gui/outofsampleplots/OutOfSampleErrorPlotPluginModel.java
	softwareconfiguration/mlplan/src/main/java/de/upb/crc901/mlplan/gui/outofsampleplots/OutOfSampleErrorPlotPluginView.java
	softwareconfiguration/mlplan/src/main/java/de/upb/crc901/mlplan/multiclass/wekamlplan/MLPlanWekaClassifier.java
Merge branch 'dev' into feature/serializable_algorithm_events
Conflicts:
	softwareconfiguration/mlplan/src/example/java/ai/libs/mlplan/examples/multilabel/meka/ML2PlanAutoMLCExperimenter.java

@ahetzer ahetzer added the WIP label Jul 4, 2019

mwever and others added some commits Jul 4, 2019

@ahetzer ahetzer requested review from fmohr and mwever Jul 5, 2019

@ahetzer ahetzer removed the WIP label Jul 5, 2019

fmohr added some commits Jul 8, 2019

@fmohr

fmohr approved these changes Jul 8, 2019

@fmohr fmohr merged commit 17978a3 into dev Jul 8, 2019

3 checks passed

SonarCloud Code Analysis Quality Gate passed
Details
Travis CI - Branch Build Passed
Details
Travis CI - Pull Request Build Passed
Details

@fmohr fmohr deleted the feature/serializable_algorithm_events branch Jul 8, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.