「数理最適化」の版間の差分
Dummy index (トーク | 投稿記録) 編集の要約なし |
Dummy index (トーク | 投稿記録) 編集の要約なし |
||
| 30行目: | 30行目: | ||
=== 傾き === | === 傾き === | ||
各素数軸を直交させた場合は分数の形になっているものと合成数の形になっているものを同じ重要度として扱うが、分数の形のほうが重要であると考えることが多い。例えば、同じように 3 と 5 を1個づつ使っていても、5/3 のほうが 15/1 より重要だとみなされる。傾きはこれを理論に導入する。 | |||
{{en仮リンク|ワイルノルム|Weil norm}}はテニー重みをベースに、軸の間の角度を 60 度に傾け(さらに線形従属な軸を加え)たものである。 | {{en仮リンク|ワイルノルム|Weil norm}}はテニー重みをベースに、軸の間の角度を 60 度に傾け(さらに線形従属な軸を加え)たものである。 | ||
重みと傾きは、マッピング行列に掛けることができる行列として表現できる。一般化して考えると、両者の区別は重要ではなく、まとめて重み・傾き変換行列と呼ばれる。 | |||
=== 次数 === | === 次数 === | ||
| 52行目: | 54行目: | ||
=== 制約 === | === 制約 === | ||
制約条件(等式)を追加してそれも満たす最小化問題をきちんと解くこと。制約条件を増やした結果最小化以前に解が定まってしまう場合もある(純正のままにした音程のことを{{en仮リンク|固有モンゾ|eigenmonzo}}という。ランク-''n'' | 制約条件(等式)を追加してそれも満たす最小化問題をきちんと解くこと。制約条件を増やした結果最小化以前に解が定まってしまう場合もある(純正のままにした音程のことを{{en仮リンク|固有モンゾ|eigenmonzo}}という。ランク-''n'' テンペラメントに固有モンゾを線形独立に ''n'' 個設定すると解が定まってしまう)。制約条件は最適化の{{w|実行可能領域}}を定義し、実行可能な範囲で最小化された結果をfeasibly optimalという。 | ||
== 枠組みの定式化 == | == 枠組みの定式化 == | ||
(デストレッチを除いて)テンペラメントの最適化問題は以下のように定義できる。マッピング行列 ''V''、{{en仮リンク|純正律マップ|just intonation point}} ''J'' が与えられ、重み・傾き変換行列 ''X'' | (デストレッチを除いて)テンペラメントの最適化問題は以下のように定義できる。マッピング行列 ''V''、{{en仮リンク|純正律マップ|just intonation point}} ''J'' が与えられ、重み・傾き変換行列 ''X''、(tuning spaceの?)ノルムの次数 ''q''、制約条件があるならその固有モンゾを並べた行列 ''M'' を決定する。generator tuning mapを ''G'' と書くと、 | ||
$$ | |||
\begin{align} | |||
& \text{find(動かす変数)} && G \\ | |||
& \text{that minimizes(最小化したい)} && \lVert GV_X - J_X \rVert_q \\ | |||
& \text{subject to(制約条件)} && (GV - J)M = O | |||
\end{align} | |||
$$ | |||
ここで (·)<sub>''X''</sub> は重み・傾き付き空間での変数を表し、 | |||
$$ | |||
\begin{align} | |||
V_X &= VX \\ | |||
J_X &= JX | |||
\end{align} | |||
$$ | |||
である。 | |||
== 主要なチューニング == | == 主要なチューニング == | ||
~ | ~ | ||
2025年10月17日 (金) 14:03時点における版
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 より重要だとみなされる。傾きはこれを理論に導入する。
ワイルノルム (en) はテニー重みをベースに、軸の間の角度を 60 度に傾け(さらに線形従属な軸を加え)たものである。
重みと傾きは、マッピング行列に掛けることができる行列として表現できる。一般化して考えると、両者の区別は重要ではなく、まとめて重み・傾き変換行列と呼ばれる。
次数
ノルムの次数はinterval spaceでの単位長さを決定する。
- ユークリッドノルム(L2 ノルム)は現実の直線距離のようなものである。
- マンハッタンノルム(L1 ノルム)はマンハッタンの中のタクシーのようなものである。水平方向の移動と垂直方向の移動しかできないので、斜めの移動コストは両方の和となる。
- チェビシェフノルム(L∞ ノルム)はチェスのキングのようなものである。左右に1マス、上下に1マス、斜め移動(L2 的に言えば 1.41 マス先)が全て1手でできる。
L1 と L∞ が双対ノルム(双対空間それぞれに設定されたノルムである種の性質の良さがある組み合わせ)である。L2 の双対は L2 である。
(中略)
強制
特定の音程を特定の大きさに強制する手法について解説する。オクターブを純正にすることが最もよく行われている強制であるが、他の音程も対象になりうる。2つの主流な方法がある。
デストレッチ
デストレッチは後処理により純正音程を強制する方法である。(17.1edoのGPVを17.0edoで用いるような話である。)その結果はもはや元々のノルムとは関係ないものになるが、しばしばもっと高度な手法に対する簡便な近似になる。最もありふれた例がPOTE tuning (en) である。これはたまたまCWE tuning (en) に近い結果を得られることで知られている。
制約
制約条件(等式)を追加してそれも満たす最小化問題をきちんと解くこと。制約条件を増やした結果最小化以前に解が定まってしまう場合もある(純正のままにした音程のことを固有モンゾ (en) という。ランク-n テンペラメントに固有モンゾを線形独立に n 個設定すると解が定まってしまう)。制約条件は最適化の実行可能領域を定義し、実行可能な範囲で最小化された結果をfeasibly optimalという。
枠組みの定式化
(デストレッチを除いて)テンペラメントの最適化問題は以下のように定義できる。マッピング行列 V、純正律マップ (en) J が与えられ、重み・傾き変換行列 X、(tuning spaceの?)ノルムの次数 q、制約条件があるならその固有モンゾを並べた行列 M を決定する。generator tuning mapを G と書くと、
$$ \begin{align} & \text{find(動かす変数)} && G \\ & \text{that minimizes(最小化したい)} && \lVert GV_X - J_X \rVert_q \\ & \text{subject to(制約条件)} && (GV - J)M = O \end{align} $$
ここで (·)X は重み・傾き付き空間での変数を表し、
$$ \begin{align} V_X &= VX \\ J_X &= JX \end{align} $$
である。
主要なチューニング
~