Dove posso chiedere aiuto per la ricerca / pubblicazione?


11

Sto sviluppando un algoritmo SAT da un po 'e ho raggiunto un punto in cui mi piacerebbe condividerlo. Non conosco molte persone nell'informatica e non sono sicuro di dove rivolgersi.

Mi chiedo quali risorse siano disponibili per qualcuno con un algoritmo che sta prendendo in considerazione la pubblicazione. Ho anche bisogno di aiuto per analizzare il runtime e la correttezza del mio algoritmo.

Il mio problema principale è nell'analisi del runtime. Ho bisogno di aiuto con un'analisi dettagliata di questo. Sono abbastanza certo che l'algoritmo sia corretto, ma sarebbe utile se qualcuno verificasse anche questo.

Quindi c'è qualcuno che sarebbe disposto ad analizzare il mio algoritmo? Inoltre, quali risorse sono disponibili per un'attività come questa?


Stai parlando di pubblicare o verificare la tua idea? Cosa intendi con "risorse"; riviste o mezzi di controllo?
Raffaello,

12
Mi sembra che se l'obiettivo è pubblicare, allora devi avere almeno un'analisi di runtime e un senso di "quanto" sia corretto il tuo algoritmo, supponendo che sia euristico. Dovresti anche confrontare ciò che il tuo algoritmo fa con il lavoro precedente - senza di ciò, la pubblicazione è un no-no. In effetti, consiglierei di farlo prima.
Suresh Venkat,

Sto pensando di pubblicare, ma per ora sto davvero cercando aiuto con l'analisi. Mi rendo conto che questo sito può aiutare con domande specifiche, ma spero di trovare posti in cui posso incontrare persone che sarebbero disponibili ad aiutare con l'analisi. Inoltre, non ho molti retroscena riguardo ad altri algoritmi, ma mi chiedo se il mio approccio potrebbe essere in qualche modo unico.
Matt Groff,

Risposte:


32

Se il tuo algoritmo SAT è pensato per essere pratico, allora dovresti eseguire i benchmark della concorrenza SAT su di esso. La comunità di risoluzione SAT prenderà molto più seriamente il tuo lavoro se puoi dimostrare che il tuo approccio è competitivo con i solutori esistenti. Il tuo risolutore non deve essere più veloce di ogni risolutore o risolvere più casi, ma dovrebbe essere un serio concorrente. Non hai bisogno di una macchina molto veloce o potente per eseguire i benchmark; puoi semplicemente confrontare il runtime con uno dei solutori SAT gratuiti come MiniSAT o PicoSAT . Questi solutori ti permetteranno anche di vedere come dovrebbero apparire le risposte.

Se stai lavorando a un risolutore pratico che utilizza nuove tecniche e il tuo approccio non è ancora competitivo, suggerirei comunque di provare questi benchmark. Ti aiuterebbero a capire i tipi di problemi che dovresti mirare a risolvere e il tipo di prestazione a cui dovresti puntare. Potresti anche voler leggere alcuni dei capitoli chiave del Manuale di soddisfazione o del recente sondaggio

  • Knot Pipatsrisawat e Adnan Darwiche, sui moderni risolutori della soddisfazione dell'apprendimento delle clausole , Journal of Automated Reasoning 44 277–301, 2010. ( PDF )

per vedere i tipi di argomenti che supportano i principali risolutori. Se hai nuove idee che non sono ancora ottimizzate per eseguire così come i migliori risolutori, dovresti spiegare i potenziali vantaggi del tuo approccio a qualcuno che conosce la lunga sequenza di ragionamenti teorici che ha portato all'attuale serie di "migliori pratica "decisioni progettuali.

Se il tuo contributo è puramente teorico, allora devi essere consapevole dei numerosi articoli in questo settore e spiegare nel tuo documento perché il tuo approccio è migliore almeno in qualche modo. Dai un'occhiata ai recenti lavori di Amin Coja-Oghlan o Alan Frieze, ad esempio, per avere un'idea dello stato dell'arte e di utili indicazioni su importanti documenti.




2

Dato che ora vuoi condividere il tuo algoritmo, il mio suggerimento personale è il seguente: creare un sito Web molto semplice. Il sito dovrebbe rendere disponibili queste 2 cose:

  1. Il codice sorgente dell'algoritmo.
  2. Un documento che descrive brevemente il tuo approccio. Dove il tuo approccio è diverso? Qual è la nuova idea alla base? Questo documento non deve necessariamente essere un documento tecnico perfettamente scritto, né deve contenere alcuna prova formale: una presentazione in power point sarebbe sufficiente per "trasmettere" il nucleo della tua idea. Spiegaci perché pensi che il tuo algoritmo sia diverso. Forse è unico, chissà.


Non penso che creare un sito web sia un'ottima idea. Perché molte persone costruiscono un sito Web quando "pensano" di aver risolto grossi problemi o di aver trovato TOE. es. dharwadker.org/tevet/isomorphism matpitka.blogspot.com Teorema: "Per ogni problema irrisolto c'è almeno un ragazzo che afferma di averlo risolto e di costruire un sito web". Cattiva idea -1 :(
Pratik Deoghare

@TheMachineCharmer: non intendevo qualcosa del genere. Il sito Web era solo un modo per consentire alle persone di scaricare il codice e leggere il documento che descriveva l'algoritmo. Non intendevo un sito Web "celebrativo". Invece, intendevo un sito Web per condividere semplicemente materiale, senza alcuna pretesa "trionfante" (qualcosa di simile a quello che hai detto nella tua risposta, sebbene il tuo abbia un sapore un po 'più "ufficiale").
Giorgio Camerani,

1
  1. Puoi scrivere le tue idee in un formato carta standard.
  2. Pubblicalo su ArXiv .
  3. Condividi il codice sorgente su github .
  4. Dedica un po 'di tempo all'apprendimento dell'analisi del tempo di esecuzione e aggiorna il documento quando hai finito.

ad es. puoi scrivere un documento di indagine e alla fine suggerire la tua soluzione come nuovo approccio promettente. Ma senza prove di correttezza e analisi del tempo di esecuzione non molte persone lo prenderanno sul serio (ma alcuni lo faranno).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.