I've been trying to build my own C-language program that would replicate the Mexican Method. I have tried to understand the various posts and spreadsheets that have been shared, and still, 3 years later, I have yet to understand enough to re-state the method using statements of method, incorporating equations and formulas that reflect the iterative process involved.
So ... this week, I've decided to "engage" Google AI to assist.
I've also decided that I will make one final attempt at learning Prolog.
Given those two decisions, here is what was offered to me, but it has not produced the degree of optimization that has been reported and posted on the Geodesic Help Group mailing list.
If someone else is more adept at Prolog, and can get the logic right, I think it would help the group by offering a tool that can be extrapolated to higher frequencies while still achieving the optimization desired.
From the study of the various coloured images posted to the Group, it is clear that optimization must be performed using uniform/symmetrical adjustments over various "triangulated" vertex patterns. If such patterns could be identified in advance, and the method for defining the pattern subsets that are to be simultaneously adjusted, the result could potentially offer the long-desired tool for generalization.
With that preamble, I offer the GNU Prolog source and the session log for the run.
Comments and feedback are very much welcome, but do keep in mind that I am very much a novice at Prolog.
Also note that the result is not resolving with the desired solution of strut count equal to frequency.
NOTE: The attached are released into the public domain, without restrictions of any kind.
Eric Marceau, Ottawa
--
--
You received this message because you are subscribed to the "Geodesic Help" Google Group
--
To unsubscribe from this group, send email to GeodesicHelp...@googlegroups.com
--
To post to this group, send email to geodes...@googlegroups.com
--
For more options, visit http://groups.google.com/group/geodesichelp?hl=en
---
You received this message because you are subscribed to the Google Groups "Geodesic Help Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to geodesichelp...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/geodesichelp/3a86a9fa-4d34-47ef-99c0-11e6f3bcce35%40gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/geodesichelp/CABWq%3Di5y%3DCDBrpkMMfoDQGO2XXqqJ9bTWS_38Lz85ndEe3baFw%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/geodesichelp/CAD-a3OgDbauH2xZd2EsRtBHvXrWfT2Aar1R5W%3DppmJJLc5j-kg%40mail.gmail.com.
I don't like spherical trig, but I am familiar with it and use it.
The only experience I have with "linear programming" is the solving of power 1 variables with coefficients solved simultaneously in the matrix form. I don't know how to "level up" to handling of power 2 variables using that method. Looking up the reference, there is mention of Jacobians, and I have no experience with those ... but if I find a good, clear reference with explicitly worked examples, I can definitely assimilate and apply the technique, seeing as it should all be just a matter of "math mechanics". 🙂
As a practicing engineer, I have never had occasion to use any of the "higher" math I learned for stress analysis and boundary value analysis, so, unfortunately, those memory cells are buried deep where I no longer have ready access to any indexes. 😳
The context for using macro-driven solvers in spreadsheets just never presented themselves for me where I would need to use those, so no experience. Again, not an issue if I can get a good reference. But for me, it would need to be worked in LibreOffice Calc.
As I said above, I have no issue diving in and learning, if necessary, but before I try to learn a tool, I want to learn the related algorithm and math, and would prefer to choose my own tool, which until this last posting based on Prolog, has always been C.
My latest attempt using C is attached, but I have not yet incorporated an algorithm for the optimization. The full set of files, along with the requisite Geany project file, are attached, all having the file prefix string
The intended next phase of this program's iteration would be to create two other complete sets of points by rotating the "array" of points around the centroid line thru the Origin, then create a start point for optimization by "averaging out" the non-edge "triple proximate points".
That was to be my next step, before I decided to take a stab with getting Google's "Artificial Dunce" to evolve a Prolog program based on all available information. You saw where that got me, namely, not far! :-(
At this point, I plan to re-focus on my C-program version.
_____________________________________________________
Regarding the Geogebra files, a tool for handling of the C-program output to create Geogebra files is also offered in the tar file:
_____________________________________________________
A parallel, but not fully related/integrated effort, is my attempt at creating an C-language API for 2D-/3D-matrix operations which avoid any pointer-related actions. That is also attached as a compressed tar file:
_____________________________________________________
Eric Marceau
To view this discussion visit https://groups.google.com/d/msgid/geodesichelp/CABWq%3Di6Ogz%2BZ9MyVpOcR%2BCfQhW0t12FxF%2B1SYFM7WD4BAASeeg%40mail.gmail.com.
I don't like spherical trig, but I am familiar with it and use it.
The only experience I have with "linear programming" is the solving of power 1 variables with coefficients solved simultaneously in the matrix form. I don't know how to "level up" to handling of power 2 variables using that method. Looking up the reference, there is mention of Jacobians, and I have no experience with those ... but if I find a good, clear reference with explicitly worked examples, I can definitely assimilate and apply the technique, seeing as it should all be just a matter of "math mechanics". 🙂
To view this discussion visit https://groups.google.com/d/msgid/geodesichelp/586f2ff9-82e3-4b26-a1ad-00a8066efc2b%40gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/geodesichelp/CABWq%3Di6vDCZRxHhjjQgfquzMVdNxjLZ1PZ7iSZoQCCB9x7KhOA%40mail.gmail.com.
Thank you for replying again, Bryan. Much appreciated!
I need to clean it up and make it more easy to follow as my spreadsheets are not documented and contain some problem specific stuff that makes them appear obfuscated.
That would be very much appreciated, and I am sure not just by myself! 🙂
Do you struggle with pointers?
I prefer all operations in a program to use a single approach to value assignment, by simple reference, and I do not appreciate the need to change "paradigms" depending on the function call. Keeping those straight, for me, is a pain best avoided to avoid pulling out my hair when trying to debug programs. 😳
I stuck with Pascal ...
On that, I agree. Never understood the attraction to C when Pascal was out there. Ada kind of introduced a blurring and dilution of focus, for what is essentially the same language, in my mind, creating a whole other set of issues which turned potential users away, but maybe Ada has evolved to the point that it could now supplant Pascal "with enthusiasm". 😕 If you are a regular user of Pascal, you would be in a better position to offer an opinion on that. I haven't touched Pascal in almost 30 years. What little I did with Pascal modules with UCSD Pascal seemed to suggest Ada being a natural successor to Pascal.
Perhaps Python could ...
I've done some minimal, but "complicated" work with Python, and what made it "a bridge too far" is the lack of clear delimiting characters for logical code segments. For me indentation has always been about making it clear to myself, as a programmer, things I wanted to stand out. I can't do that in Python without it being blurred by language requirements imposed by dictated indentation rules. I am forced to submit to those for the little I do with FreeCAD, but my full on-boarding with FreeCAD is severely hamstrung by this indentation "thing"! Every couple of months, I try to go back to it, but I haven't been able to get my brain paths to "become one with Python" to make it my chosen vehicle for CAD work in general, let alone Geodesics, which is why I was getting back into CAD, 20 years after leaving that world but now in retirement, to see what I could possibly contribute under the OSS paradigm that Linux has offered to us all. 🙂 That was why I had previously looked at the Frame3DD, to see how much I could do with that. I shared all I did with the Group back then. If I can't make some headway with Hector's Method, I will regretfully be forced to re-direct my mental energies and limited skills somewhere that I would find less satisfying.
As a complementary aside, regarding some of my prior attempts, I have implemented elements that could eventually be incorporated into a fully functional, potentially interactive program not requiring a professional CAD system to both generate and visualize basic geometry:
My last email shared what I did in regards to the bottom four. The prototypes for the first two have not been "segregated" the way I did for the Matrix operations functions. If there is enough interest, I can take some time to do that and share here as well.
Bryan, I very much look forward to seeing your cleaned up procedural document.
Thank you again.
Eric Marceau
To view this discussion visit https://groups.google.com/d/msgid/geodesichelp/CABWq%3Di6vDCZRxHhjjQgfquzMVdNxjLZ1PZ7iSZoQCCB9x7KhOA%40mail.gmail.com.
Thank you, Ashok. I didn't think it did, but I wasn't sure. 🙂
To view this discussion visit https://groups.google.com/d/msgid/geodesichelp/CAD-a3OjJjPMYnBtPaeocn-LXGJ6%2Bes6VJXWPfWij2PzieAohOg%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/geodesichelp/d1d3140c-76cc-404d-9332-a66699e89f61%40gmail.com.
Linear programming handles only variables with single power ie it has no mechanism to handle higher level variables.
To view this discussion visit https://groups.google.com/d/msgid/geodesichelp/CAD-a3OjJjPMYnBtPaeocn-LXGJ6%2Bes6VJXWPfWij2PzieAohOg%40mail.gmail.com.