[LRUG] Abstract algebra slides

Matthew Willson matthew at playlouder.com
Thu Jul 9 08:07:30 PDT 2009


This was interesting, thanks!

Some comments from another ex-math-dude that might clarify or confuse:

There may be some confusion, language-wise, between the programming  
concept of a vector (which is just a data structure and doesn't  
necessarily come with any algebraic structure to speak of,  
mathematicians might just call them tuples), and the mathematical  
notion of a vector space (which requires quite a rich algebraic  
structure but doesn't imply any one particular data structure  
representation for the vectors).

Might be worth breaking down some situations where a simpler  
mathematical structure than a vector space might be enough to express  
what you're doing, just in case anyone gets a little TOO eager to spot  
vector spaces everywhere :) - here goes:

* If the scalars are actually limited to just integers (eg numbers of  
pints of beer, presuming halves are out of the question :), then it's  
actually not a full-on Vector Space, just a Module ( http://en.wikipedia.org/wiki/Module_%28mathematics%29 
  ). Because the scalars are just a Ring not a Field.

* If the scalar multiplication operation isn't defined, doesn't obey  
the relevant axioms, or isn't being taken advantage of, it's really  
just an Abelian Group (most likely a direct product of abelian groups,  
in fact, if the addition is being done component-wise on tuples of  
values)

* Furthermore if the commutativity/associativity/inverses axioms for  
the vector addition operation don't hold (or aren't being taken  
advantage of), it's not even that, it's just a set with a binary  
operation. (Probably just the idea of applying a binary function  
component-wise to pairs of tuples) - which doesn't require any special  
algebraic structure.)

(Actually there's some other structures inbetween 'abelian group' and  
'just a set with a binary operation', eg semigroups, monoids etc.)


One other thing is that the 'vector division' operation you have in  
the vector space interface seems a little odd to me (it's not part of  
the standard structure of a vector space structure, for one, but also  
why offer vector division but not vector multiplication?).

Also the ordering stuff isn't part of the standard vector space  
structure, but part of a richer structure. eg could be a http://en.wikipedia.org/wiki/Ordered_vector_space 
, although that comes with some extra axioms requiring the order  
structure to be compatible with vector space addition and scalar  
multiplication, so wouldn't work for the lexicographic ordering.

Going richer still if anyone's interested, there's Normed Vector  
Spaces http://en.wikipedia.org/wiki/Normed_vector_space ) which are  
vector spaces that come with a sense of the 'length' of a vector  
(hence you can order the space by length if you want), and taking it  
even further, Inner Product Spaces, which comes with a notion of the  
angle between two vectors.

Then even richer still you get into banach and hilbert spaces, popular  
with engineers and physicists...

Fun times.

-Matt


On 9 Jul 2009, at 10:25, Tom Stuart wrote:

> Hi LRUG,
>
> Thanks for all the Hoegaardens. How did you know?
>
> The slides for the talk I gave last night are available at http://experthuman.com/files/do-mix-your-drinks.pdf 
> .
>
> Cheers,
> -Tom
> _______________________________________________
> Chat mailing list
> Chat at lists.lrug.org
> http://lists.lrug.org/listinfo.cgi/chat-lrug.org




More information about the Chat mailing list