(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023164278
(43)【公開日】2023-11-10
(54)【発明の名称】制御システム上の機能の実行を最適化する方法およびそのための装置
(51)【国際特許分類】
G05B 23/02 20060101AFI20231102BHJP
【FI】
G05B23/02 Z
【審査請求】有
【請求項の数】21
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023010931
(22)【出願日】2023-01-27
(31)【優先権主張番号】17/731,586
(32)【優先日】2022-04-28
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】521042770
【氏名又は名称】ウーブン・バイ・トヨタ株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【弁理士】
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100147555
【弁理士】
【氏名又は名称】伊藤 公一
(74)【代理人】
【識別番号】100123593
【弁理士】
【氏名又は名称】関根 宣夫
(74)【代理人】
【識別番号】100133835
【弁理士】
【氏名又は名称】河野 努
(74)【代理人】
【識別番号】100167461
【弁理士】
【氏名又は名称】上木 亮平
(72)【発明者】
【氏名】ジャーン-フランスワー バスティエン
(72)【発明者】
【氏名】ドミトリ ラパニク
【テーマコード(参考)】
3C223
【Fターム(参考)】
3C223AA16
3C223BA02
3C223BB05
3C223BB08
3C223EB07
3C223FF02
3C223FF04
3C223FF12
3C223FF13
3C223FF22
3C223FF24
3C223FF26
3C223FF42
3C223HH02
(57)【要約】
【課題】制御システム上の機能の実行を最適化する方法およびそのための装置の提供。
【解決手段】複数のハードウェアコンポーネントを含む制御システム上での制御機能の実行を最適化する方法には、複数のハードウェアコンポーネントの各々のハードウェアコンポーネントの処理能力および通信能力を決定するステップと;複数のハードウェアコンポーネントの各々のハードウェアコンポーネントの処理能力および通信能力に基づいて、複数のハードウェアコンポーネントを用いて制御機能を実行するための複数のソリューションを生成するステップと;各ソリューションの望ましさに基づいて複数の生成されたソリューションにスコア付けするステップと;最高の望ましさスコアを有するソリューションを選択するステップと;選択されたソリューションに基づいて制御機能を実行するように制御システムを制御するステップと;が含まれる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数のハードウェアコンポーネントを含む制御システム上での制御機能の実行を最適化する方法において:
前記複数のハードウェアコンポーネントの各々のハードウェアコンポーネントの処理能力および通信能力を決定するステップと;
前記複数のハードウェアコンポーネントの各々のハードウェアコンポーネントの処理能力および通信能力に基づいて、前記複数のハードウェアコンポーネントを用いて前記制御機能を実行するための複数のソリューションを生成するステップと;
各ソリューションの望ましさに基づいて前記複数の生成されたソリューションにスコア付けするステップと;
最高の望ましさスコアを有するソリューションを選択するステップと;
前記選択されたソリューションに基づいて前記制御機能を実行するように前記制御システムを制御するステップと;
を含む方法。
【請求項2】
各ソリューションの望ましさを増大させるために前記複数の生成されたソリューションを最適化するステップをさらに含む、
請求項1に記載の方法。
【請求項3】
前記複数の生成されたソリューションの中から1つ以上の有効なソリューションを得るステップであって、前記有効なソリューションが前記複数のハードウェアコンポーネントを用いて前記制御機能を実行する能力を有しているステップと;
機械学習を用いて、改善された望ましさスコアを有する1つ以上の最適化されたソリューションを得るように、前記有効なソリューションを修正するステップと;
をさらに含む、請求項1又は請求項2に記載の方法。
【請求項4】
機械学習を用いて各ソリューションの前記望ましさスコアを改善するように前記複数の生成されたソリューションを修正するステップと;
最高の望ましさスコアを有する前記複数の修正済みソリューションの中から1つのソリューションを、前記選択されたソリューションとして選択するステップと;
をさらに含む請求項1又は請求項2に記載の方法。
【請求項5】
予め決定された期間にわたって前記複数のソリューションを生成するステップをさらに含み、
ここで前記期間の終りにおいて最高の望ましさスコアを有するソリューションが、前記選択されたソリューションとして選択される、請求項1又は請求項2に記載の方法。
【請求項6】
予め決定された閾値より高い望ましさスコアを有するソリューションが得られたのに応答して、前記複数のソリューションの生成を終了するステップをさらに含む、請求項1又は請求項2に記載の方法。
【請求項7】
各々の生成されたソリューションは、前記複数のハードウェアコンポーネントのうち制御機能が実行される1つ以上のハードウェアコンポーネントと、前記1つ以上のハードウェアコンポーネントとの間でデータが送信される経路と、を標示する、
請求項1又は請求項2に記載の方法。
【請求項8】
命令を記憶する少なくとも1つのメモリと;
前記命令を実行するように構成された少なくとも1つの主プロセッサと;
前記少なくとも1つの主プロセッサと通信状態にあり、各々少なくとも1つのプロセッサを含む、複数のハードウェアコンポーネントと;
を含む制御システムにおいて、前記少なくとも1つの主プロセッサが:
前記複数のハードウェアコンポーネントの各々のハードウェアコンポーネントの処理能力および通信能力を決定し;
前記複数のハードウェアコンポーネントの各々のハードウェアコンポーネントの処理能力および通信能力に基づいて、前記複数のハードウェアコンポーネントを用いて前記制御機能を実行するための複数のソリューションを生成し;
各ソリューションの望ましさに基づいて、前記複数の生成されたソリューションをスコア付けし;
最高の望ましさスコアを有するソリューションを選択し;
前記選択されたソリューションに基づいて前記制御機能を実行するように前記制御システムを制御する;
ための命令を実行するように構成されている、
制御システム。
【請求項9】
前記少なくとも1つの主プロセッサがさらに、各ソリューションの望ましさを増大させるために前記複数の生成されたソリューションを最適化するための命令を実行するように構成されている、請求項8に記載のシステム。
【請求項10】
前記少なくとも1つの主プロセッサがさらに、
前記複数の生成されたソリューションの中から、前記複数のハードウェアコンポーネントを用いて前記制御機能を実行する能力を有する1つ以上の有効なソリューションを得;かつ
機械学習を用いて、改善された望ましさスコアを有する1つ以上の最適化されたソリューションを得るように、前記有効なソリューションを修正する;
ための命令を実行するように構成されている、請求項8又は請求項9に記載のシステム。
【請求項11】
前記少なくとも1つの主プロセッサがさらに、
機械学習を用いて各ソリューションの前記望ましさスコアを改善するように前記複数の生成されたソリューションを修正し;かつ
最高の望ましさスコアを有する前記複数の修正済みソリューションの中から1つのソリューションを、前記選択されたソリューションとして選択する;
ための命令を実行するように構成されている、請求項8又は請求項9に記載のシステム。
【請求項12】
前記少なくとも1つの主プロセッサがさらに、予め決定された期間にわたって前記複数のソリューションを生成するための命令を実行するように構成されており、
ここで前記期間の終りにおいて最高の望ましさスコアを有するソリューションが、前記選択されたソリューションとして選択される、
請求項8又は請求項9に記載のシステム。
【請求項13】
前記少なくとも1つの主プロセッサがさらに、予め決定された閾値より高い望ましさスコアを有するソリューションが得られたのに応答して前記複数のソリューションの生成を終了するための命令を実行するように構成されている、請求項8又は請求項9に記載のシステム。
【請求項14】
各々の生成されたソリューションは、前記複数のハードウェアコンポーネントのうち制御機能が実行される1つ以上のハードウェアコンポーネント、および前記1つ以上のハードウェアコンポーネントへおよびこのハードウェアコンポーネントからデータが送信される経路を標示する、請求項8又は請求項9に記載のシステム。
【請求項15】
電子デバイスの少なくとも1つのプロセッサにより実行された時点で、前記少なくとも1つのプロセッサに、:
前記複数のハードウェアコンポーネントの各々のハードウェアコンポーネントの処理能力および通信能力を決定させ;
前記複数のハードウェアコンポーネントの各々のハードウェアコンポーネントの処理能力および通信能力に基づいて、前記複数のハードウェアコンポーネントを用いて前記制御機能を実行するための複数のソリューションを生成させ;
各ソリューションの望ましさに基づいて前記複数の生成されたソリューションをスコア付けさせ;
最高の望ましさスコアを有するソリューションを選択させ;
前記選択されたソリューションに基づいて前記制御機能を実行するように前記制御システムを制御させる;
命令を記憶する非一時的コンピュータ可読媒体。
【請求項16】
前記少なくとも1つのプロセッサがさらに、各ソリューションの望ましさを増大させるために前記複数の生成されたソリューションを最適化するための命令を実行するように構成されている、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記少なくとも1つのプロセッサがさらに:
前記複数の生成されたソリューションの中から、前記複数のハードウェアコンポーネントを用いて前記制御機能を実行する能力を有する1つ以上の有効なソリューションを得;かつ
機械学習を用いて、改善された望ましさスコアを有する1つ以上の最適化されたソリューションを得るように、前記有効なソリューションを修正する;
ための命令を実行するように構成されている、請求項15又は請求項16に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記少なくとも1つのプロセッサがさらに:
機械学習を用いて各ソリューションの前記望ましさスコアを改善するように前記複数の生成されたソリューションを修正し;
最高の望ましさスコアを有する前記複数の修正済みソリューションの中から1つのソリューションを、前記選択されたソリューションとして選択する;
ための命令を実行するように構成されている、請求項15又は請求項16に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記少なくとも1つのプロセッサがさらに、予め決定された期間にわたって前記複数のソリューションを生成するように構成されており、
ここで前記期間の終りにおいて最高の望ましさスコアを有するソリューションが、前記選択されたソリューションとして選択される、
請求項15又は請求項16に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記少なくとも1つのプロセッサがさらに、予め決定された閾値より高い望ましさスコアを有するソリューションが得られたのに応答して前記複数のソリューションの生成を終了するための命令を実行するように構成されている、請求項15又は請求項16に記載の非一時的コンピュータ可読媒体。
【請求項21】
各々の生成されたソリューションは、前記複数のハードウェアコンポーネントのうち制御機能が実行される1つ以上のハードウェアコンポーネント、および前記1つ以上のハードウェアコンポーネントへおよびこのハードウェアコンポーネントからデータが送信される経路を標示する、請求項15又は請求項16に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御システムの動作に関し、より詳細には、ハードウェアコンポーネントおよびハードウェアコンポーネント間の通信接続の特性に基づいて、多数のハードウェアコンポーネント上で制御機能を実行するために制御システムを最適化することに関する。
【背景技術】
【0002】
埋込み型ハードウェアおよびソフトウェアを格納するデバイスのための制御システムの開発が進むにつれて、デバイス内で使用されるハードウェアコンポーネントの開発速度もまた進展してきた。デバイスのオペレーティングシステムプラットフォーム、ライブラリまたはプラットフォーム上のアプリケーションが開発されるとき、オペレーティングシステムは、デバイス内に含まれるハードウェアコンポーネント(例えばセンサ、マイクロプロセッサ、カメラなど)向けに特定的に設計される。したがって、新しいハードウェアコンポーネントを含む新規モデルを設計する場合、または、既存モデル上のハードウェアコンポーネントを異なるハードウェアコンポーネントで置換する場合、ソフトウェアの互換性および継続的機能性を保証するために、ソフトウェアを手作業で更新しなければならない。
【発明の概要】
【0003】
新しいハードウェアコンポーネントを含むデバイスを設計する場合、または既存のデバイス上のハードウェアコンポーネントを異なるハードウェアコンポーネントで置換する場合、ソフトウェアエンジニアには、プロセスが実行される「場所」およびオペレーティングシステムを開発するときにデバイス内でデータ信号が送信される「経路」を手作業で決定することが求められる。このプロセスは時間がかかり、労働集約的であり、ソフトウェア内でのテストやシミュレーションが困難であり、既存のオペレーティングシステムプラットフォームにハードウェアコンポーネントを組込む速度は制限される。
【0004】
本開示は、問題に対するソリューションが実行される「場所」および「経路」を、事前に静的にあるいは実行時に動的に決定する問題解決アーキテクチャを提供する。
【0005】
本開示の一態様によると、複数のハードウェアコンポーネントを含む制御システム上での制御機能の実行を最適化する方法には、複数のハードウェアコンポーネントの各々のハードウェアコンポーネントの処理能力および通信能力を決定するステップと;複数のハードウェアコンポーネントの各々のハードウェアコンポーネントの処理能力および通信能力に基づいて、複数のハードウェアコンポーネントを用いて制御機能を実行するための複数のソリューションを生成するステップと;各ソリューションの望ましさに基づいて複数の生成されたソリューションにスコア付けするステップと;最高の望ましさスコアを有するソリューションを選択するステップと;選択されたソリューションに基づいて制御機能を実行するように制御システムを制御するステップと;が含まれる。
【0006】
該方法は、各ソリューションの望ましさを増大させるために複数の生成されたソリューションを最適化するステップをさらに含み得る。
【0007】
該方法は、複数の生成されたソリューションの中から1つ以上の有効なソリューションを得るステップであって、有効なソリューションが複数のハードウェアコンポーネントを用いて制御機能を実行する能力を有しているステップと;機械学習を用いて、改善された望ましさスコアを有する1つ以上の最適化されたソリューションを得るように、有効なソリューションを修正するステップと;をさらに含み得る。
【0008】
該方法は、機械学習を用いて各ソリューションの望ましさスコアを改善するように複数の生成されたソリューションを修正するステップと;最高の望ましさスコアを有する複数の修正済みソリューションの中から1つのソリューションを、選択されたソリューションとして選択するステップと;をさらに含み得る。
【0009】
該方法は、予め決定された期間にわたって複数のソリューションを生成するステップをさらに含み得る。期間の終りにおいて最高の望ましさスコアを有するソリューションが、選択されたソリューションとして選択され得る。
【0010】
該方法は、予め決定された閾値より高い望ましさスコアを有するソリューションが得られたのに応答して複数のソリューションの生成を終了するステップをさらに含み得る。
【0011】
各々の生成されたソリューションは、複数のハードウェアコンポーネントのうち制御機能が実行される1つ以上のハードウェアコンポーネント、および1つ以上のハードウェアコンポーネントへおよびこのハードウェアコンポーネントからデータが送信される経路を標示し得る。
【0012】
本開示の別の態様によると、制御システムには、命令を記憶する少なくとも1つのメモリと;命令を実行するように構成された少なくとも1つの主プロセッサと;少なくとも1つの主プロセッサと通信状態にあり、各々少なくとも1つのプロセッサを含む、複数のハードウェアコンポーネントと;が含まれ得る。少なくとも1つの主プロセッサは:複数のハードウェアコンポーネントの各々のハードウェアコンポーネントの処理能力および通信能力を決定し;複数のハードウェアコンポーネントの各々のハードウェアコンポーネントの処理能力および通信能力に基づいて、複数のハードウェアコンポーネントを用いて制御機能を実行するための複数のソリューションを生成し;各ソリューションの望ましさに基づいて、複数の生成されたソリューションにスコア付けし;最高の望ましさスコアを有するソリューションを選択し;選択されたソリューションに基づいて制御機能を実行するように制御システムを制御する;ための命令を実行するように構成されていてよい。
【0013】
少なくとも1つの主プロセッサはさらに、各ソリューションの望ましさを増大させるために複数の生成されたソリューションを最適化するための命令を実行するように構成され得る。
【0014】
少なくとも1つの主プロセッサはさらに、複数の生成されたソリューションの中から、複数のハードウェアコンポーネントを用いて制御機能を実行する能力を有する1つ以上の有効なソリューションを得;かつ機械学習を用いて、改善された望ましさスコアを有する1つ以上の最適化されたソリューションを得るように、有効なソリューションを修正する;ための命令を実行するように構成されていてよい。
【0015】
少なくとも1つの主プロセッサはさらに、機械学習を用いて各ソリューションの望ましさスコアを改善するように複数の生成されたソリューションを修正し;かつ最高の望ましさスコアを有する複数の修正済みソリューションの中から1つのソリューションを、選択されたソリューションとして選択する;ための命令を実行するように構成されていてよい。
【0016】
少なくとも1つの主プロセッサはさらに、予め決定された期間にわたって複数のソリューションを生成するための命令を実行するように構成されていてよい。期間の終りにおいて最高の望ましさスコアを有するソリューションが、選択されたソリューションとして選択され得る。
【0017】
少なくとも1つの主プロセッサはさらに、予め決定された閾値より高い望ましさスコアを有するソリューションが得られたのに応答して複数のソリューションの生成を終了するための命令を実行するように構成されていてよい。
【0018】
各々の生成されたソリューションは、複数のハードウェアコンポーネントのうち制御機能が実行される1つ以上のハードウェアコンポーネント、および1つ以上のハードウェアコンポーネントへおよびこのハードウェアコンポーネントからデータが送信される経路を標示する。
【0019】
本開示のさらに別の態様によると、非一時的コンピュータ可読媒体は、電子デバイスの少なくとも1つのプロセッサにより実行された時点で、少なくとも1つのプロセッサに:複数のハードウェアコンポーネントの各々のハードウェアコンポーネントの処理能力および通信能力を決定させ;複数のハードウェアコンポーネントの各々のハードウェアコンポーネントの処理能力および通信能力に基づいて、複数のハードウェアコンポーネントを用いて制御機能を実行するための複数のソリューションを生成させ;各ソリューションの望ましさに基づいて複数の生成されたソリューションにスコア付けさせ;最高の望ましさスコアを有するソリューションを選択させ;選択されたソリューションに基づいて制御機能を実行するように制御システムを制御させる;命令を記憶することができる。
【0020】
少なくとも1つのプロセッサはさらに、各ソリューションの望ましさを増大させるために複数の生成されたソリューションを最適化するための命令を実行するように構成されていてよい。
【0021】
少なくとも1つのプロセッサはさらに:複数の生成されたソリューションの中から、複数のハードウェアコンポーネントを用いて制御機能を実行する能力を有する1つ以上の有効なソリューションを得;かつ機械学習を用いて、改善された望ましさスコアを有する1つ以上の最適化されたソリューションを得るように、有効なソリューションを修正する;ための命令を実行するように構成されていてよい。
【0022】
少なくとも1つのプロセッサはさらに:機械学習を用いて各ソリューションの望ましさスコアを改善するように複数の生成されたソリューションを修正し;最高の望ましさスコアを有する複数の修正済みソリューションの中から1つのソリューションを、選択されたソリューションとして選択する;ための命令を実行するように構成されていてよい。
【0023】
少なくとも1つのプロセッサはさらに、予め決定された期間にわたって複数のソリューションを生成するように構成されていてよい。期間の終りにおいて最高の望ましさスコアを有するソリューションが、選択されたソリューションとして選択され得る。
【0024】
少なくとも1つのプロセッサはさらに、予め決定された閾値より高い望ましさスコアを有するソリューションが得られたのに応答して複数のソリューションの生成を終了するための命令を実行するように構成されていてよい。
【0025】
各々の生成されたソリューションは、複数のハードウェアコンポーネントのうち制御機能が実行される1つ以上のハードウェアコンポーネント、および1つ以上のハードウェアコンポーネントへおよびこのハードウェアコンポーネントからデータが送信される経路を標示することができる。
【0026】
本開示の例示的実施形態の特徴、利点および技術的および工業的意義が以下で添付図面に関連して説明されるものとし、図面中では同様の番号が同様の要素を示している。
【図面の簡単な説明】
【0027】
【
図1】
図1は、一実施形態に係る制御システム上での一機能の実行を最適化する方法の概要の流れ図である。
【
図2】
図2は、一実施形態に係る例示的制御システムの略図である。
【
図3】
図3は、一実施形態に係る制御システムの例示的ハードウェアコンポーネントの略図である。
【発明を実施するための形態】
【0028】
本開示に係る方法は、1つの機能が実行される「場所」および「経路」を、事前に静的にあるいは実行時に動的に決定する制御システム最適化アーキテクチャを提供する。車両のような複雑な制御システムを有するデバイス、モノのインターネット(IoT)上で動作するデバイスなどにおいては、全て1つのプログラムまたはそのサブセットを実行する能力を有するコンピュータプロセッサおよび/または特定用途向けコンピュータデバイスを含む複数のハードウェアコンポーネントが存在し得る。これらのコンポーネントの各々は、異なるタイプの接続を用いて相互接続され得、異なるソフトウェアベースのメカニズムにより内部的に通信可能である。各接続タイプは、ハードウェアコンポーネントの能力により制限される異なる特性を有し得る。さらに、各ハードウェアコンポーネントは、ハードウェアコンポーネント内に含まれるプロセッサのタイプおよびメモリなどの他の資源の利用可能性に基づいて、異なる処理能力を有し得る。提供されている制御システム最適化アーキテクチャは、所与のハードウェアコンポーネントを用いてどのようにして所望の機能を最良の形で実施すべきかを、事前に静的にあるいは実行時に動的に決定することができる。
【0029】
場所および経路についてのソリューションは、コードをどこで実行するか、そして通信がどのように搬送されるかを決定する。例えば、多数のコンピュータ電子制御ユニット(ECU)を搭載した接続された車両において、各ECU上ならびにクラウド内でコードを実行する。1つのECU中では、主中央処理ユニット(CPU)上、アクセラレータ、グラフィクス・プロセッシング・ユニット(GPU)上でコードを実行し得ると考えられ、特定のコアならびに特定のハイパバイザ、オペレーティングシステム、プロセスまたはスレッドに対し付着可能であると考えられる。状況(例えば冗長性のニーズ、電力制限、接続性の問題など)に対し動的に適応するため、1つのまたは多数のコードコピーが存在し得る。異なる機能間の通信メカニズムは、場所と経路に基づいて決定される。例えば、イーサネット、Wifi、5G、コントローラ・エリア・ネットワーク(CAN)、共有メモリ、パイプ、循環バッファまたは他の通信メカニズム上で、通信が発生し得ると考えられる。
【0030】
図1は、一実施形態に係る制御システム上での一機能の実行を最適化する方法の概要の流れ図である。
【0031】
図1を参照すると、動作110において、制御システム内の複数のハードウェアコンポーネントの各々の処理能力および通信能力を決定することができる。これには、機能および通信をマッピングするトポロジ情報が含まれ得る。トポロジ情報は、各々のコンピュータデバイス、例えばCPU、それらの能力(コア数、計算能力、信頼性特性など)、それらの間の通信、利用可能なクラウド資源などを含むことができる。
【0032】
通信データストリームのいくつかは、実際のハードウェア(例えばカメラ、ライダ、ソナー、レーダ)によって生成され得、一方他のデータストリームは、ソフトウェア(個別の機能)によって生成され得る。ハードウェアにより生成された通信は同様に、先行記録済みデータストリームをリプレーすることによってか、またはソフトウェアを用いてハードウェアをエミュレートすることによってシミュレート可能である。
【0033】
動作120において、制御機能を実行するための多数のソリューションを、得られた処理能力および通信能力の制約条件内で生成することができる。ソリューションには、処理が行なわれる1つ以上の場所(例えばハードウェアコンポーネント)および1つ以上の場所の間でデータが送信される経路が含まれ得る。
【0034】
一実施形態によると、手作業入力またはコンピュータにより生成された入力であり得る初期推測を行なうこと、および離散的最適化、線形計画法などの機能最適化技術を用いて目的機能を最適化することによって、多数のソリューションを生成することができる。
【0035】
別の実施形態によると、確率的最適化を用いて多数のソリューションを生成することができる。この実施形態は、ヒューリスティクスを用いたランダム試行を行なうことができる。確率的最適化を実装する際には、より良いソリューションを発見する確率の高い方法で修正アルゴリズムに対して変換を教示することができる。
【0036】
別の実施形態によると、予備学習ソリューションによる機械学習を用いて、ソリューションを生成することができる。予備学習ソリューションは、例えば確率的最適化を通して、目的最適化を伴う初期推定を通して、または人間による手渡しを通して、計算コストの高い方法で得ることができるが、本開示はこれらの例に限定されない。
【0037】
動作130においては、ひとたび多数のソリューションが生成されると、各ソリューションの有効性を確認することができる。すなわち、方法100は、所与の特性(ハードウェアコンポーネントおよびハードウェアコンポーネント間の通信経路の特性)に基づいて問題を解決する(制御機能を行なう)ことのできるのはどのソリューションであるかを決定する。
【0038】
有効なソリューションを発見できない場合には、ベリファイヤ(例えばSMTソルバ)は、何が有効なソリューションの発見を妨げているかの診断を出力することができる。診断は、このとき、人間の介入によってかまたは機械学習を用いた方法を通して行なわれ得る。
【0039】
動作140では、有効なソリューションは、スコア付けアルゴリズムを用いて望ましさに基づきスコア付けされ得る。例えば、電力使用量、短い待ち時間、安全マージン、干渉の不在、有効化フィーチャ、商用チャネルの飽和度、存在するセキュリティリスクの低さに基づいて、有効なソリューションにスコア付けすることができる。しかしながら、本開示は、これらの例に限定されない。
【0040】
ソリューションが発見されたもののスコアの高さが不充分である場合には、ベリファイヤおよびスコア付けアルゴリズムは、ソリューションを過度に制約しより高いスコアを妨げる設計上の決断を発見するためにいずれの人間または機械学習に基づくモデルが分析を行なうことができるかの診断を出力することができる。
【0041】
動作150では、スコア付けされたソリューションを最適化することができる。すなわち、問題に対するより良いソリューションを得るための後続する修正の出発点として、複数のスコア付けされたソリューションを使用することができる。一実施形態によると、修正のために最高スコアのソリューションを選択することができる。
【0042】
次に、より高いスコアを得る修正済みソリューションを、最適化されたソリューションとして選択することができる。一実施形態によると、無効となる修正済みソリューションを、有効なソリューションを得るためにさらに最適化可能な最適化されたソリューションとして選択することができる。これにより、さらに高いスコアを有するソリューションが提供され得、こうして局所的最適条件を回避するためのソリューションアルゴリズムが導かれる。
【0043】
ベイズ法などの機械学習に基づく最適化において、非最適修正を行なうことも可能である。これらの非最適ソリューションは、機械学習に基づくモデルの最適化戦略を改善することができる。
【0044】
最適化修正は、制限時間に達するまで、予め決定された閾値を超えるスコアを有するソリューションが得られるまで、スコアが有意に変化しなくなるまで、または2つのソリューションの望ましさスコア間の差が閾値を超えるまで、反復的に行なわれてよい。
【0045】
ソリューションを最適化するとき、各機能の特性のいくつかをプログラムで誘導することができる。例えば、コードをコンパイルし解析して、どれほどの時間が実行に必要かを推定することができる。このプログラムで誘導された情報は、開発者提供情報がアルゴリズムに入力されるのと同じように、アルゴリズムへの入力として処理される。
【0046】
ソリューションを最適化する場合、各通信の特性のいくつかをプログラムで誘導することもできる。例えば、異なる安全性レベルを有する2つの機能は通信可能であるが、より高い安全性レベル要件を掲げる(例えばチェックサムおよびハートビートを有する)通信メカニズムしか使用できない。
【0047】
動作160では、最適化されたソリューションに等級付けすることができる。等級付けは、スコア付けアルゴリズムと類似のアルゴリズムを用いてスコア付けと同じ基準に基づいて行なうことができる。
【0048】
動作170では、制御システムによって、最高の等級を有するソリューションが行なわれ得る。すなわち、最高の等級を有するソリューションは、制御機能のための必要な処理を行なう1つ以上のコンポーネント、ならびに制御機能を行なうためにデータが必要とされている場所までそのデータを移動させるための通信経路を指定することになる。
【0049】
図2は、一実施形態に係る制御システムの略図である。
【0050】
図2に示されているように、制御システム20は、多数のハードウェアコンポーネント21、22、23および24、多数の通信経路41、42、43、44、45および46、および多数の出力デバイス51および52を含む。
【0051】
ハードウェアコンポーネント21~24の各々は、異なる特性および能力を有し得る。例えば、ハードウェアコンポーネント21~24は、異なる量の処理力、異なるタイプのプロセッサ、異なる量のメモリ、および/または異なる資源へのアクセスを有し得る。しかしながら、本開示は、これらの例に限定されない。
【0052】
同様にして、通信経路41、42、43、44、45および46の各々は、異なる特性を有し得る。例えば通信経路の各々は、異なる速度でデータを転送できる可能性があり、異なるタイプの暗号化を使用でき、かつ/または、異なる安全性レベルを有し得る。しかしながら、本開示は、これらの例に限定されない。例えば、
図2に示された実施形態において、経路41は、最高のデータ転送速度を提供してよく、経路43は、第1の技術を用いてデータをエンコードしてよく、経路44は、第2の技術を用いてデータをエンコードしてよく、経路42、45および46は、低い転送速度を提供してもよい。
【0053】
出力デバイス51および52は、制御機能によって制御され得る。例えば、制御システム20が車両用である場合、ハードウェアコンポーネント23は、エンジン制御ユニット(ECU)であり得、ハードウェアコンポーネント24は、トランスミッション制御ユニット(24)であり得、出力デバイス51は、エンジンであり得、出力デバイス52はトランスミッションであり得る。
【0054】
一実施形態によると、制御機能を実行するために制御システムを最適化する方法100には、制御機能の処理を行なうための最適化された場所を得るステップと、ハードウェアコンポーネント21~24の処理特性および通信経路41~46の特性に基づいて対応するデータを伝送するための最適化された通信経路を得るステップが含まれ得る。
【0055】
図3は、一実施形態に係るハードウェアコンポーネントの略図である。
図3に示されているように、ハードウェアコンポーネント300は、バス310、プロセッサ320(または少なくとも1つのプロセッサ)、メモリ330(または少なくとも1つのメモリ)、記憶コンポーネント340、入力コンポーネント350、出力コンポーネント360および通信インタフェース370を含むことができる。
【0056】
バス310は、デバイス300のコンポーネント間での通信を可能にするコンポーネントを含むことができる。すなわち、バス310は、デバイス300のコンポーネント間でのデータおよび情報の転送を可能にする通信システムまたはサブシステムである。
【0057】
プロセッサ320は、ハードウェア、ファームウェアまたはハードウェアとソフトウェアの組合せの形で実装されてよい。プロセッサ320は、中央処理ユニット(CPU)、グラフィクス処理ユニット(GPU)、加速処理ユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)または別のタイプの処理コンポーネントのうちの少なくとも1つを含み得る。いくつかの実施形態において、プロセッサ320は、一機能を行なうようにプログラミングされる能力を有する1つ以上のプロセッサを含む。
【0058】
メモリ330は、プロセッサ320による使用のための情報および/または命令を記憶する。メモリ330は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)および/または情報および/または命令を記憶するための別のタイプの動的または静的記憶デバイス(例えばフラッシュメモリ、磁気メモリおよび/または光メモリ)のうちの少なくとも1つを含むことができる。
【0059】
記憶コンポーネント340は、デバイス300の動作および使用に関連する情報および/またはソフトウェアを記憶することができる。例えば、記憶コンポーネント340は、ハードディスク(例えば、磁気ディスク、光ディスク、磁気光ディスク、および/または固体ディスク)、コンパクトディスク(CD)、デジタルバーサタイルディスク(DVD)、フロッピディスク、カートリッジ、磁気テープ、および/または別のタイプの非一時的コンピュータ可読媒体を、対応するドライブと共に含み得る。
【0060】
入力コンポーネント350は、デバイス300が、例えばユーザ入力(例えばタッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチおよび/またはマイクロホン)を介して情報を受信できるようにするコンポーネントを含み得る。付加的にまたは代替的に、入力コンポーネント350は、情報を感知するためのセンサ(例えば全地球測位システム(GPS)コンポーネント、加速度計、ジャイロスコープおよび/またはアクチュエータ)を含むことができる。出力コンポーネント360は、デバイス300からの出力情報を提供するコンポーネント(例えばディスプレイ、スピーカ、1つ以上の発光ダイオード(LED)、外部ディスプレイまたはスピーカに接続するためのインタフェースなど)を含むことができる。
【0061】
通信インタフェース370は、デバイス300が、例えば有線接続、無線接続または有線および無線接続の組合せを介して他のデバイスと通信できるようにする送受信機様のコンポーネント(例えば送受信機および/または別個の受信機と送信機)を含み得る。通信インタフェース370は、デバイス300が、別のデバイスから情報を受信しかつ/または別のデバイスに情報を提供することを可能にし得る。例えば、通信インタフェース370は、イーサネットインタフェース、光インタフェース、同軸インタフェース、赤外線インタフェース、無線周波数(RF)インタフェース、ユニバーサルシリアルバス(USB)インタフェース、Wi-Fiインタフェース、セルラーネットワークインタフェースなどを含み得る。通信インタフェース370は、制御システム内部の通信路の一端部、例えば
図2の通信路41~46のいずれか1つの一端部として作用し得る。
【0062】
デバイス300は、制御機能を実行するための1つ以上のプロセスを行なうことができる。デバイス300は、例えばメモリ330および/または記憶コンポーネント340などの非一時的コンピュータ可読媒体中に記憶されたソフトウェア命令を実行するプロセッサ320を介して、これらのプロセスを行なうことができる。コンピュータ可読媒体とは、本明細書では、非一時的メモリデバイスとして定義される。メモリデバイスには、単一の物理的記憶デバイス内部のメモリ空間または多数の物理的記憶デバイスを横断して広がるメモリ空間が含まれる。
【0063】
ソフトウェア命令は、別のコンピュータ可読媒体または別のデバイスから通信インタフェース370を介してメモリ330および/または記憶コンポーネント340内に読み込まれ得る。実行された時点で、メモリ330および/または記憶コンポーネント340内に記憶されたソフトウェア命令は、プロセッサ320に、本明細書中に記載の1つ以上のプロセスを行なわせることができる。付加的にまたは代替的には、本明細書中に記載の1つ以上のプロセスを行なうためにソフトウェア命令の代りにまたはソフトウェア命令と組合せた形で、ハードワイヤード型回路を使用することができる。したがって、本明細書中に記載の実装は、ハードウェア回路とソフトウェアのいずれかの具体的組合せに限定されない。
【0064】
図3に示されたコンポーネントの数および配設は、一例として提供されている。実際には、デバイス300は、
図3に示されたものと比べて、追加のコンポーネント、より少ないコンポーネント、異なるコンポーネント、または異なる形で配設されたコンポーネントを含むことができる。付加的にまたは代替的に、デバイス300の1組のコンポーネント(例えば1つ以上のコンポーネント)は、デバイス300の別の1組のコンポーネントによって行なわれているものとして説明された1つ以上の機能を行なうことができる。
【0065】
上述のように、実施形態に係る方法およびシステムは、反復的に多数のソリューションを生成し所望の基準に基づいて最良のソリューションを選択することにより、制御システムの使用を最適化する。ソリューションは、最良のソリューションが実行のために選択される前に、1回以上増強される。
【0066】
以上の開示は、例示および説明を提供しているが、網羅的であるようにまたは開示された精確な形態に実装を限定するように意図されたものではない。以上の開示に照らして、修正および変形形態が可能であり、それらは実装を実践することで獲得可能である。
【0067】
本明細書中で使用されるコンポーネントなる用語は、広範にハードウェア、ファームウェアまたはハードウェアとソフトウェアの組合せとみなされるように意図されている。
【0068】
本明細書中に記載のシステムおよび/または方法は、異なる形態のハードウェア、ファームウェアまたはハードウェアとソフトウェアの組合せで実装可能であることは、明白である。これらのシステムおよび/または方法を実装するために使用された実際の特化された制御ハードウェアまたはソフトウェアコードは、実装を限定するものではない。したがって、システムおよび/または方法の動作および挙動は、本明細書において、具体的ソフトウェアコードに言及することなく説明されており、本明細書中の説明に基づいてシステムおよび/または方法を実装するためにソフトウェアおよびハードウェアが設計され得るということが理解される。
【0069】
特徴の特定の組合せがクレーム中に列挙されかつ/または明細書中で開示されているとしても、これらの組合せは、考えられる実装の開示を限定するように意図されていない。実際、これらの特徴の多くが、クレーム中に具体的に列挙されていないおよび/または明細書中で開示されていない形で組合せ可能である。以下に記載の各々の従属クレームは1つのクレームのみに直接従属するかもしれないものの、考えられる実装の開示には、クレームセット内の他の全てのクレームと組合せた形での各々の従属クレームが含まれる。
【0070】
本明細書中で使用されるいかなる要素、行為または命令も、そのように明示的に記載されているのでないかぎり、重大なものまたは不可欠なものとみなされるべきではない。同様に、本明細書中で使用される冠詞「a」および「an」は、1つ以上のアイテムを含むように意図されており、「1つ以上(one or more)」と互換的に使用され得る。さらに、本明細書中で使用される「組」なる用語は、1つ以上のアイテム(例えば関連アイテム、非関連アイテム、関連アイテムと非関連アイテムの組合せなど)を含むように意図され、「1つ以上」と互換的に使用され得る。唯1つのアイテムが意図される場合、「1つ」なる用語または類似の言語が使用される。同様に、本明細書中で使用される「has」、「have」、「having」(~を有する)などの用語は、開放型専門用語として意図されている。さらに「~に基づく」なる用語は、別段の明示的記載の無いかぎり、「少なくとも部分的に~に基づく」を意味するように意図されている。
【外国語明細書】