1
$\begingroup$

In computational complexity theory, decision problems are typically defined as formal languages, and complexity classes are defined as the sets of the formal languages that can be parsed by machines with limited computational power.

https://en.wikipedia.org/wiki/Formal_language

Can function problems also be seen as problems of formal languages? (Without converting them to a decision problem that is).

$\endgroup$
1
  • 2
    $\begingroup$ You can think of the language $L$ of all pairs $\langle x, f(x) \rangle$. Given an input $x$ the problem is that of finding an $f(x)$ such that $\langle x, f(x) \rangle \in L$. $\endgroup$
    – Steven
    Commented Oct 15, 2023 at 14:03

1 Answer 1

1
$\begingroup$

The lemma at wikipedia is very much restricted to languages as sets of (finite length) strings. I believe that formal language theory is nowadays considered more broadly. Its "languages" may consist of infinite length strings, trees, partial orders, two-dimensional grids and graphs.

One studies ways to define (grammatical, logical, algebraical) or recognize (with automata) such languages, and given one of those language families their (combinatorial) properties.

As in the remark by Steven, one may code one type of object into another. A string function consists of string-pairs, which can be coded into single strings. Another example is the coding of a tree into a string (sometimes using brackets).

A function translating objects is sometimes called a transducer. One has for instance finite state transducers, like finite state automata but with output. In complexity theory transducers play a role in problem reductions where the transducer might be a two-tape Turing machine translating one problem into another.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.