「数理最適化」の版間の差分
Dummy index (トーク | 投稿記録) 編集の要約なし |
Dummy index (トーク | 投稿記録) 編集の要約なし |
||
| 6行目: | 6行目: | ||
大まかに言うと、態度がだいぶ違う2種類のチューニング方法がある。 | 大まかに言うと、態度がだいぶ違う2種類のチューニング方法がある。 | ||
* ノルム最適化は、形式的素数([[純正律サブグループ]] | * ノルム最適化は、形式的素数([[純正律サブグループ]]の基底のこと)だけではなく全ての音程(無限個)を対象とする、というていで、実際には無限和を回避し、音程の誤差を音程の複雑度で割ったもの({{en仮リンク|damage}})を考えることにより結局簡単な音程しか考える必要がなくなる(複雑度が有理数に関して加法的な振る舞いをするなら、例えば 9/4 の複雑度は 3/2 の複雑度の2倍になって誤差と比例するので割ったものは同じになり全ての音程のことを考えていると言えなくもない)という、よく言えばエレガントなチューニング方法である。 | ||
* ターゲット最適化は、自由に作曲者が望んだいくつかの音程だけの総合誤差を小さくする。望まれる音程は大体簡単な音程であり、格子のより外側の音程は無関係なものとして無視される。 | * ターゲット最適化は、自由に作曲者が望んだいくつかの音程だけの総合誤差を小さくする。望まれる音程は大体簡単な音程であり、格子のより外側の音程は無関係なものとして無視される。 | ||
| 12行目: | 12行目: | ||
== ノルム == | == ノルム == | ||
ノルム最適化を行うには、音程の複雑度に関する{{w|ノルム}}を導入する必要がある。技術的には、純正律サブグループを{{w|ノルム線型空間}}に{{w|埋め込み (数学)|埋め込む}} | ノルム最適化を行うには、音程の複雑度に関する{{w|ノルム}}を導入する必要がある。技術的には、純正律サブグループを{{w|ノルム線型空間}}に{{w|埋め込み (数学)|埋め込む}}ことである。これをするにはいくつかの側面で検討することがある。重みは形式的素数のそれぞれがどの程度重要なのか、傾き(skew、仮訳)は分数と合成数で扱いを変えるかどうか、である。これらはノルムの定義として書いても座標として表現してもよく、見方の違いでしかない。最後に次数(ノルムと聞いて真っ先に思い浮かべるあれ)は、斜め方向の移動がどう数えられるかを決定する。 | ||
=== 重み === | === 重み === | ||
重みは対角行列で表され、形式的素数それぞれの重要度を決定する。[[ヴァルと調律空間|tuning space]]と[[モンゾと音程空間|interval space]]は互いに双対空間であって、tuning spaceでの重要度はinterval spaceでの複雑度の評価(簡単さ・原点への近さ)に相当する。テニー重みは最もありふれた重みであり、 | |||
$$ W = \operatorname {diag} (1/\log_2 (Q)) $$ | |||
となる。ここで ''Q'' = {{val| 2 3 5 … }} でありその中の各素数 ''q'' の重要度は 1/log<sub>2</sub>(''q'')、複雑度は log<sub>2</sub>(''q'') となる。 | |||
=== 傾き === | === 傾き === | ||
各素数軸を直交させた空間は分数の形になっているものと合成数の形になっているものを同じ重要度として扱うが、分数の形のほうが重要であると考えることが多い。例えば、同じように 3 と 5 を1個づつ使っていても、5/3 のほうが 15/1 より重要だとみなされる。傾きはこれを理論に導入する。 | |||
[[ワイルノルム]]はテニー重みをベースに、軸の間の角度を 60 度に傾け(さらに線形従属な軸を加え)たものである。 | |||
=== 次数 === | === 次数 === | ||
ノルムの次数はinterval spaceでの単位長さを決定する。 | |||
* ユークリッドノルム(''L''<sup>2</sup> ノルム)は現実の距離のようなものである。 | |||
* マンハッタンノルム(''L''<sup>1</sup> ノルム)はマンハッタンの中のタクシーのようなものである。水平方向の移動と垂直方向の移動しかできないので、斜めの移動コストは両方の和となる。 | |||
* チェビシェフノルム(''L''<sup>∞</sup> ノルム)はチェスのキングのようなものである。左右に1マス、上下に1マス、斜め移動が全て1手でできる。 | |||
''L''<sup>1</sup> と ''L''<sup>∞</sup> が双対ノルム(双対空間それぞれに設定されたノルムである種の性質の良さがある組み合わせ)である。''L''<sup>2</sup> の双対は ''L''<sup>2</sup> である。 | |||
(中略) | |||
== 強制 == | == 強制 == | ||
2025年10月13日 (月) 10:04時点における版
RTTにおいて、数理最適化の技法はレギュラーテンペラメントの「誤差の小さい」チューニングを求めるために使われている。
レギュラーテンペラメントはマッピングまたはコンマ基底によって定義される。これはチューニングを特定するような情報を含んでいない。このテンペラメントを調律するには、tuning map (en) を定義する、つまり各ジェネレーターのサイズを決定しなければならない。ではそれらはどうあるべきなのか? 一般的に、テンペラメントは純正律を近似するものである。どうチューニングしてもいくつかの音程には不可避的に誤差が導入される(そもそも別々の純正音程をひとつの音程にしなければならないという無茶をやろうとしているのだ)。テンパーの肝は妥協にあり――関心のある音程の総合誤差が最小になるようなスイートスポットを見つけること、これにより元の純正律の和声をできるだけ保つようにする。
分類
大まかに言うと、態度がだいぶ違う2種類のチューニング方法がある。
- ノルム最適化は、形式的素数(純正律サブグループの基底のこと)だけではなく全ての音程(無限個)を対象とする、というていで、実際には無限和を回避し、音程の誤差を音程の複雑度で割ったもの(damage (en) )を考えることにより結局簡単な音程しか考える必要がなくなる(複雑度が有理数に関して加法的な振る舞いをするなら、例えば 9/4 の複雑度は 3/2 の複雑度の2倍になって誤差と比例するので割ったものは同じになり全ての音程のことを考えていると言えなくもない)という、よく言えばエレガントなチューニング方法である。
- ターゲット最適化は、自由に作曲者が望んだいくつかの音程だけの総合誤差を小さくする。望まれる音程は大体簡単な音程であり、格子のより外側の音程は無関係なものとして無視される。
本項目ではノルム最適化の細かい分類について述べる。ターゲット最適化についてはtarget tuning (en) を参照のこと。
ノルム
ノルム最適化を行うには、音程の複雑度に関するノルムを導入する必要がある。技術的には、純正律サブグループをノルム線型空間に埋め込むことである。これをするにはいくつかの側面で検討することがある。重みは形式的素数のそれぞれがどの程度重要なのか、傾き(skew、仮訳)は分数と合成数で扱いを変えるかどうか、である。これらはノルムの定義として書いても座標として表現してもよく、見方の違いでしかない。最後に次数(ノルムと聞いて真っ先に思い浮かべるあれ)は、斜め方向の移動がどう数えられるかを決定する。
重み
重みは対角行列で表され、形式的素数それぞれの重要度を決定する。tuning spaceとinterval spaceは互いに双対空間であって、tuning spaceでの重要度はinterval spaceでの複雑度の評価(簡単さ・原点への近さ)に相当する。テニー重みは最もありふれた重みであり、
$$ W = \operatorname {diag} (1/\log_2 (Q)) $$
となる。ここで Q = ⟨2 3 5 …] でありその中の各素数 q の重要度は 1/log2(q)、複雑度は log2(q) となる。
傾き
各素数軸を直交させた空間は分数の形になっているものと合成数の形になっているものを同じ重要度として扱うが、分数の形のほうが重要であると考えることが多い。例えば、同じように 3 と 5 を1個づつ使っていても、5/3 のほうが 15/1 より重要だとみなされる。傾きはこれを理論に導入する。
ワイルノルムはテニー重みをベースに、軸の間の角度を 60 度に傾け(さらに線形従属な軸を加え)たものである。
次数
ノルムの次数はinterval spaceでの単位長さを決定する。
- ユークリッドノルム(L2 ノルム)は現実の距離のようなものである。
- マンハッタンノルム(L1 ノルム)はマンハッタンの中のタクシーのようなものである。水平方向の移動と垂直方向の移動しかできないので、斜めの移動コストは両方の和となる。
- チェビシェフノルム(L∞ ノルム)はチェスのキングのようなものである。左右に1マス、上下に1マス、斜め移動が全て1手でできる。
L1 と L∞ が双対ノルム(双対空間それぞれに設定されたノルムである種の性質の良さがある組み合わせ)である。L2 の双対は L2 である。
(中略)