Invitational round | 15 points | 30.50% | Problem statement | Official solution | Tags: Phonology
We first list all the alternation patterns:
| a | ɛ | ɔ | e | o | i | u | |
|---|---|---|---|---|---|---|---|
| a | á → àa / l_j áa → á / w_l | ɔ́ → àa / g_l | |||||
| ɛ | âaa → ɛ́ɛ / g_r, g_ɲ àa → ɛ̂ɛ / d̪_ŋ, m_c àaa → ɛ́ɛ / m_l | é → ɛ̀ɛ / d̪_l | í → jɛ̀ɛ / d_t | ||||
| ɔ | àaa → ɔ́ɔ / ŋ_r | ɔ̀ɔ → ɔ̂ɔ / ɲ_k ɔ̂ɔɔ → ɔ́ɔ / g_k | |||||
| e | êee → ée / ɲ_l èe → êe / d_ŋ | ||||||
| o | wɔ̀ɔɔ → óo / ɟ_ŋ wɔ́ɔ → ó / t_ŋ | ôoo → óo / b_k òo → ôo / r_k | ú → wòo / r_p | ||||
| i | jɛ́ɛ → í / d_l | ||||||
| u | wòoo → úu / t_r |
I've shaded the diagonal. Above the diagonal are changes that lower in height; below the diagonal are changes that raise in height.
These changes can all be described by one of the schema below (ignoring initial glides [j] and [w] for one moment):
In terms of how the raising is done: the backness is preserved, so for example we have [a] → [ɛ] → [e] → [i], and also [a] → [ɔ] → [o] → [u]. When raising from [a], it's not clear whether [ɛ] or [ɔ] should be picked, and we have both àaa → ɛ́ɛ and àaa → ɔ́ɔ. Indeed, this is what N3's referring to with "If there is more than one possible prediction, give them all".
There's only one factor of nondeterminism left: given a vowel like V̂VV, how do we know if we should stay constant or raise? If raise, by how much? It turns out that for each choice of V, what it changes into under each rule is deterministic. (It's important to keep the glides here, because otherwise we lose the ability to tell if we should generate [jɛ] or [ɛ], especially for the "V́ → V̀V" row!)
| a | ɛ | ɔ | e | o | i | u | |
|---|---|---|---|---|---|---|---|
| V̀VV → V́V | ɛ/ɔ | wɔ → o | wo → u | ||||
| V̂VV → V́V | ɛ | ɔ | e | o | |||
| V́V → V́ | a | jɛ → i | o | ||||
| V́ → V̀V | a | a | ɛ | jɛ | wo | ||
| V̀V → V̂V | ɛ | ɔ | e | o |
It's helpful to further compare this with the verb conjugation table, which provides 6 different possible directions of vowel changes.
| a | ɛ | ɔ | e | o | i | u | |
|---|---|---|---|---|---|---|---|
| root → 1st | a | a | wo | ||||
| 1st → root | ɔ/a | wo → u | |||||
| root → 3rd | ɛ | ɔ | u | ||||
| 3rd → root | a | ɔ | u | ||||
| 1st → 3rd | ɛ/ɔ | wo → u | |||||
| 3rd → 1st | a | a | wo |
Notice how these two tables match row by row? There's the following mapping:
So we can merge the two tables to fill in some gaps.
| a | ɛ | ɔ | e | o | i | u | |
|---|---|---|---|---|---|---|---|
| V̀VV → V́V = 1st → 3rd | ɛ/ɔ | wɔ → o | wo → u | ||||
| V̂VV → V́V = root → 3rd | ɛ | ɔ | e | o | u | ||
| V́V → V́ = 1st → root | a | jɛ → i | o | wo → u | |||
| V́ → V̀V = root → 1st | a | a | ɛ | jɛ | wo | ||
| V̀V → V̂V = root → 3rd | ɛ | ɔ | e | o | u |
This is sufficient for N1. In N1, we just need to check if the input or output exists in this table.
(a) Input: ɛ̀ɛ; the V̀V → V̂V row has no entry for ɛ, so doesn't follow the pattern
(b) Input: ìii; the V̀VV → V́V row has no entry for i, so doesn't follow the pattern
(c) Input: èee; the V̀VV → V́V row has no entry for e, so doesn't follow the pattern
(d) Output: ôo; the V̀V → V̂V row has o that outputs o, so follows the pattern
(e) Output: âa; the V̀V → V̂V row has no entry that outputs a, so doesn't follow the pattern
(f) Output: ûu; the V̀V → V̂V row has u that outputs u, so follows the pattern (this can only be reached if you filled in the gaps using the conjugation correspondence!)
In N2, we apply the correspondence in the other direction and predict conjugation using singular-plural.
N3 is the exact same lookup process, which I will not repeat here.