20代SE 忘備録

普段自分が考えたことや学んだことを忘れないように書いていきます。

IPアドレスとは何か

IPアドレスとは何か

 IPアドレスという言葉はよく聞きますが、僕もあまり理解していなかったため

調べてみました。IPアドレスとはネットワーク機器の位置(通信する宛先)を表すものです。そして、数値としては32ビットの2進数で表現されます。例えば00001010011011110001011100000001というような値です。しかしこれではわかりにくいため、8ビットずつ「.」で区切って10進数で表します。つまり上の例に対しては10.111.23.1となります。普段よくみる形ですね。なお1つの区分は8ビットなので0 ~ 255までの256通りを表すことができます。したがって、IPアドレスとしては0.0.0.0~255.255.255.255までの数値で、ネットワーク機器の位置を表します。

 

 ちなみにIPアドレスはネットワークアドレスとホストアドレスからなります。ネットワークアドレスとは、その名の通りネットワークの区別をするためのアドレスで、ホストアドレスとはネットワークに属する端末のアドレスのことです。ちなみに同じネットワークに属するホストは互いに通信できますが、ほかのネットワークに属する端末にはルータ(Router、つまりRouteを決めてくれるもの)を介してではないと通信できません。ここで、IPアドレスのうちどの部分がネットワークアドレスでどの部分がホストアドレスかを決めるのがサブネットマスクです。例えば10.111.23.1のうち、10.111までがネットワークアドレスとするとサブネットマスクは255.255.0.0と表されます。つまりIPアドレスサブネットマスク論理積がネットワークアドレスとなります。

 

     IPアドレスサブネットマスク論理積 = ネットワークアドレス

                               ( 10.111.23.1 と 255.255.0.0の論理積  = 10.111.0.0)

 

 10進数での255は2進数では11111111となるので、論理積をとると、相手の数値がそのまま答えになります。ちなみに0は2進数では00000000なので、論理積をとると必ず0となります。

 以上が僕がIPアドレスについて調べた結果です。数値の意味はわかるようになりましたが、実用的な話ではありませんね。次はもっと実用的なことを調べてみます。

 

田舎のお漬物は美味しい - 市販のお漬物は甘い気がする

田舎のお漬物は美味しい - 市販のお漬物は甘い気がする

 

 今年のゴールデンウィークなので、実家に帰ってのんびり過ごしてきました。

やっぱり実家はいいですね、何年1人暮らしで実家を離れていても、実家のほうが落ち着きます。実家に帰って特に楽しみなのが、自家製の漬物です。今の時期だと高菜の漬物が食べれます。これが大好きで、高菜だけで何杯でもごはんが食べれちゃいます。

 ところで、前から思っていたことですが市販の漬物って甘くないですか。高菜もそうですが、梅干しもそうです。もちろん、蜂蜜を使った梅干しなんかは甘くなるように作られているから当然ですが、そうでない梅干しも甘いです。僕の実家ではシソと塩のみ(多分)で漬けた梅干しをつくってますので、非常にしょっぱいです。本当にしょっぱくて小さいころはあまり食べれなかったんですが、大きくなってからは逆に大好きになりました。確かに田舎の方が味付けは濃い印象ですが、一般的にはどうなんでしょうか。よその家での漬物に対する認識がよくわかりません。僕の家が特殊なんでしょうか。もしくは保存料の関係でどうしても市販の漬物は甘いのでしょうか。いずれ漬物をつくっている会社で働いている人がいたら聞いてみたいです。どうしてもっとしょっぱい梅干しを作らないのかって。

 

メナムの残照(下)を読んで

メナムの残照(下)を読んで

sy0807j.hatenablog.com

 

 とうとうメナムの残照(下)を読み終わりました。最近はあまり読書する時間がなかったので、時間がかかってしまいました。話自体は淡々と進んでいくのですが、話が進み、終盤になるとアンスマリンが彼女の気持ち、感情に素直になっていくのはいいですね。話の流れとしては、きれいにまとまっていてなんとなく予想していた通りになりました。あと読んでいてふと思ったんですが、この小説は会話が多いような気がします。気のせいかもしれませんが。。。多くの人の会話の中で話が進んでいくので、ドラマや映画にはよくあうと思います。YouTubeで映画のTrailerを見ましたが、結構おもしろそうです。残念ながら私はタイ語はわかりませんが。

 

 あとがきによると、この小説はフィクションですが時代背景は史実に従っているそうで、実際に日本軍が買収した造船所もあったそうです。戦争中、タイは日本に協力しつつも裏では、連合国とも

つながっていました。その結果終戦後も敗戦国が受けるような厳しい環境には置かれなかったそうです。さすが、世渡りがうまいです。確かにタイのお土産屋のおばちゃんからは生きる力、生きる意志を感じました。(ただ強引なだけ?)

 

f:id:SY0807J:20160424222155j:plain

 

 

メナムの残照(上)を読んで

メナムの残照(上)を読んで

 

 メナムの残照というのはタイの小説なんですが、タイでは有名で3度も映画化されたみたいです。以前タイに旅行に行った際に、タイに興味をもったので読んでみました。

 

 内容は詳しくは書きませんが、第二次世界大戦中、日本軍大尉のコボリとタイの女性のアンスマリンとの物語です。アンスマリンには彼女を好いている幼馴染がいて、彼女のその幼馴染を嫌いではありませんでした。そんな彼はイギリスに留学してしまい、彼女はコボリと出会います。敵である日本人のコボリ、しかしながら優しく真面目で彼女を好いているコボリとアンスマリンを中心に話は進んでいきます。戦時下という人々が翻弄されていく中で。。。

 またタイトルも格好良くていいですね。もともと原題としては「クーカム」というタイトルで運命の相手というそうです。話の内容としては運命の相手というほうが僕にはしっくりきますが、メナムの残照のほうが印象に残ります。話を最後までよめばメナムの残照のタイトルのほうがしっくりくるんでしょうか。

 

↓ちなみに僕がタイで撮った写真です。レンズが汚れていたのであんまりよくはないですが、ワット。。。なんとかから撮りました。ワット・アルンかな?

f:id:SY0807J:20160413223434j:plain

 

 いずれ夕日に照らされたワットアルンを見てみたいです。僕が言ったときはお昼くらいで、日差しがきつく帰りたいと思っていたので。しかしあの強烈な暑さがタイの暑さで、あの小説からもそのタイの雰囲気が伝わってくるように思えます。

 

EXCEL ソルバーによる線形計画法の解き方

EXCEL ソルバーによる線形計画法の解き方

 今まで、線形計画法について調べてみましたが、EXCELソルバーによる解き方を調べてみました。残念ながらExcel2007しかもっていないので、Excel2007での説明になります。

 

sy0807j.hatenablog.com

まず、Excelのオプション-アドインよりソルバーアドインを追加してください。

 

f:id:SY0807J:20160403103542j:plain

f:id:SY0807J:20160403103559j:plain

これで、データタブよりソルバーが追加されました。

 

f:id:SY0807J:20160403103812j:plain

 

 

さて、以下で紹介した問題を例にしてExcelソルバーの使い方を解説します。

 

sy0807j.hatenablog.com

 

f:id:SY0807J:20160403104154j:plain

まずは、Excelに以下のように入力します。

黄色のセルはそれぞれ左からx1,x2,x3の値を表します。ここのセルの値を変化させて解を見つけていきます。

 

f:id:SY0807J:20160403104750j:plain

 

また目的関数の値を式として入力します。

f:id:SY0807J:20160403105057j:plain

そして制約式も入力します。

f:id:SY0807J:20160403105523j:plain

f:id:SY0807J:20160403110103j:plain

f:id:SY0807J:20160403110132j:plain

ここで、ソルバーを起動します。そして目的関数を制約条件を入力します。

またオプションにて「線形モデルで計算」にチェックを必ず入れてください。

そして実行します。

f:id:SY0807J:20160403110657j:plain

結果として(x1,x2,x3) =(10.29412,36.02941,18.38235)という最適解が得られ、そのときの目的関数の値は-300となります。

 

 

 

 

 

線形計画法について調べてみた(代数による方法)-2

線形計画法について調べてみた(代数による方法)-2

 前回に引き続き、代数による線形計画法の解き方について具体例を用いて考えていきます。 今回は前回よりもう少し抽象的なことも考えていきます。

sy0807j.hatenablog.com

 

今回は以下の問題を例にして、考えていきます。

f:id:SY0807J:20160325235949j:plain

ところで、一般的に最適化問題は関数が最大もしくは最小となる解を求める問題ですが、どちらの場合でも統一的に考えれるように最大化問題は目的関数の符号を反転させて最小化問題にしましょう。すなわち以下の問題を解きます。

f:id:SY0807J:20160326082937j:plain

また、前回のブログでも書いたように最適解を探す際には、制約条件を満たしつつ変数の値を変えていきます。不等式ではわかりづらいため等式に変形して扱うことにします。つまり

f:id:SY0807J:20160326083709j:plain

ここで変数はすべて非負とします。また不等式を等式にするために投入したs1,s2,s3をスラック変数と呼びます。

また以下のようにおきます。

f:id:SY0807J:20160326101230j:plain

そうすると対象の問題は以下のようになります。

このように標準的な形に線形計画問題を記述することができました。

f:id:SY0807J:20160326095323j:plain

さて、では今回対象の問題を解いていきましょう。

まず、制約式①~③を満たす解として(x1,x2,x3,s1,s2,s3) = (0,0,0,200,250,300)が容易にわかります。ここから目的関数をより小さくすることができるかどうか調べましょう。

目的関数の係数ベクトルcをみると、x1,x2,x3の符号が負です。したがって、これらを大きくすると目的関数はより小さくなります。またもっとも係数が小さいx2の値から大きくしていきましょう。このとき、x1,x3は0なので、制約①~③を満たすようにを大きくすると最大50まで大きくすることができます。このとき目的関数は

 

f:id:SY0807J:20160326191952j:plain

となります。

ここで目的関数をみるとx2を減らして、x1,x3を増やすことでより目的関数を小さくできそうです。x2を50まで大きくしましたが、これは制約式②によるものなので、この式を満たしつつ目的関数の値を変化させることを考えます。式②を使って、式④からx2を消すと

z = 5x1+6/5x3+6/5s2-300となります。また、x2が50のとき、x1 = 0、x3 = 0、s2 = 0であり、それらの変数の係数が正であるため、これ以上目的関数の値を小さくできないため、(x1, x2, x3)=(0,50,0)が最適解であり、このときの目的関数の値は-300となります。

 

 

 

線形計画法について調べてみた(代数による方法)

線形計画法について調べてみた2

 

 さて、前回は図解法による線形計画問題について載せましたが、変数が多くなってくるとこの方法では手に負えません。そこで代数による方法を考えてみましょう。

 

sy0807j.hatenablog.com

 

まず問題は前回と同じで以下のようにな

っているとします。

 

f:id:SY0807J:20160321142103p:plain

 

 ここで制約条件①~④までを満たす、x1, x2の組み合わせとして(x1, x2) = (0, 0)の組み合わせがあることがわかります。このとき、目的関数の値は0です。ここから目的関数を増加させていきましょう。目的関数の係数が10と7なので、とりあえず係数が大きいx1を大きくすることで目的関数を大きくしましょう。

さて、x1を大きくするという方針は決まりましたが、制約条件①、②があるので大きくできる値には限りがあります。制約条件①をみるとx1 = 90が最大、制約条件②をみるとx1 = 40(120÷3)であることがわかります。制約条件①、②は同時に満たす必要があるため、x1= 40がとりうる最大のx1であることが分かります。(このとき制約条件②よりx2 = 0)

このときの状況は下記のようになります。

 

f:id:SY0807J:20160321142703j:plain

さて目的関数⑤をさらに大きくするにはどうすればいいでしょうか。

⑤式よりパターンとしては3パターン考えられます。

1. x1→増、x→増

2. x1→増、x→減

3. x1→減、x→増

 しかしながら②'よりx1はこれ以上大きくできないため、パターン3、つまりx1を減らしつつ、x2を増やして式⑤を大きくすることを考えましょう。

ここで、②'にはもう余裕がないため、②’を満たしつつx1を減らして、x2を増やすことを考えます。そうするとそれぞれの係数が3と5なので、x1を1減らすとx2は3/5増やせることがわかります。このとき目的関数は -10 + 7 × 3/5 = -29/5 < 0 より減少してしまうことがわかります。(x1を1減らしてもx2は最大3/5までしか増やせないです。)

したがって、これ以上目的関数を大きくすることはできないので(x1, x2) = (40, 0)が最適解であることがわかります。

 

次回はまた別の問題を例にしてもう少し具体例を扱ってみます。