Gdzie mogę uzyskać pomoc w zakresie badań / publikacji?

11

Od jakiegoś czasu opracowuję algorytm SAT i doszedłem do punktu, w którym chciałbym się nim podzielić. Nie znam wielu ludzi informatyki i nie jestem pewien, dokąd się zwrócić.

Zastanawiam się, jakie zasoby są dostępne dla kogoś z algorytmem, który rozważa publikację. Potrzebuję również pomocy w analizie czasu działania i poprawności mojego algorytmu.

Moim głównym problemem jest analiza środowiska wykonawczego. Potrzebuję pomocy w szczegółowej analizie tego. Jestem całkiem pewien, że algorytm jest poprawny, ale byłoby pomocne, gdyby ktoś również to zweryfikował.

Czy jest ktoś, kto byłby skłonny przeanalizować mój algorytm? Ponadto jakie zasoby są dostępne dla takiego zadania?

Matt Groff
źródło
Mówisz o publikacji lub sprawdzeniu swojego pomysłu? Co rozumiesz przez „zasoby”; czasopisma czy środki kontroli?
Raphael,
12
Wydaje mi się, że jeśli celem jest publikowanie, musisz mieć przynajmniej analizę środowiska wykonawczego i poczucie „poprawności” algorytmu, zakładając, że jest on heurystyczny. Trzeba też porównać to, co robi algorytm z wcześniejszą pracą - bez tego publikacja jest nie-nie. W rzeczywistości poleciłbym to zrobić najpierw.
Suresh Venkat
Zastanawiam się nad publikacją, ale na razie naprawdę szukam pomocy w analizie. Zdaję sobie sprawę, że ta strona może pomóc w konkretnych pytaniach, ale mam nadzieję znaleźć miejsca, w których mogę spotkać ludzi, którzy byliby gotowi pomóc w analizie. Nie mam też dużego doświadczenia w zakresie innych algorytmów, ale zastanawiam się, czy moje podejście może być w jakiś sposób wyjątkowe.
Matt Groff,
Zobacz także powiązane pytanie cstheory.stackexchange.com/questions/7600/…
András Salamon

Odpowiedzi:

32

Jeśli twój algorytm SAT ma być praktyczny, powinieneś uruchomić na nim testy porównawcze SAT . Społeczność zajmująca się rozwiązywaniem problemów SAT podejmie znacznie poważniej swoją pracę, jeśli potrafisz wykazać, że twoje podejście jest konkurencyjne w stosunku do istniejących solverów. Twój solver nie musi być szybszy niż każdy solver ani rozwiązywać większej liczby instancji, ale powinien być poważnym konkurentem. Nie potrzebujesz bardzo szybkiej lub wydajnej maszyny do uruchomienia testów; możesz po prostu porównać czas działania z jednym z darmowych programów do rozwiązywania problemów SAT, takich jak MiniSAT lub PicoSAT . Te solwery pozwolą ci także zobaczyć, jak powinny wyglądać odpowiedzi.

Jeśli pracujesz nad praktycznym rozwiązaniem, które wykorzystuje nowe techniki, a twoje podejście nie jest jeszcze konkurencyjne, nadal sugerowałbym wypróbowanie tych testów porównawczych. Pomogą ci zrozumieć rodzaje problemów, które powinieneś dążyć do rozwiązania, oraz rodzaj wydajności, do którego powinieneś dążyć. Możesz także przeczytać niektóre kluczowe rozdziały Podręcznika satysfakcji lub niedawnej ankiety

  • Knot Pipatsrisawat i Adnan Darwiche, O nowoczesnych rozwiązaniach do rozwiązywania problemów z uczeniem się klauzul , Journal of Automated Reasoning 44 277–301, 2010. ( PDF )

aby zobaczyć rodzaje argumentów, które wspierają główne solvery. Jeśli masz nowe pomysły, które nie są jeszcze zoptymalizowane pod kątem wydajności, a także najlepsze solwery, musisz wyjaśnić potencjalne zalety twojego podejścia komuś, kto zna długą sekwencję teoretycznego rozumowania, która doprowadziła do obecnego zestawu „najlepszych ćwiczyć decyzje projektowe.

Jeśli twój wkład jest czysto teoretyczny, musisz być świadomy wielu prac w tej dziedzinie i wyjaśnić w swoim artykule, dlaczego twoje podejście jest lepsze przynajmniej w jakiś sposób. Rzuć okiem na ostatnie prace, na przykład Amina Coji-Oghlana lub Alana Frieze, aby zapoznać się z najnowszym stanem wiedzy i przydatnymi wskazówkami do ważnych artykułów.

András Salamon
źródło
Zobacz także dyskusję na cstheory.stackexchange.com/questions/1719/…
András Salamon,
Zobacz także dyskusję na cstheory.stackexchange.com/questions/7600/…
András Salamon
2

Ponieważ teraz chcesz udostępnić swój algorytm, moja osobista sugestia jest następująca: zbuduj bardzo prostą stronę internetową. Witryna powinna udostępnić następujące 2 rzeczy:

  1. Kod źródłowy algorytmu.
  2. Dokument krótko opisujący twoje podejście. Gdzie twoje podejście jest inne? Jaki jest za tym nowy pomysł? Ten dokument nie musi być perfekcyjnie napisanym dokumentem technicznym, ani nie musi zawierać żadnego formalnego dowodu: prezentacja Power Point wystarczyłaby, aby „przekazać” rdzeń twojego pomysłu. Po prostu wyjaśnij nam, dlaczego uważasz, że Twój algorytm jest inny. Może to wyjątkowy, kto wie.

Giorgio Camerani
źródło
Nie sądzę, aby tworzenie strony internetowej było bardzo dobrym pomysłem. Ponieważ wiele osób buduje stronę internetową, gdy „myśli”, że rozwiązały duże problemy lub znalazły TOE. np. dharwadker.org/tevet/isomorphism matpitka.blogspot.com Twierdzenie: „Na każdy nierozwiązany problem jest co najmniej jeden facet, który twierdzi, że go rozwiązał i tworzy stronę internetową”. Zły pomysł -1 :(
Pratik Deoghare
@TheMachineCharmer: Nie miałem na myśli czegoś takiego. Witryna była tylko sposobem na umożliwienie ludziom pobrania kodu i przeczytania dokumentu opisującego algorytm. Nie miałem na myśli „świętowania” strony internetowej. Zamiast tego chciałem, aby strona internetowa jedynie dzieliła się materiałami, bez żadnych „triumfujących” roszczeń (coś podobnego do tego, co powiedziałeś w swojej odpowiedzi, chociaż twój ma nieco bardziej „oficjalny” smak).
Giorgio Camerani
1
  1. Możesz zapisać swoje pomysły w standardowym formacie papierowym.
  2. Opublikuj w ArXiv .
  3. Udostępnij kod źródłowy na github .
  4. Poświęć trochę czasu na naukę analizy czasu wykonywania i zaktualizuj swój artykuł, gdy skończysz.

np. możesz napisać artykuł ankietowy, a na końcu zaproponować swoje rozwiązanie jako nowe, obiecujące podejście. Ale bez dowodu poprawności i analizy czasu wykonywania niewiele osób potraktuje to poważnie (ale niektórzy to zrobią).

Pratik Deoghare
źródło