Skip to content
View cicirello's full-sized avatar

Highlights

  • Pro

Block or report cicirello

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Visibility: All
Select visibility
Sort by: Most downloads

14 packages

  • org.cicirello.jpt

    JavaPermutationTools (JPT) is a library for computation on permutations and sequences. JPT provides Java classes that enable representing and generating permutations and sequences, as well as performing computation on permutations and sequences. It includes implementations of a variety of permutation distance metrics as well as distance metrics on sequences (i.e., Strings, arrays, and other ordered data types).

    8
  • org.cicirello.interactive-bin-packing

    The Interactive Bin Packing Application provides a self-guided tutorial on combinatorial optimization, the bin packing problem, and constructive heuristics for bin packing. It also enables the user to interact with bin packing instances to explore their own problem solving strategies, or to test their knowledge of the various constructive heuristics covered by the tutorial. The application is not a solver for bin packing. The Interactive Bin Packing Application is a tool for learning about the bin packing problem, as well as for learning about heuristic techniques for solving instances of the problem.

    0
  • org.cicirello.chips-n-salsa

    Chips-n-Salsa is a Java library of customizable, hybridizable, iterative, parallel, stochastic, and self-adaptive local search algorithms. The library includes implementations of several stochastic local search algorithms, including simulated annealing, hill climbers, as well as constructive search algorithms such as stochastic sampling. Chips-n-Salsa now also includes genetic algorithms as well as evolutionary algorithms more generally. The library very extensively supports simulated annealing. It includes several classes for representing solutions to a variety of optimization problems. For example, the library includes a BitVector class that implements vectors of bits, as well as classes for representing solutions to problems where we are searching for an optimal vector of integers or reals. For each of the built-in representations, the library provides the most common mutation operators for generating random neighbors of candidate solutions, as well as common crossover operators for use with evolutionary algorithms. Additionally, the library provides extensive support for permutation optimization problems, including implementations of many different mutation operators for permutations, and utilizing the efficiently implemented Permutation class of the JavaPermutationTools (JPT) library. Chips-n-Salsa is customizable, making extensive use of Java's generic types, enabling using the library to optimize other types of representations beyond what is provided in the library. It is hybridizable, providing support for integrating multiple forms of local search (e.g., using a hill climber on a solution generated by simulated annealing), creating hybrid mutation operators (e.g., local search using multiple mutation operators), as well as support for running more than one type of search for the same problem concurrently using multiple threads as a form of algorithm portfolio. Chips-n-Salsa is iterative, with support for multistart metaheuristics, including implementations of several restart schedules for varying the run lengths across the restarts. It also supports parallel execution of multiple instances of the same, or different, stochastic local search algorithms for an instance of a problem to accelerate the search process. The library supports self-adaptive search in a variety of ways, such as including implementations of adaptive annealing schedules for simulated annealing, such as the Modified Lam schedule, implementations of the simpler annealing schedules but which self-tune the initial temperature and other parameters, and restart schedules that adapt to run length.

    Published Aug 1, 2024 by Vincent A. Cicirello in cicirello/Chips-n-Salsa
    0
  • org.cicirello.chips-n-salsa-examples

    This package contains several example programs of the usage of the Chips-n-Salsa library. Chips-n-Salsa is a Java library of customizable, hybridizable, iterative, parallel, stochastic, and self-adaptive local search algorithms. Chips-n-Salsa's source code is maintained on GitHub, and the prebuilt jars of the library can be imported from Maven Central using maven or other build tools. The purpose of the package chips-n-salsa-examples is to demonstrate usage of the major functionality of the Chips-n-Salsa library. You can find out more about the Chips-n-Salsa library itself from its website: https://chips-n-salsa.cicirello.org/.

    0
  • org.cicirello.btpe-iterations

    This package contains Java code to reproduce the experiments of the following article: Vincent A. Cicirello. 2023. An Analysis of an Open Source Binomial Random Variate Generation Algorithm, Engineering Proceedings, 56(1), Article 86, October 2023. doi:10.3390/ASEC2023-15349.

    Published Nov 29, 2023 by Vincent A. Cicirello in cicirello/btpe-iterations
    0
  • org.cicirello.rho-mu

    The rho mu library is a library of Randomization enHancements and Other Math Utilities. It includes implementations of various algorithms for randomly sampling indexes into arrays and other sequential structures, randomly sampling pairs and triples of unique indexes, randomly sampling k indexes, etc. It also includes efficient implementations of random number generation from distributions other than uniform, such as Gaussian, Cauchy, etc. Additionally, it includes implementations of other math functions that are either needed by the randomization utilities, or needed by some of our other projects.

    Published Aug 16, 2024 by Vincent A. Cicirello in cicirello/rho-mu
    0
  • org.cicirello.jpt-examples

    This package contains several example programs of the usage of the JavaPermutationTools (JPT) library. JPT is a Java library that enables representing and generating permutations and sequences, as well as performing computation on permutations and sequences. It includes implementations of a variety of permutation distance metrics as well as distance metrics on sequences (i.e., Strings, arrays, and other ordered data types). In addition to programs demonstrating the usage of the JPT library, the jpt-examples package also contains programs for replicating the experiments from a few published papers that utilized the library or implementations on which the library is based. JPT's source code is maintained on GitHub, and the prebuilt jars of the library can be imported from Maven Central using maven or other build tools. The purpose of the package jpt-examples is to demonstrate usage of the major functionality of the JPT library. You can find out more about the JPT library itself from its website: https://jpt.cicirello.org/.

    Published Jul 26, 2024 by Vincent A. Cicirello in cicirello/jpt-examples
    0
  • org.cicirello.mone-article-experiments

    This package contains Java programs for reproducing the experiments, and analysis of experimental data, from the following article: Cicirello, V.A. On Fitness Landscape Analysis of Permutation Problems: From Distance Metrics to Mutation Operator Selection. Mobile Networks and Applications (2022). https://doi.org/10.1007/s11036-022-02060-z.

    0
  • org.cicirello.ziggurat

    Java implementation of the Ziggurat algorithm for generating Gaussian distributed pseudorandom numbers. The Ziggurat algorithm is significantly faster than the more commonly encountered Polar method, and has some other desirable statistical properties. The ZigguratGaussian class is a Java port of the GNU Scientific Library's C implementation (Voss, 2005) of the Ziggurat method. In porting to Java, we have made several optimizations, the details of which can be found in the source code comments, which highlights any differences between this Java implementation and the C implementation on which it is based. This package also includes an implementation of the Polar Method, included to enable comparing speed advantage of the Ziggurat algorithm.

    Published May 31, 2024 by Vincent A. Cicirello in cicirello/ZigguratGaussian
    0
  • org.cicirello.permutation-crossover-landscape-analysis

    This package contains Java code to reproduce the experiments of the following conference paper: Vincent A. Cicirello. 2023. A Survey and Analysis of Evolutionary Operators for Permutations. Proceedings of the 15th International Joint Conference on Computational Intelligence, pages 288-299. https://doi.org/10.5220/0012204900003595.

    0
  • org.cicirello.core

    This library provides some of the core utilities and data structures used in several of our other libraries and projects.

    Published May 13, 2024 by Vincent A. Cicirello in cicirello/core
    0