Pere Urbón Bayes wrote:
> El dj 22 de 02 del 2007 a les 08:15 -0500, en/na David Joyner va
> escriure:
>   
>> Hi Pere, good to hear from you again.
>>
>> 1. Nick Alexander's suggestions (e.g., coding theory over rings) are good 
>> ones.
>>
>> 2. Another problem is to write code to compute the automorphism group of
>> a linear code. It is surprisingly hard to write a fast algorithm to do
>> this, even in the case of binary linear codes. I think this is an important
>> problem though.
>>     
>
> This problem could be good, I don't know why but I like to work on hard
> problems ... Where could I find some documentation about it? Could you
> help me to start on it?
>   

1. Leon has several papers, referenced in the GUAVA manual
http://cadigweb.ew.usna.edu/%7Ewdj/gap/GUAVA/htm/chapBib.html,
which are hard to read but certainly detailed and relevant.
If you download guava 2.7 (not version 2.8 included in SAGE) from
http://cadigweb.ew.usna.edu/%7Ewdj/gap/GUAVA/ or from the GAP web page
you'll see Leon's program in the subdirectory guava2.7/src/leon. The
subdirectory
doc has a manual of Leon's "backtracking" programs written in C.
One direction to start is to read Leon's C code and re-write the entire
thing
(not just modify it and create a "derivative work").
There are several problems you'll have to solve
(a) Leon's code is poorly documented and hard to read; the manual is very
terse and provides little help in reading the code.
(b) It is old C code and many commands are now different, leading to
compiling
problems (a few people have emailed me their hacks to get the code
to compile - just email me if you have questions about this).
(c) Leon creates his own finite field arithmetic (for GF9(q), q<256 I think)
This must be replaced by SAGE's finite field structure.
(d) Leon's programs are very general and require a non-trivial knowledge
of combinatorics
(blocks, designs, etc) even to figure out what he is doing.

I hope I've made it clear that this would be very hard and probably
require at least a year
to finish, and more likely longer. I think this is an important problem
in open-source mathematical
software though. It has to be done in C or cleverly written SageX (about
which I know little, but there
are several experts on this email list).

2. I think at some point you will decide that you have to have a very
efficient method for
determining all the codewords of a given weight in a code. It is
important that this be as fast as
possible. I'm not convinced that the GAP code to do this is as efficient
as possible.
I think Leon's code has the ability to do this but I haven't figured out
the command.
If you decide not to pursue #1 above (and I wouldn't blame you) then
implementing
in C or SageX very efficient method for determining all the codewords of
a given weight in a code
would be very useful. If you can do this then by computing the matrix
automorphism of the matrix of
codewords of a given weight (GAP has a reasonably fast algorithm for
doing this I think)
you can sieve out the column permutations which can't belong to the
automorphism group.
This might also be a good place to start.

>   
>> 3. At http://cadigweb.ew.usna.edu/%7Ewdj/gap/GUAVA/guava2do.html
>> there is a list of projects for GUAVA, most or all of which are also
>> possible SAGE projects.
>>     
>
> Work on LDPC Codes could be another good idea .... Could I work on this
> two project for now with SAGE ... what do you think?
> very efficient method for 
>
> determining all the codewords of a given weight in a code.
> Could you help me to start?
>   

It is very easy to implement "bad" LDPC codes. By that I mean LDPC codes
with bad parameters or
poor error-correction ability. I have some experience in reading papers
on LDPC codes,
implementing a construction or two, and decoding algorithm or two, only
to find out that the codes are
terrible and the decoding algorithms are slow or only work in quirky
situations. Based on my
experience, the fact that Gallagher's famous MIT thesis from the 1960's
was completely
ignored for years doesn't surprise me in the least. The problem is that the
"good" LDPC codes tend to be rather long, which makes them difficult to
experiment with in GAP
or Python (which are far too slow to be of any use for investigating
them in most cases), or
hard to implement. I think writing Python/SAGE "wrappers" for Radford's
C code
http://www.cs.toronto.edu/~radford/ldpc.software.html  is potentially a
very useful project. Although
I haven't played with his program, is seems to be licensed under a
BSD-style license.
All I'm trying to say is that this is actually much harder than you
might think - you can't
just implement someone's cool construction and expect it to be useful. I
think wrapping Radford's
program would be a good start though and very useful.


>   
>> 4. Two projects which I'm working on are
>> (a) the zeta function of a linear code. There is an "experimental"
>> version in the current SAGE distribution (look in linear_code.py)
>> but I've completely rewritten it and no longer regard the code I have
>> as experimental. If and when I get time I'll submit a patch (not
>> until spring break at least).
>>     
>
> This sound interesting .....
>
>   
>> (b) A complete description of the genus 0 AG codes. I'm not sure if SAGE's
>> divisor classes even work in genus 0 so this may not be completed for
>> quite awhile.
>>     
>
>
> Thanks allot david!!!
>   

Good luck Pere and let me know if there is anything else I can do.

> Regards,
>
>   
>> If any of this sounds interesting, please let me know.
>>
>> - David
>>
>>     
>
>   


--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~----------~----~----~----~------~----~------~--~---

Reply via email to