@umacloud/knowledge 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/00-governance/governance-capabilities.md +557 -0
- package/00-governance/knowledge-map.md +39 -0
- package/00-governance/maintenance-policy.md +76 -0
- package/00-governance/review-checklist.md +81 -0
- package/README.md +13 -0
- package/ai/01-standards/agent-development-complete.md +691 -0
- package/ai/01-standards/llm-application-complete.md +488 -0
- package/ai/01-standards/mlops-complete.md +798 -0
- package/ai/01-standards/prompt-engineering-complete.md +646 -0
- package/ai/01-standards/rag-architecture-complete.md +649 -0
- package/ai/02-playbooks/llm-evaluation-playbook.md +847 -0
- package/ai/03-checklists/ai-project-checklist.md +215 -0
- package/ai/04-antipatterns/ai-antipatterns.md +661 -0
- package/ai/05-cases/case-rag-production.md +147 -0
- package/ai/06-glossary/ai-glossary.md +162 -0
- package/ai/agent-evaluation-benchmark.md +53 -0
- package/ai/ai-agent-memory-context-management.md +41 -0
- package/ai/ai-cost-capacity-optimization-playbook.md +42 -0
- package/ai/ai-data-security-and-compliance-playbook.md +37 -0
- package/ai/ai-domain-index-and-checklist.md +40 -0
- package/ai/ai-governance-maturity-model.md +50 -0
- package/ai/ai-model-selection-and-routing-strategy.md +47 -0
- package/ai/ai-observability-and-oncall-runbook.md +52 -0
- package/ai/ai-rag-engineering-playbook.md +42 -0
- package/ai/ai-red-team-and-safety-evaluation.md +42 -0
- package/ai/ai-release-readiness-and-rollback-gate.md +42 -0
- package/ai/llm-agent-engineering-deep-dive.md +57 -0
- package/ai/prompt-and-tool-guardrails.md +52 -0
- package/api/01-standards/enterprise-api-standards.md +198 -0
- package/api/01-standards/rest-api-design-guide.md +63 -0
- package/api/02-playbooks/api-pagination-playbook.md +93 -0
- package/api/02-playbooks/graphql-production-playbook.md +176 -0
- package/api/03-checklists/api-review-checklist.md +55 -0
- package/api/04-antipatterns/api-antipatterns.md +112 -0
- package/architecture/01-standards/api-gateway-patterns.md +496 -0
- package/architecture/01-standards/cloud-native-patterns.md +644 -0
- package/architecture/01-standards/distributed-systems-patterns.md +591 -0
- package/architecture/01-standards/event-driven-architecture.md +595 -0
- package/architecture/01-standards/microservices-patterns-complete.md +968 -0
- package/architecture/01-standards/microservices-patterns.md +495 -0
- package/architecture/01-standards/system-design-interview.md +664 -0
- package/architecture/02-playbooks/microservices-patterns-playbook.md +137 -0
- package/architecture/02-playbooks/migration-playbook.md +780 -0
- package/architecture/02-playbooks/system-design-playbook.md +779 -0
- package/architecture/03-checklists/architecture-decision-checklist.md +297 -0
- package/architecture/04-antipatterns/architecture-antipatterns.md +417 -0
- package/architecture/05-cases/case-netflix-microservices.md +413 -0
- package/architecture/06-glossary/architecture-glossary.md +164 -0
- package/architecture/adr-template-and-examples.md +38 -0
- package/architecture/api-gateway-deep-dive.md +1291 -0
- package/architecture/configuration-management.md +1162 -0
- package/architecture/distributed-transactions.md +1220 -0
- package/architecture/microservices-complete.md +735 -0
- package/architecture/resilience-and-disaster-patterns.md +37 -0
- package/architecture/service-governance.md +1198 -0
- package/architecture/system-architecture-deep-dive.md +37 -0
- package/backend/01-standards/analytics-and-growth.md +65 -0
- package/backend/01-standards/api-and-error-conventions.md +120 -0
- package/backend/01-standards/application-layering-and-packaging.md +160 -0
- package/backend/01-standards/auth-implementation.md +104 -0
- package/backend/01-standards/backend-framework-idioms.md +74 -0
- package/backend/01-standards/background-jobs-and-async.md +66 -0
- package/backend/01-standards/caching-strategies-complete.md +390 -0
- package/backend/01-standards/config-and-observability.md +77 -0
- package/backend/01-standards/data-modeling-and-persistence.md +94 -0
- package/backend/01-standards/django-complete.md +1765 -0
- package/backend/01-standards/email-and-notifications.md +64 -0
- package/backend/01-standards/fastapi-complete.md +925 -0
- package/backend/01-standards/file-upload-and-storage.md +66 -0
- package/backend/01-standards/graphql-api-complete.md +416 -0
- package/backend/01-standards/llm-application-standard.md +78 -0
- package/backend/01-standards/message-queue-patterns.md +379 -0
- package/backend/01-standards/microservices-and-distributed.md +78 -0
- package/backend/01-standards/nestjs-complete.md +2167 -0
- package/backend/01-standards/payment-integration.md +80 -0
- package/backend/01-standards/rate-limiting-complete.md +451 -0
- package/backend/01-standards/realtime-and-websocket.md +65 -0
- package/backend/01-standards/search-and-filtering.md +64 -0
- package/backend/01-standards/spring-boot-complete.md +445 -0
- package/backend/02-playbooks/api-design-playbook.md +718 -0
- package/backend/02-playbooks/email-send-playbook.md +130 -0
- package/backend/02-playbooks/file-upload-s3-playbook.md +153 -0
- package/backend/02-playbooks/typescript-enterprise-playbook.md +133 -0
- package/backend/02-playbooks/websocket-realtime-playbook.md +154 -0
- package/backend/03-checklists/api-launch-checklist.md +189 -0
- package/backend/04-antipatterns/backend-antipatterns.md +1051 -0
- package/blockchain/01-standards/blockchain-basics.md +557 -0
- package/blockchain/01-standards/smart-contract-development.md +1315 -0
- package/cicd/01-standards/deployment-and-delivery-standard.md +96 -0
- package/cicd/01-standards/github-actions-complete.md +473 -0
- package/cicd/01-standards/release-and-store-submission.md +75 -0
- package/cicd/02-playbooks/cicd-pipeline-playbook.md +144 -0
- package/cicd/02-playbooks/release-management-playbook.md +605 -0
- package/cicd/03-checklists/pipeline-security-checklist.md +168 -0
- package/cicd/04-antipatterns/cicd-antipatterns.md +589 -0
- package/cicd/05-cases/case-deployment-automation.md +221 -0
- package/cicd/05-cases/case-gitops-transformation.md +212 -0
- package/cicd/06-glossary/cicd-glossary.md +114 -0
- package/cicd/cicd-blueprint-deep-dive.md +38 -0
- package/cicd/release-readiness-gate.md +37 -0
- package/cloud-native/01-standards/container-security.md +741 -0
- package/cloud-native/01-standards/kubernetes-complete.md +812 -0
- package/cloud-native/02-playbooks/api-gateway-playbook.md +155 -0
- package/cloud-native/02-playbooks/gitops-with-argocd.md +760 -0
- package/cloud-native/02-playbooks/k8s-troubleshooting-playbook.md +1942 -0
- package/cloud-native/02-playbooks/message-queue-playbook.md +129 -0
- package/cloud-native/02-playbooks/multicloud-governance.md +726 -0
- package/cloud-native/02-playbooks/serverless-patterns.md +788 -0
- package/cloud-native/02-playbooks/service-mesh-playbook.md +612 -0
- package/cloud-native/02-playbooks/terraform-iac-playbook.md +143 -0
- package/cloud-native/03-checklists/container-security-checklist.md +431 -0
- package/cloud-native/03-checklists/k8s-production-readiness-checklist.md +460 -0
- package/cloud-native/04-antipatterns/container-antipatterns.md +660 -0
- package/cloud-native/04-antipatterns/k8s-antipatterns.md +743 -0
- package/cloud-native/05-cases/case-k8s-migration.md +478 -0
- package/cloud-native/05-cases/case-k8s-scaling.md +642 -0
- package/cloud-native/05-cases/case-k8s-security-incident.md +397 -0
- package/cloud-native/06-glossary/cloud-native-glossary.md +337 -0
- package/cross-platform/01-standards/cross-platform-frameworks.md +83 -0
- package/cross-platform/01-standards/platform-selection-and-architecture.md +77 -0
- package/data/01-standards/elasticsearch-complete.md +2098 -0
- package/data/01-standards/postgresql-complete.md +1613 -0
- package/data/01-standards/redis-complete.md +1527 -0
- package/data/02-playbooks/database-optimization-playbook.md +403 -0
- package/data/02-playbooks/elasticsearch-production-playbook.md +132 -0
- package/data/03-checklists/database-launch-checklist.md +187 -0
- package/data/04-antipatterns/database-antipatterns.md +873 -0
- package/data/05-cases/case-database-migration.md +310 -0
- package/data/06-glossary/database-glossary.md +440 -0
- package/data/data-governance-and-modeling-deep-dive.md +39 -0
- package/data-engineering/01-standards/airflow-complete.md +523 -0
- package/data-engineering/01-standards/kafka-complete.md +1521 -0
- package/data-engineering/02-playbooks/spark-etl-playbook.md +496 -0
- package/data-engineering/03-checklists/pipeline-launch-checklist.md +194 -0
- package/data-engineering/04-antipatterns/data-pipeline-antipatterns.md +684 -0
- package/data-engineering/05-cases/case-real-time-pipeline.md +355 -0
- package/data-engineering/06-glossary/data-engineering-glossary.md +429 -0
- package/database/01-standards/database-schema-standards.md +147 -0
- package/database/02-playbooks/postgresql-optimization-quick.md +52 -0
- package/database/02-playbooks/postgresql-performance-optimization.md +58 -0
- package/database/02-playbooks/postgresql-production-playbook.md +146 -0
- package/database/02-playbooks/redis-caching-playbook.md +117 -0
- package/database/03-checklists/database-review-checklist.md +50 -0
- package/database/04-antipatterns/database-antipatterns.md +112 -0
- package/design/01-standards/ui-design-system-complete.md +423 -0
- package/design/02-playbooks/design-handoff-playbook.md +254 -0
- package/design/02-playbooks/design-review-playbook.md +388 -0
- package/design/03-checklists/design-review-checklist.md +246 -0
- package/design/04-antipatterns/design-antipatterns.md +378 -0
- package/design/05-cases/case-design-system-adoption.md +328 -0
- package/design/06-glossary/design-glossary.md +329 -0
- package/design/ui-full-lifecycle-cross-platform-playbook.md +571 -0
- package/design/ux-system-deep-dive.md +38 -0
- package/design-systems/00-craft-rules.md +71 -0
- package/design-systems/aesthetic-families.md +43 -0
- package/design-systems/anti-ai-slop.md +162 -0
- package/design-systems/bold-geometric.md +120 -0
- package/design-systems/brutalist-bold.md +103 -0
- package/design-systems/editorial-clean.md +109 -0
- package/design-systems/glass-aurora.md +108 -0
- package/design-systems/modern-minimal.md +145 -0
- package/design-systems/premium-luxury.md +106 -0
- package/design-systems/product-type-design-map.md +48 -0
- package/design-systems/soft-warm.md +123 -0
- package/design-systems/tech-utility.md +113 -0
- package/desktop/01-standards/desktop-app-standard.md +72 -0
- package/desktop/01-standards/desktop-design.md +71 -0
- package/development/00-governance/document-template.md +41 -0
- package/development/01-standards/api-versioning-strategies.md +432 -0
- package/development/01-standards/authentication-patterns-complete.md +479 -0
- package/development/01-standards/css-architecture-complete.md +550 -0
- package/development/01-standards/database-migration-strategies.md +484 -0
- package/development/01-standards/elasticsearch-complete.md +347 -0
- package/development/01-standards/git-complete.md +371 -0
- package/development/01-standards/golang-complete.md +1565 -0
- package/development/01-standards/graphql-complete.md +298 -0
- package/development/01-standards/javascript-bundlers-complete.md +469 -0
- package/development/01-standards/javascript-typescript-complete.md +528 -0
- package/development/01-standards/jest-complete.md +275 -0
- package/development/01-standards/linux-complete.md +234 -0
- package/development/01-standards/logging-observability-complete.md +526 -0
- package/development/01-standards/microservices-communication.md +502 -0
- package/development/01-standards/mongodb-complete.md +406 -0
- package/development/01-standards/oauth2-complete.md +285 -0
- package/development/01-standards/performance-optimization-complete.md +289 -0
- package/development/01-standards/playwright-complete.md +247 -0
- package/development/01-standards/postgresql-complete.md +456 -0
- package/development/01-standards/pytest-complete.md +340 -0
- package/development/01-standards/python-async-programming.md +902 -0
- package/development/01-standards/python-complete.md +956 -0
- package/development/01-standards/python-decorators-complete.md +799 -0
- package/development/01-standards/python-design-patterns.md +2854 -0
- package/development/01-standards/python-packaging-distribution.md +420 -0
- package/development/01-standards/python-testing-strategies.md +607 -0
- package/development/01-standards/python-web-frameworks-comparison.md +471 -0
- package/development/01-standards/redis-complete.md +317 -0
- package/development/01-standards/rest-api-complete.md +316 -0
- package/development/01-standards/rust-complete.md +578 -0
- package/development/01-standards/typescript-advanced-types.md +1513 -0
- package/development/01-standards/web-security-complete.md +292 -0
- package/development/02-playbooks/api-design-playbook.md +810 -0
- package/development/02-playbooks/database-migration-playbook.md +580 -0
- package/development/02-playbooks/debugging-playbook.md +692 -0
- package/development/02-playbooks/feature-delivery-playbook.md +430 -0
- package/development/02-playbooks/incident-hotfix-playbook.md +387 -0
- package/development/02-playbooks/performance-optimization-playbook.md +531 -0
- package/development/02-playbooks/performance-tuning-playbook.md +652 -0
- package/development/02-playbooks/refactor-playbook.md +403 -0
- package/development/02-playbooks/release-playbook.md +469 -0
- package/development/03-checklists/architecture-review-checklist.md +168 -0
- package/development/03-checklists/data-migration-checklist.md +157 -0
- package/development/03-checklists/oncall-handover-checklist.md +173 -0
- package/development/03-checklists/pr-checklist.md +158 -0
- package/development/03-checklists/production-readiness-checklist.md +190 -0
- package/development/03-checklists/release-readiness-checklist.md +154 -0
- package/development/03-checklists/security-review-checklist.md +182 -0
- package/development/04-antipatterns/api-antipatterns.md +657 -0
- package/development/04-antipatterns/architecture-antipatterns.md +686 -0
- package/development/04-antipatterns/backend-antipatterns.md +648 -0
- package/development/04-antipatterns/cicd-antipatterns.md +540 -0
- package/development/04-antipatterns/code-smell-antipatterns.md +571 -0
- package/development/04-antipatterns/data-antipatterns.md +658 -0
- package/development/04-antipatterns/database-antipatterns.md +578 -0
- package/development/04-antipatterns/frontend-antipatterns.md +635 -0
- package/development/04-antipatterns/reliability-antipatterns.md +700 -0
- package/development/04-antipatterns/security-antipatterns.md +747 -0
- package/development/05-cases/case-api-version-migration.md +428 -0
- package/development/05-cases/case-authorization-hardening.md +383 -0
- package/development/05-cases/case-bluegreen-rollback.md +466 -0
- package/development/05-cases/case-cache-snowball-protection.md +485 -0
- package/development/05-cases/case-ci-cd-pipeline.md +544 -0
- package/development/05-cases/case-database-scaling.md +500 -0
- package/development/05-cases/case-db-hotspot-optimization.md +487 -0
- package/development/05-cases/case-incident-mttr-reduction.md +563 -0
- package/development/05-cases/case-microservice-migration.md +375 -0
- package/development/05-cases/case-performance-optimization.md +406 -0
- package/development/05-cases/case-security-incident-response.md +345 -0
- package/development/06-glossary/full-stack-glossary.md +166 -0
- package/development/09-maturity/quarterly-audit-template.md +35 -0
- package/development/11-ui-excellence/ui-aesthetic-system.md +41 -0
- package/development/11-ui-excellence/ui-engineering-excellence.md +435 -0
- package/development/12-scenarios/development-scenarios-guide.md +565 -0
- package/development/13-implementation-assets/implementation-toolkit.md +282 -0
- package/development/13-implementation-assets/knowledge-gates-execution.md +43 -0
- package/development/14-full-lifecycle/software-lifecycle-gates.md +511 -0
- package/development/15-lifecycle-templates/project-templates-collection.md +791 -0
- package/development/api-contract-and-versioning-guide.md +36 -0
- package/development/api-governance-complete.md +43 -0
- package/development/backend-engineering-complete.md +43 -0
- package/development/code-review-quality-complete.md +43 -0
- package/development/concurrency-reliability-complete.md +43 -0
- package/development/database-engineering-complete.md +43 -0
- package/development/engineering-effectiveness-complete.md +43 -0
- package/development/engineering-standards-deep-dive.md +38 -0
- package/development/frontend-engineering-complete.md +43 -0
- package/development/performance-capacity-complete.md +43 -0
- package/development/refactor-migration-complete.md +42 -0
- package/development/refactoring-and-techdebt-playbook.md +37 -0
- package/development/security-in-development-complete.md +43 -0
- package/devops/01-standards/cicd-pipeline-complete.md +262 -0
- package/devops/01-standards/docker-complete.md +1490 -0
- package/devops/01-standards/github-actions-complete.md +337 -0
- package/devops/01-standards/kubernetes-complete.md +638 -0
- package/devops/01-standards/terraform-complete.md +2117 -0
- package/devops/02-playbooks/docker-compose-playbook.md +233 -0
- package/devops/02-playbooks/docker-k8s-production-playbook.md +186 -0
- package/devops/02-playbooks/docker-production-playbook.md +952 -0
- package/edge-iot/01-standards/edge-iot-complete.md +473 -0
- package/experts/architect/api-design.md +178 -0
- package/experts/architect/methodology.md +124 -0
- package/experts/architect/security.md +75 -0
- package/experts/backend-lead/methodology.md +216 -0
- package/experts/devops/methodology.md +160 -0
- package/experts/frontend-lead/methodology.md +178 -0
- package/experts/product-manager/industry/ecommerce.md +43 -0
- package/experts/product-manager/industry/saas.md +40 -0
- package/experts/product-manager/methodology.md +97 -0
- package/experts/qa-lead/methodology.md +123 -0
- package/experts/qa-lead/test-strategy.md +128 -0
- package/experts/uiux-designer/methodology.md +125 -0
- package/frontend/01-standards/accessibility-complete.md +532 -0
- package/frontend/01-standards/accessibility-standard.md +74 -0
- package/frontend/01-standards/admin-dashboard-and-crud.md +72 -0
- package/frontend/01-standards/design-tokens-complete.md +444 -0
- package/frontend/01-standards/forms-and-validation.md +77 -0
- package/frontend/01-standards/frontend-architecture-and-layering.md +119 -0
- package/frontend/01-standards/i18n-and-localization.md +65 -0
- package/frontend/01-standards/nextjs-complete.md +451 -0
- package/frontend/01-standards/react-complete.md +713 -0
- package/frontend/01-standards/react-hooks-complete-guide.md +1100 -0
- package/frontend/01-standards/react-hooks-complete.md +1171 -0
- package/frontend/01-standards/seo-and-web-vitals.md +77 -0
- package/frontend/01-standards/state-management-complete.md +444 -0
- package/frontend/01-standards/vue-complete.md +499 -0
- package/frontend/01-standards/vue3-complete.md +2002 -0
- package/frontend/01-standards/web-framework-best-practices.md +64 -0
- package/frontend/01-standards/web-performance-complete.md +495 -0
- package/frontend/02-playbooks/accessibility-a11y-playbook.md +161 -0
- package/frontend/02-playbooks/frontend-performance-playbook.md +707 -0
- package/frontend/02-playbooks/i18n-internationalization-playbook.md +120 -0
- package/frontend/02-playbooks/performance-optimization-playbook.md +163 -0
- package/frontend/02-playbooks/react-nextjs-production-playbook.md +167 -0
- package/frontend/02-playbooks/react-state-management-playbook.md +173 -0
- package/frontend/03-checklists/component-quality-checklist.md +166 -0
- package/frontend/03-checklists/frontend-launch-checklist.md +299 -0
- package/frontend/04-antipatterns/frontend-antipatterns.md +886 -0
- package/frontend/05-cases/case-performance-optimization.md +274 -0
- package/harmony/01-standards/harmonyos-arkts-standard.md +75 -0
- package/harmony/01-standards/harmonyos-design.md +65 -0
- package/high-quality-engineering-playbook.md +54 -0
- package/incident/01-standards/incident-response-complete.md +303 -0
- package/incident/02-playbooks/chaos-engineering-playbook.md +883 -0
- package/incident/02-playbooks/postmortem-playbook.md +398 -0
- package/incident/03-checklists/incident-readiness-checklist.md +181 -0
- package/incident/04-antipatterns/incident-antipatterns.md +490 -0
- package/incident/05-cases/case-cascade-failure.md +176 -0
- package/incident/06-glossary/incident-glossary.md +114 -0
- package/incident/postmortem-and-response-deep-dive.md +39 -0
- package/industries/ecommerce/ecommerce-complete.md +631 -0
- package/industries/education/education-complete.md +555 -0
- package/industries/fintech/fintech-complete.md +501 -0
- package/industries/gaming/gaming-complete.md +587 -0
- package/industries/healthcare/healthcare-complete.md +452 -0
- package/low-code/01-standards/low-code-complete.md +944 -0
- package/miniprogram/01-standards/ai-common-mistakes.md +61 -0
- package/miniprogram/01-standards/miniprogram-custom-navbar-capsule.md +77 -0
- package/miniprogram/01-standards/miniprogram-design.md +61 -0
- package/miniprogram/01-standards/miniprogram-standard.md +81 -0
- package/mobile/01-standards/android-material-design.md +70 -0
- package/mobile/01-standards/flutter-complete.md +384 -0
- package/mobile/01-standards/ios-design-hig.md +78 -0
- package/mobile/01-standards/mobile-app-standard.md +85 -0
- package/mobile/01-standards/react-native-complete.md +352 -0
- package/mobile/02-playbooks/mobile-cross-platform-playbook.md +175 -0
- package/mobile/02-playbooks/mobile-performance.md +473 -0
- package/mobile/03-checklists/mobile-release-checklist.md +234 -0
- package/mobile/04-antipatterns/mobile-antipatterns.md +798 -0
- package/mobile/05-cases/case-app-performance.md +500 -0
- package/mobile/05-cases/case-app-startup-optimization.md +218 -0
- package/mobile/06-glossary/mobile-glossary.md +484 -0
- package/observability/01-standards/observability-standards.md +103 -0
- package/observability/02-playbooks/prometheus-grafana-playbook.md +135 -0
- package/observability/02-playbooks/structured-logging-playbook.md +73 -0
- package/observability/03-checklists/observability-checklist.md +54 -0
- package/observability/04-antipatterns/observability-antipatterns.md +106 -0
- package/operations/01-standards/prometheus-monitoring-complete.md +1578 -0
- package/operations/02-playbooks/capacity-planning-playbook.md +620 -0
- package/operations/03-checklists/production-launch-checklist.md +365 -0
- package/operations/04-antipatterns/operations-antipatterns.md +664 -0
- package/operations/05-cases/case-sre-practices.md +581 -0
- package/operations/06-glossary/operations-glossary.md +120 -0
- package/operations/aiops-anomaly-detection.md +758 -0
- package/operations/capacity-planning.md +1061 -0
- package/operations/chaos-engineering.md +659 -0
- package/operations/incident-command-system.md +38 -0
- package/operations/observability-complete.md +442 -0
- package/operations/slo-sli-playbook.md +517 -0
- package/operations/sre-operations-deep-dive.md +39 -0
- package/package.json +8 -0
- package/performance/01-standards/performance-and-scalability.md +80 -0
- package/performance/01-standards/performance-standards.md +156 -0
- package/performance/02-playbooks/query-optimization-playbook.md +103 -0
- package/performance/03-checklists/performance-checklist.md +56 -0
- package/performance/04-antipatterns/performance-antipatterns.md +146 -0
- package/product/01-standards/product-management-complete.md +285 -0
- package/product/02-playbooks/feature-launch-playbook.md +207 -0
- package/product/02-playbooks/user-research-playbook.md +532 -0
- package/product/03-checklists/feature-launch-checklist.md +275 -0
- package/product/04-antipatterns/product-antipatterns.md +355 -0
- package/product/05-cases/case-mvp-to-scale.md +384 -0
- package/product/06-glossary/product-glossary.md +462 -0
- package/product/feature-prioritization-framework.md +40 -0
- package/product/kpi-and-metric-tree.md +37 -0
- package/product/product-discovery-and-prd-deep-dive.md +41 -0
- package/quantum/01-standards/quantum-complete.md +1186 -0
- package/security/01-standards/api-security-complete.md +511 -0
- package/security/01-standards/container-runtime-security.md +574 -0
- package/security/01-standards/data-protection-gdpr.md +543 -0
- package/security/01-standards/owasp-top10-complete.md +1890 -0
- package/security/01-standards/secure-coding-baseline.md +90 -0
- package/security/01-standards/supply-chain-security.md +441 -0
- package/security/01-standards/web-security-checklist.md +108 -0
- package/security/01-standards/zero-trust-architecture.md +521 -0
- package/security/02-playbooks/auth-sso-playbook.md +166 -0
- package/security/02-playbooks/incident-response-security-playbook.md +588 -0
- package/security/02-playbooks/owasp-api-security-playbook.md +129 -0
- package/security/02-playbooks/payment-integration-playbook.md +119 -0
- package/security/02-playbooks/penetration-testing-playbook.md +517 -0
- package/security/03-checklists/security-audit-checklist.md +356 -0
- package/security/04-antipatterns/security-coding-antipatterns.md +580 -0
- package/security/05-cases/case-log4shell-incident.md +537 -0
- package/security/05-cases/case-major-breaches.md +468 -0
- package/security/06-glossary/security-glossary.md +212 -0
- package/security/compliance-automation.md +993 -0
- package/security/container-security.md +680 -0
- package/security/devsecops-complete.md +426 -0
- package/security/sast-dast-sca.md +775 -0
- package/security/secrets-management.md +594 -0
- package/security/security-architecture-deep-dive.md +37 -0
- package/security/threat-modeling-stride-playbook.md +40 -0
- package/seed-templates/auth-system.md +59 -0
- package/seed-templates/blog-content.md +94 -0
- package/seed-templates/dashboard.md +89 -0
- package/seed-templates/docs-site.md +73 -0
- package/seed-templates/e-commerce.md +50 -0
- package/seed-templates/saas-landing.md +92 -0
- package/seed-templates/settings-page.md +51 -0
- package/testing/01-standards/test-strategy-and-layering.md +83 -0
- package/testing/01-standards/testing-strategy-complete.md +422 -0
- package/testing/01-standards/unit-testing-best-practices.md +118 -0
- package/testing/02-playbooks/e2e-testing-playbook.md +988 -0
- package/testing/02-playbooks/testing-strategy-playbook.md +126 -0
- package/testing/03-checklists/test-strategy-checklist.md +208 -0
- package/testing/04-antipatterns/testing-antipatterns.md +718 -0
- package/testing/05-cases/case-testing-transformation.md +300 -0
- package/testing/06-glossary/testing-glossary.md +110 -0
- package/testing/risk-based-test-matrix.md +36 -0
- package/testing/testing-strategy-deep-dive.md +37 -0
|
@@ -0,0 +1,1186 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: quantum-complete
|
|
3
|
+
title: 量子计算完整指南
|
|
4
|
+
domain: quantum
|
|
5
|
+
category: 01-standards
|
|
6
|
+
difficulty: intermediate
|
|
7
|
+
tags: [complete, nisq, quantum, 时代应用, 核心概念, 概述, 量子密码学, 量子机器学习]
|
|
8
|
+
quality_score: 70
|
|
9
|
+
last_updated: 2026-06-15
|
|
10
|
+
---
|
|
11
|
+
# 量子计算完整指南
|
|
12
|
+
|
|
13
|
+
## 概述
|
|
14
|
+
量子计算利用量子力学原理(叠加态和纠缠)进行信息处理,能够解决经典计算机难以处理的复杂问题。本指南覆盖量子计算基础、量子算法、主流框架、量子机器学习、量子密码学、NISQ时代应用和实践指南。
|
|
15
|
+
|
|
16
|
+
## 核心概念
|
|
17
|
+
|
|
18
|
+
### 1. 量子比特(Qubit)
|
|
19
|
+
|
|
20
|
+
**经典比特 vs 量子比特**:
|
|
21
|
+
- 经典比特: 0 或 1
|
|
22
|
+
- 量子比特: |0⟩、|1⟩ 或两者的叠加态 α|0⟩ + β|1⟩
|
|
23
|
+
- |α|² + |β|² = 1(归一化条件)
|
|
24
|
+
- n 个量子比特可表示 2^n 个状态的叠加
|
|
25
|
+
|
|
26
|
+
**Bloch球表示**:
|
|
27
|
+
```python
|
|
28
|
+
from qiskit import QuantumCircuit
|
|
29
|
+
from qiskit.quantum_info import Statevector
|
|
30
|
+
from qiskit.visualization import plot_bloch_multivector
|
|
31
|
+
|
|
32
|
+
# 创建量子电路
|
|
33
|
+
qc = QuantumCircuit(1)
|
|
34
|
+
|
|
35
|
+
# 初始状态 |0⟩ - Bloch球北极
|
|
36
|
+
state = Statevector.from_instruction(qc)
|
|
37
|
+
plot_bloch_multivector(state)
|
|
38
|
+
|
|
39
|
+
# 应用Hadamard门 - 创建叠加态 - Bloch球赤道
|
|
40
|
+
qc.h(0)
|
|
41
|
+
state = Statevector.from_instruction(qc)
|
|
42
|
+
plot_bloch_multivector(state)
|
|
43
|
+
# |+⟩ = (|0⟩ + |1⟩) / √2
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**量子比特物理实现**:
|
|
47
|
+
|
|
48
|
+
| 技术 | 代表机构 | 相干时间 | 门保真度 | 规模 |
|
|
49
|
+
|------|---------|---------|---------|------|
|
|
50
|
+
| 超导量子比特 | IBM, Google | ~100μs | ~99.5% | 100+ |
|
|
51
|
+
| 离子阱 | IonQ, Quantinuum | ~10s | ~99.9% | 30+ |
|
|
52
|
+
| 光量子 | Xanadu, PsiQuantum | ~ns | ~99% | 实验阶段 |
|
|
53
|
+
| 拓扑量子比特 | Microsoft | 理论长 | 理论高 | 研发中 |
|
|
54
|
+
| 中性原子 | Atom Computing | ~1s | ~99.5% | 1000+ |
|
|
55
|
+
|
|
56
|
+
### 2. 量子门
|
|
57
|
+
|
|
58
|
+
**单比特门**:
|
|
59
|
+
```python
|
|
60
|
+
from qiskit import QuantumCircuit
|
|
61
|
+
import numpy as np
|
|
62
|
+
|
|
63
|
+
qc = QuantumCircuit(1)
|
|
64
|
+
|
|
65
|
+
# Pauli门
|
|
66
|
+
qc.x(0) # X门 (NOT): |0⟩ → |1⟩, |1⟩ → |0⟩
|
|
67
|
+
qc.y(0) # Y门: |0⟩ → i|1⟩, |1⟩ → -i|0⟩
|
|
68
|
+
qc.z(0) # Z门: |0⟩ → |0⟩, |1⟩ → -|1⟩
|
|
69
|
+
|
|
70
|
+
# Hadamard门 (创建叠加态)
|
|
71
|
+
qc.h(0) # |0⟩ → (|0⟩ + |1⟩)/√2
|
|
72
|
+
|
|
73
|
+
# 相位门
|
|
74
|
+
qc.s(0) # S门: |1⟩ → i|1⟩ (Z的平方根)
|
|
75
|
+
qc.t(0) # T门: |1⟩ → e^(iπ/4)|1⟩ (S的平方根)
|
|
76
|
+
|
|
77
|
+
# 旋转门(参数化)
|
|
78
|
+
qc.rx(np.pi/2, 0) # 绕X轴旋转π/2
|
|
79
|
+
qc.ry(np.pi/4, 0) # 绕Y轴旋转π/4
|
|
80
|
+
qc.rz(np.pi/8, 0) # 绕Z轴旋转π/8
|
|
81
|
+
|
|
82
|
+
# 矩阵表示
|
|
83
|
+
# H = (1/√2) * [[1, 1], [1, -1]]
|
|
84
|
+
# X = [[0, 1], [1, 0]]
|
|
85
|
+
# Z = [[1, 0], [0, -1]]
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**多比特门**:
|
|
89
|
+
```python
|
|
90
|
+
qc = QuantumCircuit(3)
|
|
91
|
+
|
|
92
|
+
# CNOT门 (受控NOT) - 两比特纠缠的基础
|
|
93
|
+
qc.cx(0, 1) # 如果qubit0=1,则翻转qubit1
|
|
94
|
+
|
|
95
|
+
# CZ门 (受控Z)
|
|
96
|
+
qc.cz(0, 1)
|
|
97
|
+
|
|
98
|
+
# SWAP门 - 交换两个量子比特状态
|
|
99
|
+
qc.swap(0, 1)
|
|
100
|
+
|
|
101
|
+
# Toffoli门 (CCNOT) - 通用经典计算
|
|
102
|
+
qc.ccx(0, 1, 2) # 如果qubit0=1 且 qubit1=1,则翻转qubit2
|
|
103
|
+
|
|
104
|
+
# 受控旋转门
|
|
105
|
+
qc.crx(np.pi/2, 0, 1) # 受控RX
|
|
106
|
+
qc.cry(np.pi/4, 0, 1) # 受控RY
|
|
107
|
+
qc.crz(np.pi/8, 0, 1) # 受控RZ
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### 3. 量子纠缠
|
|
111
|
+
|
|
112
|
+
**Bell态(最大纠缠态)**:
|
|
113
|
+
```python
|
|
114
|
+
from qiskit import QuantumCircuit
|
|
115
|
+
from qiskit.quantum_info import Statevector
|
|
116
|
+
|
|
117
|
+
# 四种Bell态
|
|
118
|
+
def create_bell_state(variant='phi_plus'):
|
|
119
|
+
qc = QuantumCircuit(2)
|
|
120
|
+
|
|
121
|
+
if variant == 'phi_plus':
|
|
122
|
+
# |Φ+⟩ = (|00⟩ + |11⟩) / √2
|
|
123
|
+
qc.h(0)
|
|
124
|
+
qc.cx(0, 1)
|
|
125
|
+
elif variant == 'phi_minus':
|
|
126
|
+
# |Φ-⟩ = (|00⟩ - |11⟩) / √2
|
|
127
|
+
qc.h(0)
|
|
128
|
+
qc.cx(0, 1)
|
|
129
|
+
qc.z(0)
|
|
130
|
+
elif variant == 'psi_plus':
|
|
131
|
+
# |Ψ+⟩ = (|01⟩ + |10⟩) / √2
|
|
132
|
+
qc.h(0)
|
|
133
|
+
qc.cx(0, 1)
|
|
134
|
+
qc.x(1)
|
|
135
|
+
elif variant == 'psi_minus':
|
|
136
|
+
# |Ψ-⟩ = (|01⟩ - |10⟩) / √2
|
|
137
|
+
qc.h(0)
|
|
138
|
+
qc.cx(0, 1)
|
|
139
|
+
qc.x(1)
|
|
140
|
+
qc.z(0)
|
|
141
|
+
|
|
142
|
+
return qc
|
|
143
|
+
|
|
144
|
+
# GHZ态(多体纠缠)
|
|
145
|
+
def create_ghz_state(n_qubits):
|
|
146
|
+
"""创建 n 量子比特 GHZ 态: (|00...0⟩ + |11...1⟩) / √2"""
|
|
147
|
+
qc = QuantumCircuit(n_qubits)
|
|
148
|
+
qc.h(0)
|
|
149
|
+
for i in range(n_qubits - 1):
|
|
150
|
+
qc.cx(i, i + 1)
|
|
151
|
+
return qc
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### 4. 量子测量
|
|
155
|
+
|
|
156
|
+
```python
|
|
157
|
+
from qiskit import QuantumCircuit
|
|
158
|
+
from qiskit_aer import AerSimulator
|
|
159
|
+
|
|
160
|
+
qc = QuantumCircuit(1, 1)
|
|
161
|
+
|
|
162
|
+
# 创建叠加态
|
|
163
|
+
qc.h(0)
|
|
164
|
+
|
|
165
|
+
# Z基测量(计算基)
|
|
166
|
+
qc.measure(0, 0)
|
|
167
|
+
|
|
168
|
+
# 执行多次采样
|
|
169
|
+
simulator = AerSimulator()
|
|
170
|
+
result = simulator.run(qc, shots=10000).result()
|
|
171
|
+
counts = result.get_counts()
|
|
172
|
+
print(counts) # {'0': ~5000, '1': ~5000}
|
|
173
|
+
|
|
174
|
+
# X基测量(需要先旋转)
|
|
175
|
+
qc2 = QuantumCircuit(1, 1)
|
|
176
|
+
qc2.h(0) # 准备 |+⟩ 态
|
|
177
|
+
qc2.h(0) # 旋转到Z基
|
|
178
|
+
qc2.measure(0, 0)
|
|
179
|
+
# 测量结果: {'0': 10000}(|+⟩在X基测量必定为+)
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### 5. 量子退相干与噪声
|
|
183
|
+
|
|
184
|
+
```python
|
|
185
|
+
from qiskit_aer import AerSimulator
|
|
186
|
+
from qiskit_aer.noise import NoiseModel, depolarizing_error, thermal_relaxation_error
|
|
187
|
+
|
|
188
|
+
# 构建噪声模型
|
|
189
|
+
noise_model = NoiseModel()
|
|
190
|
+
|
|
191
|
+
# 退极化噪声(单比特门错误率 0.1%)
|
|
192
|
+
error_1q = depolarizing_error(0.001, 1)
|
|
193
|
+
noise_model.add_all_qubit_quantum_error(error_1q, ['h', 'x', 'y', 'z'])
|
|
194
|
+
|
|
195
|
+
# 退极化噪声(双比特门错误率 1%)
|
|
196
|
+
error_2q = depolarizing_error(0.01, 2)
|
|
197
|
+
noise_model.add_all_qubit_quantum_error(error_2q, ['cx'])
|
|
198
|
+
|
|
199
|
+
# 热弛豫噪声(T1=50μs, T2=70μs, 门时间=50ns)
|
|
200
|
+
thermal_error = thermal_relaxation_error(50e3, 70e3, 50)
|
|
201
|
+
noise_model.add_all_qubit_quantum_error(thermal_error, ['h', 'x'])
|
|
202
|
+
|
|
203
|
+
# 使用噪声模型运行
|
|
204
|
+
noisy_sim = AerSimulator(noise_model=noise_model)
|
|
205
|
+
result = noisy_sim.run(qc, shots=10000).result()
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## 量子算法
|
|
211
|
+
|
|
212
|
+
### 1. Deutsch-Jozsa算法
|
|
213
|
+
|
|
214
|
+
**问题**: 判断函数f(x)是常量还是平衡(经典需 2^(n-1)+1 次查询,量子只需 1 次)
|
|
215
|
+
|
|
216
|
+
```python
|
|
217
|
+
from qiskit import QuantumCircuit
|
|
218
|
+
from qiskit_aer import AerSimulator
|
|
219
|
+
|
|
220
|
+
def deutsch_jozsa(oracle_type='constant', n=3):
|
|
221
|
+
"""
|
|
222
|
+
Deutsch-Jozsa算法
|
|
223
|
+
|
|
224
|
+
oracle_type: 'constant' 或 'balanced'
|
|
225
|
+
n: 输入比特数
|
|
226
|
+
"""
|
|
227
|
+
qc = QuantumCircuit(n + 1, n)
|
|
228
|
+
|
|
229
|
+
# 初始化: 辅助比特置|1⟩,所有比特Hadamard
|
|
230
|
+
qc.x(n)
|
|
231
|
+
qc.h(range(n + 1))
|
|
232
|
+
|
|
233
|
+
# Oracle
|
|
234
|
+
qc.barrier()
|
|
235
|
+
if oracle_type == 'constant':
|
|
236
|
+
pass # f(x) = 0,不做任何操作
|
|
237
|
+
else:
|
|
238
|
+
for i in range(n):
|
|
239
|
+
qc.cx(i, n) # f(x) = x₀ ⊕ x₁ ⊕ ... ⊕ xₙ₋₁
|
|
240
|
+
qc.barrier()
|
|
241
|
+
|
|
242
|
+
# Hadamard + 测量
|
|
243
|
+
qc.h(range(n))
|
|
244
|
+
qc.measure(range(n), range(n))
|
|
245
|
+
|
|
246
|
+
return qc
|
|
247
|
+
|
|
248
|
+
# 测试
|
|
249
|
+
simulator = AerSimulator()
|
|
250
|
+
qc_const = deutsch_jozsa('constant')
|
|
251
|
+
qc_bal = deutsch_jozsa('balanced')
|
|
252
|
+
|
|
253
|
+
result_const = simulator.run(qc_const, shots=1000).result()
|
|
254
|
+
result_bal = simulator.run(qc_bal, shots=1000).result()
|
|
255
|
+
|
|
256
|
+
print("常量:", result_const.get_counts()) # {'000': 1000}
|
|
257
|
+
print("平衡:", result_bal.get_counts()) # 非全零结果
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
### 2. Grover搜索算法
|
|
261
|
+
|
|
262
|
+
**问题**: 在 N 个无序项中搜索目标(经典 O(N),量子 O(√N))
|
|
263
|
+
|
|
264
|
+
```python
|
|
265
|
+
from qiskit import QuantumCircuit
|
|
266
|
+
from qiskit_aer import AerSimulator
|
|
267
|
+
import numpy as np
|
|
268
|
+
|
|
269
|
+
def grover_search(target=5, n_qubits=3):
|
|
270
|
+
"""
|
|
271
|
+
Grover搜索算法
|
|
272
|
+
|
|
273
|
+
target: 目标项 (0 到 2^n_qubits - 1)
|
|
274
|
+
n_qubits: 比特数
|
|
275
|
+
"""
|
|
276
|
+
qc = QuantumCircuit(n_qubits, n_qubits)
|
|
277
|
+
|
|
278
|
+
# 均匀叠加态
|
|
279
|
+
qc.h(range(n_qubits))
|
|
280
|
+
|
|
281
|
+
# 最优迭代次数
|
|
282
|
+
iterations = int(np.pi / 4 * np.sqrt(2**n_qubits))
|
|
283
|
+
|
|
284
|
+
for _ in range(iterations):
|
|
285
|
+
# === Oracle: 标记目标态 ===
|
|
286
|
+
# 翻转非目标位
|
|
287
|
+
for i in range(n_qubits):
|
|
288
|
+
if not (target >> i) & 1:
|
|
289
|
+
qc.x(i)
|
|
290
|
+
|
|
291
|
+
# 多控Z门(标记目标)
|
|
292
|
+
qc.h(n_qubits - 1)
|
|
293
|
+
qc.mcx(list(range(n_qubits - 1)), n_qubits - 1)
|
|
294
|
+
qc.h(n_qubits - 1)
|
|
295
|
+
|
|
296
|
+
# 恢复翻转
|
|
297
|
+
for i in range(n_qubits):
|
|
298
|
+
if not (target >> i) & 1:
|
|
299
|
+
qc.x(i)
|
|
300
|
+
|
|
301
|
+
# === Diffusion 算子(振幅放大) ===
|
|
302
|
+
qc.h(range(n_qubits))
|
|
303
|
+
qc.x(range(n_qubits))
|
|
304
|
+
qc.h(n_qubits - 1)
|
|
305
|
+
qc.mcx(list(range(n_qubits - 1)), n_qubits - 1)
|
|
306
|
+
qc.h(n_qubits - 1)
|
|
307
|
+
qc.x(range(n_qubits))
|
|
308
|
+
qc.h(range(n_qubits))
|
|
309
|
+
|
|
310
|
+
qc.measure(range(n_qubits), range(n_qubits))
|
|
311
|
+
return qc
|
|
312
|
+
|
|
313
|
+
# 执行
|
|
314
|
+
simulator = AerSimulator()
|
|
315
|
+
qc = grover_search(target=5, n_qubits=3)
|
|
316
|
+
result = simulator.run(qc, shots=1000).result()
|
|
317
|
+
counts = result.get_counts()
|
|
318
|
+
print(counts) # {'101': ~945} (目标5的二进制, 高概率)
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### 3. Shor算法(整数分解)
|
|
322
|
+
|
|
323
|
+
**问题**: 将大整数分解为质因子(破解RSA的理论基础)
|
|
324
|
+
|
|
325
|
+
**核心步骤**:
|
|
326
|
+
```
|
|
327
|
+
1. 随机选择 a < N
|
|
328
|
+
2. 检查 gcd(a, N) > 1,若是则直接找到因子
|
|
329
|
+
3. 用量子傅里叶变换(QFT)找 a^r ≡ 1 (mod N) 的周期 r
|
|
330
|
+
4. 若 r 为偶数,计算 gcd(a^(r/2) ± 1, N) 得到因子
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
```python
|
|
334
|
+
from qiskit import QuantumCircuit
|
|
335
|
+
from qiskit.circuit.library import QFT
|
|
336
|
+
import numpy as np
|
|
337
|
+
|
|
338
|
+
def quantum_period_finding(a, N, n_counting_qubits):
|
|
339
|
+
"""量子周期查找子程序(Shor算法核心)"""
|
|
340
|
+
qc = QuantumCircuit(n_counting_qubits + 4, n_counting_qubits)
|
|
341
|
+
|
|
342
|
+
# 初始化计数寄存器为叠加态
|
|
343
|
+
qc.h(range(n_counting_qubits))
|
|
344
|
+
|
|
345
|
+
# 工作寄存器初始化为 |1⟩
|
|
346
|
+
qc.x(n_counting_qubits)
|
|
347
|
+
|
|
348
|
+
# 受控模幂运算 (controlled modular exponentiation)
|
|
349
|
+
# U|y⟩ = |a*y mod N⟩
|
|
350
|
+
for i in range(n_counting_qubits):
|
|
351
|
+
power = 2**i
|
|
352
|
+
# 实际实现需要模幂电路
|
|
353
|
+
# 此处为概念示意
|
|
354
|
+
pass
|
|
355
|
+
|
|
356
|
+
# 逆量子傅里叶变换
|
|
357
|
+
qc.append(QFT(n_counting_qubits, inverse=True), range(n_counting_qubits))
|
|
358
|
+
|
|
359
|
+
# 测量
|
|
360
|
+
qc.measure(range(n_counting_qubits), range(n_counting_qubits))
|
|
361
|
+
|
|
362
|
+
return qc
|
|
363
|
+
|
|
364
|
+
# 经典后处理
|
|
365
|
+
def shor_classical(N):
|
|
366
|
+
"""Shor算法的经典部分"""
|
|
367
|
+
from math import gcd
|
|
368
|
+
import random
|
|
369
|
+
|
|
370
|
+
a = random.randint(2, N - 1)
|
|
371
|
+
if gcd(a, N) > 1:
|
|
372
|
+
return gcd(a, N), N // gcd(a, N)
|
|
373
|
+
|
|
374
|
+
# 量子部分: 找到周期 r 使得 a^r ≡ 1 (mod N)
|
|
375
|
+
# r = quantum_period_finding(a, N)
|
|
376
|
+
|
|
377
|
+
# 假设找到 r
|
|
378
|
+
# if r % 2 == 0:
|
|
379
|
+
# factor1 = gcd(a**(r//2) - 1, N)
|
|
380
|
+
# factor2 = gcd(a**(r//2) + 1, N)
|
|
381
|
+
# return factor1, factor2
|
|
382
|
+
|
|
383
|
+
return None
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
### 4. VQE(变分量子特征求解器)
|
|
387
|
+
|
|
388
|
+
**应用**: 量子化学(分子基态能量计算)、组合优化
|
|
389
|
+
|
|
390
|
+
```python
|
|
391
|
+
from qiskit import QuantumCircuit
|
|
392
|
+
from qiskit.circuit.library import TwoLocal, EfficientSU2
|
|
393
|
+
from qiskit_algorithms import VQE
|
|
394
|
+
from qiskit_algorithms.optimizers import COBYLA, SPSA, L_BFGS_B
|
|
395
|
+
from qiskit.quantum_info import SparsePauliOp
|
|
396
|
+
from qiskit_aer.primitives import Estimator
|
|
397
|
+
|
|
398
|
+
# 定义哈密顿量(H2分子示例)
|
|
399
|
+
hamiltonian = SparsePauliOp.from_list([
|
|
400
|
+
("II", -1.0523732),
|
|
401
|
+
("IZ", 0.3979374),
|
|
402
|
+
("ZI", -0.3979374),
|
|
403
|
+
("ZZ", -0.0112801),
|
|
404
|
+
("XX", 0.1809312),
|
|
405
|
+
])
|
|
406
|
+
|
|
407
|
+
# 定义参数化电路(Ansatz)
|
|
408
|
+
ansatz = EfficientSU2(
|
|
409
|
+
num_qubits=2,
|
|
410
|
+
entanglement='linear',
|
|
411
|
+
reps=2
|
|
412
|
+
)
|
|
413
|
+
|
|
414
|
+
# 优化器选择
|
|
415
|
+
optimizer = COBYLA(maxiter=500)
|
|
416
|
+
|
|
417
|
+
# 运行VQE
|
|
418
|
+
estimator = Estimator()
|
|
419
|
+
vqe = VQE(estimator=estimator, ansatz=ansatz, optimizer=optimizer)
|
|
420
|
+
result = vqe.compute_minimum_eigenvalue(hamiltonian)
|
|
421
|
+
|
|
422
|
+
print(f"基态能量: {result.eigenvalue:.6f} Hartree")
|
|
423
|
+
print(f"最优参数: {result.optimal_parameters}")
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
### 5. QAOA(量子近似优化算法)
|
|
427
|
+
|
|
428
|
+
**应用**: 组合优化问题(MaxCut、旅行商、调度)
|
|
429
|
+
|
|
430
|
+
```python
|
|
431
|
+
from qiskit import QuantumCircuit
|
|
432
|
+
from qiskit_algorithms import QAOA
|
|
433
|
+
from qiskit_algorithms.optimizers import COBYLA
|
|
434
|
+
from qiskit.quantum_info import SparsePauliOp
|
|
435
|
+
from qiskit_aer.primitives import Sampler
|
|
436
|
+
import numpy as np
|
|
437
|
+
|
|
438
|
+
def create_maxcut_hamiltonian(edges, n_nodes):
|
|
439
|
+
"""
|
|
440
|
+
MaxCut 问题: 将图的节点分为两组,使得跨组边数最大
|
|
441
|
+
|
|
442
|
+
Cost Hamiltonian: C = Σ(i,j)∈E (1 - Z_i Z_j) / 2
|
|
443
|
+
"""
|
|
444
|
+
pauli_list = []
|
|
445
|
+
for i, j in edges:
|
|
446
|
+
# (1 - Z_i Z_j) / 2 的展开
|
|
447
|
+
label_zz = ['I'] * n_nodes
|
|
448
|
+
label_zz[i] = 'Z'
|
|
449
|
+
label_zz[j] = 'Z'
|
|
450
|
+
|
|
451
|
+
pauli_list.append((''.join(label_zz), -0.5))
|
|
452
|
+
pauli_list.append(('I' * n_nodes, 0.5))
|
|
453
|
+
|
|
454
|
+
return SparsePauliOp.from_list(pauli_list).simplify()
|
|
455
|
+
|
|
456
|
+
# 定义图(4个节点的环形图)
|
|
457
|
+
edges = [(0, 1), (1, 2), (2, 3), (3, 0)]
|
|
458
|
+
n_nodes = 4
|
|
459
|
+
|
|
460
|
+
# 构建哈密顿量
|
|
461
|
+
hamiltonian = create_maxcut_hamiltonian(edges, n_nodes)
|
|
462
|
+
|
|
463
|
+
# QAOA 参数
|
|
464
|
+
p = 2 # QAOA层数(深度)
|
|
465
|
+
|
|
466
|
+
# 运行QAOA
|
|
467
|
+
sampler = Sampler()
|
|
468
|
+
qaoa = QAOA(
|
|
469
|
+
sampler=sampler,
|
|
470
|
+
optimizer=COBYLA(maxiter=200),
|
|
471
|
+
reps=p
|
|
472
|
+
)
|
|
473
|
+
|
|
474
|
+
result = qaoa.compute_minimum_eigenvalue(hamiltonian)
|
|
475
|
+
print(f"最优值: {result.eigenvalue:.4f}")
|
|
476
|
+
print(f"最优解: {result.best_measurement}")
|
|
477
|
+
|
|
478
|
+
# QAOA 电路结构:
|
|
479
|
+
# 1. 初始态: |+⟩^n (均匀叠加)
|
|
480
|
+
# 2. p层迭代:
|
|
481
|
+
# a. 问题层 (Cost): exp(-iγC) - 编码优化目标
|
|
482
|
+
# b. 混合层 (Mixer): exp(-iβB) - 探索解空间
|
|
483
|
+
# 3. 测量获得近似最优解
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
### 6. 量子相位估计(QPE)
|
|
487
|
+
|
|
488
|
+
```python
|
|
489
|
+
from qiskit import QuantumCircuit
|
|
490
|
+
from qiskit.circuit.library import QFT
|
|
491
|
+
import numpy as np
|
|
492
|
+
|
|
493
|
+
def quantum_phase_estimation(unitary_gate, n_counting=4):
|
|
494
|
+
"""
|
|
495
|
+
量子相位估计: 找到酉算子U的特征值 e^(2πiθ)
|
|
496
|
+
|
|
497
|
+
输入: U|ψ⟩ = e^(2πiθ)|ψ⟩
|
|
498
|
+
输出: θ的n位二进制近似
|
|
499
|
+
"""
|
|
500
|
+
n_target = unitary_gate.num_qubits
|
|
501
|
+
qc = QuantumCircuit(n_counting + n_target, n_counting)
|
|
502
|
+
|
|
503
|
+
# 计数寄存器: Hadamard
|
|
504
|
+
qc.h(range(n_counting))
|
|
505
|
+
|
|
506
|
+
# 目标寄存器: 特征态(此处假设已准备好)
|
|
507
|
+
|
|
508
|
+
# 受控U^(2^k)
|
|
509
|
+
for k in range(n_counting):
|
|
510
|
+
power = 2**k
|
|
511
|
+
controlled_u = unitary_gate.power(power).control(1)
|
|
512
|
+
qc.append(controlled_u, [k] + list(range(n_counting, n_counting + n_target)))
|
|
513
|
+
|
|
514
|
+
# 逆QFT
|
|
515
|
+
qc.append(QFT(n_counting, inverse=True), range(n_counting))
|
|
516
|
+
|
|
517
|
+
# 测量计数寄存器
|
|
518
|
+
qc.measure(range(n_counting), range(n_counting))
|
|
519
|
+
|
|
520
|
+
return qc
|
|
521
|
+
```
|
|
522
|
+
|
|
523
|
+
---
|
|
524
|
+
|
|
525
|
+
## 量子机器学习
|
|
526
|
+
|
|
527
|
+
### 1. 量子核方法(Quantum Kernel)
|
|
528
|
+
|
|
529
|
+
```python
|
|
530
|
+
from qiskit.circuit.library import ZZFeatureMap
|
|
531
|
+
from qiskit_machine_learning.kernels import FidelityQuantumKernel
|
|
532
|
+
from qiskit_aer.primitives import Sampler
|
|
533
|
+
from sklearn.svm import SVC
|
|
534
|
+
from sklearn.datasets import make_moons
|
|
535
|
+
from sklearn.model_selection import train_test_split
|
|
536
|
+
|
|
537
|
+
# 生成数据
|
|
538
|
+
X, y = make_moons(n_samples=200, noise=0.1, random_state=42)
|
|
539
|
+
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
|
|
540
|
+
|
|
541
|
+
# 量子特征映射
|
|
542
|
+
feature_map = ZZFeatureMap(
|
|
543
|
+
feature_dimension=2,
|
|
544
|
+
reps=2,
|
|
545
|
+
entanglement='linear'
|
|
546
|
+
)
|
|
547
|
+
|
|
548
|
+
# 量子核
|
|
549
|
+
sampler = Sampler()
|
|
550
|
+
quantum_kernel = FidelityQuantumKernel(
|
|
551
|
+
feature_map=feature_map,
|
|
552
|
+
fidelity=sampler
|
|
553
|
+
)
|
|
554
|
+
|
|
555
|
+
# 量子SVM
|
|
556
|
+
qsvm = SVC(kernel=quantum_kernel.evaluate)
|
|
557
|
+
qsvm.fit(X_train, y_train)
|
|
558
|
+
|
|
559
|
+
accuracy = qsvm.score(X_test, y_test)
|
|
560
|
+
print(f"量子SVM准确率: {accuracy:.2%}")
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
### 2. 参数化量子电路(PQC)分类器
|
|
564
|
+
|
|
565
|
+
```python
|
|
566
|
+
from qiskit import QuantumCircuit
|
|
567
|
+
from qiskit.circuit import ParameterVector
|
|
568
|
+
from qiskit_machine_learning.neural_networks import EstimatorQNN
|
|
569
|
+
from qiskit_machine_learning.algorithms.classifiers import NeuralNetworkClassifier
|
|
570
|
+
from qiskit_algorithms.optimizers import ADAM
|
|
571
|
+
from qiskit_aer.primitives import Estimator
|
|
572
|
+
import numpy as np
|
|
573
|
+
|
|
574
|
+
def create_qnn_circuit(n_features, n_layers):
|
|
575
|
+
"""构建参数化量子神经网络"""
|
|
576
|
+
n_qubits = n_features
|
|
577
|
+
inputs = ParameterVector('x', n_features)
|
|
578
|
+
weights = ParameterVector('w', n_layers * n_qubits * 2)
|
|
579
|
+
|
|
580
|
+
qc = QuantumCircuit(n_qubits)
|
|
581
|
+
|
|
582
|
+
# 数据编码层
|
|
583
|
+
for i in range(n_qubits):
|
|
584
|
+
qc.ry(inputs[i], i)
|
|
585
|
+
|
|
586
|
+
# 参数化层
|
|
587
|
+
w_idx = 0
|
|
588
|
+
for layer in range(n_layers):
|
|
589
|
+
# 旋转门
|
|
590
|
+
for i in range(n_qubits):
|
|
591
|
+
qc.ry(weights[w_idx], i)
|
|
592
|
+
w_idx += 1
|
|
593
|
+
qc.rz(weights[w_idx], i)
|
|
594
|
+
w_idx += 1
|
|
595
|
+
|
|
596
|
+
# 纠缠层
|
|
597
|
+
for i in range(n_qubits - 1):
|
|
598
|
+
qc.cx(i, i + 1)
|
|
599
|
+
if n_qubits > 2:
|
|
600
|
+
qc.cx(n_qubits - 1, 0)
|
|
601
|
+
|
|
602
|
+
return qc, inputs, weights
|
|
603
|
+
|
|
604
|
+
# 构建电路
|
|
605
|
+
qc, inputs, weights = create_qnn_circuit(n_features=2, n_layers=3)
|
|
606
|
+
|
|
607
|
+
# 创建QNN
|
|
608
|
+
estimator = Estimator()
|
|
609
|
+
qnn = EstimatorQNN(
|
|
610
|
+
circuit=qc,
|
|
611
|
+
input_params=list(inputs),
|
|
612
|
+
weight_params=list(weights),
|
|
613
|
+
estimator=estimator
|
|
614
|
+
)
|
|
615
|
+
|
|
616
|
+
# 训练分类器
|
|
617
|
+
classifier = NeuralNetworkClassifier(
|
|
618
|
+
neural_network=qnn,
|
|
619
|
+
optimizer=ADAM(maxiter=100, lr=0.1),
|
|
620
|
+
loss='cross_entropy'
|
|
621
|
+
)
|
|
622
|
+
|
|
623
|
+
# classifier.fit(X_train, y_train)
|
|
624
|
+
# predictions = classifier.predict(X_test)
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
### 3. 量子生成对抗网络(QGAN)
|
|
628
|
+
|
|
629
|
+
```python
|
|
630
|
+
# QGAN 概念架构
|
|
631
|
+
# 生成器: 参数化量子电路 → 生成量子态 → 测量得到样本
|
|
632
|
+
# 判别器: 经典神经网络 → 判断真假
|
|
633
|
+
|
|
634
|
+
# 训练流程:
|
|
635
|
+
# 1. 生成器产出样本
|
|
636
|
+
# 2. 判别器区分真实 vs 生成样本
|
|
637
|
+
# 3. 更新生成器参数使判别器更难区分
|
|
638
|
+
# 4. 更新判别器参数使其更擅长区分
|
|
639
|
+
|
|
640
|
+
def quantum_generator(n_qubits, n_layers):
|
|
641
|
+
"""量子生成器电路"""
|
|
642
|
+
from qiskit.circuit import ParameterVector
|
|
643
|
+
|
|
644
|
+
params = ParameterVector('g', n_layers * n_qubits * 3)
|
|
645
|
+
qc = QuantumCircuit(n_qubits)
|
|
646
|
+
|
|
647
|
+
p_idx = 0
|
|
648
|
+
for _ in range(n_layers):
|
|
649
|
+
for i in range(n_qubits):
|
|
650
|
+
qc.rx(params[p_idx], i); p_idx += 1
|
|
651
|
+
qc.ry(params[p_idx], i); p_idx += 1
|
|
652
|
+
qc.rz(params[p_idx], i); p_idx += 1
|
|
653
|
+
for i in range(n_qubits - 1):
|
|
654
|
+
qc.cx(i, i + 1)
|
|
655
|
+
|
|
656
|
+
qc.measure_all()
|
|
657
|
+
return qc, params
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
---
|
|
661
|
+
|
|
662
|
+
## 量子密码学
|
|
663
|
+
|
|
664
|
+
### 1. BB84 量子密钥分发(QKD)
|
|
665
|
+
|
|
666
|
+
```python
|
|
667
|
+
import numpy as np
|
|
668
|
+
|
|
669
|
+
def bb84_protocol(n_bits=100):
|
|
670
|
+
"""
|
|
671
|
+
BB84量子密钥分发协议模拟
|
|
672
|
+
|
|
673
|
+
核心原理: 量子不可克隆定理 + 测量会干扰量子态
|
|
674
|
+
"""
|
|
675
|
+
|
|
676
|
+
# Alice准备随机比特和随机基
|
|
677
|
+
alice_bits = np.random.randint(0, 2, n_bits)
|
|
678
|
+
alice_bases = np.random.randint(0, 2, n_bits) # 0=Z基, 1=X基
|
|
679
|
+
|
|
680
|
+
# Alice准备量子态
|
|
681
|
+
# Z基: 0→|0⟩, 1→|1⟩
|
|
682
|
+
# X基: 0→|+⟩, 1→|-⟩
|
|
683
|
+
|
|
684
|
+
# Bob选择随机测量基
|
|
685
|
+
bob_bases = np.random.randint(0, 2, n_bits)
|
|
686
|
+
|
|
687
|
+
# Bob测量
|
|
688
|
+
bob_results = []
|
|
689
|
+
for i in range(n_bits):
|
|
690
|
+
if alice_bases[i] == bob_bases[i]:
|
|
691
|
+
# 基匹配: 确定性结果
|
|
692
|
+
bob_results.append(alice_bits[i])
|
|
693
|
+
else:
|
|
694
|
+
# 基不匹配: 随机结果
|
|
695
|
+
bob_results.append(np.random.randint(0, 2))
|
|
696
|
+
|
|
697
|
+
# 基比对(公开信道): 保留基匹配的比特
|
|
698
|
+
sifted_key_alice = []
|
|
699
|
+
sifted_key_bob = []
|
|
700
|
+
for i in range(n_bits):
|
|
701
|
+
if alice_bases[i] == bob_bases[i]:
|
|
702
|
+
sifted_key_alice.append(alice_bits[i])
|
|
703
|
+
sifted_key_bob.append(bob_results[i])
|
|
704
|
+
|
|
705
|
+
# 错误率检测(取样一部分比较)
|
|
706
|
+
sample_size = min(len(sifted_key_alice) // 4, 10)
|
|
707
|
+
errors = sum(
|
|
708
|
+
sifted_key_alice[i] != sifted_key_bob[i]
|
|
709
|
+
for i in range(sample_size)
|
|
710
|
+
)
|
|
711
|
+
error_rate = errors / sample_size if sample_size > 0 else 0
|
|
712
|
+
|
|
713
|
+
print(f"原始比特数: {n_bits}")
|
|
714
|
+
print(f"筛后密钥长度: {len(sifted_key_alice)}")
|
|
715
|
+
print(f"采样错误率: {error_rate:.2%}")
|
|
716
|
+
|
|
717
|
+
if error_rate > 0.11: # 阈值: ~11%
|
|
718
|
+
print("警告: 可能存在窃听者!")
|
|
719
|
+
else:
|
|
720
|
+
print("密钥安全")
|
|
721
|
+
|
|
722
|
+
return sifted_key_alice[sample_size:], error_rate
|
|
723
|
+
|
|
724
|
+
key, err = bb84_protocol(1000)
|
|
725
|
+
```
|
|
726
|
+
|
|
727
|
+
### 2. 后量子密码学(Post-Quantum Cryptography)
|
|
728
|
+
|
|
729
|
+
```
|
|
730
|
+
量子计算对现有密码学的威胁:
|
|
731
|
+
|
|
732
|
+
| 算法 | 类型 | 量子威胁 | 替代方案 |
|
|
733
|
+
|------|------|---------|---------|
|
|
734
|
+
| RSA | 非对称加密 | Shor算法可破解 | 格密码(Lattice) |
|
|
735
|
+
| ECC | 非对称加密 | Shor算法可破解 | 格密码/哈希签名 |
|
|
736
|
+
| AES-128 | 对称加密 | Grover降至64位 | AES-256 |
|
|
737
|
+
| AES-256 | 对称加密 | Grover降至128位 | 仍然安全 |
|
|
738
|
+
| SHA-256 | 哈希 | Grover降至128位 | 仍然安全 |
|
|
739
|
+
|
|
740
|
+
NIST后量子密码标准(2024年发布):
|
|
741
|
+
- ML-KEM (CRYSTALS-Kyber): 密钥封装
|
|
742
|
+
- ML-DSA (CRYSTALS-Dilithium): 数字签名
|
|
743
|
+
- SLH-DSA (SPHINCS+): 基于哈希的签名
|
|
744
|
+
- FN-DSA (FALCON): 紧凑签名
|
|
745
|
+
```
|
|
746
|
+
|
|
747
|
+
**后量子密码使用示例**:
|
|
748
|
+
```python
|
|
749
|
+
# 使用 liboqs (Open Quantum Safe)
|
|
750
|
+
# pip install liboqs-python
|
|
751
|
+
|
|
752
|
+
from oqs import KeyEncapsulation, Signature
|
|
753
|
+
|
|
754
|
+
# ML-KEM 密钥封装
|
|
755
|
+
kem = KeyEncapsulation("ML-KEM-768")
|
|
756
|
+
public_key = kem.generate_keypair()
|
|
757
|
+
ciphertext, shared_secret_enc = kem.encap_secret(public_key)
|
|
758
|
+
shared_secret_dec = kem.decap_secret(ciphertext)
|
|
759
|
+
assert shared_secret_enc == shared_secret_dec
|
|
760
|
+
|
|
761
|
+
# ML-DSA 数字签名
|
|
762
|
+
sig = Signature("ML-DSA-65")
|
|
763
|
+
public_key = sig.generate_keypair()
|
|
764
|
+
message = b"Hello, post-quantum world!"
|
|
765
|
+
signature = sig.sign(message)
|
|
766
|
+
is_valid = sig.verify(message, signature, public_key)
|
|
767
|
+
print(f"签名验证: {is_valid}") # True
|
|
768
|
+
```
|
|
769
|
+
|
|
770
|
+
### 3. 量子随机数生成
|
|
771
|
+
|
|
772
|
+
```python
|
|
773
|
+
from qiskit import QuantumCircuit
|
|
774
|
+
from qiskit_aer import AerSimulator
|
|
775
|
+
|
|
776
|
+
def quantum_random_bytes(n_bytes):
|
|
777
|
+
"""利用量子叠加态生成真随机数"""
|
|
778
|
+
n_bits = n_bytes * 8
|
|
779
|
+
qc = QuantumCircuit(n_bits, n_bits)
|
|
780
|
+
|
|
781
|
+
# 所有比特置于叠加态
|
|
782
|
+
qc.h(range(n_bits))
|
|
783
|
+
|
|
784
|
+
# 测量
|
|
785
|
+
qc.measure(range(n_bits), range(n_bits))
|
|
786
|
+
|
|
787
|
+
# 执行(单次采样)
|
|
788
|
+
simulator = AerSimulator()
|
|
789
|
+
result = simulator.run(qc, shots=1).result()
|
|
790
|
+
bitstring = list(result.get_counts().keys())[0]
|
|
791
|
+
|
|
792
|
+
# 转换为字节
|
|
793
|
+
random_bytes = int(bitstring, 2).to_bytes(n_bytes, 'big')
|
|
794
|
+
return random_bytes
|
|
795
|
+
|
|
796
|
+
# 生成32字节随机数(256位)
|
|
797
|
+
random_key = quantum_random_bytes(32)
|
|
798
|
+
print(f"量子随机密钥: {random_key.hex()}")
|
|
799
|
+
```
|
|
800
|
+
|
|
801
|
+
---
|
|
802
|
+
|
|
803
|
+
## NISQ 时代应用
|
|
804
|
+
|
|
805
|
+
### 什么是 NISQ?
|
|
806
|
+
|
|
807
|
+
```
|
|
808
|
+
NISQ = Noisy Intermediate-Scale Quantum
|
|
809
|
+
含噪声的中等规模量子计算
|
|
810
|
+
|
|
811
|
+
特征:
|
|
812
|
+
- 量子比特数: 50-1000+
|
|
813
|
+
- 相干时间: 有限(微秒到毫秒级)
|
|
814
|
+
- 门错误率: 0.1% - 1%
|
|
815
|
+
- 无完全纠错能力
|
|
816
|
+
- 电路深度受限(< 100-1000 层)
|
|
817
|
+
```
|
|
818
|
+
|
|
819
|
+
### 1. NISQ 适用场景
|
|
820
|
+
|
|
821
|
+
| 场景 | 算法 | 量子比特需求 | 成熟度 |
|
|
822
|
+
|------|------|------------|--------|
|
|
823
|
+
| 分子模拟 | VQE | 10-100 | 实验验证 |
|
|
824
|
+
| 组合优化 | QAOA | 50-500 | 原型阶段 |
|
|
825
|
+
| 机器学习 | QNN/QKernel | 10-50 | 研究阶段 |
|
|
826
|
+
| 金融建模 | 量子蒙特卡罗 | 50-200 | 探索阶段 |
|
|
827
|
+
| 材料设计 | VQE/QPE | 50-500 | 探索阶段 |
|
|
828
|
+
|
|
829
|
+
### 2. 错误缓解技术(Error Mitigation)
|
|
830
|
+
|
|
831
|
+
```python
|
|
832
|
+
from qiskit_aer.primitives import Estimator
|
|
833
|
+
from qiskit.quantum_info import SparsePauliOp
|
|
834
|
+
|
|
835
|
+
# 方法1: 零噪声外推 (ZNE)
|
|
836
|
+
# 原理: 人为增大噪声,测量多个噪声级别,外推到零噪声
|
|
837
|
+
|
|
838
|
+
def zero_noise_extrapolation(circuit, observable, noise_factors=[1, 2, 3]):
|
|
839
|
+
"""零噪声外推"""
|
|
840
|
+
results = []
|
|
841
|
+
|
|
842
|
+
for factor in noise_factors:
|
|
843
|
+
# 通过门折叠(gate folding)增大噪声
|
|
844
|
+
noisy_circuit = fold_gates(circuit, factor)
|
|
845
|
+
estimator = Estimator()
|
|
846
|
+
result = estimator.run(noisy_circuit, observable).result()
|
|
847
|
+
results.append(result.values[0])
|
|
848
|
+
|
|
849
|
+
# Richardson外推
|
|
850
|
+
# 线性外推到 factor=0
|
|
851
|
+
import numpy as np
|
|
852
|
+
coeffs = np.polyfit(noise_factors, results, deg=len(noise_factors)-1)
|
|
853
|
+
extrapolated = np.polyval(coeffs, 0)
|
|
854
|
+
|
|
855
|
+
return extrapolated
|
|
856
|
+
|
|
857
|
+
# 方法2: 概率错误消除 (PEC)
|
|
858
|
+
# 原理: 将噪声信道分解为理想门的线性组合
|
|
859
|
+
|
|
860
|
+
# 方法3: 测量错误缓解
|
|
861
|
+
from qiskit_aer.noise import NoiseModel
|
|
862
|
+
from qiskit.result import marginal_counts
|
|
863
|
+
|
|
864
|
+
def measurement_error_mitigation(counts, calibration_matrix):
|
|
865
|
+
"""使用校准矩阵修正测量错误"""
|
|
866
|
+
import numpy as np
|
|
867
|
+
|
|
868
|
+
# 构建概率向量
|
|
869
|
+
n_qubits = int(np.log2(len(calibration_matrix)))
|
|
870
|
+
prob_vector = np.zeros(2**n_qubits)
|
|
871
|
+
|
|
872
|
+
total = sum(counts.values())
|
|
873
|
+
for bitstring, count in counts.items():
|
|
874
|
+
idx = int(bitstring, 2)
|
|
875
|
+
prob_vector[idx] = count / total
|
|
876
|
+
|
|
877
|
+
# 应用逆校准矩阵
|
|
878
|
+
corrected = np.linalg.solve(calibration_matrix, prob_vector)
|
|
879
|
+
corrected = np.clip(corrected, 0, 1)
|
|
880
|
+
corrected /= corrected.sum()
|
|
881
|
+
|
|
882
|
+
return corrected
|
|
883
|
+
```
|
|
884
|
+
|
|
885
|
+
### 3. 量子-经典混合计算
|
|
886
|
+
|
|
887
|
+
```
|
|
888
|
+
NISQ 时代的最佳实践: 量子-经典混合架构
|
|
889
|
+
|
|
890
|
+
┌────────────────────────────────────────┐
|
|
891
|
+
│ 经典计算机 │
|
|
892
|
+
│ ┌──────────────────────────────────┐ │
|
|
893
|
+
│ │ 参数优化器 (COBYLA/ADAM/SPSA) │ │
|
|
894
|
+
│ │ ↕ 参数更新 │ │
|
|
895
|
+
│ │ 结果后处理 / 错误缓解 │ │
|
|
896
|
+
│ └──────────────────────────────────┘ │
|
|
897
|
+
│ ↕ 参数/结果传递 │
|
|
898
|
+
├────────────────────────────────────────┤
|
|
899
|
+
│ 量子处理器 │
|
|
900
|
+
│ ┌──────────────────────────────────┐ │
|
|
901
|
+
│ │ 参数化电路执行 │ │
|
|
902
|
+
│ │ 量子态制备 + 测量 │ │
|
|
903
|
+
│ └──────────────────────────────────┘ │
|
|
904
|
+
└────────────────────────────────────────┘
|
|
905
|
+
|
|
906
|
+
关键原则:
|
|
907
|
+
1. 量子部分尽量浅(短电路深度)
|
|
908
|
+
2. 复杂优化放在经典端
|
|
909
|
+
3. 使用错误缓解而非纠错
|
|
910
|
+
4. 利用问题结构减少量子资源需求
|
|
911
|
+
```
|
|
912
|
+
|
|
913
|
+
---
|
|
914
|
+
|
|
915
|
+
## 量子编程框架
|
|
916
|
+
|
|
917
|
+
### 1. Qiskit (IBM)
|
|
918
|
+
|
|
919
|
+
```python
|
|
920
|
+
# Qiskit 1.x API(最新版本)
|
|
921
|
+
from qiskit import QuantumCircuit
|
|
922
|
+
from qiskit.quantum_info import Statevector, Operator
|
|
923
|
+
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
|
|
924
|
+
from qiskit_aer import AerSimulator
|
|
925
|
+
from qiskit_ibm_runtime import QiskitRuntimeService, Sampler, Estimator
|
|
926
|
+
|
|
927
|
+
# 本地模拟
|
|
928
|
+
simulator = AerSimulator()
|
|
929
|
+
qc = QuantumCircuit(2)
|
|
930
|
+
qc.h(0)
|
|
931
|
+
qc.cx(0, 1)
|
|
932
|
+
qc.measure_all()
|
|
933
|
+
result = simulator.run(qc, shots=1000).result()
|
|
934
|
+
|
|
935
|
+
# IBM 真实量子硬件
|
|
936
|
+
service = QiskitRuntimeService(channel="ibm_quantum")
|
|
937
|
+
backend = service.least_busy(min_num_qubits=2, simulator=False)
|
|
938
|
+
|
|
939
|
+
# 转译优化
|
|
940
|
+
pm = generate_preset_pass_manager(
|
|
941
|
+
optimization_level=3,
|
|
942
|
+
backend=backend
|
|
943
|
+
)
|
|
944
|
+
optimized_circuit = pm.run(qc)
|
|
945
|
+
|
|
946
|
+
# 执行
|
|
947
|
+
sampler = Sampler(backend)
|
|
948
|
+
job = sampler.run([optimized_circuit], shots=4096)
|
|
949
|
+
result = job.result()
|
|
950
|
+
```
|
|
951
|
+
|
|
952
|
+
### 2. Cirq (Google)
|
|
953
|
+
|
|
954
|
+
```python
|
|
955
|
+
import cirq
|
|
956
|
+
import numpy as np
|
|
957
|
+
|
|
958
|
+
# 创建量子比特
|
|
959
|
+
q0, q1 = cirq.LineQubit.range(2)
|
|
960
|
+
|
|
961
|
+
# 创建电路
|
|
962
|
+
circuit = cirq.Circuit([
|
|
963
|
+
cirq.H(q0),
|
|
964
|
+
cirq.CNOT(q0, q1),
|
|
965
|
+
cirq.measure(q0, q1, key='result')
|
|
966
|
+
])
|
|
967
|
+
|
|
968
|
+
print(circuit)
|
|
969
|
+
# 0: ───H───@───M('result')───
|
|
970
|
+
# │ │
|
|
971
|
+
# 1: ───────X───M──────────────
|
|
972
|
+
|
|
973
|
+
# 模拟
|
|
974
|
+
simulator = cirq.Simulator()
|
|
975
|
+
result = simulator.run(circuit, repetitions=1000)
|
|
976
|
+
print(result.histogram(key='result'))
|
|
977
|
+
|
|
978
|
+
# 参数化电路
|
|
979
|
+
theta = cirq.Symbol('theta')
|
|
980
|
+
param_circuit = cirq.Circuit([
|
|
981
|
+
cirq.ry(theta)(q0),
|
|
982
|
+
cirq.CNOT(q0, q1),
|
|
983
|
+
cirq.measure(q0, q1, key='result')
|
|
984
|
+
])
|
|
985
|
+
|
|
986
|
+
# 扫参数
|
|
987
|
+
sweep = cirq.Linspace(key='theta', start=0, stop=2*np.pi, length=10)
|
|
988
|
+
results = simulator.run_sweep(param_circuit, sweep, repetitions=100)
|
|
989
|
+
|
|
990
|
+
# 噪声模拟
|
|
991
|
+
noisy_circuit = cirq.Circuit([
|
|
992
|
+
cirq.H(q0),
|
|
993
|
+
cirq.depolarize(p=0.01).on(q0), # 退极化噪声
|
|
994
|
+
cirq.CNOT(q0, q1),
|
|
995
|
+
cirq.depolarize(p=0.02).on(q0),
|
|
996
|
+
cirq.depolarize(p=0.02).on(q1),
|
|
997
|
+
cirq.measure(q0, q1, key='result')
|
|
998
|
+
])
|
|
999
|
+
```
|
|
1000
|
+
|
|
1001
|
+
### 3. PennyLane(自动微分)
|
|
1002
|
+
|
|
1003
|
+
```python
|
|
1004
|
+
import pennylane as qml
|
|
1005
|
+
from pennylane import numpy as np
|
|
1006
|
+
|
|
1007
|
+
# 定义量子设备
|
|
1008
|
+
dev = qml.device('default.qubit', wires=2)
|
|
1009
|
+
|
|
1010
|
+
# 定义量子节点(自动微分支持)
|
|
1011
|
+
@qml.qnode(dev, diff_method='parameter-shift')
|
|
1012
|
+
def circuit(params):
|
|
1013
|
+
qml.RX(params[0], wires=0)
|
|
1014
|
+
qml.RY(params[1], wires=1)
|
|
1015
|
+
qml.CNOT(wires=[0, 1])
|
|
1016
|
+
return qml.expval(qml.PauliZ(0) @ qml.PauliZ(1))
|
|
1017
|
+
|
|
1018
|
+
# 梯度计算
|
|
1019
|
+
params = np.array([0.5, 0.3], requires_grad=True)
|
|
1020
|
+
grad_fn = qml.grad(circuit)
|
|
1021
|
+
gradients = grad_fn(params)
|
|
1022
|
+
print(f"梯度: {gradients}")
|
|
1023
|
+
|
|
1024
|
+
# 变分优化
|
|
1025
|
+
opt = qml.AdamOptimizer(stepsize=0.1)
|
|
1026
|
+
for i in range(100):
|
|
1027
|
+
params = opt.step(lambda p: -circuit(p), params)
|
|
1028
|
+
|
|
1029
|
+
print(f"优化后参数: {params}")
|
|
1030
|
+
print(f"最终期望值: {circuit(params):.6f}")
|
|
1031
|
+
|
|
1032
|
+
# PennyLane + PyTorch 集成
|
|
1033
|
+
import torch
|
|
1034
|
+
|
|
1035
|
+
dev_torch = qml.device('default.qubit', wires=2)
|
|
1036
|
+
|
|
1037
|
+
@qml.qnode(dev_torch, interface='torch')
|
|
1038
|
+
def torch_circuit(inputs, weights):
|
|
1039
|
+
qml.AngleEmbedding(inputs, wires=range(2))
|
|
1040
|
+
qml.StronglyEntanglingLayers(weights, wires=range(2))
|
|
1041
|
+
return qml.expval(qml.PauliZ(0))
|
|
1042
|
+
|
|
1043
|
+
# PyTorch优化
|
|
1044
|
+
weights = torch.randn(3, 2, 3, requires_grad=True)
|
|
1045
|
+
optimizer = torch.optim.Adam([weights], lr=0.1)
|
|
1046
|
+
```
|
|
1047
|
+
|
|
1048
|
+
### 框架选型指南
|
|
1049
|
+
|
|
1050
|
+
| 需求 | 推荐框架 | 理由 |
|
|
1051
|
+
|------|---------|------|
|
|
1052
|
+
| IBM硬件访问 | Qiskit | 原生支持 |
|
|
1053
|
+
| Google硬件访问 | Cirq | 原生支持 |
|
|
1054
|
+
| 量子机器学习 | PennyLane | 自动微分 + 框架集成 |
|
|
1055
|
+
| 教学/学习 | Qiskit / Cirq | 文档丰富 |
|
|
1056
|
+
| 研究/实验 | PennyLane | 灵活性高 |
|
|
1057
|
+
| 生产部署 | Qiskit Runtime | 会话管理 + 优化 |
|
|
1058
|
+
|
|
1059
|
+
---
|
|
1060
|
+
|
|
1061
|
+
## 最佳实践
|
|
1062
|
+
|
|
1063
|
+
### 1. 电路优化
|
|
1064
|
+
|
|
1065
|
+
```python
|
|
1066
|
+
# ✅ 减少电路深度
|
|
1067
|
+
qc = QuantumCircuit(2)
|
|
1068
|
+
qc.h(0)
|
|
1069
|
+
qc.cx(0, 1) # 深度 2
|
|
1070
|
+
|
|
1071
|
+
# ❌ 冗余门
|
|
1072
|
+
qc_bad = QuantumCircuit(2)
|
|
1073
|
+
qc_bad.h(0)
|
|
1074
|
+
qc_bad.h(0) # H·H = I,互相抵消
|
|
1075
|
+
qc_bad.cx(0, 1)
|
|
1076
|
+
|
|
1077
|
+
# ✅ 利用转译器优化
|
|
1078
|
+
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
|
|
1079
|
+
|
|
1080
|
+
# optimization_level:
|
|
1081
|
+
# 0 = 无优化
|
|
1082
|
+
# 1 = 轻量优化(门合并)
|
|
1083
|
+
# 2 = 中等优化(+ 路由优化)
|
|
1084
|
+
# 3 = 重度优化(+ 门分解优化, 最慢但最优)
|
|
1085
|
+
```
|
|
1086
|
+
|
|
1087
|
+
### 2. 错误缓解
|
|
1088
|
+
|
|
1089
|
+
```python
|
|
1090
|
+
from qiskit_aer.noise import NoiseModel
|
|
1091
|
+
from qiskit_aer import AerSimulator
|
|
1092
|
+
|
|
1093
|
+
# ✅ 使用适当的模拟器进行开发
|
|
1094
|
+
# 开发阶段: 无噪声模拟器
|
|
1095
|
+
ideal_sim = AerSimulator(method='statevector')
|
|
1096
|
+
|
|
1097
|
+
# 验证阶段: 噪声模拟器
|
|
1098
|
+
noise_model = NoiseModel.from_backend(real_backend)
|
|
1099
|
+
noisy_sim = AerSimulator(noise_model=noise_model)
|
|
1100
|
+
|
|
1101
|
+
# 生产阶段: 真实硬件 + 错误缓解
|
|
1102
|
+
```
|
|
1103
|
+
|
|
1104
|
+
### 3. 开发流程
|
|
1105
|
+
|
|
1106
|
+
```
|
|
1107
|
+
1. 理论验证
|
|
1108
|
+
└── 小规模无噪声模拟验证算法正确性
|
|
1109
|
+
|
|
1110
|
+
2. 噪声评估
|
|
1111
|
+
└── 使用噪声模型评估实际可行性
|
|
1112
|
+
|
|
1113
|
+
3. 电路优化
|
|
1114
|
+
└── 减少深度、门数量、量子比特数
|
|
1115
|
+
|
|
1116
|
+
4. 错误缓解
|
|
1117
|
+
└── 选择合适的缓解策略
|
|
1118
|
+
|
|
1119
|
+
5. 硬件执行
|
|
1120
|
+
└── 选择合适的量子处理器
|
|
1121
|
+
|
|
1122
|
+
6. 结果验证
|
|
1123
|
+
└── 与经典计算对比验证
|
|
1124
|
+
```
|
|
1125
|
+
|
|
1126
|
+
---
|
|
1127
|
+
|
|
1128
|
+
## Agent Checklist
|
|
1129
|
+
|
|
1130
|
+
### 量子算法选型
|
|
1131
|
+
- [ ] 确认问题类型(优化/模拟/搜索/密码学)
|
|
1132
|
+
- [ ] 评估量子优势是否存在(与最佳经典算法对比)
|
|
1133
|
+
- [ ] 确认所需量子比特数和电路深度
|
|
1134
|
+
- [ ] 评估当前硬件是否满足需求(NISQ限制)
|
|
1135
|
+
- [ ] 选择合适的变分算法(VQE/QAOA/QNN)或精确算法
|
|
1136
|
+
|
|
1137
|
+
### 框架选型
|
|
1138
|
+
- [ ] 确认目标硬件(IBM/Google/IonQ/模拟器)
|
|
1139
|
+
- [ ] 评估是否需要自动微分(PennyLane)
|
|
1140
|
+
- [ ] 确认框架版本兼容性
|
|
1141
|
+
- [ ] 评估社区支持和文档质量
|
|
1142
|
+
|
|
1143
|
+
### 电路设计
|
|
1144
|
+
- [ ] 最小化电路深度(NISQ关键约束)
|
|
1145
|
+
- [ ] 选择合适的Ansatz(问题相关 vs 硬件高效)
|
|
1146
|
+
- [ ] 合理使用参数化门
|
|
1147
|
+
- [ ] 考虑硬件拓扑(量子比特连接性)
|
|
1148
|
+
- [ ] 避免冗余门和不必要的纠缠
|
|
1149
|
+
|
|
1150
|
+
### 噪声处理
|
|
1151
|
+
- [ ] 使用噪声模型进行预评估
|
|
1152
|
+
- [ ] 选择错误缓解策略(ZNE/PEC/M3)
|
|
1153
|
+
- [ ] 校准测量错误
|
|
1154
|
+
- [ ] 评估不同shots数对精度的影响
|
|
1155
|
+
- [ ] 确认电路深度在相干时间内
|
|
1156
|
+
|
|
1157
|
+
### 优化与调参
|
|
1158
|
+
- [ ] 选择合适的经典优化器(COBYLA/SPSA/ADAM)
|
|
1159
|
+
- [ ] 设置合理的迭代次数和收敛标准
|
|
1160
|
+
- [ ] 处理参数平原(Barren Plateau)问题
|
|
1161
|
+
- [ ] 使用参数初始化策略
|
|
1162
|
+
- [ ] 评估优化景观
|
|
1163
|
+
|
|
1164
|
+
### 安全评估(量子密码学相关)
|
|
1165
|
+
- [ ] 评估量子威胁对现有系统的影响
|
|
1166
|
+
- [ ] 规划后量子密码迁移路径
|
|
1167
|
+
- [ ] 确认 NIST 后量子标准支持
|
|
1168
|
+
- [ ] 实施加密敏捷性(Crypto Agility)策略
|
|
1169
|
+
|
|
1170
|
+
### 生产部署
|
|
1171
|
+
- [ ] 本地模拟验证通过
|
|
1172
|
+
- [ ] 噪声模拟验证通过
|
|
1173
|
+
- [ ] 真实硬件测试完成
|
|
1174
|
+
- [ ] 结果与经典基准对比
|
|
1175
|
+
- [ ] 性能(运行时间/精度)满足要求
|
|
1176
|
+
- [ ] 成本评估(量子硬件使用费用)
|
|
1177
|
+
|
|
1178
|
+
---
|
|
1179
|
+
|
|
1180
|
+
**知识ID**: `quantum-complete`
|
|
1181
|
+
**领域**: quantum
|
|
1182
|
+
**类型**: standards
|
|
1183
|
+
**难度**: advanced
|
|
1184
|
+
**质量分**: 93
|
|
1185
|
+
**维护者**: quantum-team@umadev.com
|
|
1186
|
+
**最后更新**: 2026-03-28
|