Just a smidge ana from there. No, a little kata now. Perfect!

Sum­mary: I am going to ask a ques­tion about what seems to be sim­ple dif­fer­en­tial geom­e­try. It may be just about lin­ear alge­bra. Me, I was a biol­o­gist for too long to remem­ber any of this, alas. But I sup­pose since I’m a stu­dent these days, I should point out that it’s not for home­work — it’s for an amus­ing project in genetic pro­gram­ming. But I really don’t have the math­e­mat­ics to answer it with any cer­tainty. So… any­body? help?

Say we have two points in two dimen­sions. Call them A and B. Together, A and B suf­fice to uniquely define a line, as long as they’re not coin­ci­dent. As an ordered pair, (A,B) can be used to define a half-​​space in the plane: we can just, for instance, take the half of the plane that lies counter-​​clockwise from the vec­tor con­nect­ing A to B. Pos­i­tive axes, and all that. The line pass­ing through AB is a hyper­plane of dimen­sion 1 lying in 2-​​space.

OK. Same drill in three-​​space. Three points A, B and C uniquely define a plane (which is itself 2-​​dimensional), as long as they’re not co-​​linear. We can take the ordered triple (A,B,C) and apply the right-​​hand rule to pick one side of the plane, and define a half-​​space.

You know where we’re going. Four dimen­sions. Four points uniquely define a 3D hyper­plane, as long as they’re not copla­nar (I sup­pose). That’s OK. Gen­er­ally, in n dimen­sions, n points will uniquely define an n–1 dimen­sional hyper­plane, as long as they’re lin­early inde­pen­dent. But. But.

Does the ordered tuple (A,B,C,D) suf­fice to denote a unique half-​​space? I can see how it might, and at the same time I can see how it might not. Because there’s no clear def­i­n­i­tion of the cross prod­uct in 4D, so… what’s the equiv­a­lent of the right-​​hand rule? The top-​​hand rule, which will point in the anawards direc­tion when you have your fore­fin­ger point­ing in the first direc­tion, your mid­dle fin­ger in the sec­ond direc­tion, and your ring fin­ger point­ing in the third direction?

Ow. Oh, cool! My top thumb… like, dis­ap­peared. And here it is back again. Hunh.

Any­way.

Really, all I want to be able to do is come up with an unam­bigu­ous method for defin­ing a spe­cific half-​​space in n dimen­sions using n lin­early inde­pen­dent points, (x1,x2,x3…xn). And I want the ordered tuple to be the only cue we use. Does it suffice?

If so, is it just the direc­tion orthog­o­nal to the all rays (x1,x2), (x2,x3), (x3,x4) … and (xn-​​1,xn)?

This entry was posted in Uncategorized by Tozier. Bookmark the permalink.

7 thoughts on “Just a smidge ana from there. No, a little kata now. Perfect!

  1. I guess you are look­ing for the wedge prod­uct
    A /​\ B /​\ C /​\ .… where A, B, C, … are the base vec­tors.
    In index nota­tion:
    V_​i = epsilon_{iabc..} A^a B^b C^c …

  2. One more, the for­mula assumes sum­ma­tion over same indices and in Euclid­ean space you do not need to dis­tin­guish covari­ant and con­travari­ant indices as I did.

    By the way, I assume you were talk­ing about flat Euclid­ean space, since in gen­eral your prob­lem has no solu­tion. E.g. on the torus a (closed) line does not always divide the man­i­fold in two halfs.

  3. To elab­o­rate:

    The wedge prod­uct v1 ^ v2 ^ v3 ^ … ^ vn defines the n-​​form (roughly, n-​​plane) “con­tain­ing” the vec­tors v1…vn. In three dimen­sions, for instance, the wedge prod­uct v ^ w of two vec­tors v and w defines the 2-​​plane con­tain­ing them both. The nor­mal vec­tor to that plane is the cross prod­uct v x w. In 4-​​space, v ^ w defines a 2-​​plane again, but there is no “nor­mal vec­tor” to a plane in 4-​​space; this is why there’s no cross product.

    Now, if you have _​four_​ points in 4-​​space, you have three vec­tors u, v, w, and u ^ v ^ w is a 3-​​plane, which has a nor­mal vec­tor. Five points in 5-​​space gives four vec­tors which wedge into a 4-​​plane, with a nor­mal vec­tor. We can use these nor­mal vec­tors to tell which side of the plane a given point is on, just as in 2 and 3 dimen­sions, and thus we par­ti­tion the space into two halves. This only works, though, as you point out, if the points are not copla­nar — if you try to wedge a vec­tor with a sub­plane it’s already in, the prod­uct is zero.

    And, as Wolf­gang points out, you can’t par­ti­tion a gen­eral man­i­fold in this way; it works in Euclid­ean n-​​space, though.

  4. That seems like it’s the ticket!

    The scoop is this: I’m fram­ing an evo­lu­tion­ary search through the set of lin­ear pro­gram­ming algo­rithms, and for generality’s sake am think­ing of start­ing from a toolkit of sim­ple (flat Euclid­ean) geo­met­ric oper­a­tions, cou­pled with a rep­re­sen­ta­tion of hyper­planes and half-​​spaces (lin­ear inequal­ity con­straints) as n–point tuples.

    So now, using the wedge prod­uct, we can describe a set of m inequal­ity con­straints on n vari­ables as a list of m n–tuples of n–dimen­sional points. (Yes, there are very many such tuples which can define a given half-​​space. That’s one of the fun parts about this rep­re­sen­ta­tion.) And the objec­tive func­tion as an n–dimen­sional vector.

    The rest of the prepa­ra­tion is set­ting up some sim­ple geo­met­ric func­tions for our evolv­ing solvers to invoke: short­est dis­tances, norms, inter­sec­tions, vec­tor addi­tion and sub­trac­tion, cross prod­ucts. An iden­tity func­tion, which will com­pare two tuples with dif­fer­ent numer­i­cal val­ues rep­re­sent the same half-​​space and see if they’re the same onject. A few “main­te­nance” oper­a­tors that will rearrange the numer­i­cal rep­re­sen­ta­tion of an object in what might be more “tidy” form (expand­ing points away from zero and shrink­ing them down from infin­ity; cen­ter­ing them; that sort of thing).

    The evolv­ing algo­rithms will be able to per­form oper­a­tions in sev­eral dimen­sions, using a trans­par­ent mech­a­nism. They have access to a stack con­tain­ing, say, points of dif­fer­ent car­di­nal­ity. When they try to AddPoint, they’ll pop the top point off the stack, deter­mine its dimen­sion, and then pull the next point of that same dimen­sion; add the two, and push the result back onto the stack. Lack­ing a sec­ond point, the oper­a­tion fails grace­fully, replac­ing the orig­i­nal point to the top of the stack.

    What you’ve done, I think, allows me to work with these half-​​spaces as eas­ily. So a hypo­thet­i­cal PointInHalfSpace? func­tion might pop the top point, and the top­most half-​​space of that car­di­nal­ity, and push a boolean that states whether the point lies within the half-​​space.

    So — thanks again!

  5. I’d add just one point to what peo­ple have said above.
    What you *really* want in a sit­u­a­tion like this is what’s called an ori­en­ta­tion. An ori­en­ta­tion is, in the most hand-​​waving terms, a rule that allows one to move from n-​​dimensions to n-​​1 dimen­sions in a con­sis­tent fash­ion. When, in the exam­ples you give, you talk about “clock-​​wise” or “the right-​​hand-​​rule” you are implic­itly using an ori­en­ta­tion.
    A vol­ume form, as described by poster #4, implic­itly defines an ori­en­ta­tion, which is why what he is sug­gest­ing works.

    If you want to be more for­mal about this, the buzz­word you want to look for in a dif­fer­en­tial geom­e­try book is the hodge dual (rep­re­sented by the * oper­a­tor) which per­forms exactly the oper­a­tion you are describing.

  6. Oy vey. Exte­rior alge­bra and Hodge dual­ity is all nice and good. But this just boils down to the deter­mi­nant. You want those vec­tors X such that the matrix (B-A,C-A,D-A,X-A) has, say, non­neg­a­tive determinant.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>