Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

"Don't fear the pen. When in doubt, draw a pretty picture." -- Baker's Third Law of Design.


devel / comp.lang.prolog / Re: Autum Challenge, 42 is the Answer

SubjectAuthor
* Autum Challenge, 42 is the AnswerMarkus Triska
`* Autum Challenge, 42 is the AnswerMild Shock
 `* Autum Challenge, 42 is the AnswerMild Shock
  `* Autum Challenge, 42 is the AnswerMild Shock
   `* Autum Challenge, 42 is the AnswerMarkus Triska
    `* Autum Challenge, 42 is the AnswerMild Shock
     `- Autum Challenge, 42 is the AnswerMild Shock

1
Re: Autum Challenge, 42 is the Answer

<m2r0njgghs.fsf@logic.at>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=10071&group=comp.lang.prolog#10071

  copy link   Newsgroups: comp.lang.prolog
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!tncsrv06.tnetconsulting.net!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx34.iad.POSTED!not-for-mail
From: tri...@logic.at (Markus Triska)
Newsgroups: comp.lang.prolog
Subject: Re: Autum Challenge, 42 is the Answer
Organization: man
References: <f4ad7701-cae3-4513-8b8e-a483415c6ad8@googlegroups.com>
<977d5e9f-469f-4516-9260-26e917bbec2cn@googlegroups.com>
<142ae65f-61ad-403e-8450-caebfddf6d0an@googlegroups.com>
<4e9bf208-0882-4f63-b243-b434f0a1392cn@googlegroups.com>
<3a23c78d-d4a1-472a-a460-776a5ca7d3een@googlegroups.com>
<e945e9c8-e72f-41a2-bb06-473d275396c0n@googlegroups.com>
<030ed934-efa4-4a1e-96b4-96f9c5214a6en@googlegroups.com>
<db4b30f2-2c33-42f6-9630-2828418aa146n@googlegroups.com>
<868d4f75-c293-4929-83b7-e319f4dba451n@googlegroups.com>
Message-ID: <m2r0njgghs.fsf@logic.at>
User-Agent: Emacs/27.0.50
Cancel-Lock: sha1:Kd9siVC6xm5FiN2QXMJTL4p1vA8=
MIME-Version: 1.0
Content-Type: text/plain
Lines: 39
X-Complaints-To: abuse@blocknews.net
NNTP-Posting-Date: Thu, 31 Aug 2023 19:20:10 UTC
Date: Thu, 31 Aug 2023 21:26:55 +0200
X-Received-Bytes: 2406
 by: Markus Triska - Thu, 31 Aug 2023 19:26 UTC

Mostowski Collapse <bursejan@gmail.com> writes:

> /* Scryer Prolog CLP(Z) */
> ?- time(([X,Y,Z] ins 0..239, X^3+Y^3+9 #= Z^3, label([X,Y,Z]), fail; true)).
> % CPU time: 75.667s
> true.
>
With the newly release Scryer Prolog version 0.9.2, I now get:

?- time(([X,Y,Z] ins 0..239, X^3+Y^3+9 #= Z^3, label([X,Y,Z]), fail; true)).
% CPU time: 41.658s
true.

On my machine, that's within a factor of 6 of SWI. That's quite
comparable to many other applications when it comes to time performance:
At the current state of Scryer Prolog development, its performance tends
to be within an order of magnitude of SWI's.

One neat feature of the Scryer Prolog toplevel is that we can press "a"
to obtain *all* solutions, one after the other. In this case:

?- time(([X,Y,Z] ins 0..239, X^3+Y^3+9 #= Z^3, label([X,Y,Z]))).
% CPU time: 16.080s
X = 52, Y = 216, Z = 217
; % CPU time: 25.942s
X = 216, Y = 52, Z = 217
; % CPU time: 0.250s
false.

It's often nice to get the Prolog system to enumerate all solutions
automatically. The GNU Prolog toplevel also has this feature, and I
highly recommend adding it in system where it is not yet available.

All the best,
Markus

--
comp.lang.prolog FAQ: http://www.logic.at/prolog/faq/
The Power of Prolog: https://www.metalevel.at/prolog

Re: Autum Challenge, 42 is the Answer

<37516061-91b6-4129-8221-4bdb0fa59f42n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=10073&group=comp.lang.prolog#10073

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:622a:290:b0:403:da2f:a9c with SMTP id z16-20020a05622a029000b00403da2f0a9cmr116557qtw.4.1693594025374;
Fri, 01 Sep 2023 11:47:05 -0700 (PDT)
X-Received: by 2002:aa7:88c7:0:b0:68a:fed3:823b with SMTP id
k7-20020aa788c7000000b0068afed3823bmr1382520pff.6.1693594024988; Fri, 01 Sep
2023 11:47:04 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Fri, 1 Sep 2023 11:47:04 -0700 (PDT)
In-Reply-To: <m2r0njgghs.fsf@logic.at>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.50.239; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.50.239
References: <f4ad7701-cae3-4513-8b8e-a483415c6ad8@googlegroups.com>
<977d5e9f-469f-4516-9260-26e917bbec2cn@googlegroups.com> <142ae65f-61ad-403e-8450-caebfddf6d0an@googlegroups.com>
<4e9bf208-0882-4f63-b243-b434f0a1392cn@googlegroups.com> <3a23c78d-d4a1-472a-a460-776a5ca7d3een@googlegroups.com>
<e945e9c8-e72f-41a2-bb06-473d275396c0n@googlegroups.com> <030ed934-efa4-4a1e-96b4-96f9c5214a6en@googlegroups.com>
<db4b30f2-2c33-42f6-9630-2828418aa146n@googlegroups.com> <868d4f75-c293-4929-83b7-e319f4dba451n@googlegroups.com>
<m2r0njgghs.fsf@logic.at>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <37516061-91b6-4129-8221-4bdb0fa59f42n@googlegroups.com>
Subject: Re: Autum Challenge, 42 is the Answer
From: burse...@gmail.com (Mild Shock)
Injection-Date: Fri, 01 Sep 2023 18:47:05 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 4845
 by: Mild Shock - Fri, 1 Sep 2023 18:47 UTC

One motivation to look at the problem, and to look at the
easier problem with 9 instead 42, is to elaborate a completely
new CLP(FD) solver, that is based on Chinese Remainder Theorem.

Actually I have already a prototype working, the timing was
also already published around 12 months ago. My system was much
faster than SWI-Prolog, since SWI-Prolog is slow with smallints and (^)/2:

Mostowski Collapse schrieb am Dienstag, 20. September 2022 um 20:28:33 UTC+2:
> /* Jekejeke Prolog 1.5.4 */
> ?- modular([15,16], X, Y, Z).
> X = 216, Y = 52, Z = 217;
> X = 52, Y = 216, Z = 217;
> fail.
>
> ?- time((modular([15,16], X, Y, Z), fail; true)).
> % Threads 594 ms, GC 5 ms, Up 591 ms (Current 09/20/22 20:21:30)
> true.
https://groups.google.com/g/comp.lang.prolog/c/mjpxkE3xVYk/m/cn0FICAQAAAJ

So these 594 ms are 10x times faster than the 5.117 seconds from
SWI-Prolog using ordinary CLP(FD). And around 100x times faster than
the 41.658s from Scryer Prolog. But I didn't yet publish this new

CLP(FD) solver, maybe I did some blogging and also some code
went into comp.lang.prolog here, but its not currently some officially
released module somewhere. Its also a solver which isn't based on

attributed variables per se. It requires that the constraint store is
re-evaluated with different moduli, so I envision something totally
new, that drops attributed variables, but nevertheless has a constraint

store. Attributed variables have become less important. The dis-
advantage of not having attributed variables would be that the
constraints cannot be used on ordinary predicates. I have no solution

for the later problem yet, but the figures in the former testing show,
that the method can be much much faster than ordinary CLP(FD).

Markus Triska schrieb am Donnerstag, 31. August 2023 um 21:20:14 UTC+2:
> Mostowski Collapse <burs...@gmail.com> writes:
>
> > /* Scryer Prolog CLP(Z) */
> > ?- time(([X,Y,Z] ins 0..239, X^3+Y^3+9 #= Z^3, label([X,Y,Z]), fail; true)).
> > % CPU time: 75.667s
> > true.
> >
> With the newly release Scryer Prolog version 0.9.2, I now get:
> ?- time(([X,Y,Z] ins 0..239, X^3+Y^3+9 #= Z^3, label([X,Y,Z]), fail; true)).
> % CPU time: 41.658s
> true.
>
> On my machine, that's within a factor of 6 of SWI. That's quite
> comparable to many other applications when it comes to time performance:
> At the current state of Scryer Prolog development, its performance tends
> to be within an order of magnitude of SWI's.
>
> One neat feature of the Scryer Prolog toplevel is that we can press "a"
> to obtain *all* solutions, one after the other. In this case:
>
> ?- time(([X,Y,Z] ins 0..239, X^3+Y^3+9 #= Z^3, label([X,Y,Z]))).
> % CPU time: 16.080s
> X = 52, Y = 216, Z = 217
> ; % CPU time: 25.942s
> X = 216, Y = 52, Z = 217
> ; % CPU time: 0.250s
> false.
>
> It's often nice to get the Prolog system to enumerate all solutions
> automatically. The GNU Prolog toplevel also has this feature, and I
> highly recommend adding it in system where it is not yet available.
>
> All the best,
> Markus
>
> --
> comp.lang.prolog FAQ: http://www.logic.at/prolog/faq/
> The Power of Prolog: https://www.metalevel.at/prolog

Re: Autum Challenge, 42 is the Answer

<6c9c0d39-8658-47b8-8526-2fd11e08fc71n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=10075&group=comp.lang.prolog#10075

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:6214:a91:b0:649:afa4:5cae with SMTP id ev17-20020a0562140a9100b00649afa45caemr76485qvb.6.1693604334298;
Fri, 01 Sep 2023 14:38:54 -0700 (PDT)
X-Received: by 2002:a05:6a00:9a9:b0:68a:546d:596c with SMTP id
u41-20020a056a0009a900b0068a546d596cmr1504028pfg.5.1693604333792; Fri, 01 Sep
2023 14:38:53 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!3.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Fri, 1 Sep 2023 14:38:53 -0700 (PDT)
In-Reply-To: <37516061-91b6-4129-8221-4bdb0fa59f42n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.50.239; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.50.239
References: <f4ad7701-cae3-4513-8b8e-a483415c6ad8@googlegroups.com>
<977d5e9f-469f-4516-9260-26e917bbec2cn@googlegroups.com> <142ae65f-61ad-403e-8450-caebfddf6d0an@googlegroups.com>
<4e9bf208-0882-4f63-b243-b434f0a1392cn@googlegroups.com> <3a23c78d-d4a1-472a-a460-776a5ca7d3een@googlegroups.com>
<e945e9c8-e72f-41a2-bb06-473d275396c0n@googlegroups.com> <030ed934-efa4-4a1e-96b4-96f9c5214a6en@googlegroups.com>
<db4b30f2-2c33-42f6-9630-2828418aa146n@googlegroups.com> <868d4f75-c293-4929-83b7-e319f4dba451n@googlegroups.com>
<m2r0njgghs.fsf@logic.at> <37516061-91b6-4129-8221-4bdb0fa59f42n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <6c9c0d39-8658-47b8-8526-2fd11e08fc71n@googlegroups.com>
Subject: Re: Autum Challenge, 42 is the Answer
From: burse...@gmail.com (Mild Shock)
Injection-Date: Fri, 01 Sep 2023 21:38:54 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Mild Shock - Fri, 1 Sep 2023 21:38 UTC

Actually its not that dim, one could integrate the Chinese
Reminder Algorithm (CRA) strategy into a CLP(FD) constraint
solver via a labeling variant. The labeling would

include not only running through values inside the current
modulo M, i.e. choosing values in the range 0..M-1, but also
choosing different moduli M1, .., Mk. But the question is

whether one should do that. The problem is that the solution
is obtained by backtracking over all moduli. So when E is the
equation, then its basically a large conjunction:

E_M1, ..., E_Mk

Where each element of the conjunction produces some bits,
and these bits are then combined via CRA. Currently when
E_Mj is a predicate, the equation sits in this predicate,

and each element of the conjunctions runs instances of
the clauses of the predicate, thus has a copy of the equation
available. This copying of the equation makes me think

that attribute variables don't work. But alternatively one
could also table the results of each E_Mj, and later do the
CRA combination. My current solution is not like that,

but this could have more affinity to attributed variables.

Mild Shock schrieb am Freitag, 1. September 2023 um 20:47:06 UTC+2:
> One motivation to look at the problem, and to look at the
> easier problem with 9 instead 42, is to elaborate a completely
> new CLP(FD) solver, that is based on Chinese Remainder Theorem.
>
> Actually I have already a prototype working, the timing was
> also already published around 12 months ago. My system was much
> faster than SWI-Prolog, since SWI-Prolog is slow with smallints and (^)/2:
> Mostowski Collapse schrieb am Dienstag, 20. September 2022 um 20:28:33 UTC+2:
> > /* Jekejeke Prolog 1.5.4 */
> > ?- modular([15,16], X, Y, Z).
> > X = 216, Y = 52, Z = 217;
> > X = 52, Y = 216, Z = 217;
> > fail.
> >
> > ?- time((modular([15,16], X, Y, Z), fail; true)).
> > % Threads 594 ms, GC 5 ms, Up 591 ms (Current 09/20/22 20:21:30)
> > true.
> https://groups.google.com/g/comp.lang.prolog/c/mjpxkE3xVYk/m/cn0FICAQAAAJ
>
> So these 594 ms are 10x times faster than the 5.117 seconds from
> SWI-Prolog using ordinary CLP(FD). And around 100x times faster than
> the 41.658s from Scryer Prolog. But I didn't yet publish this new
>
> CLP(FD) solver, maybe I did some blogging and also some code
> went into comp.lang.prolog here, but its not currently some officially
> released module somewhere. Its also a solver which isn't based on
>
> attributed variables per se. It requires that the constraint store is
> re-evaluated with different moduli, so I envision something totally
> new, that drops attributed variables, but nevertheless has a constraint
>
> store. Attributed variables have become less important. The dis-
> advantage of not having attributed variables would be that the
> constraints cannot be used on ordinary predicates. I have no solution
>
> for the later problem yet, but the figures in the former testing show,
> that the method can be much much faster than ordinary CLP(FD).
> Markus Triska schrieb am Donnerstag, 31. August 2023 um 21:20:14 UTC+2:
> > Mostowski Collapse <burs...@gmail.com> writes:
> >
> > > /* Scryer Prolog CLP(Z) */
> > > ?- time(([X,Y,Z] ins 0..239, X^3+Y^3+9 #= Z^3, label([X,Y,Z]), fail; true)).
> > > % CPU time: 75.667s
> > > true.
> > >
> > With the newly release Scryer Prolog version 0.9.2, I now get:
> > ?- time(([X,Y,Z] ins 0..239, X^3+Y^3+9 #= Z^3, label([X,Y,Z]), fail; true)).
> > % CPU time: 41.658s
> > true.
> >
> > On my machine, that's within a factor of 6 of SWI. That's quite
> > comparable to many other applications when it comes to time performance:
> > At the current state of Scryer Prolog development, its performance tends
> > to be within an order of magnitude of SWI's.
> >
> > One neat feature of the Scryer Prolog toplevel is that we can press "a"
> > to obtain *all* solutions, one after the other. In this case:
> >
> > ?- time(([X,Y,Z] ins 0..239, X^3+Y^3+9 #= Z^3, label([X,Y,Z]))).
> > % CPU time: 16.080s
> > X = 52, Y = 216, Z = 217
> > ; % CPU time: 25.942s
> > X = 216, Y = 52, Z = 217
> > ; % CPU time: 0.250s
> > false.
> >
> > It's often nice to get the Prolog system to enumerate all solutions
> > automatically. The GNU Prolog toplevel also has this feature, and I
> > highly recommend adding it in system where it is not yet available.
> >
> > All the best,
> > Markus
> >
> > --
> > comp.lang.prolog FAQ: http://www.logic.at/prolog/faq/
> > The Power of Prolog: https://www.metalevel.at/prolog

Re: Autum Challenge, 42 is the Answer

<bdad9f24-5b6a-49a8-98f9-3c2dd3e20be1n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=10077&group=comp.lang.prolog#10077

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:622a:289:b0:412:288:8941 with SMTP id z9-20020a05622a028900b0041202888941mr228318qtw.6.1693827088745;
Mon, 04 Sep 2023 04:31:28 -0700 (PDT)
X-Received: by 2002:a05:6a00:3997:b0:68a:58e1:ebf5 with SMTP id
fi23-20020a056a00399700b0068a58e1ebf5mr4089225pfb.2.1693827088167; Mon, 04
Sep 2023 04:31:28 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Mon, 4 Sep 2023 04:31:27 -0700 (PDT)
In-Reply-To: <6c9c0d39-8658-47b8-8526-2fd11e08fc71n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.50.239; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.50.239
References: <f4ad7701-cae3-4513-8b8e-a483415c6ad8@googlegroups.com>
<977d5e9f-469f-4516-9260-26e917bbec2cn@googlegroups.com> <142ae65f-61ad-403e-8450-caebfddf6d0an@googlegroups.com>
<4e9bf208-0882-4f63-b243-b434f0a1392cn@googlegroups.com> <3a23c78d-d4a1-472a-a460-776a5ca7d3een@googlegroups.com>
<e945e9c8-e72f-41a2-bb06-473d275396c0n@googlegroups.com> <030ed934-efa4-4a1e-96b4-96f9c5214a6en@googlegroups.com>
<db4b30f2-2c33-42f6-9630-2828418aa146n@googlegroups.com> <868d4f75-c293-4929-83b7-e319f4dba451n@googlegroups.com>
<m2r0njgghs.fsf@logic.at> <37516061-91b6-4129-8221-4bdb0fa59f42n@googlegroups.com>
<6c9c0d39-8658-47b8-8526-2fd11e08fc71n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <bdad9f24-5b6a-49a8-98f9-3c2dd3e20be1n@googlegroups.com>
Subject: Re: Autum Challenge, 42 is the Answer
From: burse...@gmail.com (Mild Shock)
Injection-Date: Mon, 04 Sep 2023 11:31:28 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 2272
 by: Mild Shock - Mon, 4 Sep 2023 11:31 UTC

Whats the Scryer Performance of this Example?

/* GNU Prolog 1.5.0 */
?- between(1,200,N), length(L,N), nth_member(I,L,E), fail; true.
(94 ms) yes

/* SWI-Prolog 9.1.14 */
?- time((between(1,200,N), length(L,N), nth_member(I,L,E), fail; true)).
% 94,504,524 inferences, 4.766 CPU in 4.767 seconds (100% CPU, 19830457 Lips)
true.

That was measured on my machine,
and was a factor ca. 50x slower in SWI-Prolog.

Source Code:

nth_member(1, [M|_], M).
nth_member(N, [_|T], M) :-
N #> 1, N1 #= N - 1,
nth_member(N1, T, M).

Re: Autum Challenge, 42 is the Answer

<m2msy1n81k.fsf@logic.at>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=10078&group=comp.lang.prolog#10078

  copy link   Newsgroups: comp.lang.prolog
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx37.iad.POSTED!not-for-mail
From: tri...@logic.at (Markus Triska)
Newsgroups: comp.lang.prolog
Subject: Re: Autum Challenge, 42 is the Answer
Organization: man
References: <f4ad7701-cae3-4513-8b8e-a483415c6ad8@googlegroups.com>
<977d5e9f-469f-4516-9260-26e917bbec2cn@googlegroups.com>
<142ae65f-61ad-403e-8450-caebfddf6d0an@googlegroups.com>
<4e9bf208-0882-4f63-b243-b434f0a1392cn@googlegroups.com>
<3a23c78d-d4a1-472a-a460-776a5ca7d3een@googlegroups.com>
<e945e9c8-e72f-41a2-bb06-473d275396c0n@googlegroups.com>
<030ed934-efa4-4a1e-96b4-96f9c5214a6en@googlegroups.com>
<db4b30f2-2c33-42f6-9630-2828418aa146n@googlegroups.com>
<868d4f75-c293-4929-83b7-e319f4dba451n@googlegroups.com>
<m2r0njgghs.fsf@logic.at>
<37516061-91b6-4129-8221-4bdb0fa59f42n@googlegroups.com>
<6c9c0d39-8658-47b8-8526-2fd11e08fc71n@googlegroups.com>
<bdad9f24-5b6a-49a8-98f9-3c2dd3e20be1n@googlegroups.com>
Message-ID: <m2msy1n81k.fsf@logic.at>
User-Agent: Emacs/27.0.50
Cancel-Lock: sha1:OnWrWyJ65nG/joO5yQ712bce6Ho=
MIME-Version: 1.0
Content-Type: text/plain
Lines: 32
X-Complaints-To: abuse@blocknews.net
NNTP-Posting-Date: Mon, 04 Sep 2023 17:41:57 UTC
Date: Mon, 04 Sep 2023 19:48:55 +0200
X-Received-Bytes: 2241
 by: Markus Triska - Mon, 4 Sep 2023 17:48 UTC

Mild Shock <bursejan@gmail.com> writes:

> Whats the Scryer Performance of this Example?
>
> /* GNU Prolog 1.5.0 */
> ?- between(1,200,N), length(L,N), nth_member(I,L,E), fail; true.
> (94 ms) yes
>
> /* SWI-Prolog 9.1.14 */
> ?- time((between(1,200,N), length(L,N), nth_member(I,L,E), fail; true)).
> % 94,504,524 inferences, 4.766 CPU in 4.767 seconds (100% CPU, 19830457 Lips)
> true.

With Scryer Prolog 0.9.2 on my machine, I get:

?- time((between(1,200,N), length(L,N), nth_member(I,L,E), false; true)).
% CPU time: 84.182s
true.

On my machine, that's ca. 15 times slower than SWI 8.3.15, which is the
last SWI version I found installed on this machine. Newer versions may
well be faster! For best performance, I recommend to build Scryer Prolog
with the optional --release flag, i.e.:

$ cargo build --release

All the best,
Markus

--
comp.lang.prolog FAQ: http://www.logic.at/prolog/faq/
The Power of Prolog: https://www.metalevel.at/prolog

Re: Autum Challenge, 42 is the Answer

<11039c8a-8b50-47fb-b0e9-3f09d08d46fbn@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=10079&group=comp.lang.prolog#10079

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:ad4:5893:0:b0:63c:e9df:a46b with SMTP id dz19-20020ad45893000000b0063ce9dfa46bmr223564qvb.3.1693856777195;
Mon, 04 Sep 2023 12:46:17 -0700 (PDT)
X-Received: by 2002:a05:6a00:a0b:b0:68a:5acb:272b with SMTP id
p11-20020a056a000a0b00b0068a5acb272bmr4401574pfh.3.1693856776783; Mon, 04 Sep
2023 12:46:16 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Mon, 4 Sep 2023 12:46:16 -0700 (PDT)
In-Reply-To: <m2msy1n81k.fsf@logic.at>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.50.239; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.50.239
References: <f4ad7701-cae3-4513-8b8e-a483415c6ad8@googlegroups.com>
<977d5e9f-469f-4516-9260-26e917bbec2cn@googlegroups.com> <142ae65f-61ad-403e-8450-caebfddf6d0an@googlegroups.com>
<4e9bf208-0882-4f63-b243-b434f0a1392cn@googlegroups.com> <3a23c78d-d4a1-472a-a460-776a5ca7d3een@googlegroups.com>
<e945e9c8-e72f-41a2-bb06-473d275396c0n@googlegroups.com> <030ed934-efa4-4a1e-96b4-96f9c5214a6en@googlegroups.com>
<db4b30f2-2c33-42f6-9630-2828418aa146n@googlegroups.com> <868d4f75-c293-4929-83b7-e319f4dba451n@googlegroups.com>
<m2r0njgghs.fsf@logic.at> <37516061-91b6-4129-8221-4bdb0fa59f42n@googlegroups.com>
<6c9c0d39-8658-47b8-8526-2fd11e08fc71n@googlegroups.com> <bdad9f24-5b6a-49a8-98f9-3c2dd3e20be1n@googlegroups.com>
<m2msy1n81k.fsf@logic.at>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <11039c8a-8b50-47fb-b0e9-3f09d08d46fbn@googlegroups.com>
Subject: Re: Autum Challenge, 42 is the Answer
From: burse...@gmail.com (Mild Shock)
Injection-Date: Mon, 04 Sep 2023 19:46:17 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Mild Shock - Mon, 4 Sep 2023 19:46 UTC

I am also slower than SWI-Prolog with formerly Jekejeke Prolog,
but sandwhich between Scryer Prolog and SWI-Prolog for this example.
I never know whether my CLP(FD) still works, so first some sanity checks:

?- nth_member(X, [5,4,6], 4).
X = 2;
fail.
?- nth_member(2, [5,4,6], X).
X = 4;
fail.

Then the benchmark results:

?- time((between(1,200,N), length(L,N), nth_member(I,L,E), fail; true)).
% Time 48513 ms, GC 373 ms, Wall 04/09/2023 21:41
true.

But I don't know whether its comparable with Scryer Prolog since
I didn't test Scryer Prolog, and the Scryer Prolog figures are from
Markus Triskas machine.

I am currently phasing out formerly Jekejeke Prolog. It should receive
the same core as Dogelog Player. And then maybe can also re-add
CLP(FD) and see what happens. But this might take months. Especially

since I want to reinvent CLP(FD), adding some CRA Strategy, and I
don't know yet eactly how to do it. I could optimized the non-labeling
behaviour exactly towards this test case, where GNU Prolog performs well.

Markus Triska schrieb am Montag, 4. September 2023 um 19:42:01 UTC+2:
> Mild Shock <burs...@gmail.com> writes:
>
> > Whats the Scryer Performance of this Example?
> >
> > /* GNU Prolog 1.5.0 */
> > ?- between(1,200,N), length(L,N), nth_member(I,L,E), fail; true.
> > (94 ms) yes
> >
> > /* SWI-Prolog 9.1.14 */
> > ?- time((between(1,200,N), length(L,N), nth_member(I,L,E), fail; true)).
> > % 94,504,524 inferences, 4.766 CPU in 4.767 seconds (100% CPU, 19830457 Lips)
> > true.
> With Scryer Prolog 0.9.2 on my machine, I get:
>
> ?- time((between(1,200,N), length(L,N), nth_member(I,L,E), false; true)).
> % CPU time: 84.182s
> true.
>
> On my machine, that's ca. 15 times slower than SWI 8.3.15, which is the
> last SWI version I found installed on this machine. Newer versions may
> well be faster! For best performance, I recommend to build Scryer Prolog
> with the optional --release flag, i.e.:
>
> $ cargo build --release
> All the best,
> Markus
>
> --
> comp.lang.prolog FAQ: http://www.logic.at/prolog/faq/
> The Power of Prolog: https://www.metalevel.at/prolog

Re: Autum Challenge, 42 is the Answer

<01a5138b-b619-4cf0-9d92-6984695a8b13n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=10080&group=comp.lang.prolog#10080

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:620a:9041:b0:76d:71f7:2692 with SMTP id rl1-20020a05620a904100b0076d71f72692mr218451qkn.11.1693857074570;
Mon, 04 Sep 2023 12:51:14 -0700 (PDT)
X-Received: by 2002:a05:6a00:3999:b0:68c:8eac:65bc with SMTP id
fi25-20020a056a00399900b0068c8eac65bcmr4751353pfb.1.1693857074039; Mon, 04
Sep 2023 12:51:14 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Mon, 4 Sep 2023 12:51:13 -0700 (PDT)
In-Reply-To: <11039c8a-8b50-47fb-b0e9-3f09d08d46fbn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.50.239; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.50.239
References: <f4ad7701-cae3-4513-8b8e-a483415c6ad8@googlegroups.com>
<977d5e9f-469f-4516-9260-26e917bbec2cn@googlegroups.com> <142ae65f-61ad-403e-8450-caebfddf6d0an@googlegroups.com>
<4e9bf208-0882-4f63-b243-b434f0a1392cn@googlegroups.com> <3a23c78d-d4a1-472a-a460-776a5ca7d3een@googlegroups.com>
<e945e9c8-e72f-41a2-bb06-473d275396c0n@googlegroups.com> <030ed934-efa4-4a1e-96b4-96f9c5214a6en@googlegroups.com>
<db4b30f2-2c33-42f6-9630-2828418aa146n@googlegroups.com> <868d4f75-c293-4929-83b7-e319f4dba451n@googlegroups.com>
<m2r0njgghs.fsf@logic.at> <37516061-91b6-4129-8221-4bdb0fa59f42n@googlegroups.com>
<6c9c0d39-8658-47b8-8526-2fd11e08fc71n@googlegroups.com> <bdad9f24-5b6a-49a8-98f9-3c2dd3e20be1n@googlegroups.com>
<m2msy1n81k.fsf@logic.at> <11039c8a-8b50-47fb-b0e9-3f09d08d46fbn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <01a5138b-b619-4cf0-9d92-6984695a8b13n@googlegroups.com>
Subject: Re: Autum Challenge, 42 is the Answer
From: burse...@gmail.com (Mild Shock)
Injection-Date: Mon, 04 Sep 2023 19:51:14 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Mild Shock - Mon, 4 Sep 2023 19:51 UTC

Actually the test was done with JDK 21 as the Java Virtual
Machine. The older JDK 8 fares a little bit more favorable:

/* JDK 8 */
?- time((between(1,200,N), length(L,N), nth_member(I,L,E), fail; true)).
% Time 39146 ms, GC 254 ms, Wall 04/09/2023 21:49
true.

/* JDK 21 */
?- time((between(1,200,N), length(L,N), nth_member(I,L,E), fail; true)).
% Time 48513 ms, GC 373 ms, Wall 04/09/2023 21:41
true.

The formerly Jekejeke Prolog Minlog Extension, that has the
CLP(FD), isn't public anymore, because I am phasing it out.

Mild Shock schrieb am Montag, 4. September 2023 um 21:46:18 UTC+2:
> I am also slower than SWI-Prolog with formerly Jekejeke Prolog,
> but sandwhich between Scryer Prolog and SWI-Prolog for this example.
> I never know whether my CLP(FD) still works, so first some sanity checks:
>
> ?- nth_member(X, [5,4,6], 4).
> X = 2;
> fail.
> ?- nth_member(2, [5,4,6], X).
> X = 4;
> fail.
>
> Then the benchmark results:
> ?- time((between(1,200,N), length(L,N), nth_member(I,L,E), fail; true)).
> % Time 48513 ms, GC 373 ms, Wall 04/09/2023 21:41
> true.
>
> But I don't know whether its comparable with Scryer Prolog since
> I didn't test Scryer Prolog, and the Scryer Prolog figures are from
> Markus Triskas machine.
>
> I am currently phasing out formerly Jekejeke Prolog. It should receive
> the same core as Dogelog Player. And then maybe can also re-add
> CLP(FD) and see what happens. But this might take months. Especially
>
> since I want to reinvent CLP(FD), adding some CRA Strategy, and I
> don't know yet eactly how to do it. I could optimized the non-labeling
> behaviour exactly towards this test case, where GNU Prolog performs well.
> Markus Triska schrieb am Montag, 4. September 2023 um 19:42:01 UTC+2:
> > Mild Shock <burs...@gmail.com> writes:
> >
> > > Whats the Scryer Performance of this Example?
> > >
> > > /* GNU Prolog 1.5.0 */
> > > ?- between(1,200,N), length(L,N), nth_member(I,L,E), fail; true.
> > > (94 ms) yes
> > >
> > > /* SWI-Prolog 9.1.14 */
> > > ?- time((between(1,200,N), length(L,N), nth_member(I,L,E), fail; true)).
> > > % 94,504,524 inferences, 4.766 CPU in 4.767 seconds (100% CPU, 19830457 Lips)
> > > true.
> > With Scryer Prolog 0.9.2 on my machine, I get:
> >
> > ?- time((between(1,200,N), length(L,N), nth_member(I,L,E), false; true)).
> > % CPU time: 84.182s
> > true.
> >
> > On my machine, that's ca. 15 times slower than SWI 8.3.15, which is the
> > last SWI version I found installed on this machine. Newer versions may
> > well be faster! For best performance, I recommend to build Scryer Prolog
> > with the optional --release flag, i.e.:
> >
> > $ cargo build --release
> > All the best,
> > Markus
> >
> > --
> > comp.lang.prolog FAQ: http://www.logic.at/prolog/faq/
> > The Power of Prolog: https://www.metalevel.at/prolog


devel / comp.lang.prolog / Re: Autum Challenge, 42 is the Answer

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor