2019年10月25日金曜日

TeXのソースは、コマメに改行すべきである

TeX のソースで、一段落ごとに改行していたりすることがあるわけだが、やはりもっと少ない文字数で改行をすべきであると個人的には思ったりしている。

もちろん、最近の TeX のエディタは右端で折り返してくれるので、TeX のソースを読んだり書いたりするときには改行はたいして重要ではない。
ただ、コマメに改行すると以下のようなメリットがある。

1. TeXのコンパイラは「何行目にエラーがあるか」を教えてくれるので、各行の文字数が短いほどどこにエラーがあるのかを人間が確認しやすい。TeXの統合環境ならエラーのある行の番号にジャンプする機能もあるので、数行に分かれているほど作業しやすい。
2. git も行ごとに認識しているので、1行が300文字もあると1文字修正しただけで300文字の修正として登録しないとならない。

もちろんひたすら改行すればいいってものではないけど、できれば80文字ぐらいでTeXの場合は改行してほしい。


2019年10月18日金曜日

LaTeXとヴィルトの法則

ここ最近になって「LaTeX のコンパイルがどんどんと遅くなっている」と思っていて「個人の感想です」かと思っていたら、他の人も似たようなことを思っていたそうで「少なくとも2人の感想です」ということが分かった。

世の中には「ヴィルトの法則」というものがあるそうで、「ハードウェアがスピード向上はソフトウェアのスピード低下に打ち勝てない」ということで、「あぁ、まさに LaTeX のことだなぁ」と思ったりする。
2000年ごろの論文を見ると LaTeX が既に使われていて(いつから使われているのかはよく分からないけど)、20年ぐらい経って数式とか論文を書くとかいうのには、どんどんと遅くなりつつあるかと思う。

個人的に「ヴィルトの法則」だと思うもう一つはエディタの Atom で、使っている人が減っているのは、やっぱり動作の遅さが原因なんだろうなぁ、と思う。前に使っていた時は、起動するためのアイコンクリックから文字を書き始めるまでに20秒ぐらいかかって、「これはしんどいなぁ」と思ったこともある。

逆にWindowsは Windows 7 よりも Windows 10 のほうが動きが速いように感じるので「ヴィルトの法則」からは外れているのかもしれない。ただ、半年ごとのアップデートでは少しずつ遅くなっているようにも感じる。


2019年10月10日木曜日

Juliaの型宣言は、かなり厳密

数値実験をやっていて気がついたけど、Juliaの型宣言はかなり厳密に行われているようだ。

たとえば、xを変数ベクトルとして定義したときに
x[1], 1.0*x[1], x[1]+0.0
などは数学では等価として計算してほしいけど、Juliaでは異なるものとして処理されるようで、最適化ソルバーに入れて結果を見ると違う結果が出てくることがある。

JuMPなど複数のパッケージを使っているので、どのパッケージで異なる処理が入るのかを特定できていないけど、このあたりは気をつけたいところだ。

(理由として推測できるのは、C言語の int 型だと 3/2 が 1 になって、double 型だと 3.0/2.0 が 1.5 になる、みたいなこと、かと思っている。)

2019年10月2日水曜日

論文読み:On Polyhedral and Second-Order-Cone Decompositions of Semidefinite Optimization Problems

Optimization Online に出てきていた
"On Polyhedral and Second-Order-Cone Decompositions of Semidefinite Optimization Problems"
http://www.optimization-online.org/DB_HTML/2019/09/7392.html
をザックリと読んでみた。

基本的には、半正定値条件をLPだったりSOCPだったりで近似する、という話だった。
近似して解いた後に、半正定値条件を満たしていなければ、切除平面を入れて解きなおしている。

数値実験は Sparse PCA と nuclear norm 最小化を扱っていて、やはり、問題が大きなものには近似でやったほうが大きなサイズが解けるようだ。
SOCPで半正定値条件を近似すると、切除平面法の収束は普通には結構な反復回数が必要なので、Sparse PCA や nuclear norm 最小化は問題の構造が比較的簡単なのかもしれない。


2019年8月26日月曜日

台湾でタピオカミルクティーも飲んできた

今回は50嵐で2回、タピオカグリーンミルクティーを飲んできた。
1杯35元なので、120円ぐらい。
結構手軽に飲むことが出来て、日本でいうと駅の自動販売機で飲み物を買うぐらいの手軽さ。

50嵐はドリンクバーなのでタピオカ以外を選んでもいいのだけど、2011年に台湾でタピオカミルクティーを飲んでから、台湾に行くたびに、ついついタピオカを注文してしまう。個人的には紅茶のものよりも緑茶ベースの方が美味しいと思う。さらに個人的には、もともと甘めのタピオカミルクティーに砂糖を多めにしてもらうと、もっと美味しいと思う。さらにさらに個人的には、砂糖は70%か100%、氷はなしにしてもらっている。


カロリーについては個人的には気にしていないが、そういう人ばかりでもないと思うんで、自分が楽しめるように好きなようにアレンジしたらいいかと思う。


台湾で国際学会に参加してきた

今日まで台湾の高雄で国際学会に参加してきた。
今回のは、コンピュータ関係とIT関係、ということで、普段の数理最適化よりも幅広くいろんな内容を聞くことが出来て、面白かった。
あと、コンピュータやITのあたりだと、数理最適化のように数学のイメージが強いところって、あんまり人気がないのかも、と個人的には思ったりする。

まぁ、それはさておき、今回の学会では台風11号が高雄を直撃して、学会のスケジュールにも大幅な変更があった。学会運営の方も「安全でないと思ったら、無理してまで学会会場に来ずに、ホテルに留まってほしい」とアナウンスしたりで、あちこちに影響が出ていた。参加者も大変には大変だったと思うけど、学会運営の方も今回の大幅な変更には、さぞ大変だったに違いない、と思う。

2019年8月14日水曜日

ICCOPT2019に参加してきた

先週一週間かけて BerlinのICCOPT2019に参加してきたので、簡単にメモなどしておく。

今回のフライトはKLMというこでアムステルダム経由。機内では、あまり新しい映画はなかったけど「Fly me to the Saitama」があったので、これをチェック。この映画、埼玉・東京・千葉・神奈川に住んでいると面白いけど、関西あたりとかの人だと地名もよく分からないのでは?しかも、海外の人にも分かるんだろうか。例えば New York のとなりに New Jersey があるけど「Fly me to the New Jersey」とかあって日本人にどれだけ分かるだろうか、っていう感じ。
ただ、話の内容は結構シリアスなところもあり、多くの難民問題を抱えるヨーロッパの人たちに見てもらいたいところもある。

まぁ、そんなこんなでフライトは特に問題なく、ベルリンに到着。会場はTU BerlinということでISMP2012と全く同じ建物。7年前の地図を頭の中に思い出したりで、まったく迷うことなく到着。テーゲル空港に着陸してからバスを乗り継いでホテルにチェックインしてからも65分で会場に到着できる。

今回のセッションの割合からいうと、やはり機械学習とか、それに関連した内容は多い印象がある。ただ、こういった内容も数理最適化の理論的研究という意味では、ISMPのときよりも減りつつあるかも、という印象がある。
でも、それで何もかもなくなってしまう、ということでもなく、周辺分野とミックスしてきて機械学習の知見をパーツとして使っている研究も多くなったりなどなど、「機械学習」が前面に出てこなくなっている、という一面もあるんだと思う。
あと、機械学習関係は、それぞれの国で大きな予算がついているところもあったりするようで「大きな予算がないと勝負にならない分野になりつつある」という話を聞いたりすると、そういうものの考え方もあるのね、と思ったりする。

あと、数理最適化の中でも分野ごとに年齢層は結構違っていて、あるセッションでは発表も聞いている人も若い人だらけ、という分野があった。こういう分野は、将来的に成長する可能性もあると思うので、どういった内容があるかはチェックしておこうかと思う。

ちなみに、学会バンケットはボートでシュプレー川での往復で、ヘルムホルツ通りあたりで乗船と下船だったけど、アレキサンダープラッツまで行ったりで、テレビ塔があったり、博物館島の横を通ったりととても面白かった。国会議事堂や連邦首相府のすぐ近くも通ったりする。ただ、ビュッフェの料理が1か所にしかなく、長い行列になっていた。やはりICCOPTは連続最適化の集まりなので、ロジスティクス関係の最適化には弱いに違いない。

学会以外のところでは、TU Berlin からすぐ、ということで動物園駅のあたりにも寄ってきた。2012年のときとあまり変わってもいないけど(駅前のバーガーキングは撤退してた)、2016年12月にテロがあった関係で教会のあたりは車では入りにくくなっていた。

学会の方は全体的にスムーズに進み、発表件数は約700件、ということでは3年前よりも30%ぐらい増えている。
3年後の ICCOPT がどこで開催されるか、というアナウンスは特になかったけど、やはりアジア、ヨーロッパ、ときたら南北アメリカ大陸のあたりになるんだろうか?


(食事編)
今回は何泊かしたので夕飯については、みんなで食べに行ってガヤガヤ楽しんだり、ひとりでレストランに行っておとなしく楽しんでみたり、と色んなパターンが楽しめた。一番おいしかったと思うのは、シュニッツエルで長さが40㎝もあって食べきれなかったけど(下にたくさんのポテトサラダも構えている)、とにかくできたてアツアツでおいしかった。