|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.uacalc.alg.conlat.CongruenceLattice
public class CongruenceLattice
A class to represent the congruence lattice of a SmallAlgebra; this is, an algebra with universe the integers from 0 to n-1. This uses the very fast algorithms from my unpublished paper Computing Congruences Efficiently which is available at http://www.math.hawaii.edu/~ralph/papers.html.
| Field Summary | |
|---|---|
static int |
MAX_DRAWABLE_INPUT_SIZE
|
static int |
MAX_DRAWABLE_SIZE
|
static ProgressReport |
monitor
|
| Fields inherited from interface org.uacalc.alg.Algebra |
|---|
CARDINALITY_COUNTABLE, CARDINALITY_COUNTABLY_INFINITE, CARDINALITY_FINITE, CARDINALITY_INFINITE, CARDINALITY_UNKNOWN |
| Constructor Summary | |
|---|---|
CongruenceLattice(SmallAlgebra alg)
|
|
| Method Summary | |
|---|---|
java.util.List<Partition> |
atoms()
|
java.util.List<CentralityData> |
calcCentrality(BinaryRelation S,
BinaryRelation T,
ProgressReport report)
|
int |
cardinality()
|
org.uacalc.element.SubProductElement |
centralityFailure(BinaryRelation S,
BinaryRelation T,
Partition delta)
|
org.uacalc.element.SubProductElement |
centralityFailure(BinaryRelation S,
BinaryRelation T,
Partition delta,
SubProductAlgebra mats)
|
boolean |
centralizes(BinaryRelation S,
BinaryRelation T,
Partition delta)
|
boolean |
centralizes(BinaryRelation S,
BinaryRelation T,
Partition delta,
SubProductAlgebra mats)
|
Partition |
Cg(int a,
int b)
|
Partition |
Cg(java.lang.Object a,
java.lang.Object b)
|
java.util.List<Partition> |
coatoms()
|
Partition |
commutator(BinaryRelation S,
BinaryRelation T,
java.util.List<CentralityData> centralityList,
ProgressReport report)
|
java.util.List<Partition> |
complements(Partition par)
Returns a list of the complements of par. |
java.util.List |
constantOperations()
This gives a list of the operations of arity 0, which is a little different from the constants. |
Partition |
findJoinIrred(Partition a,
Partition b)
This finds a join irreducible congruence which is minimal with respect to being below b and not below a. |
java.util.List<Partition> |
findL3Generators()
Find congruences alpha, beta, gamma which generate L3 of Jonsson-Rival notation; see Fig 2.2 of Jipsen-Rose. |
java.util.List<Partition> |
findLPJ10Generators()
|
java.util.List<Partition> |
findLXXGenerators()
|
Partition |
findMeetIrred(Partition a,
Partition b)
This finds a meet irreducible congruence which is maximal with respect to being above a and not above b. |
IntArray |
generatingPair(Partition part)
Find a pair [a, b] (as an IntArray) which generates part. |
SmallAlgebra |
getAlgebra()
|
BasicLattice |
getBasicLattice()
|
BasicLattice |
getBasicLattice(boolean makeIfNull)
Get the BasicLattice used primarily for drawing. |
javax.swing.JTable |
getConTable()
|
java.lang.String |
getDescription()
|
org.latdraw.diagram.Diagram |
getDiagram()
|
java.util.Map<Partition,Subtrace> |
getJoinIrredToSubtraceMap()
|
int |
getMakeUniverseK()
|
ProgressReport |
getMonitor()
|
java.lang.String |
getName()
|
Operation |
getOperation(OperationSymbol sym)
Get the operation correspond to a symbol or null if the symbol is not part of the similarityType. |
java.util.Map<OperationSymbol,Operation> |
getOperationsMap()
|
int |
getSizeComputed()
|
TypeFinder |
getTypeFinder()
|
int |
inputSize()
The sum of the cardinality of the algebra raised to the arity of the operations. |
java.util.List<Partition> |
irredundantMeetDecomposition()
Find a set of meet irreducible irredundantly meeting to zero. |
java.util.List<Partition> |
irredundantMeetDecompositionOld()
|
boolean |
isDistributive()
|
boolean |
isDrawable()
|
boolean |
isIdempotent()
Test if all of the operations are idempotent. |
boolean |
isSimilarTo(Algebra alg)
|
boolean |
isSmallerThan(int size)
|
boolean |
isTotal()
This will fail only if there are some OperationWithDefaultValue's which are not total. |
boolean |
isUnary()
|
java.util.Iterator |
iterator()
returns the iterator of the universe. |
java.lang.Object |
join(java.util.List args)
|
java.lang.Object |
join(java.lang.Object a,
java.lang.Object b)
|
boolean |
joinIrreducible(Partition part)
|
java.util.List<Partition> |
joinIrreducibles()
An optional operation returning the list of join irreducible elements. |
java.util.List<Partition> |
joinIrreducibles(ProgressReport report)
A list of the join irreducibles; constructed if necessary. |
boolean |
joinIrreduciblesFound()
|
boolean |
joinPrime(Partition beta)
Test if beta is join prime. |
boolean |
leq(java.lang.Object a,
java.lang.Object b)
The order relation. |
Partition |
lowerStar(Partition beta)
If beta is join irreducible, this gives its lower
cover; otherwise null. |
static void |
main(java.lang.String[] args)
|
void |
makeAtoms()
|
java.util.List<Partition> |
makeIrredundantMeet(java.util.List<Partition> list)
|
void |
makeJoinIrreducibles(ProgressReport report)
|
void |
makeOperationTables()
Make operation tables to speed up the evaluation of operations at the cost using more space. |
void |
makePrincipals(ProgressReport report)
|
void |
makeUniverse()
|
void |
makeUniverse(int size)
|
void |
makeUniverse(int maxSize,
ProgressReport report)
Construct the universe. |
void |
makeUniverse(ProgressReport report)
|
SubProductAlgebra |
matrices(BinaryRelation S,
BinaryRelation T,
ProgressReport report)
The set M(S,T) as in Kearnes-Kiss and other places. |
java.lang.Object |
meet(java.util.List args)
|
java.lang.Object |
meet(java.lang.Object a,
java.lang.Object b)
|
boolean |
meetIrreducible(Partition part)
|
java.util.List<Partition> |
meetIrreducibles()
An optional operation returning the list of meet irreducible elements. |
boolean |
monitoring()
|
Partition |
one()
|
java.util.List |
operations()
|
java.util.List<Partition> |
principals()
|
java.util.List<Partition> |
principals(ProgressReport report)
|
void |
setConTable(javax.swing.JTable table)
|
void |
setDescription(java.lang.String desc)
|
void |
setMonitor(ProgressReport m)
|
void |
setName(java.lang.String v)
|
SimilarityType |
similarityType()
|
void |
sortByRank(java.util.List<Partition> lst)
Sort by rank. |
void |
stopMakeUniverse()
|
Partition |
strongRectangularityCommutator(BinaryRelation S,
BinaryRelation T,
java.util.List<CentralityData> centralityList,
ProgressReport report)
|
org.uacalc.element.SubProductElement |
strongRectangularityFailure(BinaryRelation S,
BinaryRelation T,
Partition delta)
|
org.uacalc.element.SubProductElement |
strongRectangularityFailure(BinaryRelation S,
BinaryRelation T,
Partition delta,
SubProductAlgebra mats)
|
Subtrace |
subtrace(Partition beta)
Find a subtrace for beta over its lower cover. |
Subtrace |
subtrace(Partition beta,
Partition alpha)
Find a subtrace for beta over alpha. |
BinaryRelation |
Tg(int a,
int b)
|
int |
type(Partition beta)
|
int |
type(Partition beta,
Partition alpha)
|
int |
type(Partition beta,
Partition alpha,
ProgressReport report)
Find the type for beta over alpha. |
int |
typeJI(Partition beta,
ProgressReport report)
Find the type of beta over its lower cover. |
java.util.Set<java.lang.Integer> |
typeSet()
|
java.util.Set<java.lang.Integer> |
typeSet(ProgressReport report)
|
java.util.Set<Partition> |
universe()
We use java.util.Set to hold the universe of the algebra. |
java.util.Set<Partition> |
universe(ProgressReport report)
|
boolean |
universeFound()
|
java.util.Map<Partition,java.util.List<Partition>> |
upperCoversMap()
|
org.uacalc.element.SubProductElement |
weakCentralityFailure(BinaryRelation S,
BinaryRelation T,
Partition delta)
|
org.uacalc.element.SubProductElement |
weakCentralityFailure(BinaryRelation S,
BinaryRelation T,
Partition delta,
SubProductAlgebra mats)
|
Partition |
weakCommutator(BinaryRelation S,
BinaryRelation T,
java.util.List<CentralityData> centralityList,
ProgressReport report)
|
Partition |
zero()
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static ProgressReport monitor
public static final int MAX_DRAWABLE_SIZE
public static final int MAX_DRAWABLE_INPUT_SIZE
| Constructor Detail |
|---|
public CongruenceLattice(SmallAlgebra alg)
| Method Detail |
|---|
public void setMonitor(ProgressReport m)
setMonitor in interface Algebrapublic ProgressReport getMonitor()
getMonitor in interface Algebrapublic final boolean monitoring()
monitoring in interface Algebrapublic boolean isTotal()
Algebra
isTotal in interface Algebrapublic SmallAlgebra getAlgebra()
public boolean isUnary()
isUnary in interface Algebrapublic java.lang.String getDescription()
getDescription in interface Algebrapublic void setDescription(java.lang.String desc)
setDescription in interface Algebrapublic boolean isSmallerThan(int size)
public boolean isDrawable()
public BasicLattice getBasicLattice()
public BasicLattice getBasicLattice(boolean makeIfNull)
public org.latdraw.diagram.Diagram getDiagram()
public javax.swing.JTable getConTable()
public void setConTable(javax.swing.JTable table)
public java.util.List<Partition> principals()
public java.util.List<Partition> principals(ProgressReport report)
public int cardinality()
cardinality in interface Algebrapublic int inputSize()
Algebra
inputSize in interface Algebrapublic java.util.Set<Partition> universe()
Algebra
universe in interface Algebrapublic java.util.Set<Partition> universe(ProgressReport report)
public boolean isSimilarTo(Algebra alg)
isSimilarTo in interface Algebrapublic SimilarityType similarityType()
similarityType in interface Algebrapublic java.util.Iterator iterator()
Algebra
iterator in interface Algebrapublic java.lang.String getName()
getName in interface Algebrapublic void setName(java.lang.String v)
setName in interface Algebrapublic boolean joinIrreduciblesFound()
public java.util.List<Partition> joinIrreducibles()
Lattice
joinIrreducibles in interface Latticepublic java.util.List<Partition> joinIrreducibles(ProgressReport report)
public boolean joinIrreducible(Partition part)
public java.util.List<Partition> meetIrreducibles()
Lattice
meetIrreducibles in interface Latticepublic boolean meetIrreducible(Partition part)
public java.util.List<Partition> atoms()
atoms in interface Latticepublic void makeAtoms()
public java.util.List<Partition> coatoms()
coatoms in interface Lattice
public java.lang.Object join(java.lang.Object a,
java.lang.Object b)
join in interface Latticepublic java.lang.Object join(java.util.List args)
join in interface Lattice
public java.lang.Object meet(java.lang.Object a,
java.lang.Object b)
meet in interface Latticepublic java.lang.Object meet(java.util.List args)
meet in interface Lattice
public boolean leq(java.lang.Object a,
java.lang.Object b)
Order
leq in interface Orderpublic java.util.List<Partition> complements(Partition par)
par.
par -
public java.util.List<Partition> findL3Generators()
public java.util.List<Partition> findLXXGenerators()
public java.util.List<Partition> findLPJ10Generators()
public java.util.List constantOperations()
Algebra
constantOperations in interface Algebrapublic java.util.List operations()
operations in interface Algebrapublic Operation getOperation(OperationSymbol sym)
Algebra
getOperation in interface Algebrapublic java.util.Map<OperationSymbol,Operation> getOperationsMap()
getOperationsMap in interface Algebrapublic void makePrincipals(ProgressReport report)
public boolean universeFound()
public void stopMakeUniverse()
public int getMakeUniverseK()
public int getSizeComputed()
public void makeUniverse(ProgressReport report)
public void makeUniverse(int size)
public void makeUniverse()
public void makeUniverse(int maxSize,
ProgressReport report)
public boolean joinPrime(Partition beta)
public boolean isDistributive()
public void makeJoinIrreducibles(ProgressReport report)
public void sortByRank(java.util.List<Partition> lst)
lst - public Partition lowerStar(Partition beta)
beta is join irreducible, this gives its lower
cover; otherwise null.
public java.util.Map<Partition,java.util.List<Partition>> upperCoversMap()
public Partition Cg(java.lang.Object a,
java.lang.Object b)
public Partition Cg(int a,
int b)
public BinaryRelation Tg(int a,
int b)
public Partition strongRectangularityCommutator(BinaryRelation S,
BinaryRelation T,
java.util.List<CentralityData> centralityList,
ProgressReport report)
public Partition weakCommutator(BinaryRelation S,
BinaryRelation T,
java.util.List<CentralityData> centralityList,
ProgressReport report)
public Partition commutator(BinaryRelation S,
BinaryRelation T,
java.util.List<CentralityData> centralityList,
ProgressReport report)
public java.util.List<CentralityData> calcCentrality(BinaryRelation S,
BinaryRelation T,
ProgressReport report)
public org.uacalc.element.SubProductElement strongRectangularityFailure(BinaryRelation S,
BinaryRelation T,
Partition delta)
public org.uacalc.element.SubProductElement strongRectangularityFailure(BinaryRelation S,
BinaryRelation T,
Partition delta,
SubProductAlgebra mats)
public org.uacalc.element.SubProductElement weakCentralityFailure(BinaryRelation S,
BinaryRelation T,
Partition delta)
public org.uacalc.element.SubProductElement weakCentralityFailure(BinaryRelation S,
BinaryRelation T,
Partition delta,
SubProductAlgebra mats)
public org.uacalc.element.SubProductElement centralityFailure(BinaryRelation S,
BinaryRelation T,
Partition delta)
public org.uacalc.element.SubProductElement centralityFailure(BinaryRelation S,
BinaryRelation T,
Partition delta,
SubProductAlgebra mats)
public boolean centralizes(BinaryRelation S,
BinaryRelation T,
Partition delta)
public boolean centralizes(BinaryRelation S,
BinaryRelation T,
Partition delta,
SubProductAlgebra mats)
public SubProductAlgebra matrices(BinaryRelation S,
BinaryRelation T,
ProgressReport report)
S - a binary relation but usually a tolerance or congruenceT -
public java.util.Set<java.lang.Integer> typeSet()
public java.util.Set<java.lang.Integer> typeSet(ProgressReport report)
public int type(Partition beta)
public int typeJI(Partition beta,
ProgressReport report)
public int type(Partition beta,
Partition alpha)
public int type(Partition beta,
Partition alpha,
ProgressReport report)
public Subtrace subtrace(Partition beta)
public Subtrace subtrace(Partition beta,
Partition alpha)
public java.util.Map<Partition,Subtrace> getJoinIrredToSubtraceMap()
public TypeFinder getTypeFinder()
public IntArray generatingPair(Partition part)
public Partition findMeetIrred(Partition a,
Partition b)
a and not above b.
Note if a is covered by b then
[a,b] transposes up to [m,m*].
public Partition findJoinIrred(Partition a,
Partition b)
b and not below a.
Note if a is covered by b then
[a,b] transposes down to [j,j_*].
public final Partition zero()
public final Partition one()
public java.util.List<Partition> irredundantMeetDecomposition()
public java.util.List<Partition> irredundantMeetDecompositionOld()
public java.util.List<Partition> makeIrredundantMeet(java.util.List<Partition> list)
public void makeOperationTables()
Algebra
makeOperationTables in interface AlgebraOperation.makeTablepublic boolean isIdempotent()
Algebra
isIdempotent in interface Algebra
public static void main(java.lang.String[] args)
throws java.lang.Exception
java.lang.Exception
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||