Opened 9 years ago

Closed 9 years ago

#15444 closed defect (fixed)

Two algorithms for k-charge do not give same answer

Reported by: aschilling Owned by:
Priority: major Milestone: sage-6.1
Component: combinatorics Keywords: tableaux, charge
Cc: sage-combinat, zabrocki Merged in:
Authors: Anne Schilling Reviewers: Mike Zabrocki
Report Upstream: N/A Work issues:
Branch: public/combinat/k-charge-15444 (Commits, GitHub, GitLab) Commit: 8df647454982f5799a4267712551a78989f08992
Dependencies: Stopgaps:

Status badges

Description (last modified by aschilling)

Currently, the two implementations of k-charge do not give the same answer:

sage: T = WeakTableaux(4,[4,3,2,1],[2,2,2,2,1,1],representation='bounded')
sage: for t in T:
    print t.k_charge(), t.k_charge(algorithm='J')
9 10
10 10
8 8
9 9
10 10
8 9
11 11

Comparing against the expansion of Hall-Littlewood symmetric functions in terms of k-Schur functions, it seems that the I-implementation is correct

sage: Sym = SymmetricFunctions(QQ['t'])
sage: Qp = Sym.hall_littlewood().Qp()
sage: ks = Sym.kschur(4)
sage: ks(Qp[2,2,2,2,1,1])[Partition([4,3,2,1])]
t^11 + 2*t^10 + 2*t^9 + 2*t^8

Compared to the book pg. 84 the bug seems to be in the method _height_of_restricted_subword in

Change History (11)

comment:1 Changed 9 years ago by zabrocki

Proposition 3.15 on p. 84 of our book states that the k-charge with the two algorithms are equal. Am I correct to assume that since you opened a ticket that the error is in the algorithm and not in that proposition?

To clarify

sage: T = WeakTableau([[1, 1, 2, 3], [2, 4, 4], [3, 6], [5]],4,representation='bounded')
sage: T.k_charge()
sage: T.k_charge(algorithm='J')

comment:2 in reply to:  1 Changed 9 years ago by aschilling

Yes, I think the implementation that Avi and Nate did is not quite correct. If you look at the second standard subword of your example above, then the program computes the height of the restricted subword incorrectly for the letter r=3.

comment:3 Changed 9 years ago by aschilling

Authors: Anne Schilling
Branch: public/combinat/k-charge-15444
Commit: 8df647454982f5799a4267712551a78989f08992
Status: newneeds_review

New commits:

8df6474Fixed bug in k-charge implementation for J-algorithm

comment:4 Changed 9 years ago by aschilling

Description: modified (diff)

comment:5 in reply to:  4 Changed 9 years ago by aschilling

I ran the following code for k=3 and 4 and now the two implementations seem to agree:

sage: for n in range(10):
    for la in Partitions(n,max_part=k):
        for mu in Partitions(n,max_part=k):
            T = WeakTableaux(k,la,mu,representation='bounded')
            if not all(t.k_charge() == t.k_charge(algorithm="J") for t in T):
                print la,mu

comment:6 Changed 9 years ago by zabrocki

Status: needs_reviewpositive_review

Looks good to me. I tested it on much larger examples and everything seems to be correct now.

Thanks for fixing it.

comment:7 in reply to:  6 Changed 9 years ago by aschilling

Thank you for the swift review! Anne

comment:8 Changed 9 years ago by jdemeyer

Milestone: sage-5.13sage-6.0

comment:9 Changed 9 years ago by aschilling

Reviewers: Mike Zabrocki

comment:10 Changed 9 years ago by vbraun_spam

Milestone: sage-6.0sage-6.1

comment:11 Changed 9 years ago by vbraun

Resolution: fixed
Status: positive_reviewclosed
Note: See TracTickets for help on using tickets.