Prossimo verificatore... o almeno spero :)

« Older   Newer »
  Share  
view post Posted on 8/2/2018, 19:09     +1   +1   -1

Esperto

Group:
Moderatori
Posts:
622
Reputation:
+345

Status:


Ecco alcune istruzioni per questa nuova versione.

La ricerca delle colonne a maggior copertura ha una cosa che prima non c'era, ovvero la possibiltà di cercare le migliori colonne che abbiano con le colonne del sistema "n" numeri in comune.

Prendiamo ad esempio un 8, 4, 3, 4 con una sola colonna presente nel sistema

1 2 3 4

se selezioniamo solo lo [0] fra le 4 checkbox presenti [0], [1], [2] e [3], il programma troverà ovviamente solo la

5 6 7 8

se selezioniamo solo l'[1] troverà

1 5 6 7
1 5 6 8
1 5 7 8
e così via...

Serve a qualcosa? Francamente non lo so ma avevo un vago ricordo che qualcuno mi avesse chiesto qualcosa del genere e allora l'ho fatto :)

La parte tutta nuova è quella degli "Experimental tools" e partirei dalla System analysis.

Prendiamo ad esempio l'11, 4, 3, 4

                 0     1     2     3
01 02 04 07      1    10     6     1 - 548,752572145
01 02 06 08      1    11     6       - 306,985544007
01 03 06 11           13     5       - 279,073497017
01 03 07 08      1    10     7       - 340,180776304
01 04 05 09      1    10     7       - 340,180776304
01 04 07 10      1    10     6     1 - 548,752572145
01 09 10 11      1    10     7       - 340,180776304
02 03 05 10           14     3     1 - 454,450060559
02 03 09 10      1    11     5     1 - 515,557339847
02 04 06 10      1    10     7       - 340,180776304
02 05 07 11      1    11     6       - 306,985544007
02 08 09 11      2     8     8       - 368,092823295
03 04 06 07      2     8     8       - 368,092823295
03 04 08 09      1    10     6     1 - 548,752572145
03 04 09 11      2     8     7     1 - 576,664619135
04 05 08 11      1    10     7       - 340,180776304
05 06 07 09           14     4       - 245,878264719
05 06 08 10      2    10     6       - 301,702358700
07 08 10 11      1    10     7       - 340,180776304
----------------------------------------------------------------------------------------------------
Numerical distribution
01 - 7
02 - 7
03 - 7
04 - 8
05 - 6
06 - 6
07 - 7
08 - 7
09 - 7
10 - 7
11 - 7
----------------------------------------------------------------------------------------------------
Normalized system blocks
01 02 03 04
01 02 06 08
01 03 04 10
01 03 07 08
01 04 05 09
01 06 07 11
01 09 10 11
02 03 05 11
02 04 06 10
02 05 07 10
02 07 09 10
02 08 09 11
03 04 06 07
03 05 06 09
03 08 10 11
04 05 08 11
04 07 08 09
04 07 09 11
05 06 08 10


la prima riga

01 02 04 07      1    10     6     1 - 548,752572145


vi dice che la colonna 01 02 04 07 ha
0 numeri in comune con 1 colonna
1 punto in comune con 10 colonne
2 punti in comune con 6 colonne
3 punti in comune con 1 colonna

il numero in fondo 548,752572145 è un calcolo di "quanto pesa" la colonna nei confronti delle altre; più il numero è alto e più in teoria quella colonna è la peggiore (ma temo non sia sempre vero).

La "Numerical distribution" non è altro che il conteggio di quante volte sia presente ogni numero nel sistema.

La parte finale è una versione "normalizzata" del sistema, in pratica si porta ogni sistema ad avere come prima colonna la prima delle colonne integrali e tutte le altre modificate di conseguenza.

Anche questo serve a qualcosa? Non lo so, me lo direte voi :)

La funzione "Weights analysis" non è altro che una visualizzazione in griglia, ordinata dal peso più alto al più basso, dei pesi che si vedono appunto nel file di notepad dell'analisi del sistema.

L'ultima cosa è la "Multicovered blocks" che vi fa vedere quali sono, se ce ne sono, le colonne che sono coperte più volte e da quali colonne del sistema sono coperte. Le colonne "coprenti" le vedete rapidamente fermando il mouse sulle righe della griglia ma potete anche vederle in blocco note cliccando su "View covering blocks" dove trovate anche un numerino che vi dice quanti numeri in comune hanno le varie colonne coprenti con la colonna coperta (nel caso di t = k - 1 saranno sempre uguali a t ma in altri casi no). Ho lasciato il tasto "Delete covering blocks" che in pratica elimina dal sistema tutte le colonne coprenti ma non so se serva a qualcosa.

Penso di aver detto tutto per ora, le altre cose sono uguali alla vecchia versione (a parte che sono scritte in inglese) quindi non credo abbiano bisogno di spiegazioni.

Ho cercato di migliorare le prestazioni e in parte ci sono riuscito, soprattutto per quanto riguarda la verifica del sistema e della ricerca di miglioramenti. Anche la ricerca delle colonne migliori è migliorata ma non di tanto (quasi il doppio più veloce... quasi)...

Attendo le vostre impressioni ;)
 
Top
huntercity
view post Posted on 8/2/2018, 19:41     +1   -1




GRANDISSIMOOOOOOOOOOOOOOOOOOOOOO!!!!!!!!!!!!

appena posso lo provo, ho un rollout di esercizio la prossima settimana e sono nei casini

Carlo
 
Top
view post Posted on 8/2/2018, 22:08     +1   -1
Avatar

Esperto

Group:
Administrator
Posts:
4,949
Reputation:
+230
Location:
Bari

Status:


:woot: è veloce in un modo pazzesco!!!!! :wacko: :wacko:

:P Poi siccome sono incontentabile gli ho messo a macinare 6,4 MILIARDI di combinazioni
con "solo" 995000 scoperte e...... :rolleyes:




:blink: Cambia qualcosa se aumento la ram del pc da 4 a 8 Gb? :unsure:
 
Top
view post Posted on 8/2/2018, 22:25     +1   +1   -1

Esperto

Group:
Moderatori
Posts:
622
Reputation:
+345

Status:


Eh Gianni, purtroppo no :(

E' sempre il solito problema che una singola colonna ne copre troppe... ma ci deve essere un altro modo... prima o poi ce la farò :B):
 
Top
view post Posted on 9/2/2018, 08:32     +1   -1
Avatar

Esperto

Group:
Administrator
Posts:
4,949
Reputation:
+230
Location:
Bari

Status:


:P OK ^_^ ;)
 
Top
view post Posted on 14/2/2018, 09:23     +1   -1

Esperto

Group:
Moderatori
Posts:
622
Reputation:
+345

Status:


Ciao Stefano, pensavo fossi anche tu su dropbox :huh:

Ecco il link...

www.dropbox.com/s/t9ejvhjgs6i2st5/wsc_3.1.zip?dl=0

Ciao.

Giovanni
 
Top
view post Posted on 14/2/2018, 20:35     +1   -1
Avatar

Esperto

Group:
Moderatori
Posts:
993
Reputation:
+177

Status:


Ciao,
ho fatto alcune prove col nuovo verificatore 3.1
Faccio un resoconto perché potrebbe essere utile a altri.

Inizialmente stavo provando a installarlo su un PC con windows XP, ma poi mi sono reso conto che non è possibile perché il programma necessita di Frameworks 4.5.2 (che si possono scaricare e installare solo su Windows Vista, 7...e successivi)

Quindi ho trovato un PC con windows 7 (versione Home Premium 64-bit, con 3Gb ram)
Dopo l'installazione, , un messaggio avvisa che si deve attendere per il primo avvio. Dopo un paio di minuti circa il verificatore è pronto. Poi le volte successive non si deve attendere.

A mio avviso il programma ha i seguenti punti a favore

- si può caricare il sistema e successivamente specificare i parametri
(nelle versioni precedenti il programma rifiutava di caricare le combinazioni se v e k non coincidevano coi quelli nelle caselle, i quali dovevano essere impostati necessariamente prima di selezionare il file)

- Riesce a verificare alcuni sistemi che altri programmoi non riescono a trattare.
Ad esempio con il Quick Cover Test se si tenta di verificare un 34,05,02,15=5 come il seguente
01 02 03 04 05
06 07 08 09 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
il programma non lo verifica e da errore di memoria, mentre il verificatore 3.1 completa la verifica in circa 2 minuti.

C'è anche da dire però che con altri parametri la situazione può essere a favore del QCT,
infatti 8per esempio) per verificare il 26,10,09,10=80131 il verificatore impiega più di 12 minuti, mentre il QCT ci mette molto meno.
Però come già detto, fattore non trascurabile, il QCT offre solo la verifica, mentre poi col verificatore si possono poi fare tante altre cose.

- E' Molto veloce

- Interessanti le nuove funzioni introdotte (accessibili col pulsante "Experimental tools")
molto immediata l'utilità dei pulsanti "Delete covering blocks" e ""View covering blocks"
che appaiono accanto a ciascuna combinazione dopo l'uso della funzione "multicovered blocks"
per vedere e maipolare le combinazioni che coprono la stessa colonna.

Le altre funzioni presenti anche nelle versioni precedenti erano già eccezionali e presenti solo in questo programma.

CONTRO:
penso davvero che ci sia molto poco da dire a sfavore del programma.
Se vogliamo cercare il pelo nell'uovo, giusto per completare una sorta di recensione, posso dire che alcuni dati mi hanno lasciato con la curiosità insoddisfatta perché non ho capito a quale valore siano riferiti. Forse perché sono dati sperimentali (ad esempio non ho capito cosa sia il 'Weight' che appare in vari riquadri e non capisco neppure i valori della tabella superiore del rapporto che salta fuori premendo "System analysis"

In più ho forse notato un piccolo bug e se sono previste versioni successive magari si potrà correggere:
modificando il contenuto della casella 't' tramite immissione da tastiera (dunque senza agire sulle freccine col mouse, ma facendo click sulla casella e digitando il numero) e successivamente premendo il tasto TAB (con l'intenzione di passare a modificare il valore di m) il programma va in crash.
Ciò succede sul PC delle mie prove e potrebbe essere un caso isolato.

Direi che abbiamo un'arma in più contro i sistemi apparentemente intrattabili :)
 
Top
view post Posted on 15/2/2018, 10:58     +1   -1

Esperto

Group:
Moderatori
Posts:
622
Reputation:
+345

Status:


Ciao Stefano,

grazie per esserti preso il tempo di testare il programma e soprattutto di analizzare i vari aspetti.

Confermo che su XP non si può installare.

Il bug che segnali è davvero un bug, lo fa anche sul mio pc... è sicuramente da sistemare... grazie per la segnalazione.

Aggiungo che, rispetto alle versioni precedenti, i parametri specificati vktm non si resettano quando si riapre il programma ma rimangono selezionati quelli dell'ultima volta che si è usato il programma.

Il weight, cioè peso, non è altro che un calcolo che indica il "peso" della colonna nei confronti delle altre colonne del sistema. Più la colonna ha punti in comune con le altre colonne del sistema e più il peso aumenta, quindi in teoria una colonna molto pesante potrebbe essere una delle colonne eliminabili per successivi miglioramenti; in realtà non è sempre vero, dipende anche molto dal tipo di sistema su cui si sta lavorando.

Quindi la parte sopra dell'analisi del sistema ti dice questo peso ma ti dice anche quanti punti in comune ogni colonna ha con le altre...

Prendi come esempio questo 09,04,03,04 da 9 colonne
                 0     1     2     3
01 02 05 07            4     4       - 183,046411647
01 03 04 06            4     4       - 183,046411647
01 03 08 09            4     4       - 183,046411647
01 05 06 08            4     4       - 183,046411647
02 03 05 08            4     4       - 183,046411647
02 04 06 09            4     4       - 183,046411647
02 04 07 08            4     4       - 183,046411647
03 06 07 09            4     4       - 183,046411647
04 05 07 09            4     4       - 183,046411647

Lo schema ti dice che ogni colonna ha 1 punto in comune con 4 colonne e 2 punti in comune con 4 colonne; in questo caso quindi il peso è uguale per tutte le colonne.

Se hai bisogno di altre informazioni chiedi pure ;)

Ciao!
 
Top
view post Posted on 15/2/2018, 15:30     +1   -1
Avatar

Esperto

Group:
Moderatori
Posts:
993
Reputation:
+177

Status:


Grazie, molto esaustivo.
Questi dati assumono per me un aspetto davvero interessante.
Tempo fa, ispirato dalla teoria covering 3D di Gianni e dal funzionamento del verificatore 1.1, avevo cercato di studiare la copertura analizzando esclusivamente i numeri in comune tra le combinazioni (senza dover calcolare le colonne coperte da ciascuna combinazione).
Poi, come ha confermato Nino, mi sono reso conto che è molto complicato, ma resto dell'idea che sia una cosa fattibile.
Se vuoi puoi dare un'occhiata ai post da questo #entry420712545 ,sino ai due successivi.

In pratica sono convinto che sì, c'entrano i numeri in comune tra le combinazioni, ma resta da stabilire 'quali' siano i numeri coinvolti per poter ricorrere a delle tabelle precalcolate e infine ricavare la copertura di una determinata colonna.

Se qualcuno avesse voglia di ragionarci un po' su potremmo aprire una discussione riservata e separata per questo argomento. Se riuscissimo a descrivere l'algoritmo per risolvere in questo modo otterremmo un software rivoluzionario (e non esagero...).
Il programma, per girare, dovrebbe ricorrere a tabelle predisposte a priori (come fanno il Cover32 e il QCT d'altronde) le quali non mi meravglierei se dovessero richiedere un calcolo separato e una preparazione di diverse nottate di calcolo.
Penso di avere anche alcuni esempi già pronti per iniziare a fare due conti. Avevo abbandonato il discorso e poi mi sono perso in altre cose. E da solo non so andare avanti.

Stefano
 
Top
view post Posted on 15/2/2018, 21:09     +1   -1
Avatar

Esperto

Group:
Moderatori
Posts:
993
Reputation:
+177

Status:


:)

Secondo me si può riuscire a verificare un sistema solo esaminando i numeri che ciascuna colonna ha in comune con le altre.
Ad esempio nel 20,10,07,10 una colonna di un sistema copre ovviamente 16526. Mentre se se ne aggiunge una seconda, questa coprirà 16526 solo se ha da 0 a 3 numeri in comune con la prima, mentre per gli altri casi (4,5,6,7,8,9 e 10) numeri in comune coprirà una quantità determinata di combinazioni (non coperte anche dalla prima).
La difficoltà inizia quando si aggiunge una terza colonna. Però sono convinto che anche questo caso è prevedibile solo analizzando i numeri che questa ha in comune con la prima e poi con la seconda.
La complessità di questa verifica, se non sbaglio, sarebbe nell'ordine di N(n-1), quindi lineare e i tempi, come si intuisce, scenderebbero incredibilmente.
Comunque il discorso è complicato e non voglio impegnarti. Magari lo riprendiamo con calma.

Spero di riuscire domani a provare ancora un po' il nuovo verificatore.

Edited by TarulliG - 9/10/2020, 07:46
 
Top
view post Posted on 17/2/2018, 11:51     +2   +1   -1

Esperto

Group:
Moderatori
Posts:
622
Reputation:
+345

Status:


Ho messo su dropbox la versione 3.2 che risolve il bug segnalato da Stefano.

Metto comunque qui il link per il download.

www.dropbox.com/s/ltihj30qacoij5g/wsc_3.2.zip?dl=0

Mi sono permesso di aggiungere due link nella finestra di info che si apre cliccando sul ? nel menù... uno punta al forum, l'altro al sito con i record gestito da Stefano... se preferite che li tolga fatemelo sapere, grazie ;)
 
Top
view post Posted on 20/2/2018, 13:43     +1   -1

Esperto

Group:
Moderatori
Posts:
5,034
Reputation:
+742

Status:


Ciao Giovanni.

Ti do ancora un poco di fastidio.

Poiché una delle caratteristiche principali del nuovo verificatore è la velocità, non capisco perché, quando si cerca di chiudere un sistema e si aggiunge una nuova colonna, questa venga posizionata in ultima posizione e controllata per ultima. In questo modo se la colonna migliora ancora la copertura, il sistema dovrà essere esaminato totalmente più volte (e se si tratta di 3-5 mila colonne si impiega molto tempo in più.

Ciao.
 
Top
view post Posted on 20/2/2018, 15:55     +1   -1

Esperto

Group:
Moderatori
Posts:
622
Reputation:
+345

Status:


Ciao ros,

quando dici "controllata per ultima" cosa intendi esattamente? Intendi quando, dopo averla aggiunta, si fa la ricerca di miglioramenti?

Se pensate sia meglio inserirla in prima posizione non dovrei avere problemi a farlo, anche quando una colonna viene aggiunta cliccando sul tasto Add new row dalla griglia delle colonne a maggior copertura trovate.

Comunque non mi dai nessun fastidio :P

Fammi sapere :)

Ciao
 
Top
view post Posted on 20/2/2018, 16:03     +1   -1

Esperto

Group:
Moderatori
Posts:
5,034
Reputation:
+742

Status:


Ciao.

E' quello che intendevo.

Ciao.
 
Top
view post Posted on 24/2/2018, 15:53     +1   +1   -1

Esperto

Group:
Moderatori
Posts:
622
Reputation:
+345

Status:


Ciao a tutti,

ho messo su dropbox la versione 3.3 e come sempre metto un link anche qua per farlo scaricare anche a chi non ha accesso alla cartella condivisa.

www.dropbox.com/s/u0wg2ndvvzdsyz6/wsc_3.3.zip?dl=0

Dovrei aver sistemato il bug segnalato da Renzo, inoltre ho fatto in modo che le colonne aggiunte manualmente, o inserite tramite i tasti "Add block", si inseriscano all'inizio del sistema e non alla fine, come indicato da Ros.

Ho fatto un'altra cosina, per cercare di velocizzare ulteriormente la verifica dei sistemi. E' un'opzione da attivare che trovate nel menù File -> Preferences.

Spero non dia problemi visto che spreme il processore fino all'ultimo transistor.

Sul mio pc, che ha una CPU con 4 core, i miglioramenti sono evidenti anche se il rapporto di riduzione non è sempre lo stesso (dipende da quante colonne integrali è formato il sistema e da quante sono le colonne del sistema stesso...)

In alcuni casi vedrete un comportamento un po' strano ma c'è un motivo. Se i sistemi vanno oltre al numero massimo di colonne integrali memorizzabili, allora l'elaborazione viene fatta a colpi di 100 milioni di colonne alla volta. In questi casi quindi vedrete che all'inizio della verifica sembra che non succeda nulla, in realtà il programma sta mettendo in memoria i primi 100 milioni di colonne per poi cominciare a macinare... finiti i primi 100 milioni ne metterà in memoria altri 100 milioni e così via...

Fate attenzione alle temperature del vostro pc, non vorrei che si fondesse il processore... non voglio avere delle responsabilità in merito (do it at your own risk) :shifty:

Fatemi sapere se e che miglioramenti vedete, grazie.

Ciao.

Giovanni
 
Top
68 replies since 16/11/2017, 20:44   1730 views
  Share