Question:
Publier un algorithme qui n'a peut-être pas beaucoup d'applications?
Paresh
2012-10-29 20:17:54 UTC
view on stackexchange narkive permalink

Supposons que je rencontre un problème, disons dans la théorie des graphes, que je dois résoudre pour mon application, ou un problème que je viens de créer à l'improviste. Je trouve que ce n'est en aucun cas un problème standard. En outre, il peut ne pas avoir beaucoup d'applications. Je résous ensuite ce problème avec un algorithme. L'algorithme n'est pas trivial. Mes questions sont:

  1. Est-il possible de publier de tels algorithmes?
  2. Est-il même judicieux de le publier? Puisqu'il peut même ne pas avoir d'applications. Et si c'est le cas, il est probable que d'autres personnes aient résolu le même problème pour leurs applications respectives sans jamais le publier.

Je suis désolé si de telles questions spéculatives ne devraient pas être posées ici, mais J'étais curieux. Merci!

On dirait qu'il a une application.
Si vous n'êtes pas au courant, consultez l'Association of Computing Machines (ACM).
Cinq réponses:
JeffE
2012-10-29 22:26:23 UTC
view on stackexchange narkive permalink

Est-il possible de publier de tels algorithmes?

Ce n'est pas seulement possible, c'est loin plus courant que l'alternative. La plupart articles sur les algorithmes n'ont pas de vraies applications. La grande majorité est motivée par les applications, mais il existe généralement plusieurs couches d'abstraction et / ou de simplification entre le problème réellement résolu et l'application motivante. Mais même cette «motivation» est souvent une rationalisation post-hoc, ajoutée par les auteurs pour aider à attirer le lecteur dans leur article. La plupart des gens qui étudient les algorithmes le font principalement parce que les algorithmes sont cool , pas principalement parce qu'ils sont utiles.

Ou peut-être que c'est juste moi.

Est-il même judicieux de le publier?

En principe, bien sûr! Bien sûr, pour être publiable, votre algorithme doit être à la fois nouveau et intéressant, non seulement pour vous, mais pour la communauté des algorithmes dans son ensemble. Vous devez être sûr que votre problème n'a pas été résolu auparavant, et en particulier que votre algorithme n'a pas déjà été découvert et publié par quelqu'un d'autre. Vous devez également vendre le problème, l'algorithme ou les deux; il ne suffit pas que votre algorithme soit "non trivial".

Je fortement recommande d'exécuter votre algorithme devant un expert local en algorithmes, si possible. Ils peuvent reconnaître votre problème ou votre technique sous une autre forme. Au minimum, ils devraient être en mesure de vous aider à démarrer la recherche documentaire nécessaire.

Bonne chance!

Je vois. Merci! Vous mentionnez quelques bons points. Pour ce qui est de votre argument selon lequel les candidatures sont des rationalisations post-hoc, j'ai fait la même chose une fois à l'université, mais je pensais que c'était juste moi, même si elles se sont avérées être de véritables applications.
Ouais, c'est incroyable de voir combien de fois ces "applications" se révèlent être de vraies applications après tout!
Si vous aviez besoin d'une application directe pour être publié, la plupart des scientifiques n'atteindraient jamais la titularisation! :)
eykanal
2012-10-29 20:59:38 UTC
view on stackexchange narkive permalink

Je ne peux pas répondre (1), mais en ce qui concerne (2), je recommande vivement publier

Je dirais que tout universitaire individuel est un modéré à mauvais juge de l'utilité de leur propre recherche dans la pratique. Bien que votre situation puisse sembler très spécifique, il peut y avoir des applications plus générales qui ne vous sont pas immédiatement apparentes. De plus, il y a une probabilité non négligeable que quelqu'un d'autre rencontre le même problème que vous essayez actuellement de résoudre, auquel cas votre travail sera plus utile. Ce n'est pas parce que vous pensez que quelqu'un en aura besoin que personne n'en aura besoin :)

C'est un très bon point, d'être un mauvais juge de l'utilité de votre propre recherche. En pensant dans le même sens, je pense que je suis (et quelques autres personnes pourraient l'être aussi) un mauvais juge pour décider à quel point un algorithme est trivial ou non trivial. Mais si c'est anodin, il ne sera probablement pas publié de toute façon.
@Paresh Si elle était banale, elle aurait déjà été publiée ou même considérée comme notoire
@TobiasKienzler Peut-être pas s'il a peu d'utilité. Mais je comprends, une étude de la littérature est un must. Si l'algorithme * est * trivial, il y a de fortes chances qu'il soit trouvé, peut-être sous une autre forme.
@Paresh Même dans ce cas, il est préférable de republier accidentellement quelque chose que de le faire finir comme un "[il est impossible de séparer un cube en deux cubes, ou une quatrième puissance en deux quatrièmes puissances, ou en général, toute puissance supérieure à la seconde , en deux pouvoirs similaires. J'en ai découvert une preuve vraiment merveilleuse, que cette marge est trop étroite pour contenir.] (https://en.wikipedia.org/wiki/Fermat%27s_Last_Theorem) "sidenote ...
Bravo
2012-10-29 21:42:18 UTC
view on stackexchange narkive permalink

Vous devriez certainement envisager de publier l'algorithme, mais pas avant de pouvoir dire autre chose qu'un simple pseudocode.

Vous devriez commencer par une étude bibliographique appropriée des revues pertinentes pour vérifier si le problème n'a vraiment pas été abordé ailleurs, même sous un autre avatar. Si cela est fait, vous pouvez essayer de créer de la valeur pour votre algorithme en vérifiant sa complexité ou en envisageant des variantes qui pourraient l'accélérer au prix d'une certaine efficacité, peut-être. Vous pourriez alors penser à des simulations extensives qui pourraient tester et valider votre algorithme. Enfin, vous pourriez conclure en pensant à des applications pratiques où cela pourrait être pertinent.

La partie applications peut parfois ne pas être présente, mais il est parfaitement acceptable pour un article d'étendre la théorie seule, laissant aux futurs chercheurs le soin de la développer de manière appropriée.

Merci! Oui, je me rends compte qu'un pseudocode ne suffit pas. Et vous faites quelques bonnes suggestions.
gaborous
2012-10-30 02:57:06 UTC
view on stackexchange narkive permalink

Je dirais que cela dépend de la complexité de calcul que vous en tirez.

Une implémentation naïve peut toujours être faite pour n'importe quel algorithme, mais un algorithme avec un (ou du moins mieux que naïf) la complexité est toujours intéressante, peu importe si le problème qu'elle résout est très spécifique ou non: beaucoup d'algorithmes sont très spécifiques, et généralement les plus efficaces sont très TRÈS spécifiques, travaillant parfois pour des dégénérés cas qui n'arrivent presque jamais dans la vraie vie. Plus tard, quelqu'un d'autre pourra toujours améliorer votre algorithme, le généraliser à d'autres cas ou le développer pour résoudre d'autres problèmes connexes.

Donc, ma règle de base est basée sur ce que j'ai lu dans la littérature algorithmique:

  • si vous pouvez créer un algorithme qui résout un problème,
  • et la complexité est meilleure qu'une implémentation naïve (et, si vous n'êtes pas le premier à résoudre ce problème, peut-être mieux que tout autre algorithme pour le même problème dans les mêmes conditions),
  • et vous pouvez le prouver (voir Théorie de la complexité informatique),

Ensuite, publiez-le, par exemple sur arxiv.org ou vixra.org qui sont des services de pré-publication d'articles scientifiques gratuits .

Marcel Valdez Orozco
2012-10-30 02:59:41 UTC
view on stackexchange narkive permalink

Vous devriez le publier. L'histoire a montré que les articles qui n'ont pas d'application réelle au moment de leur publication peuvent avoir une application réelle identifiée dans un avenir indéterminé. Un bon exemple est le format d'opération arithmétique préfixe / suffixe. Quand cela a été créé, les ordinateurs n'existaient même pas (années 1920), mais 30 ans plus tard, Djikstra et d'autres l'ont utilisé pour une représentation efficace en mémoire des opérations arithmétiques dans les ordinateurs.

Donc, je le répète, faites publier. Peut-être que quelqu'un l'utilise après votre mort et moi, mais ce sera toujours utile.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...