<p>Since you now want to share your algorithm, my personal suggestion is the following: build a very simple web site. The site should make available these 2 things:
<OL> 
<LI>The source code of the algorithm.</LI>
<LI>A document briefly describing your approach. Where your approach is different? Which is the new idea behind it? This document doesn't need to be a perfectly-written technical paper, nor it needs to contain any formal proof: a power point presentation would be enough to "transmit" the core of your idea. Just explain us why you think your algorithm is different. Maybe it's unique, who knows.</LI>
</OL></p>

CC BY-SA 2.5
2011-01-09T16:50:57.917Z
I don't think creating a website is a very good idea. Because a lot many people build a website when they 'think' they have solved big problems or have found TOE. e.g.  http://www.dharwadker.org/tevet/isomorphism/ http://matpitka.blogspot.com/ Theorem: "For every unsolved problem there is at least one guy who claims he solved it and builds a website." Bad idea -1 :(
Pratik Deoghare
CC BY-SA 2.5
2011-01-28T10:19:55.617Z
@TheMachineCharmer: I didn't mean something like that. The website was just a way to let people download the code and read the document describing the algorithm. I didn't mean a "celebrating" website. Instead, I meant a website to merely share material, without any "triumphant" claim (something similar to what you said in your answer, although yours has a somewhat more "official" flavour).
Giorgio Camerani
CC BY-SA 2.5
2010-10-07T07:55:06.507Z
2010-10-07T07:55:06.507Z
Giorgio Camerani
<ol>
<li>You can write your ideas down in standard paper format. </li>
<li>Publish it on <a href="http://arxiv.org/" rel="nofollow">ArXiv</a>.</li>
<li>Share source code on <a href="https://github.com/" rel="nofollow">github</a>. </li>
<li>Spend some time learning run time analysis and update your paper when you are done.</li>
</ol>

<p>e.g. You can write a survey paper and at the end suggest your solution as new promising approach. <em>But without proof of correctness and run time analysis not many people will take it seriously (but some will).</em></p>

CC BY-SA 2.5
2011-01-09T16:43:19.717Z
2011-01-09T16:43:19.717Z
Pratik Deoghare
<p>If your SAT algorithm is meant to be practical, then you should run the <a href="http://www.satcompetition.org/">SAT competition</a> benchmarks on it.  The SAT solving community is going to take your work much more seriously if you can show that your approach is competitive with existing solvers.  Your solver doesn't have to be faster than every solver, or solve more instances, but it should be a serious competitor.  You don't need a very fast or powerful machine to run the benchmarks; you can simply compare runtime against one of the free SAT solvers like <a href="http://minisat.se/">MiniSAT</a> or <a href="http://fmv.jku.at/picosat/">PicoSAT</a>.  These solvers will also allow you to see what the answers should look like.</p>

<p>If you are working on a practical solver that uses new techniques, and your approach is not yet competitive, I would still suggest trying these benchmarks.  They would help you to understand the kinds of problems that you should be aiming to solve, and the kind of performance you should be aiming for.  You might also want to read some of the key chapters of the <a href="http://www.st.ewi.tudelft.nl/sat/handbook/">Handbook of Satisfiability</a>, or the recent survey</p>

<ul>
<li>Knot Pipatsrisawat and Adnan Darwiche, <em>On Modern Clause-Learning Satisfiability Solvers</em>, Journal of Automated Reasoning <strong>44</strong> 277–301, 2010. (<a href="http://reasoning.cs.ucla.edu/fetch.php?id=108&amp;type=pdf">PDF</a>)</li>
</ul>

<p>to see the kinds of arguments that support the major solvers.  If you have new ideas that are not yet optimized to perform as well as the top solvers, you would need to explain the potential advantages of your approach to someone who knows the long sequence of theoretical reasoning that has led to the current set of "best practice" design decisions.</p>

<p>If your contribution is purely theoretical, then you need to be aware of the many papers in this area, and explain in your paper why your approach is better in at least some way.  Have a look at recent work by for instance Amin Coja-Oghlan or Alan Frieze to get a feel for the state of the art and for useful pointers to important papers.</p>

CC BY-SA 3.0
2013-11-14T10:31:24.753Z
See also the discussion at https://cstheory.stackexchange.com/questions/7600/starting-sat-solver-papers
András Salamon
CC BY-SA 2.5
2010-10-07T23:54:30.023Z
See also the discussion at http://cstheory.stackexchange.com/questions/1719/state-of-the-art-for-sat-solvers-closed
András Salamon
CC BY-SA 2.5
2010-10-06T22:57:25.230Z
2010-10-06T22:57:25.230Z
András Salamon
<p>I have been developing a SAT algorithm for a while, and have reached a point where I'd like to share it.  I don't know many people in computer science, and I'm not sure exactly where to turn.</p>

<p>I'm wondering what resources are available for someone with an algorithm who is considering publishing.  I also need help analyzing the runtime and correctness of my algorithm.</p>

<p>My major problem is in analyzing the runtime.  I need help with a detailed analysis of this.  I'm fairly certain that the algorithm is correct, but it would be helpful if someone would verify this as well.</p>

<p>So is there anyone who would be willing to analyze my algorithm?  Additionally, what resources are available for a task like this?</p>

CC BY-SA 3.0
2011-08-06T16:07:22.913Z
See also related question http://cstheory.stackexchange.com/questions/7600/starting-sat-solver-papers
András Salamon
CC BY-SA 2.5
2010-10-06T22:04:20.573Z
Are you talking about publishing or checking your idea? What do you mean by "resources"; journals or means of checking?
Raphael
CC BY-SA 2.5
2010-10-06T22:11:26.317Z
It seems to me that if publishing is the goal, then you have to have at least a runtime analysis, and a sense of "how" correct your algorithm is, assuming it's a heuristic. You'd also have to compare what your algorithm does to prior work - without that, publication is a no-no. In fact, I'd recommend doing that first.
Suresh Venkat
CC BY-SA 2.5
2010-10-06T23:17:36.777Z
I'm considering publishing, but for now I'm really looking for help with analysis. I realize that this site may help with specific questions, but I'm hoping to find places where I can meet people that would be willing to help with analysis.  Also, I don't have a lot of background regarding other algorithms, but I wonder if my approach may be somewhat unique.
Matt Groff
<sat><soft-question><proofs>
Where do I turn for help with research/publishing?
Matt Groff
# Where do I turn for help with research/publishing?

(Asked by: username_0 on 2010-10-06)

I have been developing a SAT algorithm for a while, and have reached a point where I'd like to share it. I don't know many people in computer science, and I'm not sure exactly where to turn.

I'm wondering what resources are available for someone with an algorithm who is considering publishing. I also need help analyzing the runtime and correctness of my algorithm.

My major problem is in analyzing the runtime. I need help with a detailed analysis of this. I'm fairly certain that the algorithm is correct, but it would be helpful if someone would verify this as well.

So is there anyone who would be willing to analyze my algorithm? Additionally, what resources are available for a task like this?

**Tags:** sat, soft-question, proofs
> **Comments:**
> **username_2**: Are you talking about publishing or checking your idea? What do you mean by "resources"; journals or means of checking?  
> **username_3**: It seems to me that if publishing is the goal, then you have to have at least a runtime analysis, and a sense of "how" correct your algorithm is, assuming it's a heuristic. You'd also have to compare what your algorithm does to prior work - without that, publication is a no-no. In fact, I'd recommend doing that first.  
> **username_0**: I'm considering publishing, but for now I'm really looking for help with analysis. I realize that this site may help with specific questions, but I'm hoping to find places where I can meet people that would be willing to help with analysis.  Also, I don't have a lot of background regarding other algorithms, but I wonder if my approach may be somewhat unique.  
> **username_1**: See also related question http://cstheory.stackexchange.com/questions/7600/starting-sat-solver-papers  

---

## 3 answers

### Answer by username_1 on 2010-10-06. Score: 32 | Accepted answer

If your SAT algorithm is meant to be practical, then you should run the [SAT competition](http://www.satcompetition.org/) benchmarks on it. The SAT solving community is going to take your work much more seriously if you can show that your approach is competitive with existing solvers. Your solver doesn't have to be faster than every solver, or solve more instances, but it should be a serious competitor. You don't need a very fast or powerful machine to run the benchmarks; you can simply compare runtime against one of the free SAT solvers like [MiniSAT](http://minisat.se/) or [PicoSAT](http://fmv.jku.at/picosat/). These solvers will also allow you to see what the answers should look like.

If you are working on a practical solver that uses new techniques, and your approach is not yet competitive, I would still suggest trying these benchmarks. They would help you to understand the kinds of problems that you should be aiming to solve, and the kind of performance you should be aiming for. You might also want to read some of the key chapters of the [Handbook of Satisfiability](http://www.st.ewi.tudelft.nl/sat/handbook/), or the recent survey

* Knot Pipatsrisawat and Adnan Darwiche, *On Modern Clause-Learning Satisfiability Solvers*, Journal of Automated Reasoning **44** 277–301, 2010. ([PDF](http://reasoning.cs.ucla.edu/fetch.php?id=108&type=pdf))

to see the kinds of arguments that support the major solvers. If you have new ideas that are not yet optimized to perform as well as the top solvers, you would need to explain the potential advantages of your approach to someone who knows the long sequence of theoretical reasoning that has led to the current set of "best practice" design decisions.

If your contribution is purely theoretical, then you need to be aware of the many papers in this area, and explain in your paper why your approach is better in at least some way. Have a look at recent work by for instance Amin Coja-Oghlan or Alan Frieze to get a feel for the state of the art and for useful pointers to important papers.

> **Comments:**
> **username_1**: See also the discussion at http://cstheory.stackexchange.com/questions/1719/state-of-the-art-for-sat-solvers-closed  
> **username_1**: See also the discussion at https://cstheory.stackexchange.com/questions/7600/starting-sat-solver-papers  

---

### Answer by username_4 on 2010-10-07. Score: 2

Since you now want to share your algorithm, my personal suggestion is the following: build a very simple web site. The site should make available these 2 things:

1. The source code of the algorithm.
2. A document briefly describing your approach. Where your approach is different? Which is the new idea behind it? This document doesn't need to be a perfectly-written technical paper, nor it needs to contain any formal proof: a power point presentation would be enough to "transmit" the core of your idea. Just explain us why you think your algorithm is different. Maybe it's unique, who knows.

> **Comments:**
> **username_5**: I don't think creating a website is a very good idea. Because a lot many people build a website when they 'think' they have solved big problems or have found TOE. e.g.  http://www.dharwadker.org/tevet/isomorphism/ http://matpitka.blogspot.com/ Theorem: "For every unsolved problem there is at least one guy who claims he solved it and builds a website." Bad idea -1 :(  
> **username_4**: @TheMachineCharmer: I didn't mean something like that. The website was just a way to let people download the code and read the document describing the algorithm. I didn't mean a "celebrating" website. Instead, I meant a website to merely share material, without any "triumphant" claim (something similar to what you said in your answer, although yours has a somewhat more "official" flavour).  

---

### Answer by username_5 on 2011-01-09. Score: 1

1. You can write your ideas down in standard paper format.
2. Publish it on [ArXiv](http://arxiv.org/).
3. Share source code on [github](https://github.com/).
4. Spend some time learning run time analysis and update your paper when you are done.

e.g. You can write a survey paper and at the end suggest your solution as new promising approach. *But without proof of correctness and run time analysis not many people will take it seriously (but some will).*


---

