Skip to content

Commit 64d0a27

Browse files
committed
updated content
1 parent e25b784 commit 64d0a27

File tree

1 file changed

+101
-18
lines changed

1 file changed

+101
-18
lines changed

index.html

Lines changed: 101 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,8 @@
88
<meta name="title" content="JavaPermutationTools - A Java library for computation on permutations and sequences">
99
<meta name="referrer" content="strict-origin-when-cross-origin">
1010
<meta itemprop="name" content="JavaPermutationTools - A Java library for computation on permutations and sequences">
11-
<meta name="description" content="The JPT library includes a variety of
12-
permutation distance metrics as well as distance metrics on sequences (i.e., Strings, arrays, and other ordered data types).">
13-
<meta itemprop="description" content="The JPT library includes a variety of
14-
permutation distance metrics as well as distance metrics on sequences (i.e., Strings, arrays, and other ordered data types).">
11+
<meta name="description" content="The JavaPermutationTools (JPT) library includes an efficient object-oriented implementation of Permutations, as well as a variety of permutation distance metrics, distance metrics on sequences (i.e., Strings, arrays, and other ordered data types), and implementations of algorithms for randomly sampling from arrays.">
12+
<meta itemprop="description" content="The JavaPermutationTools (JPT) library includes an efficient object-oriented implementation of Permutations, as well as a variety of permutation distance metrics, distance metrics on sequences (i.e., Strings, arrays, and other ordered data types), and implementations of algorithms for randomly sampling from arrays.">
1513
<title>JavaPermutationTools - A Java library for computation on permutations and sequences</title>
1614
<link rel="icon" href="/images/favicon.svg" sizes="any" type="image/svg+xml">
1715
<meta property="og:type" content="website">
@@ -20,8 +18,7 @@
2018
<meta property="og:image" content="https://jpt.cicirello.org/images/jpt.png">
2119
<meta property="og:image:width" content="1280">
2220
<meta property="og:image:height" content="640">
23-
<meta property="og:description" content="The JavaPermutationTools (JPT) library includes a variety of
24-
permutation distance metrics as well as distance metrics on sequences (i.e., Strings, arrays, and other ordered data types).">
21+
<meta property="og:description" content="The JavaPermutationTools (JPT) library includes an efficient object-oriented implementation of Permutations, as well as a variety of permutation distance metrics, distance metrics on sequences (i.e., Strings, arrays, and other ordered data types), and implementations of algorithms for randomly sampling from arrays.">
2522
<style amp-custom>
2623
header, nav, footer, article, aside, section { display: block; }
2724
footer { clear: both; }
@@ -171,9 +168,12 @@ <h2>JavaPermutationTools</h2>
171168
<h3>Overview</h3>
172169
<p itemprop="description"><span itemprop="name">JavaPermutationTools</span> (JPT) is a <span itemprop="programmingLanguage">Java</span>
173170
library for representing and generating permutations and sequences, as well as performing
174-
computation on permutations and sequences. This includes implementations of a variety of
175-
permutation distance metrics as well as distance metrics on sequences (i.e., Strings, arrays,
176-
and other ordered data types).</p>
171+
computation on permutations and sequences. JPT's Permutation class is an efficient object-oriented implementation
172+
of a permutation, and includes a variety of methods for manipulating the permutation (e.g., swapping elements,
173+
reversing, scrambling, among others), and also supports iterating over permutations. The JPT library also includes
174+
implementations of a variety of permutation distance metrics as well as distance metrics on sequences (i.e., Strings, arrays,
175+
and other ordered data types). Additionally, JPT includes implementations of several algorithms for random sampling
176+
from arrays.</p>
177177
<p>The <a href="https://github.com/cicirello/JavaPermutationTools" itemprop="codeRepository">JPT source
178178
code repository</a> is hosted on GitHub; and is licensed under
179179
the <a itemprop="license" href="https://www.gnu.org/licenses/gpl-3.0.html">GNU
@@ -204,6 +204,92 @@ <h3>How to Cite</h3>
204204
</ul>
205205
</section>
206206
<section>
207+
<h3>Permutation Distance Measures</h3>
208+
<p>The permutation distance measures include the following:</p>
209+
<p><strong>Edit distances:</strong> Edit distance measures, where an edit distance is the minimum number of edit operations necessary
210+
to transform one permutation into the other:</p>
211+
<ul>
212+
<li>block interchange distance: minimum number of block (i.e., contiguous sequence of elements) swaps necessary to transform
213+
one permutation into the other</li>
214+
<li>cycle edit distance: minimum number of non-singleton permutation cycles necessary to transform
215+
one permutation into the other</li>
216+
<li>edit distance: Wagner and Fischer's (1974) string edit distance adapted to permutations, including
217+
edit operations of element deletions, element insertions, and element changes, and with configurable costs
218+
for the three edit operations</li>
219+
<li>interchange distance: minimum number of swaps necessary to transform one permutation into the other</li>
220+
<li>Kendall tau distance: minimum number of adjacent swaps necessary to transform one permutation into the other,
221+
also known as bubble sort distance</li>
222+
<li>reinsertion distance: minimum number of removal/reinsertion operations necessary to transform one permutation into the other</li>
223+
</ul>
224+
<p><strong>Edge-based distances:</strong> Distance measures when the permutations represent a sequence of
225+
edges (e.g., when adjacent permutation elements correspond to edges):</p>
226+
<ul>
227+
<li>acyclic edge distance: the number of edges that are not in common</li>
228+
<li>cyclic edge distance: the number of edges that are not in common, treating the permutation as a cycle
229+
such that there is an edge from the last element to the first</li>
230+
<li>r-type distance: the number of directed edges that are not in common</li>
231+
<li>cyclic r-type distance: the number of directed edges that are not in common, treating the permutation as a cycle
232+
such that there is an edge from the last element to the first</li>
233+
</ul>
234+
<p><strong>Other distances:</strong> Distance measures based on some permutation concept or property:</p>
235+
<ul>
236+
<li>exact match distance: Hamming distance applied to permutations (e.g., the number of positions containing different elements)</li>
237+
<li>cycle distance: count of the number of non-singleton permutation cycles between a pair of permutations</li>
238+
<li>k-cycle distance: count of the number of non-singleton permutation cycles of length at most k</li>
239+
<li>deviation distance: sum of the positional deviations of the permutation elements</li>
240+
<li>normalized deviation distance (Ronald, 1998): deviation distance normalized by dividing by 1 (proposed by S Ronald at IEEE CEC in 1998)</li>
241+
<li>normalized deviation distance (Sevaux and Sorensen, 2005): deviation distance normalized, such that the distance is between 0 and 1 (proposed by Sevaux and Sorensen at MIC-2005)</li>
242+
<li>Lee distance: Lee distance (1958) is the sum of the minimum of the left-positional and right-positional deviations
243+
of the elements (e.g., treats permutation as a cycle, such that an element's deviation is the minimum of its displacement to
244+
the left or right)</li>
245+
<li>squared deviation distance: sum of the squares of the positional deviations of the permutation elements</li>
246+
<li>weighted Kendall tau distance: Liu and Han's (2006) weighted version of Kendall tau distance</li>
247+
</ul>
248+
</section>
249+
<section>
250+
<h3>Sequence Distance Measures</h3>
251+
<p>JPT also includes a variety of string distance measures that can be used to measure the
252+
distance between a pair of strings or between a pair of arrays of various types. The sequence
253+
distance measures all support computing the distance between pairs of arrays of any one
254+
primitive type, the distance between pairs of arrays of objects, the distance between pairs
255+
of lists, and the distance between pairs of String objects. The distance measures for
256+
sequences include the following:</p>
257+
<ul>
258+
<li>edit distance: Wagner and Fischer's (1974) string edit distance, including
259+
edit operations of element deletions, element insertions, and element changes, and with configurable costs</li>
260+
<li>exact match distance: an adaptation of Hamming distance to non-binary strings, such that the
261+
distance is the number of sequence positions containing different elements</li>
262+
<li>Kendall tau sequence distance: implementation of Kendall tau sequence distance (Cicirello, 2020)</li>
263+
<li>longest common subsequence distance: an edit distance where the edit operations are deletions and insertions
264+
(i.e., no replacements or changes), and where the cost of an edit operation is simply 1</li>
265+
</ul>
266+
</section>
267+
<section>
268+
<h3>Dependencies</h3>
269+
<p>The JavaPermutationTools has minimal dependencies, all of which are our own
270+
libraries, and these include the following.</p>
271+
<ul>
272+
<li><a href="https://rho-mu.cicirello.org/">&rho;&mu;</a>: The &rho;&mu; library is
273+
focused on efficient randomization. It provides highly optimized random sampling algorithm
274+
implementations, and replaces some of the functionality of Java's built-in random
275+
number generators with faster options.</li>
276+
<li><a href="https://core.cicirello.org/">org.cicirello.core</a>: The org.cicirello.core
277+
library provides implementations of core data structures and algorithms that are used
278+
across multiple of our projects.</li>
279+
</ul>
280+
</section>
281+
<section>
282+
<h3>Dependent Libraries</h3>
283+
<p>The following libraries depend upon JavaPermutationTools:</p>
284+
<ul>
285+
<li><a href="https://chips-n-salsa.cicirello.org/">Chips-n-Salsa</a>: The Chips-n-Salsa
286+
Java library is a library for evolutionary computation, stochastic search, and related
287+
metaheuristics. Among its features is support for optimization problems over the space
288+
of permutations. Thus, it uses JPT's Permutation class as an efficient representation
289+
of permutations.</li>
290+
</ul>
291+
</section>
292+
<section>
207293
<h3>Importing from Maven Central</h3>
208294
<div class="badge-height"><a href="https://central.sonatype.com/artifact/org.cicirello/jpt/"><amp-img class="contain" layout="fill" alt="Latest release on Maven Central" src="https://img.shields.io/maven-central/v/org.cicirello/jpt.svg?label=Maven%20Central&logo=apachemaven"></amp-img></a></div>
209295
<p>To import JPT from the Maven Central repository (if your build tool is
@@ -274,13 +360,6 @@ <h3>Development Process</h3>
274360
</ul></li>
275361
</ul>
276362
</section>
277-
<section>
278-
<h3>Dependent Libraries</h3>
279-
<p>The following libraries depend upon JavaPermutationTools:</p>
280-
<ul>
281-
<li><a href="https://chips-n-salsa.cicirello.org/">Chips-n-Salsa</a></li>
282-
</ul>
283-
</section>
284363
<section class="publist">
285364
<h3>Related Publications</h3>
286365
<p>The following papers, many of which are related to fitness landscape analysis, have either used this library, or contributed to it in
@@ -327,8 +406,12 @@ <h3>Related Publications</h3>
327406
</section>
328407
</article>
329408
<footer>
330-
<small><a rel="nofollow" href="https://www.cicirello.org/e/">Contact</a></small>
331-
<div id="copyright"><small>Copyright &copy; 2005-<span itemprop="copyrightYear">2024</span> <a href="https://www.cicirello.org/">Vincent A. Cicirello</a>.</small></div>
409+
<p><small>
410+
<a class="footer-link" href="https://www.cicirello.org/e/">Contact</a>
411+
<strong>&#x25C6;</strong>
412+
<a class="footer-link" href="https://www.cicirello.org/policy/privacy/">Privacy Policy</a>
413+
</small></p>
414+
<div id="copyright"><small>Copyright &copy; 2005-<span itemprop="copyrightYear">2025</span> <a href="https://www.cicirello.org/">Vincent A. Cicirello</a>.</small></div>
332415
</footer>
333416
</body>
334417
</html>

0 commit comments

Comments
 (0)