openjournals / joss-reviews

Reviews for the Journal of Open Source Software
Creative Commons Zero v1.0 Universal
701 stars 36 forks source link

[REVIEW]: PySwarms: a research toolkit for Particle Swarm Optimization in Python #433

Closed whedon closed 6 years ago

whedon commented 6 years ago

Submitting author: @ljvmiranda921 (Lester James Miranda) Repository: https://github.com/ljvmiranda921/pyswarms Version: v0.1.7 Editor: @kyleniemeyer Reviewer: @stsievert Archive: 10.5281/zenodo.1145432

Status

status

Status badge code:

HTML: <a href="http://joss.theoj.org/papers/235299884212b9223bce909631e3938b"><img src="http://joss.theoj.org/papers/235299884212b9223bce909631e3938b/status.svg"></a>
Markdown: [![status](http://joss.theoj.org/papers/235299884212b9223bce909631e3938b/status.svg)](http://joss.theoj.org/papers/235299884212b9223bce909631e3938b)

Reviewers and authors:

Please avoid lengthy details of difficulties in the review thread. Instead, please create a new issue in the target repository and link to those issues (especially acceptance-blockers) in the review thread below. (For completists: if the target issue tracker is also on GitHub, linking the review thread in the issue or vice versa will create corresponding breadcrumb trails in the link target.)

Reviewer questions

@stsievert, please carry out your review in this issue by updating the checklist below (please make sure you're logged in to GitHub). The reviewer guidelines are available here: http://joss.theoj.org/about#reviewer_guidelines. Any questions/concerns please let @kyleniemeyer know.

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

whedon commented 6 years ago

Hello human, I'm @whedon. I'm here to help you with some common editorial tasks for JOSS. @stsievert it looks like you're currently assigned as the reviewer for this paper :tada:.

:star: Important :star:

If you haven't already, you should seriously consider unsubscribing from GitHub notifications for this (https://github.com/openjournals/joss-reviews) repository. As as reviewer, you're probably currently watching this repository which means for GitHub's default behaviour you will receive notifications (emails) for all JOSS reviews 😿

To fix this do the following two things:

  1. Set yourself as 'Not watching' https://github.com/openjournals/joss-reviews:

watching

  1. You may also like to change your default settings for this watching repositories in your GitHub profile here: https://github.com/settings/notifications

notifications

For a list of things I can do to help you, just type:

@whedon commands
kyleniemeyer commented 6 years ago

👋 @ljvmiranda921 @stsievert @oesteban

stsievert commented 6 years ago

I've looked this over briefly today, and here's some comments:

ljvmiranda921 commented 6 years ago

Hi @stsievert ,

Thank you so much for your comments.

An aside, PSO is a class of search algorithms that can be used to optimize functions even if they're differentiable or not. This library provides implementations of these algorithms that should solve any optimization problem. Of course, the performance will depend on the PSO parameters (you can control if the particles are independent from one another, follows the herd, etc.), and to the type of PSO used in a certain problem.

As for your comments:

Thank you so much, I hope it clears things up! 😄


[1] Dario Floreano, Peter Durr, and Claudio Mattiussi. “Neuroevolution: from architectures to learning”. In: Evolutionary Intelligence (2008). [2] Kenneth Stanley, David B. D’Ambrosio, and Jason Gauci. “A hypercube-based encoding for evolving large-scale neural networks”. In: Artificial Life (2009). [3] J. Kennedy and R.C. Eberhart, “Particle Swarm Optimization,” Proceedings of the IEEE International Joint Conference on Neural Networks, 1995, pp. 1942-1948. [4] Y. Shi and R.C. Eberhart, “A modified particle swarm optimizer,” Proceedings of the IEEE International Conference on Evolutionary Computation, 1998, pp. 69-73.

stsievert commented 6 years ago

The package is intended for swarm int. researchers & students who would like a high-level interface of implementing PSO in their problems.

Thanks – that clears this up. I don't think the above is expressed clearly in your docs. I would like to see the same sentence, maybe with "high-level interface" expanded.

Thank you so much, I hope it clears things up!

It does! Thank you.

ljvmiranda921 commented 6 years ago

Thank you @stsievert . Unfortunately, I'm on a trip so I might be able to handle this on Thursday, (UTC+09 :00).

stsievert commented 6 years ago

Unfortunately, I'm on a trip so I might be able to handle this on Thursday

No worries – take your time!

ljvmiranda921 commented 6 years ago

Hi @stsievert , I've made the changes you've requested both in Paper.md and the README.rst. Hope it's much better now. Thanks a lot!

stsievert commented 6 years ago

Thanks – this looks better! I've commented in https://github.com/ljvmiranda921/pyswarms/issues/56 for some more small edits.

kyleniemeyer commented 6 years ago

@stsievert thanks for your comments so far! I noticed that a few of the checkboxes at the top are still empty, is your review still in progress?

(Also, please do check off that first one about the conflict of interest)

ljvmiranda921 commented 6 years ago

Update: The latest commit resolves ljvmiranda921/pyswarms#56

Hi @stsievert , the latest commit applies the changes needed. 👍

stsievert commented 6 years ago

@kyleniemeyer my review is still in progress. I still need to download and verify the claims in the documentation. Plus I'd like @oesteban's comment too.

ljvmiranda921 commented 6 years ago

Update: The latest commit resolves ljvmiranda921/pyswarms#61

stsievert commented 6 years ago

I've updated the review, and all boxes are checked.

kyleniemeyer commented 6 years ago

Hi @oesteban, have you had a chance to look at the software package and paper, if you are still able to?

ljvmiranda921 commented 6 years ago

Hi @kyleniemeyer , sorry I wasn't able to check this recently. Thank you for the review @stsievert !

ljvmiranda921 commented 6 years ago

Hi @kyleniemeyer ! :) I am just wondering what the status of this would be. Thanks a lot!

kyleniemeyer commented 6 years ago

Hi @ljvmiranda921, sorry for the delay on this.

It looks like your software is good to go, but I do have some feedback on the article before accepting.

Right now, the article is a bit short; we don't want a full-length paper, but per the author guidelines we do expect between 250-1000 words. Perhaps you could describe the implementation a bit more, or better yet explain some example use cases. Examples of the software being used in research (whether published already, or in progress) are also helpful. In addition, it may be helpful to explain PSO in a sentence or two, with an appropriate reference, at the beginning.

ljvmiranda921 commented 6 years ago

Hi @kyleniemeyer , thanks a lot! I have updated the paper and the changes can be seen in ljvmiranda921/pyswarms#71 . If everything looks good, I can already merge the branch to master. :smile:

kyleniemeyer commented 6 years ago

@ljvmiranda921 looks good! Please merge that, and I'll try generating the article PDF.

ljvmiranda921 commented 6 years ago

@kyleniemeyer , merged! :+1:

kyleniemeyer commented 6 years ago

@whedon generate pdf

whedon commented 6 years ago
Attempting PDF compilation. Reticulating splines etc...
whedon commented 6 years ago
https://github.com/openjournals/joss-papers/blob/joss.00433/joss.00433/10.21105.joss.00433.pdf
kyleniemeyer commented 6 years ago

@ljvmiranda921 alright, looks good. Can you now archive the entire software repository (e.g., using Zenodo) and report the DOI back here? That'll be the last thing needed.

ljvmiranda921 commented 6 years ago

Thanks! Hmmm, I currently have a Zenodo DOI of the latest version v.0.1.7 (link, DOI: 10.5281/zenodo.996029). Do I still need to make a new one?

kyleniemeyer commented 6 years ago

It should reflect the latest version including the changes you made to address the reviewer comments here—if that version was archived in September, then I don't think it would have the newer changes you made.

ljvmiranda921 commented 6 years ago

Got it, will archive via Zenodo

ljvmiranda921 commented 6 years ago

Hi @kyleniemeyer , sorry for my confusion and I just want to be careful: if I am to archive via Zenodo, then that means I will create a new release, thus bumping the version number of my submission (just following the instructions from this link). This will then be v0.1.8 and is now "different" to v0.1.7, is it okay to proceed? Thanks a lot! :+1:

kyleniemeyer commented 6 years ago

@ljvmiranda921 yeah that's no problem, we typically expect the version number to change after the code goes through review.

ljvmiranda921 commented 6 years ago

Here is the DOI: 10.5281/zenodo.1145432 (link)

kyleniemeyer commented 6 years ago

@whedon set 10.5281/zenodo.1145432 as archive

whedon commented 6 years ago

OK. 10.5281/zenodo.1145432 is the archive.

kyleniemeyer commented 6 years ago

@arfon this is now accepted and ready to publish

ljvmiranda921 commented 6 years ago

Thank you @kyleniemeyer for helping me improve my paper, and to @stsievert for reviewing my submission! :smiley:

arfon commented 6 years ago

@stsievert - many thanks for your review and to @kyleniemeyer for editing this submission ✨. @ljvmiranda921 - your submission is now accepted into JOSS and your DOI is https://doi.org/10.21105/joss.00433 ⚡️ 🚀 💥

whedon commented 6 years ago

:tada::tada::tada: Congratulations on your paper acceptance! :tada::tada::tada:

If you would like to include a link to your paper from your README use the following code snippet:

[![DOI](http://joss.theoj.org/papers/10.21105/joss.00433/status.svg)](https://doi.org/10.21105/joss.00433)

This is how it will look in your documentation:

DOI

We need your help!

Journal of Open Source Software is a community-run journal and relies upon volunteer effort. If you'd like to support us please consider volunteering to review for us sometime in the future. You can add your name to the reviewer list here: http://joss.theoj.org/reviewer-signup.html