cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - When posting, your subject should be specific and summarize your question. Here are some additional tips on asking a great question. X

Crude Squareness Parameter for optimisation

Jbryant61
4-Participant

Crude Squareness Parameter for optimisation

Hi, I have a square versus triangle problem that I would appreciate help with. Please see attached.

Thanks for any help.

Jason

ACCEPTED SOLUTION

Accepted Solutions
StuartBruff
23-Emerald III
(To:Jbryant61)

Jason Bryant wrote:

Hi Richard, the CC seems like a good method but Im guessing its quite involved. For the maximum seperation, I dont follow how this would tell you if its more squar elike or triangle like.

It may be that, for a simple approximation, you are actually looking for two (binary) measures, which you can then combine with an 'and' conjunction. The extended version of my original worksheet calculates the standard deviation of the angles of each corner (eliminates too shalllow an angle) and the stdev of the side lengths (to avoid too trapezoid a shape). Pick some threshold values to choose 'squareish'.

Stuart

View solution in original post

30 REPLIES 30
StuartBruff
23-Emerald III
(To:Jbryant61)

There's probably some nice method out there just for this problem, but I'm too lazy to look.

So I'd be tempted to look at the differences between the angles between successive points. A more triangular pattern should have a pair of more open angles.

Stuart

RichardJ
19-Tanzanite
(To:Jbryant61)

Do you really need the "squareness"? If each of your points really represents cluster of points, and you need to be able to distinguish between them, all you would need is maximum separation.

If squareness is important, calculate the correlation coefficient for all possible combinations of three points. A high CC indicates the three points are close to a straight line, in which case your shape is close to a triangle.

Jbryant61
4-Participant
(To:RichardJ)

Hi Richard, the CC seems like a good method but Im guessing its quite involved. For the maximum seperation, I dont follow how this would tell you if its more squar elike or triangle like.

Thanks

Jason

RichardJ
19-Tanzanite
(To:Jbryant61)

Hi Richard, the CC seems like a good method but Im guessing its quite involved.

Not really.

For the maximum seperation, I dont follow how this would tell you if its more squar elike or triangle like.

It wouldn't, but it's not clear to me why you need to determine that. If you are trying to distinguish the four fluorescent species then all you need is maximum separation between the points. Well, not quite, because each point is not really a point. If you were to measure multiple samples each point would actually be cluster of points, and what you need is to minimize the overlap between the clusters. If the clusters are small that just means getting the points far enough apart that there is effectively no overlap. If the clusters are large enough that complete separation is not possible then to get the best separation you would need to consider not only the distance between the clusters, but also the size of the clusters.

But maybe I misunderstand the nature of the problem (quite likely, given the brief description!)

StuartBruff
23-Emerald III
(To:Jbryant61)

Jason Bryant wrote:

Hi Richard, the CC seems like a good method but Im guessing its quite involved. For the maximum seperation, I dont follow how this would tell you if its more squar elike or triangle like.

It may be that, for a simple approximation, you are actually looking for two (binary) measures, which you can then combine with an 'and' conjunction. The extended version of my original worksheet calculates the standard deviation of the angles of each corner (eliminates too shalllow an angle) and the stdev of the side lengths (to avoid too trapezoid a shape). Pick some threshold values to choose 'squareish'.

Stuart

Jbryant61
4-Participant
(To:StuartBruff)

Hi Stuart. Could I ask for help regarding your standard deviation of angles method. Its great btw!

If now P1 & P2 are functions of a variable (v1), and P3 & P4 are functions of a second variable (v2), how would I incorporate this into the stdev calculation. My aim would be then to optimise the figure of merit (=stdev of angle) which is now a fucntion of v1 & v2 to deliver the minimum FOM.

Thanks

Jason

StuartBruff
23-Emerald III
(To:Jbryant61)

Do you mean something like the attached, Jason?

Stuart

Jbryant61
4-Participant
(To:StuartBruff)

Perfect!

Thanks Stuart

Jason

Jbryant61
4-Participant
(To:Jbryant61)

Theres one more thing I just cant work out. In your "Sides" function, you calculate the distance of each point from the adjacent point. I would like to create another function that has the input arguments P again but now calculates the minimum distance of any of the 3 other points. Then the net result being the actual minimum distance between any of the points. Im going to see how this optimises.

Thank

Jason

StuartBruff
23-Emerald III
(To:Jbryant61)

Jason Bryant wrote:

Theres one more thing I just cant work out. In your "Sides" function, you calculate the distance of each point from the adjacent point. I would like to create another function that has the input arguments P again but now calculates the minimum distance of any of the 3 other points. Then the net result being the actual minimum distance between any of the points. Im going to see how this optimises.

I've put a function that returns the distance between a point and its nearest neighbour, Jason. However, I suspect that you might be better off also trying to minimize the differences in distance ... have a look at how the function has minimized the distance in the last example.

Stuart

Jbryant61
4-Participant
(To:StuartBruff)

Thankyou again Stuart - thats great.

J

StuartBruff
23-Emerald III
(To:Jbryant61)

No worries, Jason.

Stuart

Jbryant61
4-Participant
(To:StuartBruff)

Is it not possible to have the Minimize function in a condition statement depending on what the user choices like the attached

I want to explore various ideas (1: sigma of angles, 2: sigma of sides or 3: just the minimum distance) and optimise depending on whats chosen. The problem is, that the last one of these requires a maximize rather than minimise so I can tus ea generic minimize function

BTW, the sheet wont work, but it shows the syntax.

Thanks

Jason

StuartBruff
23-Emerald III
(To:Jbryant61)

Unfortunately, Jason, I haven't had time (or access to M14 or M15) to look at your sheet, but in principle it should be possible to choose a function. My only concern would be static unit checking taking a dislike to something or other and preventing you using certain functions.

Stuart

RichardJ
19-Tanzanite
(To:Jbryant61)

I can't test it because most of your variables are not defined, but try defining three functions findMin1, findMin2, and findMin3. Then call one of those functions using the "if" block. That should work.

Jbryant61
4-Participant
(To:RichardJ)

Hi, does the attached help. It seems I cant have the option to select whether to use Minimize or Maximise depending on the user input.

RichardJ
19-Tanzanite
(To:Jbryant61)

What you are doing should in fact work. You had two problems that stopped it from doing so. One is a syntax error: some extra brackets that shouldn't be there. The other is that when the worksheet is opened no button is selected, so F1 is zero. Your if statement does not take into account the case when F1=0 though, so it fails. I added some radio buttons that have a default selection when the worksheet is opened, which fixes that problem.

Jbryant61
4-Participant
(To:RichardJ)

Hi Richard. Thanks for pointing out my errors. Im still not convinced its working. When the 3rd selection is chosen - so the FOM needs to be maximised, it still actually seems to be minimising. Its almost as if the FOM function logic is not working. If at the end you compare the default (FOM(P1)) to the optimised FOM(POpt) its actually smaller.

RichardJ
19-Tanzanite
(To:Jbryant61)

Sorry. An error in my radio buttons.

Jbryant61
4-Participant
(To:RichardJ)

MMMM. I I think its still trying to Minimize when F3 is selected rather than maximize. Do you see this.

sorry If Im wasting your time.

Jason

Jbryant61
4-Participant
(To:Jbryant61)

It seems like its always doing the first line in the Optimise function i.e. the condition for F1=1 whatever the value of F1?

RichardJ
19-Tanzanite
(To:Jbryant61)

Yeah, what a pain. It's a quirk of maximize and minimize which do not always behave the same way other functions do (possibly because they are functionals). An extra level of indirection is required.

Jbryant61
4-Participant
(To:RichardJ)

Great, thanks a lot.

Jason

Jbryant61
4-Participant
(To:RichardJ)

AHHHHHH. Just when I though this was complete - I have stumbled across another anomaly with the mixed use of minimize and maximize.

If you put a condition in, when the Maximise function is called via Func 2 - it ignores the constraint:

I introduce the constraint using

Given

v1>1.5

It does work when the minimize function is called tho via Func1!

It appears that the Given followed by the condition only applies to the 1st of the functions Func1 in this case and not the Func2. If I swap these around then it does work with Func2 and not Func1. hmmmmmm?????

Jason

RichardJ
19-Tanzanite
(To:Jbryant61)

The keyword "Given" starts a solve block. The function definition for Func1 includes the Minimize function, and therefore terminates the solve block. If you want constraints to apply to the Func2 definition then you need to start another solve block (so add a Given and v1>1.5 immediately before the definition of Func2) .

Jbryant61
4-Participant
(To:RichardJ)

Hi Richard, yes I had worked this out. My real worksheet has a set of complicate constraints and although it a pain to have to dublicate and not elegant, at least it works.

Thanks for all your input.

Jason

Raiko
17-Peridot
(To:Jbryant61)

Hello Jason,

without providing some code I suggest that you check for parallelity within the shape. E.g. connect the two highest points by a straight line (the two lowest likewise) and check whether the angle between the two lines is less than a given threshold.

A triangle should have less parallels than a rectangle 😉

Raiko

Jbryant61
4-Participant
(To:Jbryant61)

Hi guys, thanks for your help, I like all 3 ideas provided

1: STANDARD DEVIATION OF THE ANGLES

2: CORRELATION COEFFICIENT FOR 3 POINTS

3: PARALLEL LINES

After a quick play, it seems the standard deviation is quite sensitive. So (sorry Richard and Raiko) - I will have to give the "correct answer" to Stuart. I will flag as helpful answers to you both, although all 3 of you have given me the correct answer. Thanks again - extremely useful

Jason

LouP
12-Amethyst
(To:Jbryant61)

Better later than never?

Here are a few other intuitive (to me) measures that may also be helpful. The points in order RBGP (red, blue, green.purple) form a simple polygon (no crossed lines). Assuming this, or an appropriate reordering:

1. Area of the quadrilateral. There's a 2:1 difference between the trangle and the square.

2. Maximum size of the four interior angles; close to 90deg => square, close to 180deg => traingle.

3. Ratio of the lengths of the two diagonals ( I think not as robust as 1 and 2). Same ~2:1 for triangle and square, assuming range of possible positions limited to approx. variations is as shown.

Lou

Announcements

Top Tags