Opened 15 months ago

Last modified 5 months ago

#26771 needs_review enhancement

Implement generalized cluster algebras

Reported by: gh-kelleye Owned by:
Priority: major Milestone:
Component: combinatorics Keywords: IMA coding sprints, days99, cluster algebra, generalized cluster algebra,
Cc: tscrim, gmoose05, stumpc5, etn40ff, gh-EBanaian, drupel Merged in:
Authors: Esther Banaian, Elizabeth Kelley, Dylan Rupel, Gregg Musiker Reviewers:
Report Upstream: N/A Work issues:
Branch: public/ticket-26771 (Commits) Commit: 4a523cc335bd1b0adc693df3d722b7a32f9d63a7
Dependencies: Stopgaps:

Description (last modified by drupel)

This ticket is being opened to describe proposed work for an coding sprint at the IMA.

In 2011, Chekhov and Shapiro introduced a generalization of cluster algebras in which the exchange polynomials are allowed to have arbitrarily many terms.

We aim to add generalized cluster algebra functionality and related methods necessary to implement the current understanding of these algebras in Sage. This will be accomplished by building upon the framework established by Rupel and Stella's http://doc.sagemath.org/html/en/reference/algebras/sage/algebras/cluster_algebra.html implementation of cluster algebras.

Our major functionality objectives are:

  • adding the ability to mutate with arbitrary exchange polynomials to the current ClusterAlgebra? package;
  • implementing generalized mutation for coefficients subject to the normalization conditions defined by Tomoki Nakanishi;
  • creating methods for calculating left and right companion cluster algebras;
  • creating a method for unfolding cluster algebras.

For more information, see:

https://arxiv.org/abs/1111.3963

https://arxiv.org/abs/1504.06758

https://arxiv.org/pdf/1006.4276.pdf

Attachments (1)

cluster_algebra.py (82.1 KB) - added by gh-EBanaian 7 months ago.

Download all attachments as: .zip

Change History (77)

comment:1 Changed 15 months ago by tscrim

  • Cc tscrim gmoose05 stumpc5 added

comment:2 Changed 13 months ago by gh-kelleye

  • Description modified (diff)

comment:3 Changed 13 months ago by drupel

  • Cc etn40ff added
  • Description modified (diff)
  • Milestone changed from sage-8.5 to sage-8.7

comment:4 Changed 11 months ago by embray

  • Milestone changed from sage-8.7 to sage-8.8

Ticket retargeted after milestone closed (if you don't believe this ticket is appropriate for the Sage 8.8 release please retarget manually)

comment:5 Changed 8 months ago by embray

  • Milestone sage-8.8 deleted

As the Sage-8.8 release milestone is pending, we should delete the sage-8.8 milestone for tickets that are not actively being worked on or that still require significant work to move forward. If you feel that this ticket should be included in the next Sage release at the soonest please set its milestone to the next release milestone (sage-8.9).

Changed 7 months ago by gh-EBanaian

comment:6 Changed 7 months ago by gh-EBanaian

First step in adding exchange degrees.

comment:7 Changed 7 months ago by gmoose05

  • Cc gh-EBanaian added

comment:8 Changed 7 months ago by gmoose05

  • Cc drupel added

comment:9 Changed 7 months ago by gh-kelleye

  • Branch set to u/gh-kelleye/master

Current beta version of the generalized cluster algebra code.

Last edited 7 months ago by gh-kelleye (previous) (diff)

comment:10 Changed 7 months ago by gmoose05

  • Commit set to da5a902eafcb7f511d2bb551fee5c79bd575d9b9

Old attachment can now be ignored.


Last 10 new commits:

816c665Merge pull request #36 from godfrey-cw/master
6fee69epyflakes cleanup
5bb4e04Merge pull request #35 from fchapoton/pyflakes
56d9857trying to tell where conflicts lie
4169540use splitlines
15a2b7dMerge pull request #30 from fchapoton/patch-1
4034768Typo: alread -> already
2fd52e5Merge pull request #37 from kevinywlui/patch-2
c981690Actually install the cheat sheet when using setup.py
da5a902Merge pull request #39 from kevinywlui/develop

comment:11 Changed 7 months ago by gmoose05

  • Branch changed from u/gh-kelleye/master to u/gmoose05/master

comment:12 Changed 7 months ago by git

  • Commit changed from da5a902eafcb7f511d2bb551fee5c79bd575d9b9 to d6c42617c3cc047fb0769899cb5b661b34b8dd5d

Branch pushed to git repo; I updated commit sha1. New commits:

d6c4261Merge branch 't/26771/master' into develop

comment:13 Changed 7 months ago by git

  • Commit changed from d6c42617c3cc047fb0769899cb5b661b34b8dd5d to 9d7959f6cf0bf7061c92e5050e4310b6f6518a8d

Branch pushed to git repo; I updated commit sha1. New commits:

9d7959fAdded Exchange Degress for real

comment:14 Changed 7 months ago by gmoose05

Code rebased for 8.9-beta_2 - still in testing and debugging phase

comment:15 Changed 7 months ago by gh-kelleye

  • Branch changed from u/gmoose05/master to u/gh-kelleye/master

comment:16 Changed 7 months ago by drupel

  • Branch changed from u/gh-kelleye/master to u/drupel/master

comment:17 Changed 7 months ago by git

  • Commit changed from 9d7959f6cf0bf7061c92e5050e4310b6f6518a8d to a903cc865142ec750def5ef5b00560aa5748d7eb

Branch pushed to git repo; I updated commit sha1. New commits:

a903cc8Updated mutate_initial to compute g-vectors and F-polynomials along the way

comment:18 Changed 7 months ago by git

  • Commit changed from a903cc865142ec750def5ef5b00560aa5748d7eb to 5aa66f6cac2c6ebd2f44e906e4f4bc8c30963f7a

Branch pushed to git repo; I updated commit sha1. New commits:

5aa66f6I think mutate_initial works!

comment:19 Changed 7 months ago by git

  • Commit changed from 5aa66f6cac2c6ebd2f44e906e4f4bc8c30963f7a to 83ba551d6c9552d3199e50af006575db359f0a3f

Branch pushed to git repo; I updated commit sha1. New commits:

83ba551Fixed mutate_initial (again)

comment:20 Changed 7 months ago by gh-kelleye

  • Branch changed from u/drupel/master to u/gh-kelleye/master

Added some doctests.

Last edited 7 months ago by gh-kelleye (previous) (diff)

comment:21 Changed 7 months ago by gmoose05

  • Branch changed from u/gh-kelleye/master to u/gmoose05/master

comment:22 Changed 7 months ago by drupel

  • Branch changed from u/gmoose05/master to u/drupel/master

comment:23 Changed 7 months ago by git

  • Commit changed from 83ba551d6c9552d3199e50af006575db359f0a3f to d5f509ecbfc89082d9848c7f451c8624d0a7cd25

Branch pushed to git repo; I updated commit sha1. New commits:

d5f509eSmall aesthetic fix to mutate_initial

comment:24 Changed 7 months ago by gmoose05

  • Branch changed from u/drupel/master to u/gmoose05/master

comment:25 Changed 7 months ago by git

  • Commit changed from d5f509ecbfc89082d9848c7f451c8624d0a7cd25 to 7febc08cf41d5006e6f3fd3273779274f1a0cb8a

Branch pushed to git repo; I updated commit sha1. New commits:

7febc08Placeholder for formal vaariables if intermediate exchange coefficients Z are not specified

comment:26 Changed 7 months ago by git

  • Commit changed from 7febc08cf41d5006e6f3fd3273779274f1a0cb8a to 0d1920db34a531c102e9f5e13aa19a7af4adee53

Branch pushed to git repo; I updated commit sha1. New commits:

0d1920dFixed a few doctests

comment:27 Changed 7 months ago by gh-kelleye

  • Branch changed from u/gmoose05/master to u/gh-kelleye/master

comment:28 Changed 7 months ago by gmoose05

  • Branch changed from u/gh-kelleye/master to u/gmoose05/master

comment:29 Changed 7 months ago by drupel

  • Branch changed from u/gmoose05/master to u/drupel/master

comment:30 Changed 7 months ago by gmoose05

  • Branch changed from u/drupel/master to u/gmoose05/master

comment:31 Changed 7 months ago by git

  • Commit changed from 0d1920db34a531c102e9f5e13aa19a7af4adee53 to 7ef4532273916f2807bd576161519ae2525ab75a

Branch pushed to git repo; I updated commit sha1. New commits:

7ef4532Changed d and Z in ClusterAlgebra to d0 and Z0, and added methods accordingly

comment:32 Changed 7 months ago by git

  • Commit changed from 7ef4532273916f2807bd576161519ae2525ab75a to 2ec768e4fcc4256c6a8e71a22248b5b40dd11859

Branch pushed to git repo; I updated commit sha1. New commits:

8e067adChanged Z in ClusterAlgebra to Z0, and added methods accordingly
2ec768emerge

comment:33 Changed 7 months ago by git

  • Commit changed from 2ec768e4fcc4256c6a8e71a22248b5b40dd11859 to a1dd5ec502367fbcfdafca38c102558d41feab82

Branch pushed to git repo; I updated commit sha1. New commits:

a1dd5ecfixed bug

comment:34 Changed 7 months ago by git

  • Commit changed from a1dd5ec502367fbcfdafca38c102558d41feab82 to 8fa4c28802d20d6aa82bd3f1518a0708423d7402

Branch pushed to git repo; I updated commit sha1. New commits:

8fa4c28fixed bug

comment:35 Changed 7 months ago by drupel

  • Branch changed from u/gmoose05/master to u/drupel/master

comment:36 Changed 7 months ago by gmoose05

  • Branch changed from u/drupel/master to u/gmoose05/master

comment:37 Changed 7 months ago by drupel

  • Branch changed from u/gmoose05/master to u/drupel/master

comment:38 Changed 7 months ago by gmoose05

  • Branch changed from u/drupel/master to u/gmoose05/master

comment:39 Changed 7 months ago by drupel

  • Branch changed from u/gmoose05/master to u/drupel/master

comment:40 Changed 7 months ago by gmoose05

  • Branch changed from u/drupel/master to u/gmoose05/master

comment:41 Changed 7 months ago by drupel

  • Branch changed from u/gmoose05/master to u/drupel/master

comment:42 Changed 7 months ago by gmoose05

  • Branch changed from u/drupel/master to u/gmoose05/master

comment:43 Changed 7 months ago by gh-EBanaian

  • Branch changed from u/gmoose05/master to u/gh-EBanaian/master

comment:44 follow-up: Changed 7 months ago by chapoton

  • Commit changed from 8fa4c28802d20d6aa82bd3f1518a0708423d7402 to 2d80ea706e2830e4542b27f8a8cb9d5538f8afab
  • you should rather work with a public/your_favorite_branch_name branch, instead of switching all the time
  • reference [NR2016] is not defined anywhere

Last 10 new commits:

c37f9bbMerge branch 'u/gmoose05/master' of git://trac.sagemath.org/sage into t/26771/master
c1bcac5Edited __init__, cluster variables will not compute in the generalized setting because of coersion issues
a43f77cadded multiplication method for cluster algebra elements
8d98a90Merge branch 'u/drupel/master' of git://trac.sagemath.org/sage into t/26771/master
10f9fb9Merge branch 'u/gmoose05/master' of git://trac.sagemath.org/sage into t/26771/master
dc381d5Attempt fixing variables and coercision
10c71b3Eliminated nested Laurent polynomial rings
9d6757dFixted doctests, added more doctest, only 1 breaking doctest right now (involving sqrt(2) in exchange degree)
f5fcbc7Updated greedy element to take gen cluster algebras
2d80ea7Merge branch 'testingJuly11' into t/26771/master

comment:45 Changed 7 months ago by drupel

  • Branch changed from u/gh-EBanaian/master to u/drupel/master

comment:46 Changed 7 months ago by gmoose05

  • Commit changed from 2d80ea706e2830e4542b27f8a8cb9d5538f8afab to aa3e536cc60f9aecf6f8306da338681a318c6030
  • Keywords ima-coding-sprints sd99 added

New commits:

aa3e536Minor cleanup in greedy

comment:47 Changed 7 months ago by gmoose05

  • Keywords IMA coding sprints days99 added; ima-coding-sprints sd99 removed

comment:48 in reply to: ↑ 44 ; follow-up: Changed 7 months ago by gmoose05

Replying to chapoton:

  • you should rather work with a public/your_favorite_branch_name branch, instead of switching all the time

We are using the automated behavior of the git trac command. Does this command needed to be updated to make the default use "public" as opposed to "user_names", especially when multiple developers are collaborating?

Last edited 7 months ago by gmoose05 (previous) (diff)

comment:49 Changed 7 months ago by chapoton

Well, then forget about git trac and learn to use git. Much better to use git directly imho.

comment:50 Changed 7 months ago by gmoose05

  • Branch changed from u/drupel/master to u/gmoose05/master

comment:51 Changed 7 months ago by git

  • Commit changed from aa3e536cc60f9aecf6f8306da338681a318c6030 to 5dd29a55b8b8a9693b56a8dc5f94790f6df0cca6

Branch pushed to git repo; I updated commit sha1. New commits:

5dd29a5Fixed doctests, chose default ground ring to be QQ instead of ZZ to be consistent with Number Field cases

comment:52 Changed 7 months ago by git

  • Commit changed from 5dd29a55b8b8a9693b56a8dc5f94790f6df0cca6 to 63beddb87ba447efcc7f1ee775e3b7797e302403

Branch pushed to git repo; I updated commit sha1. New commits:

63beddbAdded one more doctest/example

comment:53 Changed 7 months ago by gh-EBanaian

  • Branch changed from u/gmoose05/master to u/gh-EBanaian/master

comment:54 Changed 7 months ago by git

  • Commit changed from 63beddb87ba447efcc7f1ee775e3b7797e302403 to f1c3b8adac19ad53784a7d02f9ad8e413ec6b1f8

Branch pushed to git repo; I updated commit sha1. New commits:

f1c3b8adoc tests passed

comment:55 Changed 7 months ago by git

  • Commit changed from f1c3b8adac19ad53784a7d02f9ad8e413ec6b1f8 to 59f9d7bc61fafc2b736a159c9ad8450fd80ae43a

Branch pushed to git repo; I updated commit sha1. New commits:

59f9d7bAdded Doctests to Greedy Element

comment:56 Changed 7 months ago by gh-kelleye

  • Branch changed from u/gh-EBanaian/master to u/gh-kelleye/master

Merged changes from ticket 28176.

Last edited 7 months ago by gh-kelleye (previous) (diff)

comment:57 Changed 7 months ago by gmoose05

  • Branch changed from u/gh-kelleye/master to u/gmoose05/master

comment:58 Changed 7 months ago by gh-kelleye

  • Branch changed from u/gmoose05/master to u/gh-kelleye/master

comment:59 Changed 7 months ago by gmoose05

  • Branch changed from u/gh-kelleye/master to u/gmoose05/master

comment:60 Changed 7 months ago by gh-kelleye

  • Branch changed from u/gmoose05/master to u/gh-kelleye/master

Merged with Sage version 8.9 beta4

Last edited 7 months ago by gh-kelleye (previous) (diff)

comment:61 Changed 7 months ago by git

  • Commit changed from 59f9d7bc61fafc2b736a159c9ad8450fd80ae43a to 6de458e3be646bfd23685bea481ab19fd47422bd

Branch pushed to git repo; I updated commit sha1. New commits:

0eaa1c4Added comments and doctests for changes related to sd_iter
6de458eCleaned up stray comments

comment:62 Changed 7 months ago by git

  • Commit changed from 6de458e3be646bfd23685bea481ab19fd47422bd to f40386e71ef103015db5bbfc4a2ac2798667e5db

Branch pushed to git repo; I updated commit sha1. New commits:

f40386eCleaning up comments and doctests. Added references.

comment:63 Changed 7 months ago by chapoton

doc still does not build, see comment:44

comment:64 Changed 7 months ago by git

  • Commit changed from f40386e71ef103015db5bbfc4a2ac2798667e5db to 4732d436daf2608cdf26c655c8c48373f4217b2c

Branch pushed to git repo; I updated commit sha1. New commits:

4732d43Revised initial comment and added reference

comment:65 Changed 7 months ago by gmoose05

  • Status changed from new to needs_review

comment:66 Changed 7 months ago by gmoose05

  • Branch changed from u/gh-kelleye/master to u/gmoose05/master

comment:67 in reply to: ↑ 48 Changed 7 months ago by embray

  • Commit changed from 4732d436daf2608cdf26c655c8c48373f4217b2c to 10d4bca98211f277a1bb9f9f1d05dfca3652c0d9

Replying to gmoose05:

Replying to chapoton:

  • you should rather work with a public/your_favorite_branch_name branch, instead of switching all the time

We are using the automated behavior of the git trac command. Does this command needed to be updated to make the default use "public" as opposed to "user_names", especially when multiple developers are collaborating?

The default behavior generally assumes one person pushing to a private branch. The solution here is to stop using the default bahavior.

Instead, please run something like:

git trac push --branch public/ticket-26771 26771

This will set the branch name for the ticket to public/ticket-26771 and subsequent pushes will continue to use that upstream branch, rather than constantly switching it between your private branches.

Locally your branch is still yours to work in. It's just when you push/pull that you will have to resolve conflicts, etc.


New commits:

10d4bcaFixed doctest coverage and removed extraneous imports

comment:68 Changed 7 months ago by gmoose05

I wasn't aware of that option with git trac push, that's what I was missing. I will use this in the future and if we need further edits for this ticket. Thanks!

comment:69 Changed 7 months ago by gmoose05

  • Authors changed from Esther Banaian, Elizabeth Kelley, Dylan Rupel to Esther Banaian, Elizabeth Kelley, Dylan Rupel, Gregg Musiker

comment:70 Changed 7 months ago by etn40ff

Dear All,

I would like to be the one giving the final green light to this ticket: it changes quite a lot of the implementation of ClusterAlgebra so I would prefer to make sure that things still works as expected. As you know, I am quite busy with my personal life at the moment so please allow me some extra time to process this.

comment:71 Changed 6 months ago by chapoton

  • Status changed from needs_review to needs_work

red branch, signaling a conflict with the latest beta release

comment:72 Changed 6 months ago by gh-kelleye

  • Branch changed from u/gmoose05/master to public/ticket-26771

comment:73 Changed 6 months ago by chapoton

  • Commit changed from 10d4bca98211f277a1bb9f9f1d05dfca3652c0d9 to 3ffc9e6c6abca7115f34b3eced6fb755167e518a
  • Status changed from needs_work to needs_review

so back to needs review, I guess ?


New commits:

3ffc9e6Fixed merge conflict in references

comment:74 Changed 5 months ago by chapoton

  • Status changed from needs_review to needs_work

red branch again

comment:75 Changed 5 months ago by git

  • Commit changed from 3ffc9e6c6abca7115f34b3eced6fb755167e518a to 4a523cc335bd1b0adc693df3d722b7a32f9d63a7

Branch pushed to git repo; I updated commit sha1. New commits:

4a523ccFixed yet another merge conflict in references

comment:76 Changed 5 months ago by chapoton

  • Status changed from needs_work to needs_review

so back to needs review again, I guess ?

Note: See TracTickets for help on using tickets.