120 karma · joined April 22, 2020
Since then I have been dreaming of using it to actually power puzzle software, where a single logic program could be used for both puzzle generation and validation. But that's not even the only "power couple" I can think of with respect to clingo/ASP integration. There are a number of hard problems that benefit from the declarative approach and could leverage the power and speed of a solver like clingo. And with libclingo this is now a feasible option to transform your problem into an ASP program, call clingo, then transform the answer set into your solution.
You are right about it being more than just a "modeling language to solve combinatorial problems", I agree that description sells it a bit short. As you pointed out, it is well suited for problems involving non-monotonic reasoning and uncertainty. You can encode reasoning that is more reality-hardened, with logical rules to deal with imperfect information.
#const d=3.
#const n=d*d.
1 { s(X,Y,1..n) } 1 :- X=1..n, Y=1..n.
% Achieved: A value is chosen for each cell
X1=X2 :- s(X1,Y,N), s(X2,Y,N).
Y1=Y2 :- s(X,Y1,N), s(X,Y2,N).
% Achieved: No value is duplicated for any given row or column
r(X,Y,Z) :- X=1..n, Y=1..n, Z=((X-1)/d)*d+((Y-1)/d)+1.
(X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2)=0 :- s(X1,Y1,N), s(X2,Y2,N), r(X1,Y1,Z), r(X2,Y2,Z).
% Achieved: No value is duplicated within a d*d region
#show s/3.
The program above can be used to generate completed puzzles from scratch, or it can be combined with an input file containing an incomplete puzzle to generate any or all valid solutions. Due to the semantics of ASP, additional constraints can be appended to the program to support Sudoku variants without modifying the existing lines.8c29152333c388888888961e813457759ca87a8b54078779f8cbdefedf6401d2
You picture an infinite and essentially captivated dimension.
a8888ff4ddb3e7c0c38d30a8b4184f78d85888806f67ab73ca64c5ad51cae6b8
On that note, TFA claims that the introduction of LAMBDA finally makes Excel Turing complete, unlike the kind of Turing machine simulators the stick figure is referring to in the XKCD comic...
> (In contrast, Felienne Hermans’s lovely blog post about writing a Turing machine in Excel doesn’t, strictly speaking, establish Turing completeness because it uses successive rows for successive states, so the number of steps is limited by the number of rows.)
Edit: I should clarify, I think the issue stems from DNS being a potential attack vector itself. You can't blindly trust what DNS tells you. This is precisely the problem that certificate chains (issued by a trusted third party) purport to resolve-- one of trust.
[0] https://devkitpro.org/wiki/Getting_Started [1] https://www.3dbrew.org/wiki/Homebrew_Applications#Game_Engin...
hash -d hello=~/Documents
~hello/world
The shortened names also show up in your PROMPT if it is using %~ to display cwd.- The new OS prevents the calculators from being downgraded
- The OS prevents running Asm/C programs, only Basic (and on some editions Python) programs are allowed
- Applications can still be installed if signed by approved TI vendors
Sounds like the TI homebrew community is about to get splintered. You'll have the jailbreakers fighting for code execution, but this could easily end up a small underground operation mirroring other jailbreak efforts. It could become too much of a hassle to get asm programs back (custom OS?), if so most people will accept the limitations and move on. At least there's still Basic and Python, if nothing else.
[1] https://www.cemetech.net/news/2020/5/949/_/ti-removes-asmc-p...
It is worth mentioning that officially Liero has been recreated and is an open source project. So the details of the physics engine are now public. The code for v1.36 is a modern rewrite of v1.33, of which the source code has been lost. See https://liero.be/ for more history.
That said, if anyone is interested in tweaking WebLiero mods and is not afraid to get their hands dirty, I wrote a (very rudimentary) program to convert .wlsprt to a folder of indexed-color PNG files and vice-versa[1]. You'll probably also want a copy of the "official" mods to use as a reference[2].
At the risk of counting chickens before they hatch, I am actually in the process of writing a mod editor in the spirit of LieroKit/LieroM8 that would smooth some of the rough edges of modding this game. I'm calling it WebLieroKit, unfortunately due to the timing of this post making the front page I cannot provide a working demo but I felt it was worth mentioning while there are eyeballs around.
[1] https://phazon.xyz/files/liero/wltools.tar.gz [2] https://phazon.xyz/files/liero/mods.tar.gz
[1] https://blog.phazon.xyz/answer-set-programming/2020/04/22/mu...
The first version of my analysis program would most likely have been a valid Prolog program, and furthermore the program was completely positive (contained no negation). After several weeks of rewrites, I ended up with a much smaller program that also took advantage of ASP "choice" and "optimization" rules. Much of the complexity was reduced by one fundamental improvement in the representation of internal facts and adjusting the rules to accommodate. In hindsight, the original version used a rather foolish approach, but like many things it took some effort to realize why and how to do better.
This process of rewriting and incremental improvement (and initially struggling in a less-familiar programming paradigm) gave me a great appreciation for logic systems, and also a desire to use them more often. There is something very beautiful in reducing a problem into logical relationships, and instead of focusing on algorithms just focusing on the problem space and how different pieces interrelate. It does take practice and experimentation to produce an elegant solution to a problem, but with experience it gets easier. I have no doubt the author of this article could make it feasible to discover chords and tunings as he describes in the Future Work section. Though I would recommend starting over with this goal in mind; even a naive but viable solution might reveal some property of the system that would transfer over to the original program and increase its versatility.