非決定論が有用な概念であるのはなぜですか?


23

オートマトンは、デジタルコンピューターの抽象的なモデルです。デジタルコンピューターは完全に決定論的です。それらの状態はいつでも入力と初期状態から一意に予測可能です。

実際のシステムをモデル化しようとしているとき、なぜオートマタ理論に非決定性を含めるのですか?


1
NTMを最初に説明したのは誰で、その時点での目的/目標は何かを尋ねることはおそらく役立つでしょう。
usul

2
マシンが決定論的であるという事実は、コードが必ずしもそうであるとは限らないことに注意してください。マルチタスク/マルチスレッドを行った人は誰でも、タスクの切り替えが発生する時間は実際の用語ではしばしば予測不可能であるという事実を証明でき、その動作を確定的に見せるために明示的なインターロックを設計する必要があります。(基本的に、状態には隠し変数があります。)通信でも同じ問題が発生します。私は正直に、NDAがこれらに対処するのに役立つかどうかは知りません-私はコンピューターサイエンティストではなく、ソフトウェアエンジニアです-しかし、現実世界ではあなたの前提は楽観的です。
ケシュラム14年

マルチスレッドについて話すとき、おそらく、マシンを形成するために金属とOSを考慮する場合、おそらく非決定性があります。面白いのは、コード自体決定論的であることです。
ラファエル

ラファエル、私たちがいることを言うことができますつまり@keshlam @ 「非決定論的モデルは、コードの並列実行をシミュレートするのに有用である」
Grijesh Chauhan

@keshlam私は私の答えにあなたのポイントを追加しました、@ Tanmoy readは私の答えを更新しました。
グリジェシュショーハン

回答:


16

はい、あなたは正しいコンピューターであることが決定論的な自動化です。非決定論的モデルは理論的な目的にとってより有用であり、決定論的解法は定義(または問題文など)に対してそれほど明白ではないため、解法を見つけるのが困難です。次に、1つのアプローチは、最初に設計が比較的簡単な非決定性モデルを設計し、それを決定性モデルに変換することです。以下に、私が例で意味することを実証しようとしました。正規表現を検討してください:

(01)*01(0 + 1)*  

ここで、上記のREによって生成された言語のDFAを描画するように求められたとします。

FAの設計に関する私の知識により、(1)*正規表現の存在がFAに対応するループを必要とすることを示した とき、(2)のような操作を連結a.bすることを知っています。(q0)─a→(q1)─b→(q2)

だから、私の最初の試みで、私は次のようなNFAを描くでしょう:

イチジク

これは決定論的な解決策ではないが、与えられた正規表現を使用して簡単に設計できる非常に単純なFAに見えます。上記の正規表現とNFAの類似性を示す私の類推は以下のとおりです。

  1. 状態qのループ0のためであるべきです(01)*
  2. 01(後(01)*)与える(q0)─0→(q1)─1→(q2)
  3. (0 + 1)*ラベル0、1の 状態q 2で自己ループを生成します

私の類推によれば、私が上で描いたFAは、与えられたREから描くのは比較的簡単だと思います。幸いなことに、有限オートマトンのクラスでは、すべての非決定的モデルを同等の決定的モデルに変換できます。NFAをDFA変換するアルゴリズム方式があります。したがって、上記のNFAをDFAに簡単に変換できます。

図-2

他の部分は、残念ながら、これは例えば自動化ダウン確定的プッシュのためのクラスは、「チェック確定的なプッシュダウン自動化のクラスのサブセットであり、確定的なものに非決定論的モデルを変換することは常に可能ではありませんベン図を」とあなたは常に変換することはできませんNPDAからPDAへ。

通常、非決定論的ソリューションを決定論的ソリューションに変換できない場合、非決定論的ソリューションを使用して、完全なドメインではなくサブドメイン(または部分ドメイン)で決定論的ソリューションを定義します。または、他の方法(貪欲なアプローチなど)でソリューションを定義します。これは、当然のことながら、最適なソリューションを提供できない場合があります

非決定論は、複雑な問題/解決策を正確かつ効果的に記述するための効果的なメカニズムである場合があります。たとえば、非決定論的なマシンは、検索とバックトラックアルゴリズムのモデルとして機能します)。反対に決定論的なモデルは、効率的で最小化された冗長性の低いソリューションをよりよく表します。

ここで、ウィキペディアの非決定的アルゴリズムの使用からも引用したいと思います

アルゴリズム設計では、アルゴリズムによって解決された問題が本質的に複数の結果を許可する場合(または結果が発見される複数のパスを持つ単一の結果があり、それぞれが同等に望ましい場合)、非決定性アルゴリズムがよく使用されます。重要なのは、実行中にアルゴリズムがどの選択を行うかに関係なく、非決定的アルゴリズムが生成する結果はすべて有効です。

コンピューティング理論で最も有名な未解決の問題であるP対NPを含む、多数の問題を非決定的アルゴリズムによって概念化できます。

以下のよう@keshlamまた彼に言及したコメント:「非決定性」は、実際にあるために使用されるいくつかのプロセスの結果ではいずれの予測不可能性を参照してください。たとえば、同時プログラムは非決定的な動作を示します。同じ入力で同じプログラムを2回実行すると、異なる結果が生成される可能性があります(同時実行制御メカニズムが適用されない場合)。詳細については、「非決定性の有用性」を参照してください

また、次のリンクを読むことをお勧めします
。1. 非決定性とランダム性の違いは何ですか?
2. 9.2.2非決定的モデルと確率的モデル:(a)。非決定論的:私は自然が何をするかわからない。(b)。確率的:自然を観察し、統計を収集しています。
3. 非決定的プログラミング


@Grijest:このような膨大な詳細に感謝します。ただ1つの混乱:「反対の決定論的モデルは、効率的で最小化された冗長性の低いソリューションをよりよく表しています。」 Pより複雑ですよね?)
タンモイ14年

@tan実際に「効率的」という言葉を使うのは間違っています。そして、はい、決定論的モデルよりも非決定論的モデルの方が能力が高いというのは正しいことです。決定論的モデルでカバーされる問題のクラスは、非決定論的モデルのサブセットです。
グリジェシュショーハン14

では、どのコンテキストで決定論的モデルが非決定論的モデルよりも「効率的」であるか(先ほど述べたように)?
タンモイ14年

@tanさらに操作を実行したい場合(たとえば、FAをREに変換したり、補題をポンピングするための証拠を説明したい場合など)、決定論的モデルがより良い結果をもたらします(私は効率的だと言いました)。
グリジェシュショーハン14

@tan曖昧な文法を理解していますか?
グリジェシュチャウハン14

9

それはもっと別の方法です:数学的モデルとして、オートマトンが最初に発生しました。また、非決定論は非常に自然であり、多くの場合、自分の前にいくつかのパスが開いています。すべてのパスを何らかの順序で最後までたどり、おそらく無限の分岐で行き詰まる必要があることを指定する面倒な方法の代わりに、...ただ非決定論を使用します。

また、非決定論的なプログラミング言語は主流ではありませんが、おそらくダイクストラのGCLから始まる、輝かしい歴史があります。マシンがますます多くのコア(独立したプロセッサ)を使用するにつれて、何らかの形式の非決定論がすべてのプログラミングに浸透しています。


あなたの答えの最初の部分は事実上間違っていると思います。オートマトンが最初に生まれたのはなぜだと思いますか?DFAとNFAは、チューリングがTMを定義してから10年以上後に定義されました。cstheory
アルテムKaznatcheev 14年

@ArtemKaznatcheev、チューリングマシンモデルはオートマトンであり、少なくとも10年前まではコンピューターよりも確実に先行しています。
フォンブランド14年

はい、しかし、人々がオートマトンと言うとき、それらはTMを意味するのではなく、有限状態オートマトンとその直接の拡張(PDA、NPDAなど)を意味します。そこに歴史についてリンクした質問を参照してください。TMとフォンノイマンアーキテクチャの両方が、現在オートマタ理論と呼ばれているものとは無関係に開発されたことがわかります。
アルテムKaznatcheev 14年

4
@ ArtemKaznatcheev、DFA / NFA、PDA、LBA、TMはすべてオートマトンです。トランスデューサー(出力付きFA、出力付きPDA)も同様です。
フォンブランド14年

1
最後の段落は間違っています。PrologはGCLよりも前のものであり、現在でもまだ主流です。もちろん、Prologは、PLANNERなどの以前の非決定性プログラミング言語に基づいて設計されたものではありません。クレジットは、おそらく1965年からゴロムとBaumert「バックトラックプログラミング」に行く
ペンネーム

7

NFAは実際に使用される可能性があります。stackexchangeでこの回答を確認してください。理由は、いわば、パワーセットの構築をオンザフライでシミュレートできるからです。決定論的コンピューターでNFAをシミュレートするには、NFAが発生する可能性のある状態を追跡するだけです。通常、この数は小さいため、シミュレーションは高速になります。これは、実際のpowerset構造を実行するよりもはるかに実用的です。実際にはほとんどのセットに到達することはほとんどありませんが、結果のオートマトンは非常に大きくなる可能性があります。

非決定性は計算の複雑さにとっても重要であり、クラスNPの定義に使用されます。(クラスNPには、他の同等の定義もあります。たとえば、目撃者を使用します。)


あなたの答えを理解していますが、それを適切に把握できませんでした。
タンモイ14年

「非決定性は計算の複雑さにとっても重要であり、クラスNPの定義に使用されます。」-NPが有用な概念であると仮定した場合にのみ、非決定性の重要性をサポートします。
ラファエル

@Raphael NP完全性は、非決定性に対するスタンスに関係なく重要な概念です。
ユヴァルフィルマス

2
@Tanmoy非決定論がある場合、パワーセットの構築は必要ありませんが、残念ながら実際のコンピューターは決定論的です。それでも、最初にNFAをDFAに変換するよりも、NFAを直接シミュレートする方が簡単な場合があります。詳細については、リンク先の回答をご覧ください。
ユヴァルフィルマス14年

4

オートマトンはモデルであると正しく述べているので、非決定性が持つ可能性のある使用には2つの部分があります。

  1. 実際の問題のモデリングに使用します。

    さらに、非決定的オートマトンは、言語のよりコンパクトな表現を提供できます。たとえば、NFAの最小等価DFAが指数関数的に大きいことはよく知られています。

  2. 理論的に使用します。

    非決定性を使用すると、証明を単純化できます。たとえば、正規表現を有限オートマトンに変換するを参照してください。


4

(これは他の回答の一部の言い換えですが、とにかく投稿します:)

あなたは書く:オートマトンは、デジタルコンピュータの抽象モデルです。

同意しません!オートマトンは、コンピューターが実行する方法だけでなく、人間が計算を指定する方法をモデル化します。非決定性はまさに違いです。多くの場合、仕様は非決定的です。

たとえば、マージソートを使用します。マージソートは、ソートするアイテムをほぼ同じサイズの2つの半分に分割し、マージソートを使用して各半分をソートし、ソートした結果をマージすることでソートします。これはマージソートのアイデアを完全に指定しますが、決定論的ではありません:半分をソートする順序を指定しません(私たちが気にするすべてのために、それは同時に行われるかもしれません)、または正確な方法を指定しません分割を決定します。これらの詳細は、シングルスレッドコンピュータープログラムで実装できるマージソートの決定的な順次バージョンに到達するために入力する必要がありますが、マージソートを行う特定の方法の一部であり、マージソート自体のアイデア。

同じことは、一般的なアルゴリズムにも当てはまります-たとえば、料理のレシピ。アルゴリズムを決定論的であると定義する人もいます。その場合、これはより一般的で、私の考えでは「アルゴリズム」のより自然な概念には別の名前が必要です。

非決定的仕様を扱うという考え方は、プログラムが満たすべき前提条件と事後条件のみを与える仕様から始まり、それらから決定論的で命令的なプログラムを体系的に開発する、ダイクストラのプログラミング方法によって形式化されました。ダイクストラはおそらく次のように言ったでしょう:ソートは問題であり、私たちが確立しようとしている事前条件と事後条件の関係です。マージソート問題の仕様と決定論的解決策の中間のどこかに、それを行うためのアプローチです。特定の決定論的マージソートアルゴリズムは、具体的な決定論的ソリューションです。しかし、同じ一般的なアプローチを並行プログラムの開発に使用することができますが、最終的なプログラムは依然として非決定的です。このようなプログラムは、たとえば分散コンピューティング環境で実行できます。


2

あなたは正しい、非決定的なマシンを構築することはできません。したがって、目的はより良いマシンを構築するためのコンセプトを使用することではありません。むしろ、計算を理解しようとするとき、非決定論は有用な概念です。たとえば、計算可能性の観点から、非決定性は決定性よりも強力なものではないことがわかりました。つまり、非決定性マシンを使用して非決定性マシンをシミュレートできます。ただし、複雑さの観点から、非決定性により、たとえば、問題の効率的な解決策を見つけるのが難しいことと、解決策を検証するのが難しいこと(有名なP対NP問題)の関係を推論して理解しようとすることができます。等々。したがって、非決定論を研究する主な理由は理論的です。


文脈自由対決定論的文脈自由?
アルト14年

@altoそれはどうですか?
babou 14年

@babou「非決定論は決定論よりも強力なものではない」というのは虚偽の声明であると指摘しようとしました。NPDAはPDAよりも強力です。
アルト14年

1
@alto:いいえ、あなたは声明を誤解しています。計算可能性の観点からは、必要な計算リソースの量に関係なく解決できる問題のクラス(または必要に応じて言語)は同じであるため、完全に同等です。そして確かに、決定論的なマシンで非決定的なマシンをシミュレートできます。繰り返しますが、必要な時間とスペースは、計算可能性の文脈では重要ではありません。
マッシモカファロ14年

1
@MassimoCafaro理論的にはこれ以上同意できませんでした。実際には、セマンティクスについて口論することを好むようです。
アルト14年

2

チューリング機械の発明は1936年にチューリングによって発明されました。FSMは、同じようなモデルによって導入されたマカロックとピッツスタンフォードのCSから1943年における神経生物学的活動のモデルとして、2個の神経生理学履歴ページ

有限オートマトンがコンピュータサイエンスの分野になったというエキサイティングな歴史は、その幅広いアプリケーションを示しています。有限状態マシンの概念を最初に検討した人々には、生物学者、心理学者、数学者、エンジニア、および最初のコンピューター科学者のチームが含まれていました。彼らは皆、共通の関心事を共有しました。それは、人間の思考プロセスをモデル化することです。脳内であろうとコンピューター内であろうと。2人の神経生理学者であるWarren McCullochとWalter Pittsは、1943年に初めて有限オートマトンの説明を発表しました。オートマトン、計算とサイバネティックスの理論。その後、2人のコンピューター科学者、GH MealyとEF Mooreが、1955-56年に発行された別の論文で、理論をはるかに強力なマシンに一般化しました。有限状態マシンであるMealyマシンとMooreマシンは、それらの作業を認識して名前が付けられています。

CSの歴史家ではありませんが、形式的/理論的概念の自然な一般化/抽象化において、McCulloch-Pittsモデルには非決定性が含まれておらず、Mealy - Mooreモデルには含まれていなかったと思われます。DFAとNFAの表現力は同じであるため、実際のシステムをモデル化する場合は、どちらかを選択できます。基本的な違いの1つは、NFAが同等のDFA よりもはるかに小さい場合があることです(たとえば、データ/情報圧縮の自然な要素があります)。NFAの研究には、並列性の自然な側面/アナログもあります。


3
ちょっと私はあなたのプロフィールを見て、誰かがあなたの答えを意図的にダウン投票しているように見えます(あなたが2つだけのダウン投票を持っているところはどこでも)...この答えは間違っていません。+1
グリジェシュショーハン14

0

まず、質問に答えたすべての人に感謝したいと思います。すべての答えは重要であり、いくつかの有用な情報を追加します。しかし、初心者にとっては難しい質問であり、それを十分に理解するには十分な時間が必要です。私はすべての答えといくつかの本から得たものを要約しようとします:

実際、私は非決定論的モデルのメカニズムに関する混乱を抱えていました。非決定的マシンは、実世界には存在しない非機械的なマシンであるため、私はいつも疑問に思っていました。私は常にオートマタと、本質的に完全に決定論的な今日のコンピューターとを比較しましたが、実際には、非決定論的なモデルを適切に理解していませんでした。今、私は非決定論的モデルを非常によく理解していると思います:非決定論的マシンは、文字列の受け入れにつながる実行パスを常に辿るマシンです(バックトラッキングなしで)しかし、これは実際の生活でどのように可能ですか?:現在のコンピューターが未来を予測するほどインテリジェントになることは絶対に不可能です。では、なぜ非決定論なのでしょうか?この質問の答えは非常に難しいです。質問について私が結論付けたのは、オートマトン理論は、コンピュータが存在しなかったときに存在していました(最初の理論が実用的)。それは純粋に理論的な主題であり、非決定性の概念は直感的に来ました。主題「オートマタ理論」の動機は、実用的なコンピュータを扱うことではありませんでした。しかし、実際にコンピューターがオートマタ理論を使用するようになると、実際のコンピューターを正確に定義することができます:現代のコンピューターの限界は何ですか?アルゴリズムの問​​題はコンピューターにとって非常に複雑であり、実際的ではありませんPとNPの2つの複雑さのクラスを区別できます。比較的高速に実行できるこれらの非実用的な問題の解決策は何ですか。これは非決定性の有用性です。それは純粋に理論的な主題であり、非決定性の概念は直感的に来ました。主題「オートマタ理論」の動機は、実用的なコンピュータを扱うことではありませんでした。しかし、実際にコンピューターがオートマタ理論を使用するようになると、実際のコンピューターを正確に定義することができます:現代のコンピューターの限界は何ですか?アルゴリズムの問​​題はコンピューターにとって非常に複雑であり、実際的ではありませんPとNPの2つの複雑さのクラスを区別できます。比較的高速に実行できるこれらの非実用的な問題の解決策は何ですか。これは非決定性の有用性です。それは純粋に理論的な主題であり、非決定性の概念は直感的に来ました。主題「オートマタ理論」の動機は、実用的なコンピュータを扱うことではありませんでした。しかし、実際にコンピューターがオートマタ理論を使用するようになると、実際のコンピューターを正確に定義することができます:現代のコンピューターの限界は何ですか?アルゴリズムの問​​題はコンピューターにとって非常に複雑であり、実際的ではありませんPとNPの2つの複雑度クラスを区別できます。比較的高速に実行できるこれらの非実用的な問題の解決策は何ですか。これは非決定性の有用性です。しかし、実際にコンピューターがオートマタ理論を使用するようになると、実際のコンピューターを正確に定義することができます:現代のコンピューターの限界は何ですか?アルゴリズムの問​​題はコンピューターにとって非常に複雑であり、実際的ではありませんPとNPの2つの複雑度クラスを区別できます。比較的高速に実行できるこれらの非実用的な問題の解決策は何ですか。これは非決定性の有用性です。しかし、実際にコンピューターがオートマタ理論を使用するようになると、実際のコンピューターを正確に定義することができます:現代のコンピューターの限界は何ですか?アルゴリズムの問​​題はコンピューターにとって非常に複雑であり、実際的ではありませんPとNPの2つの複雑度クラスを区別できます。比較的高速に実行できるこれらの非実用的な問題の解決策は何ですか。これは非決定性の有用性です。比較的速く実行できるこれらの非実用的な問題の解決策は何ですか。これは非決定性の有用性です。比較的速く実行できるこれらの非実用的な問題の解決策は何ですか。これは非決定性の有用性です。

何か問題がある場合は修正してください。


非決定的マシンとは、文字列の受け入れにつながる実行パスを常にたどるマシンであると言うのは誤りです。それはしません!非決定的マシンとは、実行時に特定の非計画的(=非決定的)選択が可能なマシンです。そのようなマシンについて非現実的なものは何もありません。例えば、それらは環境にそれらの選択をするよう求めることができます。その後、これらのマシンは、特定の選択が受け入れ状態を生成すると判断したタスクに適用されます。
reinierpost 14

@reinierpost:あなたは、非決定論的なマシンが実際に存在していると言っています。
タンモイ14

はい。例は次のとおりです。車を運転していて、進むべきルートを決定していないとします。たとえば、あなたはあてもなく走り回っているかもしれませんし、人間のナビゲーターやナビゲーションデバイスから指示を受けているかもしれません。車とあなたは場所を運転するための非決定的なシステムです。あなたは交通を通って移動し、どの方向を取るべきかの選択に遭遇し続けます。あなたと車にとって、これらの選択は非決定的です。あなたはどちらの方向に進むべきかを決定していませんが、その決定を与えられれば、あなたはそれに従います。
reinierpost 14年

@reinierpost:非決定的コンピューターは存在しますか?私の答えはNOです。NP問題が存在する場合、多項式時間の複雑さが生じるためです。そうではありませんか?
タンモイ14年

コンピューターが決定論的であるか非決定論的であるかは、それらをどのように見るかに依存します。コンピューターが停止し、ユーザーが何かを実行するのを待機し、その次のアクションがユーザーの操作に依存する場合、それは非決定的な選択であると言えます。いいえ、これはP = NPを意味するものではありません。
reinierpost 14年

0

非決定性は、決定性を理解するのに役立ちますが、その逆ではないため便利です。非決定論がより大きなアイデアであると言えます。確定的チューリングマシンは、非確定的チューリングマシンの特殊なケースです。-非決定性は、今日のプラットフォームでは、特定の問題を特定するのが難しい理由を理解するのに役立ちます。決定論的コンピューティングプラットフォームでは効率的なソリューションを持たない計算上の問題が数多くありますが、非決定論的なコンピューティングプラットフォームでは効率的なソリューションが存在する可能性があることを理解しています。...状態、エンコーディング、非決定性これらはすべてリンクされていますhttp://people.cs.umass.edu/~rsnbrg/teach-eatcs.pdf

決定論的チューリングマシンでは、ルールのセットは、特定の状況で実行されるアクションを最大1つ規定します。対照的に、非決定的チューリングマシン(NTM)には、特定の状況に対して複数のアクションを規定する一連のルールがあります。 http://en.wikipedia.org/wiki/Non-deterministic_Turing_machine 複数のアクションを処理できるように状態遷移を管理できるソフトウェアボックスを構築できる場合、決定論的なマシンを超えるパフォーマンスを得ることができます。


疑わしい現実へのリンクがまったく役立つかどうかはわかりません。(少なくとも今日では)非決定論的なマシンを構築できないことは明らかであるため、完全に理論的な構造です。
ラファエル

マシンの外部の何かによって非決定的な決定を下すことにより、非決定的なマシンを構築できます。
reinierpost 14年

@ reinierpost、さらに重要なことは、指数関数的なオーバーヘッドを発生させることなく、非決定性マシンを決定性マシンとして構築できることです。サビッチの定理を参照してください。en.wikipedia.org/wiki/Savitch's_theorem
トム14年

@ラファエル、実世界への言及は重要です。キャッシングが機能する理由 最終的にすべてのデータのソースである現実世界のイベントは、たまたま正規分布に従うためです。時間的局所性を参照してください。durablescope.blogspot.co.at/2009/11/...
トム・

@ reinierpost、および外部のものはチューリングがオラクルマシンと呼んだものです。キャッシュやマルチテープマシンのようなデータから、またはランダムアクセスメモリにアクセスすることから、それを考えることができると思います。
トム14年

0

非決定論が有用な概念である理由

決定論には、対称性を破る強い傾向があります。この傾向は、逐次決定論の場合はさらに強くなりますが、非循環有向グラフの概念とそのようなグラフのトポロジカル順序により、決定論と逐次決定論の違いを無視できます。非決定性は決定性のスーパーセットであり、より多くの対称性を保持できます。問題の解決策を設計するとき、非決定論的解決策から始めると、有用な対称性を維持でき、解決策の記述を小さくコンパクトに保つ​​ことができます。対称性の破れは、非決定的ソリューションを決定的ソリューションに変換しながら、実装中に後の段階に委任できます。

多くの場合、非決定論とは、部分関数の概念が関係の概念に置き換えられることを意味します。その場合、非決定的マシンは時間的に順方向と逆方向の両方で実行できますが、これは一般的に決定的マシンでは不可能です。代わりに、決定論のための総関数と非決定シムのための多値総関数を使用する場合、対称性はもはや良くありませんが、それでも機能させることができます。


具体例を挙げていただけますか?ここで「対称性」の意味を理解するのは難しいと思います。
ラファエル

@Raphael(01)* 01(0 + 1)*を(0 + 1)* 10(10)*に反転して、反転した入力文字列を認識し、すべてを反転することでこの対称性を非決定的マシンに適用する方法矢印とスワップの開始状態と終了状態 有限状態マシンの興味深い例がはるかに多いかどうかはわかりませんが、代わりにPDAの興味深い例を思いつくことができます。
トーマスクリンペル

二項関係、準確率行列、および部分関数の可逆性に関するブログ投稿で、同様の質問に対する私の答えについて書きました。
トーマスクリンペル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.