

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 比較 Amazon Braket 模擬器
<a name="choose-a-simulator"></a>

本節透過描述一些概念、限制和使用案例，協助您選取最適合您的量子任務的 Amazon Braket 模擬器。

 **在本機模擬器和隨需模擬器之間進行選擇 (SV1、TN1、DM1)** 

*本機模擬器*的效能取決於託管本機環境的硬體，例如用於執行模擬器的 Braket 筆記本執行個體。*隨需模擬器*在 AWS 雲端中執行，旨在擴展到超越典型的本機環境。隨需模擬器已針對較大的電路進行最佳化，但每個量子任務或量子任務批次會增加一些延遲額外負荷。如果涉及許多量子任務，這可能表示權衡。鑑於這些一般效能特性，下列指引可協助您選擇如何執行模擬，包括有雜訊的模擬。

對於**模擬**：
+ 使用少於 18 個 時qubits，請使用本機模擬器。
+ 使用 18–24 時qubits，請根據工作負載選擇模擬器。
+ 使用超過 24 個 時qubits，請使用隨需模擬器。

對於**雜訊模擬**：
+ 使用少於 9 個 時qubits，請使用本機模擬器。
+ 使用 9–12 時qubits，請根據工作負載選擇模擬器。
+ 使用超過 12 個 時qubits，請使用 DM1。

 **什麼是狀態向量模擬器？** 

 SV1 是通用狀態向量模擬器。它會儲存量子狀態的完整波動函數，並依序將閘道操作套用至狀態。它儲存了所有可能性，即使是非常不可能的可能性。量子任務的SV1模擬器執行時間會隨著電路中的閘道數量線性增加。

 **什麼是密度矩陣模擬器？** 

 DM1 模擬具有雜訊的量子電路。它會存放系統的完整密度矩陣，並依序套用電路的閘道和雜訊操作。最終密度矩陣包含迴路執行後量子狀態的完整資訊。執行時間通常會隨操作數目線性擴展，並以 數目呈指數擴展qubits。

 **什麼是張量網路模擬器？** 

 TN1 將量子電路編碼為結構化圖形。
+ 圖形的節點由量子閘道或 組成qubits。
+ 圖形的邊緣代表閘道之間的連線。

由於此結構， TN1可以找到相對大型和複雜量子電路的模擬解決方案。

 ** TN1 需要兩個階段** 

一般而言， 會以兩階段方法來TN1模擬量子運算。
+  **演練階段：**在此階段中， TN1 會想出以有效率的方式周遊圖形的方法，其中包括造訪每個節點，以便取得您想要的測量。身為客戶，您看不到此階段，因為 會為您同時TN1執行兩個階段。它會完成第一個階段，並根據實際限制，決定是否自行執行第二個階段。模擬開始後，您就不會輸入該決策。
+  **收縮階段：**此階段類似於傳統電腦中運算的執行階段。階段由一系列矩陣乘法組成。這些乘法的順序對運算的難度有很大的影響。因此，演練階段會先完成，以找出圖形中最有效的運算路徑。在演練階段找到收縮路徑後， 會與您電路的閘道一起TN1收縮，以產生模擬的結果。

 ** TN1 圖形類似於地圖** 

簡言之，您可以將基礎TN1圖形與城市的街道進行比較。在具有計劃網格的城市中，使用地圖輕鬆找到目的地的路由。在具有意外街道、重複街道名稱等的城市中，查看地圖可能很難找到通往目的地的路線。

如果 TN1 未執行演練階段，就好像在城市的街道四處走動來尋找目的地，而不是先看地圖。在行走時間上，花更多時間查看地圖，可以獲得回報。同樣地，演練階段提供寶貴的資訊。

您可能會說 對其周遊的基礎電路結構TN1有一定的「感知」。它會在演練階段期間獲得此意識。

 **最適合每種模擬器的問題類型** 

 SV1 非常適合任何主要依賴具有特定數量 qubits和 閘道的問題類別。一般而言，所需的時間會隨著閘道數量線性成長，而它不取決於 的數量shots。 SV1 通常比 TN1 28 以下的電路更快qubits。

 SV1 qubit數字越大可能越慢，因為它實際上模擬了所有可能性，即使是非常不可能的可能性。它無法判斷哪些結果可能。因此，對於30-qubit評估， SV1 必須計算 2^30 個組態。由於記憶體和儲存限制qubits，AmazonRaket SV1 模擬器的限制為 34。您可以像這樣想：每次將 新增至 qubit 時SV1，問題會變得兩倍硬。

對於許多類別的問題， TN1可以在實際時間評估比 更大的電路SV1，因為 TN1 會利用圖形的結構。它基本上會從一開始就追蹤解決方案的演變，而且只會保留有助於有效周遊的組態。換句話說，它會儲存組態，以建立矩陣乘法的排序，進而產生更簡單的評估程序。

對於 TN1， qubits和 閘道的數量很重要，但圖形的結構更重要。例如， TN1 非常善於評估閘道為短距離的電路 （圖形） （亦即，每個閘道僅qubit連接到其最近的鄰 qubits)，以及連線 （或閘道） 具有類似範圍的電路 （圖形）。的典型範圍TN1是讓每個 只與 5 個qubits距離qubits的其他 qubit交談。如果大多數結構可以分解為更簡單的關係，例如這些關係，可以用*更多*、*更小*或*更統一*的矩陣表示，則 會有效率地TN1執行評估。

 **的限制 TN1 ** 

 TN1 可能比SV1圖形的結構複雜度慢。對於某些圖形， 會在演練階段後TN1終止模擬，並顯示 狀態`FAILED`，原因為下列兩種：
+  **找不到路徑** — 如果圖形太複雜，則很難找到良好的周遊路徑，且模擬器放棄運算。 TN1無法執行收縮。您可能會看到類似以下的錯誤訊息： `No viable contraction path found.`
+  **收縮階段太困難** — 在某些圖形 中， TN1可以找到周遊路徑，但評估非常長且非常耗時。在這種情況下，收縮的成本非常昂貴，成本會過高，而是在演練階段之後TN1結束。您可能會看到類似以下的錯誤訊息： `Predicted runtime based on best contraction path found exceeds TN1 limit.`

**注意**  
即使未執行收縮且您看到 `FAILED` 狀態，TN1您仍需支付 的演練階段費用。

預測的執行時間也取決於shot計數。在最壞的情況下，TN1收縮時間會線性取決於shot計數。電路可以與較少的 簽訂合約shots。例如，您可以提交具有 100 個 的量子任務shots，該任務TN1決定無法合約，但如果您只以 10 個重新提交，則合約會繼續進行。在這種情況下，若要取得 100 個範例，您可以shots為相同電路提交 10 個量子任務 10 個量子任務，並在結尾合併結果。

最佳實務是，建議您一律使用幾個 shots（例如 10) 來測試您的電路或電路類別，以了解您的電路對於 的硬度TN1，然後再繼續執行更多數量的 shots。

**注意**  
形成收縮階段的乘法系列以小型 NxN 矩陣開頭。例如，2-qubit閘道需要 4x4 矩陣。在經判定為太困難的收縮期間所需的中繼矩陣是巨大的。這種運算需要數天才能完成。因此 Amazon Braket 不會嘗試非常複雜的收縮。

 **並行數量** 

所有 Braket 模擬器都可讓您同時執行多個電路。並行限制因模擬器和區域而異。如需並行限制的詳細資訊，請參閱[配額](https://docs.aws.amazon.com/braket/latest/developerguide/braket-quotas.html)頁面。