Inventé un algoritmo de búsqueda de cadenas. ¿Cómo hago para asegurarme de que lleva mi nombre? ¿Es posible patentarlo / copyright o alguna otra cosa? ¿Se pueden proteger los algoritmos?

A su pregunta sobre derechos de autor / patente: no tendría derechos de autor sobre el algoritmo. Podrías proteger el código fuente de tu implementación específica o el lenguaje que utilizas para describirlo, pero el algoritmo mismo requiere una patente para protegerlo. Si es único y no obvio, puede patentarlo. Cuando solicite su patente, descríbala en términos genéricos, no en términos de software. Las patentes son más fuertes (es decir, no patentes de software) si la invención es genérica: un ser humano con suficiente tiempo podría hacerlo manualmente con papel y lápiz (aunque sería completamente ineficiente). Normalmente no se pueden patentar cosas “en una X” … es decir, “búsqueda de cadenas en una computadora ” o “dispositivo de entrada de pantalla táctil en un teléfono. Las patentes de software lo permiten, pero afortunadamente no son válidas en todas partes.

FWIW: si desea proteger su nombre, debe registrar el nombre como marca comercial. En los Estados Unidos, la misma agencia gubernamental (USPTO) maneja tanto las patentes como las marcas registradas.

¿Estás seguro de que quieres protegerlo? ¿Te refieres a que alguien que lo usa quiere que le pague o le dé crédito? Si me encontraba con un algoritmo como ese, sentiría que el inventor es muy egoísta. No lo usaría si pudiera ser ayudado, y no le haría el honor a su inventor de usar su nombre al referirme a ese algoritmo.

Lo que haría si creara un algoritmo tan novedoso es primero probarlo y compararlo con otros algoritmos que hacen lo mismo. A menos que el nuevo algoritmo sea mejor de alguna manera (por ejemplo, más eficiente o mucho más fácil de implementar, o tenga alguna otra ventaja teórica), es completamente inútil en un contexto académico.

Cuando haya establecido que es significativamente mejor, escribiría un artículo. No tengo experiencia en escritura, así que escribiría un primer borrador y se lo mostraría a mis amigos con más experiencia para que lo revisen. Es importante explicar cómo este algoritmo es mejor que los métodos actuales de vanguardia.

Si desea que este algoritmo lleve su nombre, debe hacer público el documento, compartir los detalles de implementación y dejar que otras personas lo usen para que puedan ver por sí mismos lo increíble que es. Mi experiencia es que los académicos son generalmente escépticos en el sentido de que si solo afirmas que tu algoritmo es bueno, nadie contará tu palabra antes de presentar una gran cantidad de evidencia.

Pero cuando realmente ha demostrado que es bueno, las personas otorgarán crédito cuando sea necesario. Por respeto, pero también por el hecho de que cuando su artículo ha sido publicado, implícitamente tiene una posición establecida. De manera similar a lo que escribí anteriormente, si alguien más inventa un algoritmo similar al suyo, entonces ELLOS necesitan presentar una gran cantidad de evidencia de que es considerablemente mejor, o su resultado es inútil.

Por favor revise la literatura existente primero. Por ejemplo, Dan Gusfield: los algoritmos sobre cadenas, árboles y secuencias deberían ser suficientes: todos los resultados útiles en la búsqueda de cadenas son bastante antiguos. La búsqueda de cadenas se considera un problema resuelto. Es muy poco probable que se te ocurra algo que sea
1. original, y
2. tiene al menos un caso de uso único en el que supera a los algoritmos existentes.

Si su algoritmo no satisface estos dos criterios, aún puede nombrarlo después de usted mismo, pero será algo inútil ya que nadie usará el nombre o el algoritmo.

Resumiendo algunas respuestas:

1) Si desea cobrar por el uso de su algoritmo, necesita una patente, no un derecho de autor.

2) Si desea asegurarse de que su nombre esté asociado con su algoritmo, publíquelo en la literatura revisada por pares correspondiente.

3) Es muy poco probable que haya descubierto un algoritmo que tenga una mejora significativa en el rendimiento en los casos en que las personas se preocupan. Para convencer a la gente de lo contrario, realmente necesita publicar el trabajo. Para publicar, deberá comparar su rendimiento con los mejores algoritmos existentes. Si no sabe cuáles son, entonces no debería estar demasiado entusiasmado con sus resultados.

Afortunadamente, no puede asegurarse de que un algoritmo lleve su nombre.

Si su algoritmo es realmente novedoso y más eficiente que los algoritmos conocidos, debe publicarlo en una revista académica. Las personas que citan su resultado pueden optar por llamarlo “algoritmo de “, pero también pueden elegir llamarlo “el algoritmo ” después de algún aspecto particularmente único del método empleado por él. De cualquier manera, el crédito por haberlo descubierto es tuyo.

No se puede “copyright” de un algoritmo. Puede probar y patentar una implementación de software de su algoritmo, pero tenga en cuenta que esto es largo, costoso y es poco probable que tenga éxito, y definitivamente no le ganará el mismo tipo de respeto que publicarlo.

Hasta donde yo sé, los softwares no pueden ser patentados. Pero las ideas podrían ser. Dado que el algoritmo es una idea que podría funcionar en cualquier plataforma, existe una buena posibilidad de que puedan patentarse. Los derechos de autor generalmente se toman para el diseño único de su software, sitio web, etc. Sobre cómo se ven. Es mejor que hablar con un abogado de patentes antes de seguir adelante. Todo lo mejor.

Si no está al tanto de cómo se hace referencia a los algoritmos por los nombres que son, me parece extremadamente improbable que sea lo suficientemente leído en la literatura para saber qué algoritmos de búsqueda de cadenas existentes se usan regularmente o tienen buenas probabilidades de crear un algoritmo de búsqueda de cadenas correcto, mucho menos eficiente.

Supongo que notó cuánto tiempo llevó una búsqueda lineal ingenua y creó algo con una estructura de datos inteligente como un árbol de prefijos u otro enfoque similarmente obvio. Al notar que esto fue más rápido que la búsqueda ingenua, te emocionaste. Sin embargo, si lees el artículo de Wikipedia sobre algoritmos de búsqueda de cadenas, verás que ya están en un estado de desarrollo muy alto. Es poco probable que un individuo que no participa en la investigación formal se encuentre con un algoritmo que pueda acercarse a aquellos que ya están en uso.

Si bien sentir que has “inventado” un algoritmo puede ser divertido (cuando era un programador principiante, pensé que había “inventado” bastantes cosas, debido a mi inexperiencia), lo harías mejor si simplemente absorber la literatura. Las probabilidades son uno de los algoritmos existentes que hace algo en lo que nunca pensó, y está por delante en términos de rendimiento.

Para abordar la última parte de la pregunta: ¿Se pueden proteger los alglrithms? Un algoritmo es esencialmente un concepto. El mayor peligro para un concepto es ser olvidado. Por lo tanto, la mejor protección es publicarlo ampliamente, enseñarlo en cada oportunidad. Anime a las personas a aprenderlo, analizarlo, hacer sus propias implementaciones y usarlo.

Si hay algo más que le interese proteger, debe ser explícito sobre qué es eso.

Si observa todos los otros algoritmos que llevan el nombre de las personas, verifique si los creadores comenzaron con la pregunta de cómo asociar su nombre con él o si los originadores lo pasaron entre los programadores que conocían y se dio cuenta porque fue mejor que lo que vino antes.

Consulte primero el algoritmo de búsqueda de cadenas de Boyer – Moore para asegurarse de tener algo nuevo y mejor.

Sí, puedes patentar un algoritmo.
No hay forma de asegurarse de que lleva su nombre, pero si es tan grande, la probabilidad de que tenga su nombre es realmente alta.

¿Has revisado los algoritmos de búsqueda de cadenas existentes? Hay muchas formas inteligentes y conocidas de acelerar una búsqueda de cadenas. Probablemente haya redescubierto uno de ellos independientemente. Y los señores Boyer y Moore tienen su nombre firmemente plantado en uno.

Aunque no estoy seguro de patentar, etc., podría simplemente marcar el algo. Cree un sitio web dedicado con gráficos, tutoriales, información sobre su algoritmo y enfatice su nombre elegido (incluso #myalgohashtags).

Si su algo se usa y su sitio web es un recurso de acceso para los usuarios, entonces probablemente elegirán el nombre.

More Interesting

¿Cuál es el libro perfecto sobre CPP y algoritmos?

¿Cómo se hace un motor de chatbot como Wit.ai o API.AI? ¿Cómo puedo hacer una versión simple? Proporcionarme algunos algoritmos y técnicas.

¿Cómo se puede incorporar un algoritmo adaptativo en un sistema operativo?

¿Qué tipos de algoritmos o códigos no valen la pena publicar en trabajos académicos de estudiantes graduados?

¿Qué es una cola en la estructura de datos?

Cómo realizar un recorrido de orden posterior en un árbol binario

¿Están sobrevalorados los algoritmos, en comparación con la escritura de software limpio, escalable y de fácil mantenimiento? Sé mi parte de algoritmos y acerté mis entrevistas. Pero en la industria, se trata de cumplir con los requisitos de software y administrar la base del código.

¿Por qué el algoritmo RSA no lleva el nombre de Ellis, Cocks y Williamson, dado que lo inventaron primero?

Cómo ordenar diagonales de una matriz 2D de manera eficiente

¿Cuántos niveles habrá en un árbol completamente binario si tiene n número de nodos?

¿Cuáles son algunos algoritmos importantes que aún no están cubiertos en Mahout? ¿Qué algoritmos de ML le gustaría agregar a la caja de herramientas?

Lenguaje ensamblador: ¿Por qué las instrucciones INC y DEC no establecen la bandera de acarreo?

¿Alguien puede enumerar las dosis de azufre homeopáticas en orden ascendente?

¿Por qué el NN recurrente agrega el paso T-1 a la entrada actual pero se concatena?

¿Tengo que estudiar matemáticas discretas, algoritmos y estructura de datos para convertirme en un buen desarrollador de Android?