ここから本文です

組み合わせ最適化について

tekitoukさん

2013/9/1922:17:52

組み合わせ最適化について

TSPの件についてお世話になりました。

R言語にとても未来を感じました。

TSPパッケージだけでなく、組み合わせ最適化問題全般に使えるパッケージはありますか?
もしあるならC++のプログラムに、R言語のパッケージの探索処理をはさみたいのですが出来ますか?

教えてください

閲覧数:
425
回答数:
1

違反報告

ベストアンサーに選ばれた回答

buy********さん

編集あり2013/9/2116:23:41

>cafelate911さん

cafelate911さんのご質問は楽しい質問が多いですね。今回も非常に楽しい課題でした。
関係するリンク、ご質問への解答を下に書いておきます。

下にも書きましたが、C++からRを使うのではなく、RからC++を呼びだして使った方がやりやすいと思います。


***R関係のリンク

http://cran.r-project.org/web/views/
にカテゴリー毎に分類されています。

パッケージ関係のリンク元
http://cran.r-project.org/web/packages/

パッケージのABC順のリスト
http://cran.r-project.org/web/packages/available_packages_by_name.h...

TSPパッケージのページ
http://cran.r-project.org/web/packages/TSP/index.html


*** TSPと同じ種類に分類されるパッケージ

TSPは上の分類からすると Optimization に分類されてます。

http://cran.r-project.org/web/views/Optimization.html

他の近い処理を行なえるパッケージはここに含まれてる可能性高いと思います。


*** C++からRを呼ぶ為のパッケージ
他にもあると思いますが、パッケージで楽してやれる一つの方法が以下です。

RInside: C++ classes to embed R in C++ applications
http://cran.r-project.org/web/packages/RInside/index.html

他のR関係の元々そなわった方法もあるかもしれませんが、パッケージ使った方が良いと思います。


***逆にRからC++を呼びだすパッケージ
Rcpp: Seamless R and C++ Integration
http://cran.r-project.org/web/packages/Rcpp/index.html

クラスをRにExport Rcpp-modules.pdf
楽に関数をRにExport Rcpp-attributes.pdf

古い文書だとRcpp+Inlineというパッケージを使う説明になってますが、Inlineパッケージの機能がRcppにかなり取り込まれてて、Rcppのattributes関係の機能を使った方が楽に使えます。

Rcpp関係の知恵ノートかなり書いてます。


*** C++からRを呼びだすのではなく、 RからC++を呼びだした方がやりやすいと思います。
データ処理は、対話的に行ないながら、視覚化した方がやりやすいです。
メインで使うインターフェイスは、インタプリタで、視覚化が得意なRにして、関数をC++で書いて、それをRcppを使って Rの関数にしてデータ処理した方が楽だと思います。

視覚化関係もかなり優れています。


*** 日本語文書について
かなりの大学で使われだしており、非常に豊富にネット上に日本語文書あふれてます。
日本語書籍もかなり出版されてます。(高価でわたしは、あまり購入してませんが)


*** 結構あたらしい統計処理が実装されるのはやいそうです。
アメリカでも重要な申請、検証でRが使われだしてるそうで、新しいアルゴリズムがパッケージとして提供されるのも、かなりはやいそうです。
実際使いこなすのは、難しいですが。
文書がしっかりしてるパッケージと、文書が貧弱なパッケージがあり、統計の理論がわかってないと、使えない(結果はでてくるかもしれないけど、解釈できないとか、調整のしかたがわからないとか)ものが多いです。



***追記1
パッケージのソースも殆どがオープンソースです。
使いたいパッケージの処理本体がCやC++やFortranのライブラリを使っていれば、 Rをかいさずに C++からそれらを使った方が、C++ -> R -> それらのライブラリ を使うより楽かもしれません。


***追記2
*SWIG
ついさっき気付いたのですが、SWIGというツール使った方が、RCpp使うより楽かもしれません。
RからC++のコードを利用する場合。
昔見たときは3種類の言語しかサポートしてなかったのですが、何年かぶりに見ると物凄くサポート言語増えてました。


*TSPパッケージと似た種類のパッケージ
TSPパッケージと似た種類のパッケージは、上に書いた

http://cran.r-project.org/web/views/Optimization.html

のTSPの近くや同じカテゴリーに属しているものが可能性高いと思います。




よろしくお願い致します。

この回答は投票によってベストアンサーに選ばれました!

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる