計算複雑性理論は、問題の複雑性、すなわち問題を解くことの困難さを研究する。問題はそれを解くアルゴリズムにかかる時間を問題の大きさの関数で表すことによって複雑性クラスに分類できる。当然ながら問題は難しいものも簡単なものもある。例えば、難しい問題ではその大きさに対して解くのに指数時間かかるアルゴリズムを必要とする。そのような問題として例えば巡回セールスマン問題がある。これを解くのにかかる時間は （ここで nはネットワークの大きさであり、セールスマンが訪問すべき都市の数）である。都市のネットワークが大きくなると、解である経路を求めるのにかかる時間は指数関数以上に急激に増大する。問題が理論上解くことができるとしても、実際にはそれほど単純な話ではない。その問題は非常に長い時間とあまりにも大量の空間を必要とするかもしれない。計算複雑性理論には様々な観点があり、問題を解くのにかかる時間、メモリ、その他の資源を研究する。問題の複雑性を分析する上では、時間と空間が最も重要でよく研究されている。理論上は解けるが、必要とする時間や空間があまりにも大きいため、事実上解こうとすることが現実的でない問題のクラスも存在する。そのような問題をイントラクタブル（手に負えない、処理しにくい）という。
情報理論において、アルゴリズム情報理論はデータとしての文字列の複雑性を扱う。複雑な文字列は圧縮しにくい。直観的には、文字列の圧縮率は採用したコーデックで変わってくると思われる。コーデックは理論的には任意の言語について作成でき、中には非常に小さいコマンド X が非常に長い記号列（例えば 18995316）を生成するものもありうる。任意の2つのチューリング完全な言語は互いを実装できる。2つの言語による符号化の長さは変換言語の長さを上限として様々となるが、データ文字列が十分大きければその差はほとんど無視できる。アルゴリズム的な複雑性の尺度は、無作為なノイズに高い値を割り当てる傾向がある。しかし、複雑系を研究する分野では無作為性と複雑性を区別して扱う。情報量も複雑性の尺度として情報理論で使われることがある。
システムの研究のひとつとしての、複雑 (complex) なシステム、すなわち複雑系 (complex system) の研究の歴史は長い。複雑系は生物的なもの、経済的なもの、テクノロジー的なものなど様々なものが存在する。最近では、実世界の社会認知的システムの研究も複雑系を扱っている。複雑系は高次元で非線形であることが多く、モデル化が難しい。状況によっては低次元の振る舞いをすることもある。
複雑性は我々の周囲に常に存在しているため、様々な科学分野で複雑系や現象の研究が行われてきた。実際、科学者によっては複雑なもの（無作為ではないが変化を示すもの）だけが興味に値するという者もいる。日本語では「複雑」だが、英語では類義語として「complex」と「complicated」がある。これを今日のシステムに対応させれば、無数の相互接続された配管と効率的な統合ソリューションの違いに相当する。つまり、「complex」は「independent」（独立した）の反対で、「complicated」は「simple」（単純な）の反対である。このような考え方からいくつかの分野で複雑性が定義されてきたのに対して、最近では複雑性を研究する分野に学際的な再編成の動きが見られ、アリ塚の複雑性、脳の複雑性、証券市場の複雑性などの研究が行われている。そのような学際的分野の1つに relational order theories がある。
組織化されていない複雑性の源は、システムの部品数が膨大で、システム内の要素間の相関が欠如していることである。組織化された複雑性の源については今のところ統一的な見解は存在しないが、無作為的でないということは要素間に相関があることを暗示している。例えば、Robert Ulanowicz による生態系の扱いを参照。組織化されていない複雑性と同じく、システムの部品数や部品間の関係の数が重要かもしれないが、重要か重要でないかを区別する統一的な規則は存在しない。オブジェクトあるいはシステムの複雑性は相対的特性である。例えば、計算問題の複雑性を計算にかかる時間としたとき、テープが1本のチューリングマシンよりもテープが複数本のチューリングマシンの方が計算にかかる時間が少なくなる。ランダムアクセス機械はさらに時間を削減でき、帰納的チューリングマシンは関数や言語や集合の複雑性クラスさえも減少させることができる。このようにツールの選択が複雑性の重要な要因となりうる。
ダイヤの構成は運輸部輸送課（及び相当部門）の担当である。「スジ屋」と俗称される専門職がここに存在する。職名の由来はダイヤの複雑な線（筋）を引くことに由来する。その作成には路線ごとの輸送需要や線路容量、車両の速度種別や運用効率、乗務員の運用等が勘案される。所要時間については、車両性能や制限速度に基づき地点ごとの速度を表した運転曲線（ランカーブ）から基準運転時分を定め、そこに停車時分や余裕時分を加えて決めている。普通列車と比べ、優等列車（特急・急行など）の運転時刻が優先的に決められる場合が多い。また、線路の容量をフルに使うのではなく、ある程度の余裕を見込む必要がある。特に保線作業を行うために必要な時間を確保する必要があり（これを「保守間合い」という）、通常は夜間に保守間合いが確保されるが、主要な路線においては夜行列車や貨物列車の運転との兼ね合いが最大の問題となる。また、昼間に大規模に列車を運休してリフレッシュ工事を行う路線もある。手順としては最初に1時間ごとの大まかなダイヤグラムを作り、その後10分ごと数分ごととダイヤグラムを作っていき最終的には15秒単位の二分目ダイヤを作っていく。路線によっては一分目ダイヤを使うこともある。混雑している路線でより多くの列車を運行するためには、閉塞区間の距離を見直す方法や、新型の運行保安装置にしたりといった方法がある。折り返し駅における計画はボトルネックとなりやすく、駅の配線を最適化したり、乗務員の折り返しを同じ列車ではなく後の列車にする「段下げ運用」を採用したりといった方法が採られる。また列車間隔が短い路線において乗降客数が多い駅では、2つの番線に交互に列車を停車させる相互発着を採用するところもある。