2022年05月05日

splidditを使ってみた

昨日の五十嵐歩美氏の動画で紹介されていた、http://www.spliddit.org/ を使ってみた。
内容は彼女が動画で紹介していたものとほぼ同じ。
かなり現実世界を単純にしている。
Divide Goodsというデモをやってみた。ところが、5分くらいProgressinの表示がグルグル回って

We encountered a server error. Sorry for the inconvenience.

なんだよこれっ!単純なアルゴリズムなのに、それすら求められないの?
こんなんじゃ誰も使わないよ。五十嵐さん、何とかしてよ!

数学のテーマとしては面白いかもしれないけど、現実世界にはほど遠いなと感じる。
まず、欲望を数値化することが可能であるという前提。
私のモノの価値の合計と、金持ちのモノの価値の合計が同じく1000であるということはあるまい。
(デモではいくつかの商品が自分にとって何点の価値があるかを評価し、合計が1000になるようにする)
一般人がキャンプに行って遊ぶのと、金持ちがマイアミのビーチで遊ぶのは同じ価値ではない。

だから、有限の資源を金持ちと貧乏人が同じ土俵で分けるという設定に無理がある。
現実世界ではこのような状況はまずない。

年金の問題にしても、年寄世代と、若い人のどこに線を引くのか、中年世代もいづれ年金受給者になるのだから、わざわざ自分の年金を減らすような政策を支持しないだろう。
もっと大胆に大雑把に現実世界を捉えるモデルはどこかに存在しないのだろうか?


【社会の最新記事】
posted by しもす at 23:58| Comment(0) | 社会

2022年05月04日

公平な分配を数学で導けるか

初めて「社会」というカテゴリーを追加。
今年1月12日の日経に目に留まった記事があったので、後で見直そうと取っておいた。
国立情報学研究所助教授、五十嵐歩美氏のインタビュー記事。
五十嵐氏は、「限られた資源をうまく分配しなければ、妬みや不満が膨らむ。問題を解くためのアルゴリズムは不公平感を解消し、適切な分配を導けるのか」という課題を研究している。非常に興味を惹かれた。そんなアルゴリズムがあるんなら、最も公平な分配を導けるのではないか?古今東西、政治家を悩ませ、資本主義を腐敗させた分配の問題が解決できるのではないか?

まあ、ことはそんなに簡単ではないのだが・・・

とりあえず国立情報学研究所主催、五十嵐氏の講義をYouTubeで拝聴してみた。

そのサマリー。
良い分配とは、以下の2つを満たすことである。
@分配に参加するエージェント(という呼び方をしていた)が妬みや不満が最も少なくなること
A資源の配分が最大効率で行われること
単に他者を妬むことない分配を実現するなら、何も分配しなければいい。ただし、資源の最大効率配分が行われていないのだから意味がない。

彼女は数学者なので、証明することに重きを置いていた。(そこが少し残念)
離散数の資源を公平に分けることは不可能であるが、近似的に分けることは可能である。それがEF1による分配ということ。
EF1による分配を行うアルゴリズムは短時間で解を求めることができる。(と証明されている)
資源配分の最適化はパレート最適と言われ、EF1&パレート最適を最大化する問題はNP困難である。

まあ、こういう話である。

会社は労働者の賃金と株式配当、内部保留をどの比率で分配するのが適切か。
法人税をどれだけにするのが、その国において最大の効率を得られるか。
国は年金や医療費に国家の予算を使い過ぎているか?

公平性を求めるアルゴリズムがあって、それを政治や行政の中に取り込めて、誰もが納得するのであれば、政治家も選挙もいらない。アルゴリズムとそれをチューニングする一部の技術者とコンピューターがあれば、「分配」という行政サービスは事足りるのではという幻想を抱いたが、やはり幻想だったのだろうか。

こういった複雑な問題を解くカギは見つからなかった。仮にEF1&パレート最適を最大化するアルゴリズムがあったとしても、人はそれで満足することはない。公平であっても、公平であることが認識できるかどうかわからない。隣の庭の芝は青く見えるのだ。そして、公平であっても満足できなければ、行政に対して圧力を及ぼすパワーが働く。持たざるものは不満の声を届ける知恵もなく、結局政治を動かすのは持てる者である資本家である。アルゴリズムは彼らを屈することはできない。
そのアルゴリズムはせいぜい、対等である者達同士の問題解決を提供する程度だろう。

それを解決するのはアルゴリズムには期待できない。なにか別の仕組みが必要なのだと思う。

(これを解決策というには時代に逆行しているが・・)

もともと人はみな公平であるという考えは近代のものであったはず。
社会には階級があり、金持ちと貧乏がおり、職業には貴賤があった。
このような身分制度の社会では階層間の移動はできないものと認識されていたから、例え上流階級の人間が好き放題ふるまおうと、不満はあれど、下流の人々は運命として受け入れてきた。
このような社会の方が実は安定しており、不満が表に吹き出すことはない。
江戸時代やインドカースト制のように階級社会を作る方が為政者には都合の良い社会を作ることができた。
そして、ある意味人々はその現状を受け入れた。
ところが「そうではない。人はみな公平なんだ」と学校でも教えるようになったとたんに、剥き出しの不公平感が生れてくる。

五十嵐氏の分配は、「不公平感」を解消するものであったが、この不公平感も近代社会が生み出した、一つの幻想であるかもしれない。人は生まれ持って公平ではないし、そう認識する方が幸せなのかもしれないのだから。

繰り返すが、これを「公平」配分の解決法だというつもりはない。
ただ、「公平」だと教えられてるだけではなく、「公平」ではない社会だと言うことを認識し、それの達成は困難であり、人類共通の努力目標である。くらい教えて欲しい。
そうでもないと単にSNSに不満を書き出すだけの人間を大量生産するだけになってしまう。それは「公平」を解決するためのなんの役にも立っていない。むしろ、はけ口になる分、社会を「公平」に向かわせようとするエネルギーを失っているだけなのだから。

posted by しもす at 17:14| Comment(0) | 社会

2022年03月21日

こんな簡単なVBAコードが検索できなかった

Dim ce As Range
Dim va As Variant

Sub MultiSelect()

    For Each ce In Selection
        va = Range(ce.Address).Value
        MsgBox "選択された値は " & va & " です"
    Next

End Sub

このブログで具体的にコードのことを書くのは初めてだ。
一昨日VBAの簡単な(のつもりだった)コードを書くつもりが、思ったサイトを検索できなくて少し時間がかかってしまった。
要件は、Ctrlで複数のセルを選択した時に、全てのセルの値を取得して処理をするというもの。

Ctrlしながら複数セルを選択するのはWindowsの基本機能だからそんなサンプルコードはどこにでも転がっていると思っていた。ところが検索キーワード

vba activecell 選択 複数

では、「複数」に反応しない。

vba selection 選択 複数

も飛び飛びの範囲ではなく、最上下、最左右で作られる長方形の領域全てのrangeを処理するものばかり。

vba selection 選択 複数 飛び飛び
これもだめ・・

ようやく選択したセルの番地を取得するサイトは見つかったけど、

値を取得するサイトは見つからなかった。
そこで、載せてみたというわけだが、このブログが検索されることがあれば幸い。

VBAはググればやりたいことがほぼ見つかるのだが、同じようなサイトが多いから検索上位10サイトのどれを見ても、ほぼ同じような内容というものが多い。ヒットするならいいのだけど、少し違うニュアンスの処理にしたいときは、下の方に検索されることが多いということもある気がする。


posted by しもす at 14:26| Comment(0) | IT業界