Skip to content

Releases: hrntsm/Tunny

Tunny v0.8.1

30 Jul 09:48
e53780b
Compare
Choose a tag to compare

Added

  • Debug log output button

Changed

  • Improved stability of python library installation
    • The library is now included from the beginning in whl format and the file is installed, eliminating the need to download it from the Internet.

What's Changed

Full Changelog: v0.8.0...v0.8.1

Tunny v0.8.0

24 Jul 12:48
7ac8efe
Compare
Choose a tag to compare

Added

  • Support Human-in-the-loop optimization
    • Input FishPrint into the objective to start it
    • Add 2 sample gh file
    • detail
  • Support CMA-ES with Margin
    • It allows for more efficient optimization in mixed integer problems.
    • detail
  • Support NSGA-III
    • For more than 3 objective optimization.
    • detail
  • Python sample code
  • Open optuna dashboard menu item

Changed

  • When optimizing with CMA-ES, the with Margin option is enabled by default.
  • Support multi constraints.
  • Bump up optuna v3.2.0
  • Bump up optuna-dashboard v0.10.2

Removed

  • Grid sampling.

Fixed

  • Error occurs when remaining time becomes negative
  • GC behavior settings configured in the UI during optimization are not reflected in optimization

Security

  • Bump up scipy v1.10.0

Related PR

Full Changelog: v0.7.2...v0.8.0

Tunny v0.8.0-beta.2

14 May 08:33
Compare
Choose a tag to compare
Tunny v0.8.0-beta.2 Pre-release
Pre-release

Added

  • Support Human-in-the-loop optimization
    • Input FishPrint into the objective to start it.
    • Add 2 sample gh file.

How to use Human-in-the-loop optimization

A component called FishPrint has been added to this version. This can be used as an input to Objective to perform human-in-the-loop optimization.
See the video below for a simple usage.

vase_shape.mp4

Tunny v0.8.0-beta.1

12 Apr 13:47
Compare
Choose a tag to compare
Tunny v0.8.0-beta.1 Pre-release
Pre-release

Added

  • Support CMA-ES with Margin
    • It allows for more efficient optimization in mixed integer problems.

Changed

  • When optimizing with CMA-ES, the with Margin option is enabled by default.
  • Bump up optuna v3.1.1
  • Bump up optuna-dashboard v0.9.0

Deprecated

Removed

  • Grid sampling.

Fixed

  • Error occurs when remaining time becomes negative
  • GC behavior settings configured in the UI during optimization are not reflected in optimization

Tunny v0.7.2

22 Mar 14:37
4d4e85f
Compare
Choose a tag to compare

Add

  • Support Rhino PackageManager.
  • Show Tunny icon in grasshopper ribbon.

Related PR

Full Changelog: v0.7.1...v0.7.2

Tunny v0.7.1

22 Mar 02:48
6465a91
Compare
Choose a tag to compare

Fix

  • bug where visualize and output did not work when using journal storage.

What's Changed

Full Changelog: v0.7.0...v0.7.1

Tunny v0.7.0

21 Mar 05:55
2596c1d
Compare
Choose a tag to compare

Summary

  • Update UI
    • Support Inmemory mode to improve optimization speed.
    • Add show Estimated time remaining.
      image
  • Support Journal Stroage format
    • If the optimization was stopped in the middle of the process with an error, this format may improve it!
      image

Details

Added

  • Display of estimated remaining time during optimization run.
  • In-memory optimization mode.
    • Mode that works faster instead of saving optimization results during optimization.
  • Support Journal storage.
    • Since saving to the sqlite storage format that had been used up to now sometimes resulted in errors during optimization, a different storage format was supported.
  • Checkbox to toggle whether results are shown in the UI in Realtime.
    • There was a problem that the display of results on the UI in Realtime, which was added in v0.6, caused the optimization speed to gradually slow down.

Changed

  • Boolean to start only the first time, since the Python installer may start every time.
    • If you want to install it again, you can do so by checking the checkbox from Misc in the Settings tab.
  • The most of the dll files are combined into a single gha file to improve usability.

Deprecated

Removed

Fixed

  • Enabled Optuna-Dashboard to work even if the filename contains spaces.
  • The problem of saving the results of optimization in progress, etc., which causes an error and fails to save the results, can now be avoided by using JournalStorage.

Security

  • Bump torch from 1.12.0 to 1.13.1

Related PR

New Contributors

Full Changelog: v0.6.0...v0.7.0

Tunny v0.6.0

23 Dec 12:30
5e3d364
Compare
Choose a tag to compare

Summary

  • A documentation page has been created to provide more detailed information.
  • It is now possible to specify the initial combination of variables to run first in optimization
    • image
  • Improved UI to be more user-friendly
    • The optimize tab displays the optimization status in real time and makes it easy to see which study to optimize.
    • Visualize allows you to select what to visualize and save the graph of optimization results in html format

Details

Added

  • Enable to save each visualize figure.
    • Interactive operations on the figure are kept because it is saved in html format, not as an image.
  • Real-time display of trial number, best value, and Hypervolume in the UI.
  • Created UI to set where to save optimization result files.
  • SQLite handling in C#
    • Optimize result handling more smooth some case.
    • Previously, it used to read and handle python, which was sometimes slow, but now it calls SQLite directly from CS.
  • Only non-dominated trial plot in pareto front.
  • Boolean to skip the behavior of checking if the python library is installed in settings.
    • For some reason, the installer may be launched every time even if it is installed, so it can be forcibly skipped in the settings.
  • FishEgg component
    • It is now possible to specify an individual of any variable and have it evaluated in the optimization first and foremost, rather than just setting up a variable completely by the sampler when conducting the optimization.
  • Warn start CMA-ES support
    • The warm start CMA-ES setting has been added to the CMA-ES settings so that the information from the previous trials can be used.

Changed

  • When there are more than 10 params, the value of "Omit_values" is used instead of "params" to improve the visibility of the ParetoFront plot.
  • Default name of optimization result file changed from "Tunny_Opt_Result.db" to "Fish.db".
  • Easy-to-understand UI for creating study.
    • Study Create, Continue, and Copy are now clearly separated in the UI.
  • Update visualize & output UI
    • Previously, the target study and objective function, variables could not be specified, but now they can be specified.
  • Update optuna-dashboard to 0.8.0

Deprecated

  • Disable unused setting tab ui items

Fixed

  • Even if there was an error in the input to the Tunny component, a window could be launched and the button to perform optimization could be pressed, so we made sure that this would not happen.
    • Subject to the following.
      • No input for variable and objective.
      • The name of the objective is not unique.
      • Multiple items entered in Attr.

Security

  • Bump joblib from 1.1.0 to 1.2.0 in /Tunny/Lib
  • Bump mako from 1.2.0 to 1.2.2 in /Tunny/Lib

Related PR

Full Changelog: v0.5.0...v0.6.0

Tunny v0.5.0

03 Sep 05:28
5bc6639
Compare
Choose a tag to compare

Summary

  • Constraints can now be taken into consideration.
    • Only TPE, GP, NSGAII can use constraint.
    • Multiobjective optimization can now take constraints into account; visualization of ParetoFront results shows areas that do not satisfy the constraints, as shown in the gray areas below.
    • image
  • Add Clusterting output
    • The k-means method can be used to cluster the Pareto solution of the optimization.
    • image
  • Add Hypervolume output
    • Hypervolume visualization was added as one of the indicators to determine convergence of multi-objective optimization.
      • If the increase in this value is small, you can consider that the multi-objective optimization has converged.
    • image
  • Advanced optimization settings can now be made from the UI.
    • image

Details

Breaking Change

  • The format in which optimization results are saved has been changed. Optimization results from previous versions cannot be handled.

Added

  • Hypervolume visualization
    • It is useful for determining convergence in multi-objective optimization.
  • Clustering visualization
    • Clustering of results during multi-objective optimization makes it easier to evaluate solutions.
  • BoTorch Sampler
    • This sampler use Gaussian Process and support multi-objective optimization.
  • Quasi-MonteCarlo Sampler
  • Support Constraint.
    • Only TPE, GP, NSGAII can use constraint.
  • Sampler detail settings UI
    • Previously it was necessary to change the JSON file of the settings, but now it can be changed in the UI
  • Enable Text Bake in the FishMarket component.
  • Allows selection of NSGA-II crossover methods.
    • Uniform, BLXAlpha, SPX, SBX, VSBX, UNDX
  • Ability to set Popsize on CMA-ES restart
  • Run GC after trial when has geometry attribute or setting always run.
    • This change probably make optimize slower before
    • If you want to cut this setting, set the value of "GcAfterTrial" to 2 in Settings.json.
  • Show LICENSE button in Tunny UI.

Changed

  • When genepool is an input, it now creates variable names using nicknames.
  • The output of the Pareto solution was made to consider the constraints.
  • Multivariate in TPE sampler default option is false to true
  • Updated Optuna used to v3.0.0
    • Use suggest_int and suggest_float instead of suggest_uniform for more accurate variable generation in optimization
    • Random and Grid samplers now support multi-objective optimization
    • The format of the db file in which the results are saved has changed. Please note that it is not compatible with the previous one.

Fixed

  • The PythonInstaller window now has no text on the progress bar.
  • When more than one Study exists, another Study Name is set and RunOpt no longer causes a Solver Error.
  • The error does not occur when the Brep of Geometry of Attribute is null.

Related PR

Full Changelog: v0.4.0...v0.5.0

Tunny v0.4.0

09 Jul 12:30
23428c8
Compare
Choose a tag to compare

Added

  • Component CI build to get easily development build.
    • If you want to dogfooding, go right ahead!
  • Param_FishAttribute component
  • Construct Fish Attribute component
    • Component that creates attribute information to be attached to each trial of optimization
  • Deconstruct Fish component
    • Component that separates optimization results into Variables, Objectives, and Attributes
  • Deconstruct Fish Attribute component
    • Components that output each attribute
  • Python package licenses to clearly state the license of each package.
  • requirements.txt file to avoid conflict python packages versions.
  • Implemented Timeout to stop optimization over time.
  • Input components are now highlighted in color, as are other optimization components.

Changed

  • Component location on the Tunny tab.
  • The output of the Tunny component is made into Fish, a type that summarizes the results.
  • The Geometry input of the Tunny component has been changed to Attribute to allow more attribute information to be handled.
  • When restoring the results from Tunny component as Fishes, those that the trial did not work and Objective could not get are not output.
  • Update UI
    • The UI of the Restore tab was confusing, so the UI was modified to make it easier to understand which button to press and how the results are output.
  • The progress bar on the Output tab has been made to show progress in a more understandable way.
  • Error messages are displayed when the input to Tunny component is not appropriate, and inappropriate input wires are automatically removed.
  • Error massage in python runtime is more clear.
    • Added error message when the number of objective does not match the existing Study.
    • Added error message when a Study with the same name exists but is used without Loading.

Fixed

  • Stopped sampling when there was no geometry input
  • Once optimize output error, the component won't run again
    • I've tried to do a proper Dispose to fix this problem, but it still doesn't work sometimes.
  • Optuna-DashBoard and storage relate functions do not work properly when a different Storage path is specified in Settings than the default.
  • Pressing the stop button in output and the stop button in Optimize does not stop the operation.
  • Components were in their normal color instead of blue.
  • Once an error occurs in PythonRuntime, the optimization will not work after that.

Related PR

Full Changelog: v0.3.0...v0.4.0