Dear Soheli, On Tue, Mar 03, 2020 at 03:12:09PM -0800, Soheli Das wrote: > I'm trying to generate a function that produces King tableaux. My idea is > to first generate Semi-standard tableaux and then select the ones that obey > the conditions of a King tableaux. I'm thinking of the entries i and -i for > i=1,....,n as entries 1,....,2n. So, basically I want the rows to be weakly > increasing and the columns to be strictly increasing like 1<3<5<.....<2n-1. > The following is what I have so far, it simply generates semistandard > tableaux. > > def generate_kingTableaux(size,max_entry_val,to_generate): > ....: v=[ ] > ....: for k in range(to_generate): > ....: > v.append(SemistandardTableaux(size,max_entry=max_entry_val).list()) > ....: return v > > I want to implement a condition which is somewhat like: if v[i][1] < 2i-1 > then not a king tableaux; else i=i+1. > I'm not sure how to implement this in sage. I would really appreciate if > someone could guide/help me!
Disclaimer: I am not familiar with King tableaux. Iterators are a comfortable tool in such situations. The general structure for an iterator using a rejection method like yours would be: def kingTableaux(size,max_entry_val,to_generate): for k in range(to_generate): for t in SemistandardTableaux(size,max_entry=max_entry_val): # Check all the conditions t should satisfy to be a king tableau if / for ...: # not a king tableaux; move on to the next onoe continue # Now we know t is a king tableau yield t This would be used as: for t in kingTableaux(...): ... If performance matters, and if King tableaux form a small subset of semi standard tableaux, the next step would be to find a way to produce them directly without generating all semistandard tableaux. Possibly by induction. Or using a crystal structure on such tableaux (relevant? https://arxiv.org/abs/1910.04459). Maybe someone already has code for this. Hope this help. Cheers, Nicolas [1] https://doc.sagemath.org/html/en/thematic_tutorials/tutorial-comprehensions.html#defining-new-iterators -- Nicolas M. ThiƩry "Isil" <nthi...@users.sf.net> http://Nicolas.Thiery.name/ -- You received this message because you are subscribed to the Google Groups "sage-combinat-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-combinat-devel/20200304075548.GD3535%40mistral.